[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fRF3CsY-Y7ObTb5oZf2CRJ1gZe5huKjCkfxHelbxUV9g":3,"$fQ8M1QbdEce-xizrp9Z1Q0_HKVkMn0qU1axtJEeHBBIg":386,"$fFuR_B_sl-tdwirfOP7iJW0jrD9C58BM8b3xqv_P8A88":390},{"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":23,"download_link":24,"security_score":25,"vuln_count":26,"unpatched_count":27,"last_vuln_date":28,"fetched_at":29,"discovery_status":30,"vulnerabilities":31,"developer":49,"crawl_stats":37,"alternatives":57,"analysis":157,"fingerprints":363},"bilingual-linker","Bilingual Linker","2.4.2","Yannick Lefebvre","https:\u002F\u002Fprofiles.wordpress.org\u002Fjackdewey\u002F","\u003Cp>The purpose of this plugin is to allow users to add a link to a translation version of a page or post in the admin and print this link on their blog, on a single post or or a page.\u003C\u002Fp>\n\u003Cp>You can try it out in a temporary copy of WordPress \u003Ca href=\"https:\u002F\u002Fdemo.tastewp.com\u002Fbilingual-linker\" rel=\"nofollow ugc\">here\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fbilingual-linker\u002Fchangelog\u002F\" rel=\"ugc\">Changelog\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Fbilingual-linker\" rel=\"ugc\">Support Forum\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","The purpose of this plugin is to allow users to add a link to a translation version of a page or post in the admin and print this link on their blog,  &hellip;",70,13972,80,6,"2025-09-28T16:01:00.000Z","6.7.5","3.0","",[20,21,22],"bilingual","link","translation","https:\u002F\u002Fylefebvre.github.io\u002Fwordpress-plugins\u002Fbilingual-linker\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbilingual-linker.2.4.2.zip",99,1,0,"2025-01-24 18:41:29","2026-04-16T10:56:18.058Z","no_bundle",[32],{"id":33,"url_slug":34,"title":35,"description":36,"plugin_slug":4,"theme_slug":37,"affected_versions":38,"patched_in_version":39,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":28,"updated_date":44,"references":45,"days_to_patch":14,"patch_diff_files":47,"patch_trac_url":37,"research_status":37,"research_verified":48,"research_rounds_completed":27,"research_plan":37,"research_summary":37,"research_vulnerable_code":37,"research_fix_diff":37,"research_exploit_outline":37,"research_model_used":37,"research_started_at":37,"research_completed_at":37,"research_error":37,"poc_status":37,"poc_video_id":37,"poc_summary":37,"poc_steps":37,"poc_tested_at":37,"poc_wp_version":37,"poc_php_version":37,"poc_playwright_script":37,"poc_exploit_code":37,"poc_has_trace":48,"poc_model_used":37,"poc_verification_depth":37},"CVE-2024-13441","bilingual-linker-authenticated-contributor-stored-cross-site-scripting","Bilingual Linker \u003C= 2.4 - Authenticated (Contributor+) Stored Cross-Site Scripting","The Bilingual Linker plugin for WordPress is vulnerable to Stored Cross-Site Scripting via the bl_otherlang_link_1 parameter in all versions up to, and including, 2.4 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with Contributor-level access and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page.",null,"\u003C=2.4","2.4.1","medium",6.4,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:C\u002FC:L\u002FI:L\u002FA:N","Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","2025-01-30 14:27:18",[46],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fdaeda8d7-1bff-4258-9953-b4303f1778d0?source=api-prod",[],false,{"slug":50,"display_name":7,"profile_url":8,"plugin_count":51,"total_installs":52,"avg_security_score":53,"avg_patch_time_days":54,"trust_score":55,"computed_at":56},"jackdewey",8,10960,91,498,73,"2026-05-20T04:31:11.545Z",[58,83,103,124,142],{"slug":59,"name":60,"version":61,"author":62,"author_profile":63,"description":64,"short_description":65,"active_installs":66,"downloaded":67,"rating":68,"num_ratings":69,"last_updated":70,"tested_up_to":71,"requires_at_least":72,"requires_php":73,"tags":74,"homepage":78,"download_link":79,"security_score":80,"vuln_count":81,"unpatched_count":27,"last_vuln_date":82,"fetched_at":29},"translatepress-multilingual","Translate Multilingual sites – TranslatePress","3.1.5","Cozmoslabs","https:\u002F\u002Fprofiles.wordpress.org\u002Fcozmoslabs\u002F","\u003Cp>\u003Cstrong>Experience a better way to translate your WordPress site and go multilingual, directly from the front-end using a visual translation interface.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>TranslatePress is a \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">WordPress translation plugin\u003C\u002Fa> that anyone can use.\u003C\u002Fp>\n\u003Cp>The interface allows you to easily translate the entire page at once, including output from shortcodes, forms and page builders. It also works out of the box with WooCommerce.\u003C\u002Fp>\n\u003Cp>Built the WordPress way, TranslatePress – Multilingual is a GPL and self hosted translation plugin, meaning you’ll own all your translations, forever. It’s the fastest way to create a bilingual or \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fhow-to-create-a-multilingual-wordpress-site\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">multilingual site\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\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\u002FEMBdXuyrZUA?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>\u003C\u002Fp>\n\u003Ch3>Multilingual & Translation Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Translate all your website content directly from the front-end, in a friendly user interface (translations are displayed in real-time).\u003C\u002Fli>\n\u003Cli>Fully compatible with all themes and plugins\u003C\u002Fli>\n\u003Cli>Live preview of your translated pages, as you edit them.\u003C\u002Fli>\n\u003Cli>Automatic translation support through \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fai-free\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">TranslatePress AI Free\u003C\u002Fa>, with a 2.000 AI words limit.\u003C\u002Fli>\n\u003Cli>Integrates with Google Translate, allowing you to set up unlimited automatic translations using your own Google API key.\u003C\u002Fli>\n\u003Cli>Fully customizable language switcher that you can display as a menu item, a floating dropdown, or place anywhere else using the Language Switcher block, or the \u003Cstrong>[language-switcher]\u003C\u002Fstrong> shortcode.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Fimage-translation\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">Image translation\u003C\u002Fa> support, for \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Ftranslate-images-in-wordpress\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">translating images, sliders and other media\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Support for both manual and automatic translation\u003C\u002Fli>\n\u003Cli>Ability to \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Ftranslate-dynamic-strings-wordpress\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">translate dynamic strings\u003C\u002Fa> (gettext) added by WordPress, plugins and themes.\u003C\u002Fli>\n\u003Cli>Translate larger html blocks by merging strings into translation blocks.\u003C\u002Fli>\n\u003Cli>Editorial control allowing you to publish your language only when all your translations are done\u003C\u002Fli>\n\u003Cli>Conditional display content shortcode based on language [trp_language language=”en_US”] English content only [\u002Ftrp_language]\u003C\u002Fli>\n\u003Cli>Possibility to \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fedit-plugin-strings\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">edit gettext strings\u003C\u002Fa> from themes and plugins from English to English, without adding another language. Basically a string-replace functionality.\u003C\u002Fli>\n\u003Cli>Translate only certain paths and \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fpartially-translate-wordpress-exclude-posts-pages-products\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">exclude content from being translated\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Translation Block feature in which you can translate multiple html elements together\u003C\u002Fli>\n\u003Cli>Native \u003Cstrong>Gutenberg\u003C\u002Fstrong> support, so you can easily \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Ftranslate-gutenberg-blocks-in-wordpress\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">translate Gutenberg blocks\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Out of the box \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Ftranslate-woocommerce-products-translatepress\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">WooCommerce\u003C\u002Fa> compatibility\u003C\u002Fli>\n\u003Cli>Use our \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Ffree-website-translation-tool-widget\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">FREE Website Translation\u003C\u002Fa> tool\u002Fwidget to browse any website into your own language.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Note: this plugin uses the Google Translation API to translate the strings on your site. This feature can be enabled or disabled according to your preferences.\u003C\u002Fp>\n\u003Cp>Users with administrator rights have access to the following settings:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>select default language of the website and one translation language, for bilingual sites\u003C\u002Fli>\n\u003Cli>choose whether language switcher should display languages in their native names or English name\u003C\u002Fli>\n\u003Cli>force custom links to open in current language\u003C\u002Fli>\n\u003Cli>enable or disable url subdirectory for the default language\u003C\u002Fli>\n\u003Cli>enable automatic translation via Google Translate\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Powerful Translation Add-ons\u003C\u002Fh3>\n\u003Cp>TranslatePress – Multilingual has a range of \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">premium Add-ons\u003C\u002Fa> that allow you to extend the power of this WordPress translation plugin:\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Pro Add-ons\u003C\u002Fstrong> (available in the \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fpricing\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">premium versions\u003C\u002Fa> only)\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Full \u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fai\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">TranslatePress AI\u003C\u002Fa> access – automatically translate your entire website without extra platforms to sign up for, API keys, and additional translation costs. Each premium version includes a set number of AI translated words you can use to instantly translate your site, saving you both time and money.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Faddons\u002Fmultiple-languages\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">Extra Languages\u003C\u002Fa> – allows you to add an unlimited number of translation languages, with the possibility to publish languages later after you complete the translation\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Faddons\u002Fseo-pack\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">SEO Pack\u003C\u002Fa> – lets you translate meta information (like page title, description, url slug, image alt tag, Twitter and Facebook Social Graph tags & more) for boosting your multilingual SEO and increase traffic. Works with all popular SEO plugins.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Fdevelopers\u002Fdifferent-domain-per-language\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">Different Domain per Language\u003C\u002Fa> – assign a different domain to each language you add (e.g. domain.de, domain.es) and improve international SEO by creating a fully local experience for your visitors\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Faddons\u002Ftranslator-accounts\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">Translator Accounts\u003C\u002Fa> – create or allow existing users to translate the site without admin rights\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Faddons\u002Fbrowse-as-role\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">Browse as User Role\u003C\u002Fa> – view and translate content that is visible only to a particular user role\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Faddons\u002Fnavigate-based-language\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">Navigation Based on Language\u003C\u002Fa> – configure and display different menu items for different languages\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Faddons\u002Fautomatic-user-language-detection\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">Automatic User Language Detection\u003C\u002Fa> – redirect first time visitors to their preferred language based on their browser settings or IP address\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Faddons\u002Fdeepl-automatic-translation\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">DeepL Automatic Translation\u003C\u002Fa> – The DeepL Automatic Translation add-on lets you automatically translate your website through the DeepL API\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Keyboard Shortcuts\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>CTRL ( ⌘ ) + S\u003C\u002Fstrong> – Save translation for the currently editing strings\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CTRL ( ⌘ ) + ALT + Z\u003C\u002Fstrong> – Discard all changes for the currently editing strings\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CTRL ( ⌘ ) + ALT + \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan>\u003C\u002Fstrong> (Right Arrow) – Navigate to next string\u003C\u002Fli>\n\u003Cli>\u003Cstrong>CTRL ( ⌘ ) + ALT + \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">←\u003C\u002Fspan>\u003C\u002Fstrong> (Left Arrow) – Navigate to previous string\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Website\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">translatepress.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Documentation\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Ftranslatepress\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">Visit TranslatePress WordPress Translation plugin documentation page\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Add-ons\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Ftranslatepress.com\u002Fdocs\u002Ftranslatepress\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">Add-ons\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Demo Site\u003C\u002Fh4>\n\u003Cp>You can test out TranslatePress – Multilingual plugin by \u003Ca href=\"https:\u002F\u002Fdemo.translatepress.com\u002F?utm_source=wp.org&utm_medium=tp-description-page&utm_campaign=TPFree\" rel=\"nofollow ugc\">visiting our demo site\u003C\u002Fa>\u003C\u002Fp>\n","Translate your entire site directly from the front-end and go multilingual. Full support for WooCommerce, page builders + Google Translate integration",400000,17999257,94,1616,"2026-04-15T08:28:00.000Z","6.9.4","3.1.0","7.4",[75,20,76,77,22],"automatic-translation","multilingual","translate","https:\u002F\u002Ftranslatepress.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftranslatepress-multilingual.3.1.5.zip",92,5,"2025-09-24 00:00:00",{"slug":84,"name":85,"version":86,"author":87,"author_profile":88,"description":89,"short_description":90,"active_installs":91,"downloaded":92,"rating":93,"num_ratings":94,"last_updated":95,"tested_up_to":71,"requires_at_least":96,"requires_php":97,"tags":98,"homepage":100,"download_link":101,"security_score":53,"vuln_count":51,"unpatched_count":27,"last_vuln_date":102,"fetched_at":29},"falang","Falang multilanguage for WordPress","1.4.1","sbouey","https:\u002F\u002Fprofiles.wordpress.org\u002Fsbouey\u002F","\u003Cp>Falang is a multilanguage plugin for WordPress. It allows you to translate an existing WordPress site to other languages. Falang natively supports WooCommerce (product, variation, category, tag, attribute, etc.)\u003Cbr \u002F>\nYou can use translation services such as Google, Azure, DeepL (Pro), or ChatGPT (Pro) to assist you.\u003C\u002Fp>\n\u003Ch4>Free vs Pro\u003C\u002Fh4>\n\u003Cp>Pro version:\u003Cbr \u002F>\n– Enabled popup translation for (menu\u002Fpost,product…)\u003Cbr \u002F>\n– ChatGPT translation service\u003Cbr \u002F>\n– DeepL translation service\u003Cbr \u002F>\n– Translate\u002Fconfigure WooCommerce email\u003Cbr \u002F>\n– has on-site support and language filtering – \u003Ca href=\"https:\u002F\u002Fwww.faboba.com\u002Fen\u002Fwordpress\u002Ffalang-for-wordpress\u002Fdocumentation\u002F134-how-to-use-lang-filtering.html\" rel=\"nofollow ugc\">documentation\u003C\u002Fa>\u003Cbr \u002F>\n– WP User Manager\u003Cbr \u002F>\n– YITH WooCommerce Compare\u003Cbr \u002F>\n– WC Product addons\u003Cbr \u002F>\n– CookieYes\u003Cbr \u002F>\n– and more….\u003C\u002Fp>\n\u003Ch4>Concept\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Easy setup\u003C\u002Fli>\n\u003Cli>Supports all languages supported by WordPress (RTL and LTR)\u003C\u002Fli>\n\u003Cli>Translate additional plugins like WooCommerce, Yoast SEO, etc.\u003C\u002Fli>\n\u003Cli>You can use Google, Azure, Lingvanex to help you with the translation (DeepL services available in Pro version)\u003C\u002Fli>\n\u003Cli>Translation are set in the meta, the original content is not modified.\u003C\u002Fli>\n\u003Cli>When you add a language in Falang, WP language packages are automatically downloaded and updated\u003C\u002Fli>\n\u003Cli>Easy to use: Translate Posts, Pages, Menus, Categories from the plugin or linked from the WP interface\u003C\u002Fli>\n\u003Cli>Translate Posts and Terms permalinks\u003C\u002Fli>\n\u003Cli>Displays the default language if the content is not yet translated\u003C\u002Fli>\n\u003Cli>The Language Switcher widget is configurable to display flags and\u002For language names\u003C\u002Fli>\n\u003Cli>Language Switcher can be put in Menu, Header, Footer, Sidebars\u003C\u002Fli>\n\u003Cli>Image captions, alt text and other media text translation without duplicating the media files\u003C\u002Fli>\n\u003Cli>Language Code directly in the URL\u003C\u002Fli>\n\u003Cli>No extra database tables created, no content duplication\u003C\u002Fli>\n\u003Cli>Very good website speed performance (low impact)\u003C\u002Fli>\n\u003Cli>Contains translations for IT, FR, DE, ES, NL\u003C\u002Fli>\n\u003Cli>Falang is not meant for WordPress multisite installations!\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Falang’s goal is to let you translate everything on your page\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Taxonomies\u003C\u002Fli>\n\u003Cli>Menu items\u003C\u002Fli>\n\u003Cli>Theme and plugin strings\u003C\u002Fli>\n\u003Cli>Custom fields\u003C\u002Fli>\n\u003Cli>Page builder content\u003C\u002Fli>\n\u003Cli>Widgets\u003C\u002Fli>\n\u003Cli>Shortcode outputs\u003C\u002Fli>\n\u003Cli>URL slugs\u003C\u002Fli>\n\u003Cli>WooCommerce products\u003C\u002Fli>\n\u003Cli>Page title and description\u003C\u002Fli>\n\u003Cli>Image alt text and captions\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Quick start video\u003C\u002Fh4>\n\u003Cp>Falang and Falang for Elementor Lite\u003Cbr \u002F>\n\u003Cem>(English version)\u003C\u002Fem>\u003Cbr \u002F>\n\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\u002FZEgIMY5mock?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>\u003C\u002Fp>\n\u003Cp>\u003Cem>(French version with english subtitles)\u003C\u002Fem>\u003Cbr \u002F>\n\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\u002FBibeMgPEgME?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>\u003C\u002Fp>\n\u003Ch4>Also available\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Falang WPML Importer \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffalang-wpml-importer\u002F\" rel=\"ugc\">Falang WPML Importer\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Falang Q-Importer \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffalang-q-importer\u002F\" rel=\"ugc\">qTranslateX to Falang\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Falang for Divi \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffalang-for-divi-lite\u002F\" rel=\"ugc\">Falang for Divi\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Falang for Elementor \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffalang-for-elementor-lite\u002F\" rel=\"ugc\">Falang for Elementor\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Falang for WPBakery \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffalang-for-wpbakery-lite\u002F\" rel=\"ugc\">Falang for WPBakery\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Falang for YooTheme \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Ffalang-for-yootheme-lite\u002F\" rel=\"ugc\">Falang for YOOtheme\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Falang integration\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>My Agile Privacy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Known issues\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>The WooCommerce attribute slug doesn’t have to be translated\u003C\u002Fli>\n\u003C\u002Ful>\n","Falang is the easiest multilanguage plugin you can use to translate a WordPress site.",1000,81063,100,110,"2026-03-18T14:26:00.000Z","4.7","5.6",[20,99,76,77,22],"localization","http:\u002F\u002Fwww.faboba.com\u002Ffalangw\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffalang.1.4.1.zip","2025-09-16 00:00:00",{"slug":104,"name":105,"version":106,"author":107,"author_profile":108,"description":109,"short_description":110,"active_installs":91,"downloaded":111,"rating":112,"num_ratings":113,"last_updated":114,"tested_up_to":115,"requires_at_least":116,"requires_php":18,"tags":117,"homepage":120,"download_link":121,"security_score":122,"vuln_count":26,"unpatched_count":27,"last_vuln_date":123,"fetched_at":29},"simple-slug-translate","Simple Slug Translate","2.7.3","Ko Takagi","https:\u002F\u002Fprofiles.wordpress.org\u002Fko31\u002F","\u003Cp>Simple Slug Translate can translate the post, page, category and taxonomy slugs to English automatically.\u003C\u002Fp>\n\u003Cp>It can make the permalink looks more better, and also may be good for SEO.\u003C\u002Fp>\n\u003Cp>The translation engine is powered by \u003Ca href=\"https:\u002F\u002Fwww.ibm.com\u002Fwatson\u002Fservices\u002Flanguage-translator\u002F\" rel=\"nofollow ugc\">Watson Language Translator\u003C\u002Fa>. Thanks to that support the following languages:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Arabic\u003C\u002Fli>\n\u003Cli>Bulgarian\u003C\u002Fli>\n\u003Cli>Bengali\u003C\u002Fli>\n\u003Cli>Czech\u003C\u002Fli>\n\u003Cli>Danish\u003C\u002Fli>\n\u003Cli>German\u003C\u002Fli>\n\u003Cli>Greek\u003C\u002Fli>\n\u003Cli>English\u003C\u002Fli>\n\u003Cli>Spanish\u003C\u002Fli>\n\u003Cli>Finnish\u003C\u002Fli>\n\u003Cli>French\u003C\u002Fli>\n\u003Cli>Gujarati\u003C\u002Fli>\n\u003Cli>Hebrew\u003C\u002Fli>\n\u003Cli>Hindi\u003C\u002Fli>\n\u003Cli>Hungarian\u003C\u002Fli>\n\u003Cli>Italian\u003C\u002Fli>\n\u003Cli>Japanese\u003C\u002Fli>\n\u003Cli>Korean\u003C\u002Fli>\n\u003Cli>Latvian\u003C\u002Fli>\n\u003Cli>Malayalam\u003C\u002Fli>\n\u003Cli>Norwegian Bokmal\u003C\u002Fli>\n\u003Cli>Nepali\u003C\u002Fli>\n\u003Cli>Dutch\u003C\u002Fli>\n\u003Cli>Polish\u003C\u002Fli>\n\u003Cli>Portuguese\u003C\u002Fli>\n\u003Cli>Romanian\u003C\u002Fli>\n\u003Cli>Russian\u003C\u002Fli>\n\u003Cli>Sinhala\u003C\u002Fli>\n\u003Cli>Slovakian\u003C\u002Fli>\n\u003Cli>Slovenian\u003C\u002Fli>\n\u003Cli>Serbian\u003C\u002Fli>\n\u003Cli>Swedish\u003C\u002Fli>\n\u003Cli>Thai\u003C\u002Fli>\n\u003Cli>Turkish\u003C\u002Fli>\n\u003Cli>Ukrainian\u003C\u002Fli>\n\u003Cli>Urdu\u003C\u002Fli>\n\u003Cli>Vietnamese\u003C\u002Fli>\n\u003Cli>Simplified Chinese\u003C\u002Fli>\n\u003Cli>Traditional Chinese\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>In order to use the service, you can apply for an \u003Ca href=\"https:\u002F\u002Fwww.ibm.com\u002Fcloud\u002Flite-account\" rel=\"nofollow ugc\">IBM Cloud Lite\u003C\u002Fa> account and get your own API key of Watson Language Translator. For free plan, you can translate up to 1,000,000 characters per month.\u003C\u002Fp>\n\u003Ch3>Related Links\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fko31\u002Fsimple-slug-translate\" rel=\"nofollow ugc\">Github\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fko31\u002Fsimple-slug-translate\u002Fwiki\u002FDocumentation\" rel=\"nofollow ugc\">Documentation(English)\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fko31\u002Fsimple-slug-translate\u002Fwiki\u002F%E3%83%89%E3%82%AD%E3%83%A5%E3%83%A1%E3%83%B3%E3%83%88\" rel=\"nofollow ugc\">Documentation(Japanese)\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Simple Slug Translate can translate the post, page, category and taxonomy slugs to English automatically.",24300,90,4,"2023-02-24T13:31:00.000Z","6.1.10","4.3",[118,119,77,22],"permalink","slugs","https:\u002F\u002Fgithub.com\u002Fko31\u002Fsimple-slug-translate","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsimple-slug-translate.2.7.3.zip",85,"2023-02-27 00:00:00",{"slug":125,"name":126,"version":127,"author":128,"author_profile":129,"description":130,"short_description":131,"active_installs":132,"downloaded":133,"rating":13,"num_ratings":113,"last_updated":134,"tested_up_to":135,"requires_at_least":136,"requires_php":137,"tags":138,"homepage":140,"download_link":141,"security_score":80,"vuln_count":27,"unpatched_count":27,"last_vuln_date":37,"fetched_at":29},"nlingual","nLingual","2.10.0.1","Doug Wollison","https:\u002F\u002Fprofiles.wordpress.org\u002Fdougwollison\u002F","\u003Cp>The nLingual system allows for flexible multilingual support and translation management for WordPress. The system handles translations on a per-post basis, and can be set to be synchronized so changes to certain details on one are copied to the others. It offers you control over what can be translated and how, with a number of utilities available for 3rd party themes and plugins to utilize.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>nLingual 2 offers more robust control of translation management, better extensibility, and fixes to numerous core issues with the previous incarnation.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>Translation for Almost Anything\u003C\u002Fh4>\n\u003Cp>When setting up, you have control over what content supports translation. Any UI-enabled post types or taxonomies will be available for enabling, along with any navigation menus or sidebar locations registered. In addition, nLingual includes a LocalizeThis API that can be enabled on nearly any text field found in the admin, allowing just about any option or meta field to support separate values in each language.\u003C\u002Fp>\n\u003Ch4>Simple Translation Creation and Management\u003C\u002Fh4>\n\u003Cp>Assigning a language and translations to a post can be done on either the post editor screen or the posts management screen via Quick Edit (language can also be set for multiple post via Bulk Edit). You can also easily create new translations for existing posts on the fly; select “New [language] [post type]”, provide a translated title if you wish, and a new draft post will be created that is an exact copy of the original, ready for translation.\u003C\u002Fp>\n\u003Cp>Translations are stored as independent posts, associated with their counterparts via a custom table. This allows you to translate the custom fields and other metadata associated with a post, and can assign them their own separate terms if desired. However, since there are plenty of occasions where you want the same information used between posts, nLingual offers \u003Cem>post synchronization\u003C\u002Fem>.\u003C\u002Fp>\n\u003Ch4>Post Synchronization\u003C\u002Fh4>\n\u003Cp>Each post type has it’s own rules for what data is synchronized between translations. When changes are saved to a post, it’s translations will be updated with to have the same data in the approved fields. This covers post data (e.g. date, status, and menu order), terms of specified taxonomies, and any meta fields you specify (e.g. the thumbnail image used, or a custom field value).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Note: Currently, there is no per-post basis override for the synchronization rules\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch4>Free-form Language Management\u003C\u002Fh4>\n\u003Cp>Admittedly, this is a feature few will need, but it’s a godsend to those that do. When setting up the languages nLingual will use, you can define you own languages from scratch or based on numerous presets. Each language has a number of fields:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>System Name: the name to use when referring to the language within the admin.\u003C\u002Fli>\n\u003Cli>Native Name: the name of the language as it appears to native speakers on the site.\u003C\u002Fli>\n\u003Cli>Short Name: a shorthand version of the native name, if applicable.\u003C\u002Fli>\n\u003Cli>Locale: the language\u002Fcountry code to represent this language, as well identify the .mo file to load for text domains.\u003C\u002Fli>\n\u003Cli>ISO Code: the official ISO 639-1 code for the language (2 letters)\u003C\u002Fli>\n\u003Cli>Slug: the value to use when localizing a URL for the language (typically the same as the ISO code).\u003C\u002Fli>\n\u003Cli>Text Direction: the text direction the language should be rendered in (Left-to-right or right-to-left). Will override the one specified in the text domain files.\u003C\u002Fli>\n\u003Cli>Active State: whether or not to allow public access to content in the language.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Flexible Language Detection\u002FSwitching\u003C\u002Fh4>\n\u003Cp>When the public-facing side of the site is loaded, nLingual will attempt to detect what language to serve the page in, using the following process:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Use the language code in the \u003Ccode>$_REQUEST\u003C\u002Fcode> array for the specified key, if present.\u003C\u002Fli>\n\u003Cli>Use the language code in either the subdomain or directory path, depending on method specified.\u003C\u002Fli>\n\u003Cli>Use the browser’s preferred language setting and find the closest match, falling back to the default language.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Once the language is set, it can be overridden by the language belonging to the requested post. This override is an configurable option.\u003C\u002Fp>\n\u003Cp>In addition, the language can temporarily be switched to another by 3rd party theme or plugin code, similar to switching blogs in a multisite installation. When the language is switched, all text domain files will be reloaded in the desired language (the originals cached for when it’s restored), so any gettext translations will reflect the current language.\u003C\u002Fp>\n\u003Ch4>Extensibility and 3rd Party Development\u003C\u002Fh4>\n\u003Cp>In addition to numerous hooks to modify the functionality of nLingual, this plugin also includes some useful gettext utilities: \u003Ccode>_f\u003C\u002Fcode>, \u003Ccode>_ef\u003C\u002Fcode>, \u003Ccode>_fx\u003C\u002Fcode>, \u003Ccode>_efx\u003C\u002Fcode>, \u003Ccode>_a\u003C\u002Fcode>, and \u003Ccode>_xa\u003C\u002Fcode>, all of which are documented in \u003Ccode>includes\u002Ffunctions-gettext.php\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch4>Backwards Compatibility\u003C\u002Fh4>\n\u003Cp>Although nLingual 2 has be rewritten from scratch, most if not all of the functions and filters are still available via the backwards compatibility feature, which is automatically enabled upon upgrading. However, any code that directly queries the database using the old nLingual language and translation tables will need to be updated to reflect the new structure.\u003C\u002Fp>\n","A simple but flexible multilingual system. Features custom language management, post data synchronization and theme\u002Fplugin development utilities.",20,12035,"2024-11-07T14:39:00.000Z","6.6.5","6.2.0","7.0.0",[20,139,76,22],"language","https:\u002F\u002Fgithub.com\u002Fdougwollison\u002Fnlingual","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fnlingual.2.10.0.1.zip",{"slug":143,"name":144,"version":145,"author":146,"author_profile":147,"description":148,"short_description":149,"active_installs":132,"downloaded":150,"rating":27,"num_ratings":27,"last_updated":151,"tested_up_to":152,"requires_at_least":153,"requires_php":97,"tags":154,"homepage":18,"download_link":156,"security_score":122,"vuln_count":27,"unpatched_count":27,"last_vuln_date":37,"fetched_at":29},"switch-polylang-to-ukrainian-language","Switch Polylang To Ukrainian language","0.2","svoy_man","https:\u002F\u002Fprofiles.wordpress.org\u002Fsvoy_man\u002F","\u003Cp>This plug-in will display a popup with language selection in order for the page to open in Ukrainian for the law ‘Law on translating websites into Ukrainian’.\u003C\u002Fp>\n","Displays a popup with languages. For Ukraine, so that the Ukrainian version opens first by default.",946,"2023-11-30T14:04:00.000Z","6.4.8","5.0",[20,76,155,77,22],"polylang","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fswitch-polylang-to-ukrainian-language.0.2.zip",{"attackSurface":158,"codeSignals":245,"taintFlows":322,"riskAssessment":350,"analyzedAt":362},{"hooks":159,"ajaxHandlers":228,"restRoutes":229,"shortcodes":238,"cronEvents":243,"entryPointCount":244,"unprotectedCount":26},[160,165,169,174,178,181,185,188,191,194,198,200,202,204,208,212,216,220,224],{"type":161,"name":162,"callback":163,"priority":93,"file":164,"line":13},"action","admin_menu","add_config_page","bilingual-linker.php",{"type":161,"name":166,"callback":167,"priority":93,"file":164,"line":168},"admin_init","bl_admin_init",81,{"type":170,"name":171,"callback":172,"file":164,"line":173},"filter","admin_enqueue_scripts","bl_admin_scripts",82,{"type":161,"name":175,"callback":176,"file":164,"line":177},"edit_post","bl_editsave_post_field",83,{"type":161,"name":179,"callback":176,"file":164,"line":180},"save_post",84,{"type":161,"name":182,"callback":183,"priority":184,"file":164,"line":122},"category_edit_form_fields","bl_category_new_fields",10,{"type":161,"name":186,"callback":183,"priority":184,"file":164,"line":187},"category_add_form_fields",86,{"type":161,"name":189,"callback":183,"priority":184,"file":164,"line":190},"post_tag_edit_form_fields",87,{"type":161,"name":192,"callback":183,"priority":184,"file":164,"line":193},"post_tag_add_form_fields",88,{"type":161,"name":195,"callback":196,"priority":184,"file":164,"line":197},"edited_category","bl_save_category_new_fields",89,{"type":161,"name":199,"callback":196,"priority":184,"file":164,"line":112},"edited_post_tag",{"type":161,"name":201,"callback":196,"priority":184,"file":164,"line":53},"created_category",{"type":161,"name":203,"callback":196,"priority":184,"file":164,"line":80},"created_post_tag",{"type":161,"name":205,"callback":206,"file":164,"line":207},"admin_post_save_bl_options","process_bl_options",98,{"type":170,"name":209,"callback":210,"priority":184,"file":164,"line":211},"plugin_action_links","filter_plugin_actions",227,{"type":161,"name":213,"callback":214,"file":164,"line":215},"init","bl_init",781,{"type":170,"name":217,"callback":218,"priority":26,"file":164,"line":219},"walker_nav_menu_start_el","bl_walker_nav_menu_start_el",823,{"type":161,"name":221,"callback":222,"priority":26,"file":164,"line":223},"wp_head","bl_wp_head_alternate_lang",856,{"type":161,"name":225,"callback":226,"file":164,"line":227},"rest_api_init","bl_rest_api_init",895,[],[230],{"namespace":231,"route":232,"methods":233,"callback":235,"permissionCallback":236,"file":164,"line":237},"bilingual-linker\u002Fv1","\u002Flanguagelist",[234],"GET","bl_rest_option_list","__return_true",898,[239],{"tag":240,"callback":241,"file":164,"line":242},"the-bilingual-link","bl_shortcode",816,[],2,{"dangerousFunctions":246,"sqlUsage":247,"outputEscaping":258,"fileOperations":27,"externalRequests":27,"nonceChecks":26,"capabilityChecks":26,"bundledLibraries":321},[],{"prepared":244,"raw":248,"locations":249},3,[250,253,256],{"file":164,"line":251,"context":252},40,"$wpdb->get_var() with variable interpolation",{"file":164,"line":254,"context":255},52,"$wpdb->query() with variable interpolation",{"file":164,"line":257,"context":255},55,{"escaped":259,"rawEcho":260,"locations":261},31,32,[262,265,267,269,270,272,274,275,277,278,280,282,284,285,287,289,291,292,294,296,298,299,301,303,305,307,309,311,313,315,317,319],{"file":164,"line":263,"context":264},146,"raw output",{"file":164,"line":266,"context":264},149,{"file":164,"line":268,"context":264},153,{"file":164,"line":268,"context":264},{"file":164,"line":271,"context":264},156,{"file":164,"line":273,"context":264},157,{"file":164,"line":273,"context":264},{"file":164,"line":276,"context":264},158,{"file":164,"line":276,"context":264},{"file":164,"line":279,"context":264},159,{"file":164,"line":281,"context":264},288,{"file":164,"line":283,"context":264},291,{"file":164,"line":283,"context":264},{"file":164,"line":286,"context":264},336,{"file":164,"line":288,"context":264},341,{"file":164,"line":290,"context":264},349,{"file":164,"line":290,"context":264},{"file":164,"line":293,"context":264},350,{"file":164,"line":295,"context":264},399,{"file":164,"line":297,"context":264},430,{"file":164,"line":297,"context":264},{"file":164,"line":300,"context":264},448,{"file":164,"line":302,"context":264},451,{"file":164,"line":304,"context":264},456,{"file":164,"line":306,"context":264},461,{"file":164,"line":308,"context":264},466,{"file":164,"line":310,"context":264},471,{"file":164,"line":312,"context":264},476,{"file":164,"line":314,"context":264},505,{"file":164,"line":316,"context":264},762,{"file":164,"line":318,"context":264},764,{"file":164,"line":320,"context":264},890,[],[323,339],{"entryPoint":324,"graph":325,"unsanitizedCount":244,"severity":40},"the_bilingual_link (bilingual-linker.php:603)",{"nodes":326,"edges":337},[327,332],{"id":328,"type":329,"label":330,"file":164,"line":331},"n0","source","$_GET (x2)",670,{"id":333,"type":334,"label":335,"file":164,"line":316,"wp_function":336},"n1","sink","echo() [XSS]","echo",[338],{"from":328,"to":333,"sanitized":48},{"entryPoint":340,"graph":341,"unsanitizedCount":27,"severity":349},"\u003Cbilingual-linker> (bilingual-linker.php:0)",{"nodes":342,"edges":346},[343,345],{"id":328,"type":329,"label":344,"file":164,"line":331},"$_GET (x3)",{"id":333,"type":334,"label":335,"file":164,"line":316,"wp_function":336},[347],{"from":328,"to":333,"sanitized":348},true,"low",{"summary":351,"deductions":352},"The 'bilingual-linker' plugin v2.4.2 presents a mixed security posture.  While it demonstrates some good practices such as a lack of file operations and external HTTP requests, and the use of prepared statements for a portion of its SQL queries, significant concerns arise from its attack surface and output sanitization.\n\nThe plugin has a small but notable attack surface, with one REST API route identified as unprotected and lacking permission callbacks. This presents a potential entry point for unauthorized actions.  Furthermore, the static analysis revealed a flow with an unsanitized path, which, although not classified as critical or high severity in the taint analysis, is a red flag for potential injection vulnerabilities.  The moderate rate of properly escaped outputs (49%) is a notable weakness, increasing the risk of Cross-Site Scripting (XSS) vulnerabilities, especially when combined with the unsanitized path.\n\nThe plugin's vulnerability history shows a single medium-severity CVE, specifically an XSS vulnerability, which was last recorded in 2025. While currently unpatched CVEs are zero, the past XSS vulnerability, coupled with the current findings of unsanitized paths and insufficient output escaping, suggests a pattern of potential input validation and sanitization weaknesses.  The overall security is moderately concerning due to the unprotected endpoint and the risk of XSS, despite its small attack surface and absence of critical vulnerabilities in static analysis.",[353,356,358,360],{"reason":354,"points":355},"Unprotected REST API route",7,{"reason":357,"points":81},"Flow with unsanitized path",{"reason":359,"points":14},"Low output escaping rate (49%)",{"reason":361,"points":184},"Past medium severity XSS vulnerability","2026-03-16T21:32:28.355Z",{"wat":364,"direct":373},{"assetPaths":365,"generatorPatterns":368,"scriptPaths":369,"versionParams":370},[366,367],"\u002Fwp-content\u002Fplugins\u002Fbilingual-linker\u002Fcss\u002Fbilingual-linker.css","\u002Fwp-content\u002Fplugins\u002Fbilingual-linker\u002Fjs\u002Fbilingual-linker.js",[],[367],[371,372],"bilingual-linker\u002Fcss\u002Fbilingual-linker.css?ver=","bilingual-linker\u002Fjs\u002Fbilingual-linker.js?ver=",{"cssClasses":374,"htmlComments":377,"htmlAttributes":378,"restEndpoints":382,"jsGlobals":383,"shortcodeOutput":385},[375,376],"menu-item-classes-bilingual-link","langid-1",[],[379,380,381,375],"menu-item-lang-selector","menu-item-title-bilingual-linker","menu-item-url",[],[384],"jQuery",[],{"error":348,"url":387,"statusCode":388,"statusMessage":389,"message":389},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fbilingual-linker\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":14,"versions":391},[392,397,403,411,419,427],{"version":6,"download_url":24,"svn_tag_url":393,"released_at":37,"has_diff":48,"diff_files_changed":394,"diff_lines":37,"trac_diff_url":395,"vulnerabilities":396,"is_current":348},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbilingual-linker\u002Ftags\u002F2.4.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbilingual-linker%2Ftags%2F2.4.1&new_path=%2Fbilingual-linker%2Ftags%2F2.4.2",[],{"version":39,"download_url":398,"svn_tag_url":399,"released_at":37,"has_diff":48,"diff_files_changed":400,"diff_lines":37,"trac_diff_url":401,"vulnerabilities":402,"is_current":48},"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbilingual-linker.2.4.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbilingual-linker\u002Ftags\u002F2.4.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbilingual-linker%2Ftags%2F2.4&new_path=%2Fbilingual-linker%2Ftags%2F2.4.1",[],{"version":404,"download_url":405,"svn_tag_url":406,"released_at":37,"has_diff":48,"diff_files_changed":407,"diff_lines":37,"trac_diff_url":408,"vulnerabilities":409,"is_current":48},"2.4","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbilingual-linker.2.4.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbilingual-linker\u002Ftags\u002F2.4\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbilingual-linker%2Ftags%2F2.3.7&new_path=%2Fbilingual-linker%2Ftags%2F2.4",[410],{"id":33,"url_slug":34,"title":35,"severity":40,"cvss_score":41,"vuln_type":43,"patched_in_version":39},{"version":412,"download_url":413,"svn_tag_url":414,"released_at":37,"has_diff":48,"diff_files_changed":415,"diff_lines":37,"trac_diff_url":416,"vulnerabilities":417,"is_current":48},"2.3.7","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbilingual-linker.2.3.7.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbilingual-linker\u002Ftags\u002F2.3.7\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbilingual-linker%2Ftags%2F2.3.6&new_path=%2Fbilingual-linker%2Ftags%2F2.3.7",[418],{"id":33,"url_slug":34,"title":35,"severity":40,"cvss_score":41,"vuln_type":43,"patched_in_version":39},{"version":420,"download_url":421,"svn_tag_url":422,"released_at":37,"has_diff":48,"diff_files_changed":423,"diff_lines":37,"trac_diff_url":424,"vulnerabilities":425,"is_current":48},"2.3.6","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbilingual-linker.2.3.6.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbilingual-linker\u002Ftags\u002F2.3.6\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fbilingual-linker%2Ftags%2F2.0.1&new_path=%2Fbilingual-linker%2Ftags%2F2.3.6",[426],{"id":33,"url_slug":34,"title":35,"severity":40,"cvss_score":41,"vuln_type":43,"patched_in_version":39},{"version":428,"download_url":429,"svn_tag_url":430,"released_at":37,"has_diff":48,"diff_files_changed":431,"diff_lines":37,"trac_diff_url":37,"vulnerabilities":432,"is_current":48},"2.0.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fbilingual-linker.2.0.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fbilingual-linker\u002Ftags\u002F2.0.1\u002F",[],[433],{"id":33,"url_slug":34,"title":35,"severity":40,"cvss_score":41,"vuln_type":43,"patched_in_version":39}]