[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fsDY4nSoXcV4UX_DN9RuS7YAAsuzn7hs0QfUy5vphu58":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":347},"multisite-language-switcher","Multisite Language Switcher","2.10.1","Dennis Ploetner","https:\u002F\u002Fprofiles.wordpress.org\u002Frealloc\u002F","\u003Cp>A simple, powerful, and user-friendly plugin that adds multilingual support to your \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fdocumentation\u002Farticle\u002Fcreate-a-network\u002F\" rel=\"ugc\">WordPress multisite\u003C\u002Fa> installation, whether using multiple subdomains or folders. Multisite Language Switcher allows you to effortlessly manage translations for posts, pages, custom post types, categories, tags, and custom taxonomies.\u003C\u002Fp>\n\u003Cp>The plugin uses flag icons from \u003Ca href=\"http:\u002F\u002Ffamfamfam.com\" rel=\"nofollow ugc\">FamFamFam\u003C\u002Fa>. Thanks to Mark James for his great work. In addition, I would like to thank \u003Ca href=\"https:\u002F\u002Fcreativpin.com\" rel=\"nofollow ugc\">Jürgen Mayer\u003C\u002Fa> for creating the plugin’s banner.\u003C\u002Fp>\n\u003Cp>Please, don’t forget to \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fmultisite-language-switcher\u002Freviews\u002F\" rel=\"ugc\">rate this plugin\u003C\u002Fa>! 🙂\u003C\u002Fp>\n\u003Ch3>Translators\u003C\u002Fh3>\n\u003Cp>Thanks to all the translators for their great work.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>German (de_DE) – \u003Ca href=\"http:\u002F\u002Flloc.de\u002F\" rel=\"nofollow ugc\">Dennis Ploetner\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Italian (it_IT) – \u003Ca href=\"http:\u002F\u002Fwww.freely.de\u002Fit\u002F\" rel=\"nofollow ugc\">Antonella Cucinelli\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Dutch (nl_NL) – \u003Ca href=\"http:\u002F\u002Fwww.buurtaal.de\u002F\" rel=\"nofollow ugc\">Alexandra Kleijn\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Brazillian Portuguese (pt_BR) – \u003Ca href=\"http:\u002F\u002Fwww.coolweb.com.br\u002F\" rel=\"nofollow ugc\">Coolweb\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Spanish (es_ES) – \u003Ca href=\"http:\u002F\u002Fwww.ab-weblog.com\u002Fen\u002F\" rel=\"nofollow ugc\">Andreas Breitschopp\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>French (fr_FR) – \u003Ca href=\"http:\u002F\u002Fwww.ab-tools.com\u002Fen\u002F\" rel=\"nofollow ugc\">Andreas Breitschopp\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Russian (ru_RU) – \u003Ca href=\"http:\u002F\u002Fj4vk.com\u002F\" rel=\"nofollow ugc\">Andrey Vystavkin\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Ukrainian (uk) – \u003Ca href=\"http:\u002F\u002Fworm.org.ua\u002F\" rel=\"nofollow ugc\">Victor Melnichenko\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Croatian (hr_HR) – \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FBrankec69\" rel=\"nofollow ugc\">Brankec69\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Romanian (ro_RO) – \u003Ca href=\"http:\u002F\u002Fcaveatlector.eu\u002F\" rel=\"nofollow ugc\">Armand K\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Polish (pl_PL) – \u003Ca href=\"http:\u002F\u002Fwww.mojito-networks.com\u002F\" rel=\"nofollow ugc\">Kamil Frejlich\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Lithuanian (lt_LT) – Ovidijus Pukys\u003C\u002Fli>\n\u003Cli>Catalan (ca_ES) – Joan López\u003C\u002Fli>\n\u003Cli>Czech (cs_CZ) – Rastr\u003C\u002Fli>\n\u003Cli>Hungarian (hu_HU) – RobiG\u003C\u002Fli>\n\u003Cli>Georgian (ka_GE) – \u003Ca href=\"http:\u002F\u002Fwww.gwebpro.com\u002F\" rel=\"nofollow ugc\">Jas Saran\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Greek (el) – \u003Ca href=\"http:\u002F\u002Fwww.aivazidis.org\u002F\" rel=\"nofollow ugc\">Christoforos Aivazidis\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Serbian (sr_RS) – \u003Ca href=\"http:\u002F\u002Fwww.webhostinghub.com\u002F\" rel=\"nofollow ugc\">Web Hosting Hub\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Turkish (tr) – Alican Cakil\u003C\u002Fli>\n\u003Cli>Armenian (hy_AM) – Yeghishe Nersisyan\u003C\u002Fli>\n\u003Cli>Bengali (bn_BD) – Md. Nazmul Huda\u003C\u002Fli>\n\u003Cli>Japanese (ja) – \u003Ca href=\"http:\u002F\u002Fthemeboy.com\u002F\" rel=\"nofollow ugc\">ThemeBoy\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Swedish (sv_SE) – \u003Ca href=\"http:\u002F\u002Fwww.bernskioldmedia.com\u002F\" rel=\"nofollow ugc\">Erik Bernskiold\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Traditional & Simplified Chinese (zh_CN & zh_TW) – DrBenson\u003C\u002Fli>\n\u003Cli>Arabic (ar) – Mohamed Elwan\u003C\u002Fli>\n\u003Cli>Norwegian (nb_NO) – Ibrahim Qraiqe\u003C\u002Fli>\n\u003Cli>Bulgarian (bg_BG) – \u003Ca href=\"http:\u002F\u002Fwww.catblue.net\u002F\" rel=\"nofollow ugc\">Vencislav Raev\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Mexican Spanish (es_MX) – \u003Ca href=\"https:\u002F\u002Ffernandomata.mx\u002F\" rel=\"nofollow ugc\">Fernando Mata\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You can translate this plugin on \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fmultisite-language-switcher\u002F\" rel=\"nofollow ugc\">translate.wordpress.org\u003C\u002Fa>, or if you prefer and have created your language pack, or have an update of an existing one, you can \u003Ca href=\"mailto:re@lloc.de\" rel=\"nofollow ugc\">send me\u003C\u002Fa> your Gettext PO and MO so that I can\u003Cbr \u002F>\nbundle it into the Multisite Language Switcher. You can download the latest POT file\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fmultisite-language-switcher\u002Ftrunk\u002Flanguages\u002Fdefault.pot\" rel=\"nofollow ugc\">from here\u003C\u002Fa>.\u003C\u002Fp>\n","A simple, powerful and easy-to-use plugin that will help you to manage multilingual content in a multisite WordPress installation.",4000,654774,96,98,"2025-12-08T10:08:00.000Z","6.9.4","6.1","7.4",[20,21,22,23,24],"language","localization","multilingual","multisite","switcher","http:\u002F\u002Fmsls.co\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmultisite-language-switcher.2.10.1.zip",100,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":27,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"realloc",4,4220,30,94,"2026-04-04T09:04:41.071Z",[40,61,82,97,114],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":27,"num_ratings":50,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":54,"tags":55,"homepage":58,"download_link":59,"security_score":60,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"zanto","Zanto WP Translation (For Multisites)","0.3.4","Ayebare Mucunguzi Brooks","https:\u002F\u002Fprofiles.wordpress.org\u002Fbrooksx\u002F","\u003Cp>Zanto WP Translation enables you to convert blogs in a multisite into translations of each other. It provides a language switcher to switch between the different translations\u003Cbr \u002F>\nof  pages, posts, categories, custom types and custom taxonomies. The plugin keeps track of what has been translated and what has not and provides an intuitive interface\u003Cbr \u002F>\nthat allows you to carry out translation. The number of languages you can run are unlimited. Get more WordPress multilingual, Localization and Internationalization addons from here\u003Cbr \u002F>\n\u003Ca title=\"WordPress translation, localization and Internationalization addons\" href=\"http:\u002F\u002Fshop.zanto.org\" rel=\"nofollow ugc\">multilingual addons\u003C\u002Fa> or keep up to-date with the best Internationalization and\u003Cbr \u002F>\nlocalization practices at \u003Ca title=\"WordPress translation, localization and Internationalization\" href=\"http:\u002F\u002Fzanto.org\" rel=\"nofollow ugc\">zanto.org\u002Fblog\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Demo and Documentation\u003C\u002Fh4>\n\u003Cp>\u003Ca title=\"Demo\" href=\"http:\u002F\u002Flang1.zanto.org\" rel=\"nofollow ugc\">zanto.org\u002FDemo\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Translation of posts, categories, custom taxonomies, custom types.\u003C\u002Fli>\n\u003Cli>Browser Language re-direct  i.e re-direct users to their preferred language in their browser language settings.\u003C\u002Fli>\n\u003Cli>An easily customizable language switcher.\u003C\u002Fli>\n\u003Cli>Ability to use custom made Language switcher themes.\u003C\u002Fli>\n\u003Cli>Add a language parameter to the URL for SEO purposes\u003C\u002Fli>\n\u003Cli>Ability to create multiple translation networks within the same multisite. i.e blog A is a translation of Blog B and C. Blog X a translation of blog Z, while all blogs are in the same multisite.\u003C\u002Fli>\n\u003Cli>Different languages for both the front and back end.\u003C\u002Fli>\n\u003Cli>Each admin will have his admin language preferences stored\u003C\u002Fli>\n\u003Cli>Over 60 in-built languages and flags.\u003C\u002Fli>\n\u003Cli>Ability for users to add their own native languages i.e from the ones not included.\u003C\u002Fli>\n\u003Cli>Integrated support for domain mapping plugin\u003C\u002Fli>\n\u003Cli>Translated posts highlighting to prevent double translation\u003C\u002Fli>\n\u003Cli>Copy posts data from one blog to the translation area\u003C\u002Fli>\n\u003Cli>A translation editor to translate all posts from one blog to all others without switching between blogs. (Additional Translation Manager plugin required)\u003C\u002Fli>\n\u003Cli>Create and Manage translators from a single blog. Translators have their own dashboard. (Additional Translation Manager plugin required)\u003C\u002Fli>\n\u003Cli>Assign Translations to individual translators.(Additional Translation Manager plugin required)\u003C\u002Fli>\n\u003Cli>Export and Import XLIFF translations for posts taxonomies, comments, custom fields. (Additional Translation Manager plugin required)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Tutorials\u003C\u002Fh4>\n\u003Cp>Learn how to use Zanto WP Translation plugin with these tutorials\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Finstalling-zanto\u002F\" rel=\"nofollow ugc\">Installation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Flanguage-url-formats\u002F\" rel=\"nofollow ugc\">Language Url formats\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Fbrowser-language-re-direct\u002F\" rel=\"nofollow ugc\">Browser Language Redirect\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Flanguage-switcher-custom-flags\u002F\" rel=\"nofollow ugc\">Custom flags for your language switcher\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Fcreating-a-custom-language-switcher-theme\u002F\" rel=\"nofollow ugc\">Creating a custom language switcher theme\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fwordpress-translation-docs\u002Fsharing-users-across-the-wordpress-network\u002F\" rel=\"nofollow ugc\">Sharing users across the translation network\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Many more to come!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Translations\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>The french translation shall be ready soon for both the site and plugin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Please \u003Ca href=\"http:\u002F\u002Fzanto.org\u002Fcontact\" rel=\"nofollow ugc\">let us know\u003C\u002Fa> if you would like to contribute a translation.\u003C\u002Fp>\n","Zanto WP Translation helps you run a multilingual site by providing linkage between content in blogs of different languages in a WordPress multisite.",10,19545,12,"2015-03-30T18:52:00.000Z","4.1.42","3.0","",[56,21,22,23,57],"language-switcher","translation","http:\u002F\u002Fzanto.org\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fzanto.0.3.4.zip",85,{"slug":62,"name":63,"version":64,"author":65,"author_profile":66,"description":67,"short_description":68,"active_installs":69,"downloaded":70,"rating":71,"num_ratings":72,"last_updated":73,"tested_up_to":74,"requires_at_least":75,"requires_php":54,"tags":76,"homepage":79,"download_link":80,"security_score":81,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"multilingual-press","MultilingualPress","2.11.3","Syde GmbH (formerly Inpsyde)","https:\u002F\u002Fprofiles.wordpress.org\u002Finpsyde\u002F","\u003Cp>\u003Cstrong>Important Update: A New Chapter for MultilingualPress Users!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>We want to let you know that MultilingualPress version 2 will be \u003Cstrong>retired at the beginning of 2025\u003C\u002Fstrong>. After this date, the plugin will no longer be available for download on this platform, and support for it will come to an end.\u003C\u002Fp>\n\u003Cp>This change reflects the natural evolution of technology. As WordPress continues to advance, version 2 of MultilingualPress has struggled to keep up with these developments. To ensure you benefit from the highest standards of reliability, performance, and functionality, we’ve made the decision to focus our energy on creating modern solutions that better meet today’s professional needs.\u003C\u002Fp>\n\u003Cp>For those seeking a robust and efficient multilingual solution, we’re excited to highlight the latest version of MultilingualPress. This updated version is fully compatible with WordPress, packed with cutting-edge features, and powered by optimized code. In 2025, it will also introduce automatic content translation capabilities, making your multilingual management easier than ever!\u003C\u002Fp>\n\u003Cp>To ensure your multilingual site stays future-ready, we warmly recommend upgrading to \u003Ca href=\"https:\u002F\u002Fmultilingualpress.org\" rel=\"nofollow ugc\">MultilingualPress version 4\u003C\u002Fa> today. By making the switch, you’ll unlock all the benefits of the latest version and enjoy a seamless transition well ahead of version 2’s deactivation.\u003C\u002Fp>\n\u003Cp>Thank you for being part of the MultilingualPress journey – we’re happy to keep supporting your multilingual needs with the best tools WordPress has to offer!\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Set up unlimited site relationships in the site manager.\u003C\u002Fli>\n\u003Cli>Language Manager with 174 editable languages.\u003C\u002Fli>\n\u003Cli>Edit all translations for a post or page from the original post editor without switching sites.\u003C\u002Fli>\n\u003Cli>Show a list of links for all translations on each page in a flexible language switcher widget.\u003C\u002Fli>\n\u003Cli>Translate posts, pages, and taxonomy terms like categories or tags.\u003C\u002Fli>\n\u003Cli>Menu language switcher: Add translation links to any nav menu.\u003C\u002Fli>\n\u003Cli>No lock-in: After deactivation, all sites will still work.\u003C\u002Fli>\n\u003Cli>SEO-friendly URLs and permalinks.\u003C\u002Fli>\n\u003Cli>Support for top-level domains per language (via multisite domain mapping).\u003C\u002Fli>\n\u003Cli>Automatic hreflang support.\u003C\u002Fli>\n\u003Cli>Support for custom post types.\u003C\u002Fli>\n\u003Cli>Automatically redirect to the user’s preferred language version of a post.\u003C\u002Fli>\n\u003Cli>Duplicate sites. Use one site as a template for a new site and copy \u003Cem>everything\u003C\u002Fem>: posts, attachments, settings for plugins and themes, navigation menus, categories, tags, and custom taxonomies. \u003C\u002Fli>\n\u003Cli>Synchronized trash: move all connected posts to the trash with one click.\u003C\u002Fli>\n\u003Cli>Change relationships between translations or connect existing posts.\u003C\u002Fli>\n\u003Cli>Quicklinks. Add links to language alternatives to a post automatically to the post content. This is especially useful\u003Cbr \u002F>\nwhen you don’t use widgets or a sidebar.\u003C\u002Fli>\n\u003Cli>User-specific language settings for the backend. Every user can choose a preferred language for the user interface without affecting the output of the front end.\u003C\u002Fli>\n\u003Cli>Show posts with incomplete translations in a dashboard widget.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>MultilingualPress 2 does ot benefit from free or ad hoc support.\u003C\u002Fp>\n\u003Ch4>Premium Support\u003C\u002Fh4>\n\u003Cp>We also offer \u003Ca href=\"https:\u002F\u002Fmultilingualpress.org\" rel=\"nofollow ugc\">premium support\u003C\u002Fa> for the Pro version (MultilingualPress version 3 and higher) to save you time.\u003Cbr \u002F>\nYou get direct help from the developers of the plugin and support from the development. This also includes support for MultilingualPress 2, but no maintenance is provided for this older plugin version.\u003C\u002Fp>\n\u003Ch4>Crafted by Syde\u003C\u002Fh4>\n\u003Cp>The team at \u003Ca href=\"https:\u002F\u002Fsyde.com\" rel=\"nofollow ugc\">Syde\u003C\u002Fa> has been engineering the Web since 2006.\u003C\u002Fp>\n","Create a fast translation network on WordPress multisite.",300,365119,82,49,"2025-01-24T13:54:00.000Z","5.2.24","4.7",[56,22,23,77,78],"translate","woocommerce","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmultilingual-press\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmultilingual-press.2.11.3.zip",92,{"slug":83,"name":84,"version":85,"author":7,"author_profile":8,"description":86,"short_description":87,"active_installs":88,"downloaded":89,"rating":81,"num_ratings":90,"last_updated":91,"tested_up_to":16,"requires_at_least":92,"requires_php":18,"tags":93,"homepage":95,"download_link":96,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"mslsmenu","MslsMenu","2.5.1","\u003Cp>Most people are likely to use some lines of PHP or the widget provided by the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmultisite-language-switcher\u002F\" rel=\"ugc\">Multisite Language Switcher\u003C\u002Fa> to integrate the links to the translations in their blogs.\u003C\u002Fp>\n\u003Cp>But this can lead to fatal errors if you don’t know much about PHP, or maybe the dynamic sidebars are not the best place in your opinion. If you want to integrate the \u003Cem>Multisite Language Switcher\u003C\u002Fem> in one (or more) of your Navigation Menu(s) then you should give \u003Cstrong>MslsMenu\u003C\u002Fstrong> a try.\u003C\u002Fp>\n","Adds the output of the Multisite Language Switcher to one (or more) of your navigation menu(s)",200,31843,8,"2025-12-03T14:28:00.000Z","5.3",[20,94,22,23,24],"menu","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmslsmenu\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmslsmenu.2.5.1.zip",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":88,"downloaded":105,"rating":27,"num_ratings":106,"last_updated":107,"tested_up_to":108,"requires_at_least":109,"requires_php":54,"tags":110,"homepage":112,"download_link":113,"security_score":60,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"simple-language-switcher","Simple Language Switcher","1.1","matthewbe","https:\u002F\u002Fprofiles.wordpress.org\u002Fmatthewbe\u002F","\u003Cp>Simple Language Switcher is a simple and lightweight plugin that allows you to display a language switcher on your site.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>You can easily customize the display of your language switcher (language ISO codes, language names or flags).\u003C\u002Fli>\n\u003Cli>Interconnect your post in different languages (avoids the user to be redirected to the home page when switching to another language).\u003C\u002Fli>\n\u003Cli>Current language detection with regex: avoids displaying a link to the same page in the same language.\u003C\u002Fli>\n\u003Cli>Generates rel=”alternate” hreflang=”x” links for SEO purposes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>You will find full details, instructions and a demo here: http:\u002F\u002Fwww.mendoweb.be\u002Fblog\u002Fwordpress-plugin-simple-language-switcher\u002F\u003C\u002Fp>\n\u003Ch4>Before you downvote this plugin\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Understand that this is not an attempt at making a plugin for a complete multilingual solution; you will find better plugins out there for this.\u003C\u002Fli>\n\u003Cli>It didn’t work for you? You found a bug? Give me a description with some details in the support forum, and I will fix it as soon as I can.\u003C\u002Fli>\n\u003Cli>For some reason, you didn’t like it? Share me your suggestions in the support forum, and perhaps I will work on it.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Support\u003C\u002Fh4>\n\u003Cp>Did you enjoy this plugin? Please take a moment to rate and comment, this will keep me motivated to update this plugin for bugfixes and WordPress upgrades.\u003C\u002Fp>\n","A simple and lightweight plugin that displays a customizable language switcher.",21504,2,"2013-09-05T17:38:00.000Z","3.5.2","3.3",[20,111,22,23,24],"multilanguage","http:\u002F\u002Fwww.mendoweb.be\u002Fblog\u002Fwordpress-plugin-simple-language-switcher\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-language-switcher.zip",{"slug":115,"name":116,"version":117,"author":118,"author_profile":119,"description":120,"short_description":121,"active_installs":48,"downloaded":122,"rating":27,"num_ratings":34,"last_updated":123,"tested_up_to":124,"requires_at_least":53,"requires_php":54,"tags":125,"homepage":54,"download_link":128,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"geo-targetly-geo-translate","Geo Targetly Geo Translate","1.0.1","geotargetly","https:\u002F\u002Fprofiles.wordpress.org\u002Fgeotargetly\u002F","\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FLZgLADiLZMc?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Cp>Serve location-specific versions of your website in the correct language, automatically. \u003Cstrong>Geo Translate\u003C\u002Fstrong> detects a visitor’s \u003Cstrong>country, state\u002Fregion, city, lat-long, or browser language\u003C\u002Fstrong>, and displays the most relevant translated page.\u003C\u002Fp>\n\u003Cp>Translations are powered by AI, then editable by you for full control. Perfect for tailoring your messaging across borders without maintaining separate sites.\u003C\u002Fp>\n\u003Cp>Use this to auto-translate product pages, landing pages, popups, or full websites, and show different language versions to different cities, states, or countries.\u003C\u002Fp>\n\u003Cp>Just configure your rules in the dashboard, drop in the script, and go live in minutes.\u003C\u002Fp>\n\u003Cp>Made by \u003Ca href=\"https:\u002F\u002Fgeotargetly.com\u002F\" rel=\"nofollow ugc\">Geo Targetly\u003C\u002Fa>, Geo Translate works seamlessly with any site setup.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Paid account is required\u003C\u002Fstrong> – \u003Ca href=\"https:\u002F\u002Fgeotargetly.com\u002Fpricing\" rel=\"nofollow ugc\">see pricing\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>14-day free trial\u003C\u002Fstrong> – no credit card needed\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Auto-translate your pages using \u003Cstrong>AI-powered translations\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Display location-based content by \u003Cstrong>country, region, city, lat-long radius, or browser language\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Manually edit and fine-tune translations after initial AI pass\u003C\u002Fli>\n\u003Cli>Serve the correct language version automatically, no redirects needed\u003C\u002Fli>\n\u003Cli>Target multilingual audiences with a \u003Cstrong>single site structure\u003C\u002Fstrong>\u003C\u002Fli>\n\u003Cli>Seamless JavaScript integration, no coding required\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Detailed docs can be found below\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Overview https:\u002F\u002Fgeotargetly.com\u002Fgeo-translate\u003C\u002Fli>\n\u003Cli>Quick Start Guide https:\u002F\u002Fgeotargetly.com\u002Fguides\u002Fgeo-translate\u003C\u002Fli>\n\u003Cli>Docs https:\u002F\u002Fhelp.geotargetly.com\u002Fen\u002Fcollections\u002F13362916-geo-translate\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Live chat at \u003Ca href=\"https:\u002F\u002Fgeotargetly.com\" title=\"Geo Targetly\" rel=\"nofollow ugc\">Geo Targetly\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin connects to an external endpoint via the domain https:\u002F\u002Fg594253005.co to load and run a script that powers its core functionality, as outlined previously in the description.\u003C\u002Fp>\n\u003Cp>It sends the user’s location each time the plugin is loaded. This is necessary to determine and customize the plugin’s behavior based on the user’s geographical context.\u003C\u002Fp>\n\u003Cp>Additionally, this plugin connects to analytics endpoint https:\u002F\u002Fg97676560.co\u002F to track plugin installation and usage over time.\u003C\u002Fp>\n\u003Cp>This service is provided by Geo Targetly – \u003Ca href=\"https:\u002F\u002Fgeotargetly.com\u002Fwebsite-terms-of-use\" rel=\"nofollow ugc\">Terms of Use\u003C\u002Fa>, \u003Ca href=\"https:\u002F\u002Fgeotargetly.com\u002Fprivacy-policy\" rel=\"nofollow ugc\">Privacy Policy\u003C\u002Fa>.\u003C\u002Fp>\n","Auto-translate and localize your website based on visitor location. Show the right language variant to the right user.",240,"2025-12-02T18:21:00.000Z","6.8.5",[126,127,56,21,22],"auto-translate","geo-targeting","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgeo-targetly-geo-translate.1.0.1.zip",{"attackSurface":130,"codeSignals":289,"taintFlows":335,"riskAssessment":336,"analyzedAt":346},{"hooks":131,"ajaxHandlers":269,"restRoutes":278,"shortcodes":279,"cronEvents":288,"entryPointCount":34,"unprotectedCount":106},[132,138,143,145,148,151,155,159,162,167,170,174,180,185,190,195,200,204,209,213,215,219,224,227,230,231,233,235,237,241,245,247,249,251,254,256,258,259,261,263,265,267],{"type":133,"name":134,"callback":135,"file":136,"line":137},"action","msls_main_save","msls_return_void","includes\\ContentImport\\ContentImporter.php",258,{"type":133,"name":139,"callback":140,"file":141,"line":142},"load-post.php","closure","includes\\ContentImport\\Service.php",38,{"type":133,"name":139,"callback":140,"file":141,"line":144},44,{"type":133,"name":146,"callback":140,"file":141,"line":147},"admin_notices",47,{"type":133,"name":149,"callback":140,"file":141,"line":150},"load-post-new.php",55,{"type":152,"name":153,"callback":140,"file":141,"line":154},"filter","wp_insert_post_empty_content",61,{"type":152,"name":156,"callback":140,"priority":157,"file":141,"line":158},"wp_get_attachment_url",99,67,{"type":152,"name":160,"callback":140,"priority":157,"file":141,"line":161},"wp_calculate_image_srcset",75,{"type":133,"name":163,"callback":164,"file":165,"line":166},"admin_init","register","includes\\MslsAdmin.php",62,{"type":133,"name":146,"callback":168,"file":165,"line":169},"has_problems",63,{"type":152,"name":171,"callback":172,"file":165,"line":173},"msls_admin_validate","set_blog_language",65,{"type":133,"name":175,"callback":176,"priority":177,"file":178,"line":179},"admin_bar_menu","update_admin_bar",999,"includes\\MslsAdminBar.php",33,{"type":152,"name":181,"callback":182,"priority":48,"file":183,"line":184},"msls_blog_collection_description","get_configured_blog_description","includes\\MslsBlogCollection.php",52,{"type":152,"name":186,"callback":187,"file":188,"line":189},"the_content","content_filter","includes\\MslsContentFilter.php",21,{"type":133,"name":191,"callback":192,"file":193,"line":194},"trashed_post","delete","includes\\MslsCustomColumn.php",32,{"type":133,"name":196,"callback":197,"file":198,"line":199},"restrict_manage_posts","add_filter","includes\\MslsCustomFilter.php",26,{"type":152,"name":201,"callback":202,"file":198,"line":203},"parse_query","execute_filter",27,{"type":133,"name":205,"callback":206,"file":207,"line":208},"add_meta_boxes","add","includes\\MslsMetaBox.php",22,{"type":133,"name":210,"callback":211,"file":207,"line":212},"save_post","set",23,{"type":133,"name":191,"callback":192,"file":207,"line":214},24,{"type":133,"name":216,"callback":217,"file":207,"line":218},"admin_footer","print_modal_html",145,{"type":133,"name":220,"callback":221,"file":222,"line":223},"admin_enqueue_scripts","custom_enqueue","includes\\MslsPlugin.php",40,{"type":133,"name":225,"callback":221,"file":222,"line":226},"wp_enqueue_scripts",41,{"type":133,"name":228,"callback":228,"file":222,"line":229},"init",43,{"type":133,"name":228,"callback":228,"file":222,"line":144},{"type":133,"name":228,"callback":228,"file":222,"line":232},45,{"type":133,"name":228,"callback":228,"file":222,"line":234},46,{"type":133,"name":236,"callback":228,"file":222,"line":147},"widgets_init",{"type":133,"name":238,"callback":239,"file":222,"line":240},"wp_head","print_alternate_links",48,{"type":152,"name":242,"callback":243,"file":222,"line":244},"msls_get_output","msls_output",50,{"type":133,"name":246,"callback":228,"file":222,"line":150},"admin_menu",{"type":133,"name":139,"callback":228,"file":222,"line":248},56,{"type":133,"name":149,"callback":228,"file":222,"line":250},57,{"type":133,"name":252,"callback":228,"file":222,"line":253},"load-edit.php",58,{"type":133,"name":252,"callback":228,"file":222,"line":255},59,{"type":133,"name":257,"callback":228,"file":222,"line":154},"load-edit-tags.php",{"type":133,"name":257,"callback":228,"file":222,"line":166},{"type":133,"name":260,"callback":228,"file":222,"line":169},"load-term.php",{"type":133,"name":163,"callback":228,"file":222,"line":262},68,{"type":133,"name":163,"callback":228,"file":222,"line":264},71,{"type":133,"name":163,"callback":228,"file":222,"line":266},74,{"type":133,"name":146,"callback":140,"file":222,"line":268},83,[270,275],{"action":271,"nopriv":272,"callback":273,"hasNonce":272,"hasCapCheck":272,"file":222,"line":274},"suggest_posts",false,"suggest",79,{"action":276,"nopriv":272,"callback":273,"hasNonce":272,"hasCapCheck":272,"file":222,"line":277},"suggest_terms",80,[],[280,284],{"tag":281,"callback":282,"file":283,"line":90},"sc_msls_widget","render_widget","includes\\MslsShortCode.php",{"tag":285,"callback":286,"file":283,"line":287},"sc_msls","msls_get_switcher",9,[],{"dangerousFunctions":290,"sqlUsage":291,"outputEscaping":294,"fileOperations":28,"externalRequests":28,"nonceChecks":332,"capabilityChecks":333,"bundledLibraries":334},[],{"prepared":292,"raw":28,"locations":293},14,[],{"escaped":295,"rawEcho":296,"locations":297},117,16,[298,302,304,306,308,310,312,314,316,318,320,321,323,325,327,329],{"file":299,"line":300,"context":301},"includes\\ContentImport\\MetaBox.php",119,"raw output",{"file":165,"line":303,"context":301},124,{"file":165,"line":305,"context":301},128,{"file":165,"line":307,"context":301},350,{"file":165,"line":309,"context":301},358,{"file":165,"line":311,"context":301},374,{"file":165,"line":313,"context":301},401,{"file":165,"line":315,"context":301},411,{"file":165,"line":317,"context":301},427,{"file":165,"line":319,"context":301},440,{"file":198,"line":250,"context":301},{"file":207,"line":322,"context":301},226,{"file":207,"line":324,"context":301},237,{"file":207,"line":326,"context":301},347,{"file":222,"line":328,"context":301},103,{"file":330,"line":331,"context":301},"MultisiteLanguageSwitcher.php",81,1,3,[],[],{"summary":337,"deductions":338},"The multisite-language-switcher plugin v2.10.1 exhibits a generally good security posture with some notable areas for improvement. The plugin demonstrates strong practices by utilizing prepared statements for all SQL queries and implementing proper output escaping for a significant majority of its outputs. The absence of dangerous functions, file operations, and external HTTP requests further bolsters its security.  Furthermore, the plugin has no recorded historical vulnerabilities, suggesting a mature and well-maintained codebase.\n\nHowever, the presence of two AJAX handlers without authentication checks presents a significant concern. While the total attack surface is relatively small, these unprotected entry points could be exploited by unauthenticated users to trigger unintended actions. The single nonce check across three capability checks also indicates a potential imbalance, where critical functionalities might not be adequately protected against replay attacks. The lack of taint analysis data is not necessarily a weakness but means potential risks in that area cannot be definitively assessed from the provided information.\n\nOverall, multisite-language-switcher v2.10.1 is a plugin with a solid foundation, but the unprotected AJAX handlers are a clear area that requires immediate attention to mitigate potential security risks. Addressing these specific entry points would significantly enhance the plugin's overall security posture.",[339,341,344],{"reason":340,"points":48},"AJAX handlers without auth checks",{"reason":342,"points":343},"Unescaped output (12%)",5,{"reason":345,"points":343},"Limited nonce checks for entry points","2026-03-16T18:14:29.117Z",{"wat":348,"direct":365},{"assetPaths":349,"generatorPatterns":356,"scriptPaths":357,"versionParams":358},[350,351,352,353,354,355],"\u002Fwp-content\u002Fplugins\u002Fmultisite-language-switcher\u002Fassets\u002Fjs\u002Fmlsdialog.js","\u002Fwp-content\u002Fplugins\u002Fmultisite-language-switcher\u002Fassets\u002Fjs\u002Fmsls.js","\u002Fwp-content\u002Fplugins\u002Fmultisite-language-switcher\u002Fassets\u002Fjs\u002Fmsls_admin.js","\u002Fwp-content\u002Fplugins\u002Fmultisite-language-switcher\u002Fassets\u002Fjs\u002Ftinymce_plugin.js","\u002Fwp-content\u002Fplugins\u002Fmultisite-language-switcher\u002Fassets\u002Fcss\u002Fmsls.css","\u002Fwp-content\u002Fplugins\u002Fmultisite-language-switcher\u002Fassets\u002Fcss\u002Fmsls_admin.css",[],[350,351,352,353],[359,360,361,362,363,364],"multisite-language-switcher\u002Fassets\u002Fjs\u002Fmlsdialog.js?ver=","multisite-language-switcher\u002Fassets\u002Fjs\u002Fmsls.js?ver=","multisite-language-switcher\u002Fassets\u002Fjs\u002Fmsls_admin.js?ver=","multisite-language-switcher\u002Fassets\u002Fjs\u002Ftinymce_plugin.js?ver=","multisite-language-switcher\u002Fassets\u002Fcss\u002Fmsls.css?ver=","multisite-language-switcher\u002Fassets\u002Fcss\u002Fmsls_admin.css?ver=",{"cssClasses":366,"htmlComments":368,"htmlAttributes":371,"restEndpoints":375,"jsGlobals":377,"shortcodeOutput":380},[367],"msls-language-switcher",[369,370],"\u003C!-- Begin: msls_language_switcher -->","\u003C!-- End: msls_language_switcher -->",[372,373,374],"data-msls-action","data-msls-redirect","data-msls-post-id",[376],"\u002Fwp-json\u002Fmsls\u002Fv1\u002Fplugins",[378,379],"msls_data","msls_options_data",[381],"\u003Cdiv class=\"msls-language-switcher\">"]