[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fxP_BgVD1BP7WNONqU9zFNP1pALDcldr0tp_zWK5FNrE":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":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"vulnerabilities":30,"developer":31,"crawl_stats":28,"alternatives":37,"analysis":122,"fingerprints":199},"no-function-language-widget","No Function Language Widget","1.6","theode","https:\u002F\u002Fprofiles.wordpress.org\u002Ftheode\u002F","\u003Cp>Did you ever need to connect multiple language plugins? I know this is a niche, but from my long lasting experience I know that sometimes you need such a thing.\u003C\u002Fp>\n\u003Cp>Maybe you don’t like the widgets your translation plugin provides. So you maybe need something else.\u003C\u002Fp>\n\u003Cp>Try this if you are in need for a language widget which has no function except to be a widget.\u003C\u002Fp>\n\u003Cp>Here is an example:\u003C\u002Fp>\n\u003Cp>Imagine you have some people in your company providing their own translation but for some reason you also need machine translations of your content. In our specific case it was the plugin Global Translator and WPML. Of course all these plugins have their own widgets, but getting mad if you try to use them both because their widgets only work with the single plugin. So there was a need for a widget which has no function behind it to simply connect two plugins.\u003C\u002Fp>\n\u003Cp>You need to configure the WPML part for the languages with your own translations and the Global Translator part for those without.\u003C\u002Fp>\n\u003Cp>In the no function language widget you simply choose the language codes with a comma seperated list. It even works if you need other names for your languages. Just replace the flag to your name for example rename de.png to german.png and use \u002Fgerman as your language base.\u003C\u002Fp>\n","With this you can bridge the gap between multiple translation plugins. It is a no function language widget with multiple options.",10,3442,100,1,"2016-10-30T19:47:00.000Z","4.7.32","3.0","",[20,21,22,23],"flags","language","multilingual","widget","http:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fno-function-language-widget","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fno-function-language-widget.zip",85,0,null,"2026-03-15T14:54:45.397Z",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":26,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},11,220,30,84,"2026-04-04T05:01:57.924Z",[38,57,75,90,106],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":27,"num_ratings":27,"last_updated":18,"tested_up_to":48,"requires_at_least":49,"requires_php":50,"tags":51,"homepage":54,"download_link":55,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":56},"sublanguage-switcher-widget","Sublanguage Switcher Widget","1.0.1","Ralf Geschke","https:\u002F\u002Fprofiles.wordpress.org\u002Fgeschke\u002F","\u003Cp>The Sublanguage plugin is a great toolkit to create multilingual websites. The Sublanguage Switcher Widget\u003Cbr \u002F>\nis a plugin which builds a more sophisticated language switcher widget.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>List view of languages with language names and\u002For flags\u003C\u002Fli>\n\u003Cli>List view can displayed horizontally or vertically\u003C\u002Fli>\n\u003Cli>Selectbox view \u003C\u002Fli>\n\u003Cli>Hide current language\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fmaximeschoeni\" rel=\"nofollow ugc\">maximeschoeni\u003C\u002Fa> for the excellent Sublanguage plugin\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002FChouby\" rel=\"nofollow ugc\">Chouby\u003C\u002Fa> \u002F \u003Ca href=\"https:\u002F\u002Fpolylang.pro\" rel=\"nofollow ugc\">Polylang\u003C\u002Fa> for the\u003Cbr \u002F>\ncomprehensive list of predefined languages in the languages.php file.\u003C\u002Fli>\n\u003Cli>Most of the flags included are coming from \u003Ca href=\"http:\u002F\u002Ffamfamfam.com\u002F\" rel=\"nofollow ugc\">famfamfam\u003C\u002Fa> and are public domain.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Wherever third party code has been used, credit has been given in the code’s comments.\u003C\u002Fp>\n","Sublanguage Switcher Widget is a plugin to display a fancy language switcher widget when Sublanguage plugin is used",80,2639,"4.9.29","4.4","5.2.4",[21,52,22,53,23],"multilanguage","translation","https:\u002F\u002Fwww.kuerbis.org\u002Fsublanguage-switcher-widget\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsublanguage-switcher-widget.1.0.1.zip","2026-03-15T10:48:56.248Z",{"slug":58,"name":59,"version":60,"author":61,"author_profile":62,"description":63,"short_description":64,"active_installs":65,"downloaded":66,"rating":27,"num_ratings":27,"last_updated":67,"tested_up_to":68,"requires_at_least":18,"requires_php":18,"tags":69,"homepage":72,"download_link":73,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":74},"gtext-widget","gText Widget","1.3","Guram Kajaia","https:\u002F\u002Fprofiles.wordpress.org\u002Fhektor\u002F","\u003Cp>This is multilingual text widget, which works with qTranslate plugin.\u003Cbr \u002F>\nYou have to install qTranslate plugin before you use gText Widget.\u003Cbr \u002F>\nThis plugins requires at least qTranslate 2.0 version.\u003Cbr \u002F>\nAfter installing gText Widget, you will have different input boxes for languages, which you have enabled with qTranslate.\u003C\u002Fp>\n","This is multilingual text widget, which works with qTranslate plugin.",70,7429,"2014-09-05T04:02:00.000Z","4.0.0",[70,21,22,71,23],"admin","text","none","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgtext-widget.zip","2026-03-15T15:16:48.613Z",{"slug":76,"name":77,"version":78,"author":79,"author_profile":80,"description":81,"short_description":82,"active_installs":34,"downloaded":83,"rating":13,"num_ratings":14,"last_updated":84,"tested_up_to":85,"requires_at_least":86,"requires_php":18,"tags":87,"homepage":88,"download_link":89,"security_score":26,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":74},"qtext-x-widget","qText X Widget","2.0","Thomas Egtvedt","https:\u002F\u002Fprofiles.wordpress.org\u002Fthomasegtvedt\u002F","\u003Cp>This is multilingual text widget, which works with qTranslate-X plugin.\u003C\u002Fp>\n\u003Cp>You have to install qTranslate-X plugin before you use qText X Widget.\u003C\u002Fp>\n\u003Cp>This plugins requires at least qTranslate-X 3.1 version.\u003C\u002Fp>\n\u003Cp>After installing qText X Widget, you will have different input boxes for languages, which you have enabled with qTranslate-X.\u003C\u002Fp>\n","This is multilingual text widget, which works with qTranslate-X plugin.",2096,"2015-02-25T10:08:00.000Z","4.1.42","4.0",[70,21,22,71,23],"http:\u002F\u002Fblog.evaria.com\u002Fwp-content\u002Fuploads\u002F2015\u002F02\u002Fqtext-x.zip","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fqtext-x-widget.zip",{"slug":91,"name":92,"version":93,"author":94,"author_profile":95,"description":96,"short_description":97,"active_installs":98,"downloaded":99,"rating":27,"num_ratings":27,"last_updated":18,"tested_up_to":100,"requires_at_least":17,"requires_php":18,"tags":101,"homepage":104,"download_link":105,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":56},"stella-flags","Stella Flags Widget","1.0","rafallach","https:\u002F\u002Fprofiles.wordpress.org\u002Freal99\u002F","\u003Cp>Plugin creates language selector widget with country flags for the Stella plugin.\u003Cbr \u002F>\nPlugin can be easly styled by css attached to your wordpress template.\u003C\u002Fp>\n\u003Ch3>Source\u003C\u002Fh3>\n\u003Cp>Mecrucrial Repository: https:\u002F\u002Frafallach@bitbucket.org\u002Frafallach\u002Fstella-flags-plugin\u003C\u002Fp>\n","Plugin creates language selector widget with country flags for the Stella plugin.",20,2439,"3.4.2",[20,102,103,23],"languages","localization","http:\u002F\u002Fbitbucket.org\u002Frafallach\u002Fstella-flags-plugin","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fstella-flags.zip",{"slug":107,"name":108,"version":93,"author":109,"author_profile":110,"description":111,"short_description":112,"active_installs":11,"downloaded":113,"rating":27,"num_ratings":27,"last_updated":18,"tested_up_to":114,"requires_at_least":115,"requires_php":18,"tags":116,"homepage":120,"download_link":121,"security_score":13,"vuln_count":27,"unpatched_count":27,"last_vuln_date":28,"fetched_at":56},"language-mix","Language Mix","Andriy Lesyuk","https:\u002F\u002Fprofiles.wordpress.org\u002Fs-andy\u002F","\u003Cp>There are countries, where people speak several languages. For these people there is no need to\u003Cbr \u002F>\nseparate the content of the site by such languages, especially when they come with some unique\u003Cbr \u002F>\n(i.e., not translated) content. On the other side, there can still be people, who speak only one\u003Cbr \u002F>\nlanguage.\u003C\u002Fp>\n\u003Cp>The Language Mix plugin for WordPress is an extension to the\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpolylang\u002F\" rel=\"ugc\">Polylang\u003C\u002Fa> plugin of\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fchouby\u002F\" rel=\"nofollow ugc\">Chouby\u003C\u002Fa>, that implements a new approach of the multilingual\u003Cbr \u002F>\ncontent handling. Its main feature is that it does not hide content in other languages, which are\u003Cbr \u002F>\nknown to the visitor! The plugin determines, which languages the user can read, using HTTP headers\u003Cbr \u002F>\nsent by the user’s browser.\u003C\u002Fp>\n\u003Cp>Additionally, the plugin comes with two widgets:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>The \u003Cstrong>Languages\u003C\u002Fstrong> widget, that can be put on any WordPress page, allows to configure, content in\u003Cbr \u002F>\nwhich languages the user wants to see. The widget saves its settings into cookies.\u003C\u002Fli>\n\u003Cli>The \u003Cstrong>Translations\u003C\u002Fstrong> widget, that can be put on the single content page only (e.g., the post page),\u003Cbr \u002F>\nis an alternative to the Polylang’s \u003Cem>Language Switcher\u003C\u002Fem> widget. The difference is that this widget\u003Cbr \u002F>\nshows links only to translations of the current page (i.e., if no translations are available,\u003Cbr \u002F>\nnothing is shown).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The \u003Ca href=\"http:\u002F\u002Fprojects.andriylesyuk.com\u002Fproject\u002Fwordpress\u002Flanguage-mix\" rel=\"nofollow ugc\">plugin’s project\u003C\u002Fa> is also\u003Cbr \u002F>\nhosted on the \u003Ca href=\"http:\u002F\u002Fwww.andriylesyuk.com\" rel=\"nofollow ugc\">author’s website\u003C\u002Fa> \u003Cem>(using\u003Cbr \u002F>\n\u003Ca href=\"http:\u002F\u002Fwww.redmine.org\u002F\" rel=\"nofollow ugc\">Redmine\u003C\u002Fa> and WordPress)\u003C\u002Fem>.\u003Cbr \u002F>\n\u003Ca href=\"http:\u002F\u002Fprojects.andriylesyuk.com\u002Fproject\u002Fwordpress\u002Flanguage-mix\" rel=\"nofollow ugc\">There\u003C\u002Fa> you can read news, report\u003Cbr \u002F>\nbugs, and more.\u003C\u002Fp>\n\u003Cp>\u003Cem>For the banner I used \u003Ca href=\"http:\u002F\u002Fwww.flickr.com\u002Fphotos\u002Ffdecomite\u002F3288906696\u002F\" rel=\"nofollow ugc\">the image\u003C\u002Fa> of\u003Cbr \u002F>\n\u003Ca href=\"http:\u002F\u002Fwww.flickr.com\u002Fphotos\u002Ffdecomite\u002F\" rel=\"nofollow ugc\">Francesco De Comite\u003C\u002Fa>.\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch3>Issue Tracker\u003C\u002Fh3>\n\u003Cp>Use \u003Ca href=\"http:\u002F\u002Fprojects.andriylesyuk.com\u002Fprojects\u002Flanguage-mix\u002Fissues\" rel=\"nofollow ugc\">this issue tracker\u003C\u002Fa> to report\u003Cbr \u002F>\nbugs, request features and file other issues.\u003C\u002Fp>\n\u003Ch3>Documentation\u003C\u002Fh3>\n\u003Cp>The documentation for the plugin can be found in the\u003Cbr \u002F>\n\u003Ca href=\"http:\u002F\u002Fprojects.andriylesyuk.com\u002Fprojects\u002Flanguage-mix\u002Fwiki\" rel=\"nofollow ugc\">Wiki\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Blog\u003C\u002Fh3>\n\u003Cp>The plugin’s project has a blog \u003Ca href=\"http:\u002F\u002Fblog.andriylesyuk.com\u002Fprojects\u002Flanguage-mix\u002F\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Live Demo\u003C\u002Fh3>\n\u003Cp>I’m using this plugin at \u003Ca href=\"http:\u002F\u002Fwww.andriylesyuk.com\" rel=\"nofollow ugc\">my personal website\u003C\u002Fa>. A translated article\u003Cbr \u002F>\n\u003Cem>(English and Russian)\u003C\u002Fem> can be found \u003Ca href=\"http:\u002F\u002Fblog.andriylesyuk.com\u002Fthe-nature-of-euromaidan\u002F\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Thanks to\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fwww.flickr.com\u002Fphotos\u002Ffdecomite\u002F\" rel=\"nofollow ugc\">Francesco De Comite\u003C\u002Fa> for\u003Cbr \u002F>\n\u003Ca href=\"http:\u002F\u002Fwww.flickr.com\u002Fphotos\u002Ffdecomite\u002F3288906696\u002F\" rel=\"nofollow ugc\">the image\u003C\u002Fa> used as the plugin’s banner.\u003C\u002Fli>\n\u003C\u002Ful>\n","This plugin modifies the behavior of the Polylang plugin making it show contents of all languages, which are believed to be known by the visitor.",2235,"3.7.41","3.5.1",[117,118,22,119,23],"browser-languages","cookies","polylang","http:\u002F\u002Fprojects.andriylesyuk.com\u002Fproject\u002Fwordpress\u002Flanguage-mix","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flanguage-mix.zip",{"attackSurface":123,"codeSignals":135,"taintFlows":184,"riskAssessment":185,"analyzedAt":198},{"hooks":124,"ajaxHandlers":131,"restRoutes":132,"shortcodes":133,"cronEvents":134,"entryPointCount":27,"unprotectedCount":27},[125],{"type":126,"name":127,"callback":128,"file":129,"line":130},"action","widgets_init","anonymous","no-function-language-widget.php",15,[],[],[],[],{"dangerousFunctions":136,"sqlUsage":140,"outputEscaping":142,"fileOperations":27,"externalRequests":27,"nonceChecks":27,"capabilityChecks":27,"bundledLibraries":183},[137],{"fn":138,"file":129,"line":130,"context":139},"create_function","add_action( 'widgets_init', create_function( '', 'register_widget( \"no_function_language_widget\" );'",{"prepared":27,"raw":27,"locations":141},[],{"escaped":143,"rawEcho":144,"locations":145},4,18,[146,149,151,153,155,157,159,161,163,165,167,169,171,173,175,177,179,181],{"file":129,"line":147,"context":148},58,"raw output",{"file":129,"line":150,"context":148},61,{"file":129,"line":152,"context":148},71,{"file":129,"line":154,"context":148},72,{"file":129,"line":156,"context":148},136,{"file":129,"line":158,"context":148},137,{"file":129,"line":160,"context":148},142,{"file":129,"line":162,"context":148},182,{"file":129,"line":164,"context":148},185,{"file":129,"line":166,"context":148},186,{"file":129,"line":168,"context":148},191,{"file":129,"line":170,"context":148},194,{"file":129,"line":172,"context":148},195,{"file":129,"line":174,"context":148},200,{"file":129,"line":176,"context":148},203,{"file":129,"line":178,"context":148},204,{"file":129,"line":180,"context":148},208,{"file":129,"line":182,"context":148},209,[],[],{"summary":186,"deductions":187},"The \"no-function-language-widget\" v1.6 plugin exhibits a mixed security posture.  On the positive side, the static analysis reveals no identified AJAX handlers, REST API routes, shortcodes, or cron events that could serve as direct entry points.  Furthermore, all SQL queries are correctly implemented using prepared statements, and there are no file operations or external HTTP requests, which significantly reduces potential attack vectors. The plugin also has no known CVEs, suggesting a good track record of security.\n\nHowever, there are significant concerns. The presence of the `create_function` dangerous function is a red flag, as it can lead to code injection vulnerabilities if used with untrusted input.  The very low percentage of properly escaped output (18%) indicates a high risk of Cross-Site Scripting (XSS) vulnerabilities.  Additionally, the complete lack of nonce checks and capability checks means that any functionality exposed, even if not immediately apparent in the entry points, could be exploited by unauthenticated users or users with insufficient privileges.\n\nWhile the plugin's history is clean, this does not negate the immediate risks identified in the static analysis. The combination of `create_function` and widespread unescaped output, coupled with the absence of authentication and authorization checks, presents a substantial security risk.  The plugin's strengths lie in its limited direct attack surface and secure database interactions, but these are heavily outweighed by the potential for code execution and XSS.",[188,190,193,196],{"reason":189,"points":130},"Dangerous function detected (create_function)",{"reason":191,"points":192},"Low output escaping (18% proper)",12,{"reason":194,"points":195},"No nonce checks detected",8,{"reason":197,"points":195},"No capability checks detected","2026-03-16T23:36:03.570Z",{"wat":200,"direct":207},{"assetPaths":201,"generatorPatterns":202,"scriptPaths":203,"versionParams":205},[],[],[204],"no-function-language-widget\u002Fno-function-language-widget.php",[206],"no-function-language-widget\u002Fno-function-language-widget.php?ver=",{"cssClasses":208,"htmlComments":216,"htmlAttributes":217,"restEndpoints":226,"jsGlobals":227,"shortcodeOutput":228},[209,210,211,212,213,214,215],"flag-icon","flag-icon-gb","flag-icon-de","flag-icon-ch","flag-icon-be","flag-icon-nl","flag-icon-fi",[],[218,219,220,221,222,223,224,225],"id=\"no_function_language_widget\"","name=\"no_function_language_widget\"","id=\"no_function_language_widget_title\"","name=\"no_function_language_widget[title]\"","id=\"no_function_language_widget_nflw_languages\"","name=\"no_function_language_widget[nflw_languages]\"","id=\"no_function_language_widget_nflw_language_base\"","name=\"no_function_language_widget[nflw_language_base]\"",[],[],[]]