[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$ftfH8VmWYMimZAcEYUigyaQuTxmwK_TBf8P5Qzqy4UAQ":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":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":48,"crawl_stats":37,"alternatives":51,"analysis":141,"fingerprints":951},"sublanguage","Sublanguage","2.12","maximeschoeni","https:\u002F\u002Fprofiles.wordpress.org\u002Fmaximeschoeni\u002F","\u003Cp>Sublanguage is a multilanguage plugin for wordpress.\u003C\u002Fp>\n\u003Ch4>Concept\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>no duplicated content (untranslated or untranslatable data inherits main language value)\u003C\u002Fli>\n\u003Cli>no additional database table (translation data is stored in post_meta)\u003C\u002Fli>\n\u003Cli>no markup added into content (unlike q-translate)\u003C\u002Fli>\n\u003Cli>no cookies (language is defined solely by URLs, better for SEO)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>[NEW] support for Gutenberg (beta feature)\u003C\u002Fli>\n\u003Cli>translation UI for posts content, title, permalink, excerpt and meta (for posts, pages and custom posts)\u003C\u002Fli>\n\u003Cli>translation UI for terms name, slug and description\u003C\u002Fli>\n\u003Cli>translation UI for attachments title, caption, description, alt and meta\u003C\u002Fli>\n\u003Cli>translation UI for nav menus\u003C\u002Fli>\n\u003Cli>translate localized text\u003C\u002Fli>\n\u003Cli>translate login, password change, etc.\u003C\u002Fli>\n\u003Cli>translatability: define which content is translatable or not\u003C\u002Fli>\n\u003Cli>URL rewrite: translate posts and terms permalinks and child pages path\u003C\u002Fli>\n\u003Cli>support revisions\u003C\u002Fli>\n\u003Cli>support multisite\u003C\u002Fli>\n\u003Cli>extendable\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Notes\u003C\u002Fh4>\n\u003Cp>In version 2.9, a security vulnerability (“The plugin settings can be executed by lower privilleged (sic) user”) was reported for Sublanguage. In order to ease the fixing, we chose to permanently remove a few under-used features concerned by this exploit in v 2.10. Please write in the forum if you disagree with this choice.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>remove automatic upgrade from version 1.x (version 2.0 is now about 10 years old).\u003C\u002Fli>\n\u003Cli>remove a quick edit button in classic editor that was available width Tinymce Advanced plugin.\u003C\u002Fli>\n\u003Cli>remove the possibility to translate options (Options translated so far will still works as usual in the front-end, you just no longer can edit translations in the back-end).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Documentation\u003C\u002Fh4>\n\u003Cp>Plugin documentation is available on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmaximeschoeni\u002Fsublanguage\" rel=\"nofollow ugc\">github\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Extensions\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fsublanguage-switcher-widget\u002F\" rel=\"ugc\">Sublanguage Switcher Widget\u003C\u002Fa> by \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fgeschke\" rel=\"nofollow ugc\">Ralf Geschke\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Thanks\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fuggur\" rel=\"nofollow ugc\">uggur\u003C\u002Fa> for Turkish translation\u003C\u002Fli>\n\u003C\u002Ful>\n","Sublanguage is a lightweight multilanguage plugin for wordpress.",700,27420,92,31,"2025-12-08T10:11:00.000Z","6.6.5","4.5","",[20,21,22,23],"language","multilanguage","multilingual","translation","http:\u002F\u002Fsublanguageplugin.wordpress.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsublanguage.2.13.zip",100,1,0,"2023-07-04 00:00:00","2026-03-15T15:16:48.613Z",[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":29,"updated_date":44,"references":45,"days_to_patch":47},"CVE-2023-36695","sublanguage-missing-authorization","Sublanguage \u003C= 2.9 - Missing Authorization","The Sublanguage plugin for WordPress is vulnerable to unauthorized access due to a missing capability check on the multiple functions in versions up to, and including, 2.9. This makes it possible for authenticated attackers, with subscriber-level access and above, to perform unauthorized actions.",null,"\u003C=2.9","2.10","medium",5.4,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:U\u002FC:N\u002FI:L\u002FA:L","Missing Authorization","2024-01-22 19:56:02",[46],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F50726c57-8d42-4143-9e75-d30513d8d0e2?source=api-prod",203,{"slug":7,"display_name":7,"profile_url":8,"plugin_count":27,"total_installs":11,"avg_security_score":26,"avg_patch_time_days":47,"trust_score":49,"computed_at":50},79,"2026-04-04T07:11:09.258Z",[52,74,93,105,123],{"slug":53,"name":54,"version":55,"author":56,"author_profile":57,"description":58,"short_description":59,"active_installs":60,"downloaded":61,"rating":62,"num_ratings":26,"last_updated":63,"tested_up_to":64,"requires_at_least":65,"requires_php":66,"tags":67,"homepage":70,"download_link":71,"security_score":72,"vuln_count":27,"unpatched_count":28,"last_vuln_date":73,"fetched_at":30},"wp-multilang","WP Multilang – Translation and Multilingual Plugin","2.4.26","Magazine3","https:\u002F\u002Fprofiles.wordpress.org\u002Fmagazine3\u002F","\u003Cp>WP Multilang is a multilingual plugin for WordPress.\u003C\u002Fp>\n\u003Cp>Translations of post types, taxonomies, meta fields, options, text fields in miltimedia files, menus, titles and text fields in widgets.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F\" rel=\"nofollow ugc\">Home\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">Help & Tech Support\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F#features\" rel=\"nofollow ugc\">Premium Features\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>New Features of the plugin WP Multilang\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Support full site editor for block based themes\u003C\u002Fli>\n\u003Cli>Support block based widgets\u003C\u002Fli>\n\u003Cli>Support different feature image for each language\u003C\u002Fli>\n\u003Cli>Support Smart Custom Fields Plugin\u003C\u002Fli>\n\u003Cli>Auto Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-auto-translate-your-website-contents-using-wp-multilang\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Support URL Slug Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-translate-url-slugs-with-selective-languages\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Support Base Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-translate-taxonomy-bases-such-as-categories-and-tags-into-selective-languages-using-the-base-translation-option\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Export and import content in XLIFF or xml format to translate outside\u003C\u002Fli>\n\u003Cli>Activate Multilingual Support for Post Types\u003C\u002Fli>\n\u003Cli>Support Auto URL Slug Translation ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-translate-url-slugs-with-selective-languages\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Features of the plugin WP Multilang\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>100% free.\u003C\u002Fli>\n\u003Cli>Translation at PHP.\u003C\u002Fli>\n\u003Cli>Compatible with REST.\u003C\u002Fli>\n\u003Cli>Support configuration for translate multidimensional arrays in options, meta fields, post content.\u003C\u002Fli>\n\u003Cli>Support multisite.\u003C\u002Fli>\n\u003Cli>Support WordPress in sub-folder.\u003C\u002Fli>\n\u003Cli>Separate menu items, posts, terms, widgets, comments per language.\u003C\u002Fli>\n\u003Cli>Many filters for dynamic applying translation settings.\u003C\u002Fli>\n\u003Cli>No duplicate posts, terms, menus, widgets.\u003C\u002Fli>\n\u003Cli>No sub-domain for each language version.\u003C\u002Fli>\n\u003Cli>No additional tables in database.\u003C\u002Fli>\n\u003Cli>Possibility set many languages with one localization. For example, for localization in the region.\u003C\u002Fli>\n\u003Cli>Possibility to set custom locale for html(If installed locale is en_US, you can set locale like: en, en-UK, en-AU etc. Without installation another localization)\u003C\u002Fli>\n\u003Cli>Possibility for add new languages for any user with capability \u003Ccode>manage_options\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Exist the role “Translator” for editing posts, terms. It can not publish or delete.\u003C\u002Fli>\n\u003Cli>No limits by languages or by possibilities.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>WP Multilang compatible with plugins\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Elementor ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-build-a-multilingual-site-with-elementor-using-wp-multilang\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Divi Builder ( \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">available in premium version\u003C\u002Fa> ) – \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002Fknowledge-base\u002Fhow-to-build-a-multilingual-site-with-divi-builder-using-wp-multilang\u002F\" rel=\"nofollow ugc\">View Tutorial\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>ACF, ACF Pro\u003C\u002Fli>\n\u003Cli>WooCommerce\u003C\u002Fli>\n\u003Cli>WooCommerce Customizer\u003C\u002Fli>\n\u003Cli>Gutenberg\u003C\u002Fli>\n\u003Cli>Yoast Seo\u003C\u002Fli>\n\u003Cli>SEOPress \u003C\u002Fli>\n\u003Cli>Contact Form 7 (added mail tag [_language] for send user language in mail)\u003C\u002Fli>\n\u003Cli>WPBakery Visual Composer\u003C\u002Fli>\n\u003Cli>Page Builder by SiteOrigin\u003C\u002Fli>\n\u003Cli>NextGEN Gallery\u003C\u002Fli>\n\u003Cli>All in One SEO Pack\u003C\u002Fli>\n\u003Cli>MailChimp for WordPress\u003C\u002Fli>\n\u003Cli>Newsletter\u003C\u002Fli>\n\u003Cli>Maps Builder\u003C\u002Fli>\n\u003Cli>Max Mega Menu\u003C\u002Fli>\n\u003Cli>MasterSlider\u003C\u002Fli>\n\u003Cli>WP-PageNavi\u003C\u002Fli>\n\u003Cli>BuddyPress\u003C\u002Fli>\n\u003Cli>Meta Slider\u003C\u002Fli>\n\u003Cli>TablePress\u003C\u002Fli>\n\u003Cli>Download Monitor (Redefine templates for links in your theme and translate link texts)\u003C\u002Fli>\n\u003Cli>Better Search\u003C\u002Fli>\n\u003Cli>Rank Math SEO (thanks for @pratikmts)\u003C\u002Fli>\n\u003Cli>WPGraphQL (Add lang to the query parameters in URL. Eg: lang=en)\u003C\u002Fli>\n\u003Cli>Smart Custom Fields\u003C\u002Fli>\n\u003Cli>Team – Team Members Showcase Plugin\u003C\u002Fli>\n\u003Cli>Schema & Structured Data for WP & AMP\u003C\u002Fli>\n\u003Cli>Forminator Forms\u003C\u002Fli>\n\u003Cli>Gravity Forms\u003C\u002Fli>\n\u003Cli>Ultimate Member Form\u003C\u002Fli>\n\u003Cli>Oxygen Builder\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Advance Woocommerce Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Send emails in customer’s selected language\u003C\u002Fli>\n\u003Cli>REST API Support\u003C\u002Fli>\n\u003Cli>Import and export products in customer’s selected language\u003C\u002Fli>\n\u003Cli>Translate products (simple products, variable products, grouped products), categories, tags, global attributes\u003C\u002Fli>\n\u003Cli>Cart synchronization across multiple languages \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Manage translation settings via json.\u003C\u002Fp>\n\u003Cp>Add in the root of your theme or plugin file \u003Ccode>wpm-config.json\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Sample configurations can be viewed in config files in folder ‘configs’ in root the plugin.\u003C\u002Fp>\n\u003Cp>Configuration is updated after switching theme, enable or update any plugins.\u003C\u002Fp>\n\u003Cp>The plugin has filters for dynamic application configuration for translate.\u003C\u002Fp>\n\u003Cp>For turn off translation, set \u003Ccode>null\u003C\u002Fcode> into the desired configuration.\u003Cbr \u002F>\nFor example, you must turn off translation for a post type \u003Ccode>post\u003C\u002Fcode>.\u003Cbr \u002F>\nThere are two ways:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>In json.\u003Cbr \u002F>\nCreate in root of a theme or a plugin file \u003Ccode>wpm-config.json\u003C\u002Fcode> with:\u003Cbr \u002F>\n    {\u003Cbr \u002F>\n           “post_types”: {\u003Cbr \u002F>\n             “post”: null\u003Cbr \u002F>\n           }\u003Cbr \u002F>\n         }\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Through the filter.\u003Cbr \u002F>\nAdd in functions.php\u003Cbr \u002F>\n    add_filter( ‘wpm_post_post_config’, ‘__return_null’ );\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>To enable translation pass an empty array in php \u003Ccode>array()\u003C\u002Fcode> or empty object in json \u003Ccode>{}\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Supports translation multidimensional array of options, meta fields and post_content.\u003Cbr \u002F>\nSupports the removal of established localizations.\u003Cbr \u002F>\nSupports translation via GET parameter. Add in the GET parameter \u003Ccode>lang\u003C\u002Fcode> code desired language.\u003Cbr \u002F>\nSupports clean database of translations when removing the plugin. Translations are only removed from the built-in tables.\u003Cbr \u002F>\nSupports import term translations from qTranslate(by Soft79).\u003Cbr \u002F>\nSupports automatically redirect to the user’s browser language, if he visits for the first time.\u003C\u002Fp>\n\u003Cp>Ideal for developers.\u003C\u002Fp>\n\u003Cp>For display language switcher in any place add the code to your template \u003Ccode>if ( function_exists ( 'wpm_language_switcher' ) ) wpm_language_switcher ();\u003C\u002Fcode>\u003Cbr \u002F>\nFunction accepts two parameters:\u003Cbr \u002F>\n$type – ‘list’, ‘dropdown’, ‘select’. Default – ‘list’.\u003Cbr \u002F>\n$show – ‘flag’, ‘name’, ‘both’. Default – ‘both’.\u003C\u002Fp>\n\u003Cp>Or using the shortcode \u003Ccode>wpm_lang_switcher\u003C\u002Fcode>. It accept two not necessary parameters ‘type’ and ‘show’.\u003C\u002Fp>\n\u003Cp>Available features for translation:\u003Cbr \u002F>\n    wpm_translate_url( $url, $language = ” ); – translate url\u003Cbr \u002F>\n    wpm_translate_string( $string, $language = ” ); – translate multilingual string\u003Cbr \u002F>\n    wpm_translate_value( $value, $language = ” ); – translate multidimensional array with multilingual strings\u003C\u002Fp>\n\u003Cp>Update translation occurs at PHP. Therefore plugin has high adaptability, compatibility and easily integrates with other plugins. This is what distinguishes it among similar.\u003C\u002Fp>\n\u003Cp>Available translation html tags by JS for strings what do not have WP filters before output.\u003C\u002Fp>\n\u003Cp>Add your tags in config:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\"admin_html_tags\": {\n    \"admin_screen_id\": {\n      \"attribute\": [\n        \"selector\"\n      ]\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Where:\u003Cbr \u002F>\n    admin_screen_id – admin screen id.\u003Cbr \u002F>\n    attribute – attribute what need to translate. Available ‘text’ – for translate text node, ‘value’ – for translate form values. Or other tag attribute, like ‘title’, ‘alt’.\u003Cbr \u002F>\n    selector – css selector for search needed tag. Each selector is a new array item.\u003C\u002Fp>\n\u003Cp>If You need to add translation for multidimentional array for repeated elements You can use custom tag ‘wpm_each’ for set config to each element in array.\u003Cbr \u002F>\nExample, add config for each item ‘title’ in custom post field array:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\"post_fields\": {\n    \"custom_field\": {\n      \"wpm_each\": {\n        \"title\": {}\n      }\n    }\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For set translation uses the syntax:\u003Cbr \u002F>\n    [:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:]\u003C\u002Fp>\n\u003Cp>Added shortcode for translate text in any place:\u003Cbr \u002F>\n    [wpm_translate][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]\u003C\u002Fp>\n\u003Cp>If You translate text in established language, add lang parameter:\u003Cbr \u002F>\n    [wpm_translate lang=”de”][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]\u003C\u002Fp>\n\u003Cp>Support translating from syntax qTranslate, qTranslate-X, WPGlobus etc.\u003C\u002Fp>\n\u003Cp>Compatible with REST-API.\u003Cbr \u002F>\nSupport transfer the required translation through option \u003Ccode>lang\u003C\u002Fcode> in the GET request to REST.\u003Cbr \u002F>\nHas the ability to keep recording the target language through the transmission parameter \u003Ccode>lang\u003C\u002Fcode> in the request.\u003C\u002Fp>\n\u003Ch3>Migration from qTranslate-X\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Before installing\u002Funinstalling, make database backup.\u003C\u002Fli>\n\u003Cli>Deactivate qTranslate-X.\u003C\u002Fli>\n\u003Cli>Install and activate WP Multilang.\u003C\u002Fli>\n\u003Cli>Create in root of your theme file ‘wpm-config.json’.\u003C\u002Fli>\n\u003Cli>Add all needed post types, taxonomies, options, fields to ‘wpm-config.json’. Setting from qTranslate-X not importing.\u003C\u002Fli>\n\u003Cli>Import term names from qTranslate.\u003C\u002Fli>\n\u003Cli>Check that everything is okay.\u003C\u002Fli>\n\u003Cli>If everything is okay, remove qTranslate-X. If not, make screenshots of errors, restore database from backup and add support issue with your screenshots and description of errors.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>Warning\u003C\u002Fh3>\n\u003Cp>Not compatible with:\u003Cbr \u002F>\n– WP Maintenance\u003C\u002Fp>\n\u003Ch3>Known issues\u003C\u002Fh3>\n\u003Cp>Function ‘get_page_by_title’ not working, because in title field are stored titles for all languages. Use function ‘wpm_get_page_by_title( $title )’ as solution.\u003C\u002Fp>\n\u003Cp>NOTE: Because plugins have different ways of storing data, WP Multilang is not compatible with every single plugin out-of-the-box (mostly page builders). This may result in texts not being translatable or translations not being saved. Most of these issues can be resolved using the integration options (wpm-config.json or filters) of WP Multilang.\u003C\u002Fp>\n\u003Cp>Please try WP Multilang in a test-environment before activating it on an existing production site and always make a backup before activating!\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F\" rel=\"nofollow ugc\">Home\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">Help & Tech Support\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fdocs\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002F\" rel=\"nofollow ugc\">Premium\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cp>We try our best to provide support on WordPress.org forums. However, We have a special \u003Ca href=\"https:\u002F\u002Fwp-multilang.com\u002Fcontact-us\u002F\" rel=\"nofollow ugc\">community support\u003C\u002Fa> where you can ask us questions and get help about your WP Multilang related questions. Delivering a good user experience means a lot to us and so we try our best to reply each and every question that gets asked.\u003C\u002Fp>\n\u003Ch3>Bug Reports\u003C\u002Fh3>\n\u003Cp>Bug reports for WP Multilang are \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fahmedkaludi\u002Fwp-multilang\u002Fissues\" rel=\"nofollow ugc\">welcomed on GitHub\u003C\u002Fa>. Please note GitHub is not a support forum, and issues that aren’t properly qualified as bugs will be closed.\u003C\u002Fp>\n","Multilingual plugin for WordPress. Go Multilingual in minutes with full WordPress support. Translate your site easily with this localization plugin.",10000,249839,86,"2026-02-18T13:52:00.000Z","6.9.4","4.7","5.6.20",[68,21,22,69,23],"localization","translate","https:\u002F\u002Fgithub.com\u002Fahmedkaludi\u002Fwp-multilang","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-multilang.2.4.26.zip",98,"2025-06-05 00:00:00",{"slug":75,"name":76,"version":77,"author":78,"author_profile":79,"description":80,"short_description":81,"active_installs":82,"downloaded":83,"rating":84,"num_ratings":85,"last_updated":86,"tested_up_to":87,"requires_at_least":65,"requires_php":88,"tags":89,"homepage":18,"download_link":92,"security_score":26,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"falang-for-elementor-lite","Falang for Elementor Lite","1.33","sbouey","https:\u002F\u002Fprofiles.wordpress.org\u002Fsbouey\u002F","\u003Cp>The Falang for Elementor plugin makes your Elementor page translation simpler. You need to have your site working with the Falang system for translation.\u003C\u002Fp>\n\u003Cp>You don’t have to duplicate the page anymore to translate it, just translate only what is necessary. It’s easier to maintain and all parameters are the same for all languages.\u003C\u002Fp>\n\u003Ch4>Concept\u003C\u002Fh4>\n\u003Cp>Translate static text ,url, textarea, from the main language to other languages.\u003C\u002Fp>\n\u003Ch4>Lite and Pro Version\u003C\u002Fh4>\n\u003Cp>The lite version has only a few wdigets (Accordion,Button,Heading,Text Editor )\u003C\u002Fp>\n\u003Cp>The pro version support Google\u002FAzure\u002FLingvanex translation for the text editor.\u003C\u002Fp>\n\u003Cp>The Pro version add the other element from\u003Cbr \u002F>\n* Elementor Free\u003Cbr \u002F>\n* Elementor Pro\u003Cbr \u002F>\n* Cozy Addon Elementor\u003Cbr \u002F>\n* Element Addon Elementor\u003Cbr \u002F>\n* Essential Addons for Elementor\u003Cbr \u002F>\n* UICore Elements\u003Cbr \u002F>\n* Element Pack Lite & Pro (BdThemes)\u003Cbr \u002F>\n* Happy\u003Cbr \u002F>\n* Nexgen\u003Cbr \u002F>\n* OceanWP\u003Cbr \u002F>\n* Premium Addon’s\u003Cbr \u002F>\n* Xtemos\u003Cbr \u002F>\n* Ultimate Addon’s\u003Cbr \u002F>\n* Happy Addons\u003Cbr \u002F>\n* Sina Extension\u003Cbr \u002F>\n* Angel Theme\u003Cbr \u002F>\n* la-studio support\u003Cbr \u002F>\n* bdthemes-element-pack-lite support\u003Cbr \u002F>\n* Themesflats addons\u003Cbr \u002F>\n* Case theme\u003Cbr \u002F>\n* wpforms\u003Cbr \u002F>\nOther Widget\u002FTheme can be done on demand.\u003C\u002Fp>\n\u003Ch4>Quick start video\u003C\u002Fh4>\n\u003Cp>Integrated in Elementor widget\u003Cbr \u002F>\n\u003Cdiv class=\"embed-vimeo\" style=\"text-align: center;\">\u003Ciframe loading=\"lazy\" src=\"https:\u002F\u002Fplayer.vimeo.com\u002Fvideo\u002F836109390\" width=\"750\" height=\"422\" frameborder=\"0\" webkitallowfullscreen mozallowfullscreen allowfullscreen>\u003C\u002Fiframe>\u003C\u002Fdiv>\u003C\u002Fp>\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\u003Ch3>Known issues\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Post and Page need to be set to -all languages-\u003C\u002Fli>\n\u003Cli>Elementor preview needs to have “Show slug for main language” disabled in Falang Settings\u003C\u002Fli>\n\u003Cli>La-Studio footer ajax translation not supported\u003C\u002Fli>\n\u003C\u002Ful>\n","The Falang for Elementor plugin makes your Elementor page translation simpler.",400,15517,96,21,"2025-12-03T09:48:00.000Z","6.8.5","5.6",[90,91,21,22,23],"elementor","falang","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffalang-for-elementor-lite.1.33.zip",{"slug":94,"name":95,"version":96,"author":78,"author_profile":79,"description":97,"short_description":98,"active_installs":26,"downloaded":99,"rating":26,"num_ratings":100,"last_updated":101,"tested_up_to":87,"requires_at_least":65,"requires_php":88,"tags":102,"homepage":18,"download_link":104,"security_score":26,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"falang-for-divi-lite","Falang for Divi Lite","1.23","\u003Cp>The Falang for Divi plugin makes your Divi page translation simpler. You need to have your site working with the Falang system for translation.\u003C\u002Fp>\n\u003Cp>You don’t have to duplicate the page anymore to translate it, just translate only what is necessary. It’s easier to maintain and all parameters are the same for all languages.\u003C\u002Fp>\n\u003Ch4>Concept\u003C\u002Fh4>\n\u003Cp>Translate static text ,url, textarea, from the main language to other languages.\u003C\u002Fp>\n\u003Ch4>Free vs Pro\u003C\u002Fh4>\n\u003Cp>The lite version has only a few modules (Accordion, Bar Counter, Button, Team Member, Text Editor)\u003Cbr \u002F>\nThe Pro version add the other modules from\u003Cbr \u002F>\n* Divi (all modules)\u003Cbr \u002F>\n* Divi Supreme Pro\u003Cbr \u002F>\n* Divi Flash\u003Cbr \u002F>\n* Divi Plus\u003Cbr \u002F>\n* Modules Pro\u003C\u002Fp>\n\u003Cp>Other Module done by Third party Divi module can be done on demand.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.faboba.com\u002Fen\u002Fwordpress\u002Ffalang-divi\u002Fpresentation.html\" rel=\"nofollow ugc\">presentation\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Quick start video\u003C\u002Fh4>\n\u003Cp>Falang and Falang for Divi Lite\u003Cbr \u002F>\n\u003Cem>(French version, english version soon )\u003C\u002Fem>\u003C\u002Fp>\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\u002F84_0j-Jpoyk?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\u003Ch3>Known issues\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Post and Page need to be set to “all languages”\u003C\u002Fli>\n\u003C\u002Ful>\n","The Falang for Divi plugin makes your Divi page translation simpler.",6461,11,"2025-09-12T14:06:00.000Z",[103,91,21,22,23],"divi","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ffalang-for-divi-lite.1.23.zip",{"slug":106,"name":107,"version":108,"author":109,"author_profile":110,"description":111,"short_description":112,"active_installs":113,"downloaded":114,"rating":28,"num_ratings":28,"last_updated":18,"tested_up_to":115,"requires_at_least":116,"requires_php":117,"tags":118,"homepage":120,"download_link":121,"security_score":26,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":122},"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",[20,21,22,23,119],"widget","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":124,"name":125,"version":126,"author":127,"author_profile":128,"description":129,"short_description":130,"active_installs":131,"downloaded":132,"rating":26,"num_ratings":27,"last_updated":133,"tested_up_to":115,"requires_at_least":134,"requires_php":135,"tags":136,"homepage":138,"download_link":139,"security_score":140,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"monk","Monk","0.7.0","Breno Alves","https:\u002F\u002Fprofiles.wordpress.org\u002Fbreno-alves\u002F","\u003Cp>Monk is a free translation plugin that allows you to create translations for your posts, pages, medias, tags, categories or any content you need.\u003C\u002Fp>\n\u003Cp>All this bundled in a sweet WordPress-like interface, so that you can translate all your content easily.\u003C\u002Fp>\n\u003Cp>Full language support, fully-responsive and tested in various themes from WordPress.org, Monk brings all the reliability you need from a translation plugin.\u003C\u002Fp>\n\u003Ch3>Translate Everything\u003C\u002Fh3>\n\u003Cp>Serve your content in various languages and your website will be found by users and search engines in any country.\u003C\u002Fp>\n\u003Cp>Translate any posts, pages, categories and much more. All this in a simple and intuitive way.\u003C\u002Fp>\n\u003Cp>Do you want to be heard everywhere? Monk helps your content reach the world.\u003C\u002Fp>\n\u003Ch3>Easy to use\u003C\u002Fh3>\n\u003Cp>Facilitate navigation through translations to your users using a fully-customizable language switcher.\u003C\u002Fp>\n\u003Ch3>Open Source\u003C\u002Fh3>\n\u003Cp>Are you a developer and want to help improve Monk? Join us on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fbrenoalvs\u002Fmonk\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>Special thanks to Lipis by \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flipis\u002Fflag-icon-css\" rel=\"nofollow ugc\">SVG country flags\u003C\u002Fa>.\u003C\u002Fp>\n","Monk is a lightweight translation plugin to make your content reach the world.",10,1788,"2018-01-22T11:40:00.000Z","4.6","5.4",[137,20,21,22,23],"international","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fmonk","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmonk.0.7.0.zip",85,{"attackSurface":142,"codeSignals":660,"taintFlows":901,"riskAssessment":941,"analyzedAt":950},{"hooks":143,"ajaxHandlers":656,"restRoutes":657,"shortcodes":658,"cronEvents":659,"entryPointCount":28,"unprotectedCount":28},[144,149,154,158,161,164,169,173,176,180,184,188,192,196,198,203,205,209,213,217,220,224,228,232,235,238,241,245,248,252,256,260,265,269,273,276,279,282,286,290,294,297,300,303,307,310,314,317,320,323,327,331,333,336,338,341,345,349,353,357,360,363,366,370,374,376,380,383,385,387,389,392,396,400,403,407,410,414,417,421,425,427,432,434,437,438,441,444,448,452,455,456,459,463,466,470,474,477,479,483,486,488,491,494,497,501,505,509,513,517,519,522,524,526,530,534,535,538,540,544,547,548,552,555,558,559,561,565,569,572,576,578,581,583,585,587,590,592,594,596,599,601,603,606,609,612,614,618,622,624,626,628,632,636,640,643,646,650,652,654],{"type":145,"name":146,"callback":146,"file":147,"line":148},"action","admin_menu","class-admin-ui.php",37,{"type":145,"name":150,"callback":151,"priority":152,"file":147,"line":153},"init","save_post_option",99,40,{"type":145,"name":150,"callback":155,"priority":156,"file":147,"line":157},"register_extra_post",20,43,{"type":145,"name":150,"callback":159,"priority":156,"file":147,"line":160},"init_languages",46,{"type":145,"name":150,"callback":162,"file":147,"line":163},"init_gutenberg",49,{"type":165,"name":166,"callback":167,"file":147,"line":168},"filter","redirect_post_location","language_redirect",52,{"type":145,"name":170,"callback":171,"file":147,"line":172},"load-post.php","admin_post_page",55,{"type":145,"name":174,"callback":171,"file":147,"line":175},"load-post-new.php",56,{"type":145,"name":177,"callback":178,"file":147,"line":179},"load-edit.php","admin_edit_page",59,{"type":145,"name":181,"callback":182,"priority":131,"file":147,"line":183},"edit_term","save_term_translation",62,{"type":145,"name":185,"callback":186,"file":147,"line":187},"load-edit-tags.php","admin_edit_tags",65,{"type":145,"name":189,"callback":190,"file":147,"line":191},"admin_init","add_language_meta_box",68,{"type":145,"name":193,"callback":194,"file":147,"line":195},"admin_enqueue_scripts","ajax_enqueue_scripts",75,{"type":145,"name":146,"callback":146,"file":147,"line":197},78,{"type":145,"name":199,"callback":200,"priority":201,"file":147,"line":202},"wp_loaded","flush_rewrite_rules",12,91,{"type":145,"name":204,"callback":204,"file":147,"line":13},"generate_rewrite_rules",{"type":145,"name":206,"callback":207,"priority":131,"file":147,"line":208},"save_post_page","save_page",93,{"type":145,"name":210,"callback":211,"priority":131,"file":147,"line":212},"post_updated","update_page",94,{"type":165,"name":214,"callback":215,"file":147,"line":216},"sublanguage_default-nav_menu_item","nav_menu_item_default_options",97,{"type":165,"name":218,"callback":219,"priority":131,"file":147,"line":72},"sublanguage_post_type_metakeys","nav_menu_item_metakeys",{"type":165,"name":221,"callback":222,"priority":131,"file":147,"line":223},"wp_insert_post_data","set_default_slug_and_name",799,{"type":165,"name":225,"callback":226,"file":147,"line":227},"parse_query","sort_languages_table",805,{"type":165,"name":229,"callback":230,"file":147,"line":231},"default_hidden_meta_boxes","hide_language_settings",808,{"type":145,"name":174,"callback":233,"file":147,"line":234},"new_language_post",811,{"type":145,"name":170,"callback":236,"file":147,"line":237},"edit_language_post",814,{"type":165,"name":239,"callback":239,"file":147,"line":240},"post_updated_messages",816,{"type":145,"name":242,"callback":243,"file":147,"line":244},"edit_form_top","edit_form",1175,{"type":145,"name":242,"callback":246,"file":147,"line":247},"print_post_language_tabs",1178,{"type":165,"name":249,"callback":250,"priority":131,"file":147,"line":251},"enter_title_here","set_post_title_placeholder",1181,{"type":165,"name":253,"callback":254,"priority":131,"file":147,"line":255},"home_url","translate_home_url",1184,{"type":145,"name":257,"callback":258,"file":147,"line":259},"restrict_manage_posts","print_table_filtering",1253,{"type":165,"name":261,"callback":262,"priority":263,"file":147,"line":264},"the_posts","fix_nav_menu_item_parent",15,1525,{"type":165,"name":261,"callback":266,"priority":267,"file":147,"line":268},"nav_menu_replace_language_keyword",14,1526,{"type":165,"name":270,"callback":271,"priority":131,"file":147,"line":272},"the_title","translate_nav_menu_item_title",1527,{"type":165,"name":249,"callback":274,"priority":100,"file":147,"line":275},"nav_menu_item_title_placeholder",1528,{"type":145,"name":189,"callback":277,"file":147,"line":278},"register_nav_menu_item_metabox",1530,{"type":145,"name":189,"callback":280,"file":147,"line":281},"register_extra_post_metabox",1546,{"type":145,"name":283,"callback":284,"file":147,"line":285},"block_editor_meta_box_hidden_fields","gutenberg_hidden_fields",1973,{"type":145,"name":287,"callback":288,"file":289,"line":156},"plugins_loaded","load","class-admin.php",{"type":165,"name":291,"callback":292,"priority":131,"file":289,"line":293},"get_post_metadata","translate_meta_data",36,{"type":165,"name":295,"callback":296,"file":289,"line":148},"sublanguage_postmeta_override","__return_true",{"type":165,"name":261,"callback":298,"priority":156,"file":289,"line":299},"translate_the_posts",39,{"type":165,"name":301,"callback":302,"file":289,"line":153},"the_post","translate_post",{"type":165,"name":304,"callback":305,"priority":131,"file":289,"line":306},"page_link","translate_page_link",42,{"type":165,"name":308,"callback":309,"priority":131,"file":289,"line":157},"post_type_link","translate_custom_post_link",{"type":165,"name":311,"callback":312,"priority":131,"file":289,"line":313},"attachment_link","translate_attachment_link",44,{"type":165,"name":315,"callback":316,"file":289,"line":160},"single_term_title","filter_single_term_title",{"type":165,"name":318,"callback":316,"file":289,"line":319},"single_cat_title",47,{"type":165,"name":321,"callback":316,"file":289,"line":322},"single_tag_title",48,{"type":165,"name":324,"callback":325,"priority":131,"file":289,"line":326},"get_edit_post_link","translate_edit_post_link",50,{"type":165,"name":328,"callback":329,"priority":131,"file":289,"line":330},"wp_insert_post_empty_content","empty_content",53,{"type":165,"name":221,"callback":332,"priority":131,"file":289,"line":175},"insert_post",{"type":145,"name":334,"callback":335,"priority":131,"file":289,"line":179},"save_post","save_translation_post_data",{"type":145,"name":334,"callback":337,"priority":131,"file":289,"line":183},"save_translations_title_cache",{"type":145,"name":339,"callback":340,"file":289,"line":187},"before_delete_post","delete_language",{"type":165,"name":342,"callback":343,"priority":131,"file":289,"line":344},"preview_post_link","translate_preview_post_link",67,{"type":165,"name":346,"callback":347,"priority":131,"file":289,"line":348},"get_sample_permalink","translate_sample_permalink",70,{"type":165,"name":350,"callback":351,"priority":131,"file":289,"line":352},"update_post_metadata","update_translated_postmeta",73,{"type":165,"name":354,"callback":355,"priority":131,"file":289,"line":356},"add_post_metadata","add_translated_postmeta",74,{"type":165,"name":358,"callback":359,"priority":131,"file":289,"line":195},"delete_post_metadata","delete_translated_meta_data",{"type":165,"name":361,"callback":361,"priority":131,"file":289,"line":362},"terms_clauses",77,{"type":165,"name":364,"callback":365,"priority":131,"file":289,"line":197},"pre_insert_term","cancel_term",{"type":165,"name":367,"callback":368,"priority":131,"file":289,"line":369},"list_pages","translate_list_pages",81,{"type":165,"name":371,"callback":372,"file":289,"line":373},"themes_update_check_locales","update_all_languages",84,{"type":165,"name":375,"callback":372,"file":289,"line":140},"plugins_update_check_locales",{"type":145,"name":210,"callback":377,"priority":378,"file":289,"line":379},"update_language_slug",9,88,{"type":165,"name":381,"callback":382,"file":289,"line":202},"sublanguage_default-post","set_post_type_translatable",{"type":165,"name":384,"callback":382,"file":289,"line":13},"sublanguage_default-page",{"type":165,"name":386,"callback":382,"file":289,"line":208},"sublanguage_taxonomy_default-category",{"type":145,"name":193,"callback":388,"file":289,"line":72},"admin_enqueue_media_scripts",{"type":165,"name":390,"callback":391,"file":289,"line":26},"ajax_query_attachments_args","ajax_query_attachments",{"type":165,"name":393,"callback":394,"priority":131,"file":289,"line":395},"wp_prepare_attachment_for_js","prepare_attachment_for_js",101,{"type":165,"name":397,"callback":398,"priority":131,"file":289,"line":399},"wp_insert_attachment_data","insert_attachment",102,{"type":145,"name":401,"callback":401,"file":289,"line":402},"edit_attachment",103,{"type":165,"name":404,"callback":405,"file":289,"line":406},"sublanguage_default-attachment","set_attachment_altfield_translatable",106,{"type":165,"name":218,"callback":408,"priority":131,"file":289,"line":409},"attachment_post_type_metakeys",109,{"type":165,"name":411,"callback":412,"priority":131,"file":289,"line":413},"image_add_caption_text","add_caption",112,{"type":165,"name":415,"callback":415,"priority":131,"file":289,"line":416},"get_image_tag",115,{"type":145,"name":418,"callback":419,"file":289,"line":420},"sublanguage_import_post","import_post",121,{"type":145,"name":422,"callback":423,"priority":131,"file":289,"line":424},"sublanguage_import_term","import_term",124,{"type":145,"name":150,"callback":150,"file":289,"line":426},127,{"type":165,"name":428,"callback":429,"priority":131,"file":430,"line":431},"wp_update_term_data","update_term_data","class-ajax.php",26,{"type":165,"name":253,"callback":254,"priority":131,"file":430,"line":433},29,{"type":145,"name":150,"callback":435,"file":436,"line":197},"register_languages","class-current.php",{"type":165,"name":225,"callback":225,"file":436,"line":49},{"type":165,"name":439,"callback":440,"priority":131,"file":436,"line":113},"get_object_terms","filter_get_object_terms",{"type":165,"name":442,"callback":443,"priority":131,"file":436,"line":369},"get_term","translate_get_term",{"type":165,"name":445,"callback":446,"priority":131,"file":436,"line":447},"get_terms","translate_get_terms",82,{"type":165,"name":449,"callback":450,"priority":131,"file":436,"line":451},"get_the_terms","translate_post_terms",83,{"type":165,"name":453,"callback":454,"priority":131,"file":436,"line":373},"list_cats","translate_term_name",{"type":165,"name":261,"callback":298,"priority":131,"file":436,"line":140},{"type":165,"name":457,"callback":458,"priority":131,"file":436,"line":62},"get_pages","translate_the_pages",{"type":165,"name":460,"callback":461,"priority":131,"file":436,"line":462},"sublanguage_translate_post_field","translate_post_field_custom",87,{"type":165,"name":464,"callback":465,"priority":131,"file":436,"line":379},"sublanguage_translate_term_field","translate_term_field_custom",{"type":165,"name":467,"callback":468,"priority":131,"file":436,"line":469},"sublanguage_untranslated_meta","untranslated_meta",89,{"type":165,"name":471,"callback":472,"file":436,"line":473},"sublanguage_query_add_language","query_add_language",90,{"type":145,"name":475,"callback":476,"file":436,"line":202},"widgets_init","register_widget",{"type":145,"name":150,"callback":478,"file":436,"line":212},"register_translation_meta",{"type":145,"name":480,"callback":481,"file":436,"line":482},"registered_post_type","rest_register_post_type",95,{"type":165,"name":484,"callback":485,"priority":131,"file":436,"line":84},"rest_prepare_revision","rest_prepare_post",{"type":145,"name":487,"callback":487,"priority":131,"file":436,"line":152},"save_post_revision",{"type":145,"name":489,"callback":490,"priority":131,"file":436,"line":26},"wp_restore_post_revision","restore_revision",{"type":165,"name":492,"callback":493,"priority":131,"file":436,"line":395},"_wp_post_revision_fields","revision_fields",{"type":165,"name":495,"callback":496,"priority":131,"file":436,"line":399},"wp_save_post_revision_post_has_changed","revision_post_has_changed",{"type":165,"name":498,"callback":499,"priority":131,"file":436,"line":500},"posts_join_request","meta_search_join",643,{"type":165,"name":502,"callback":503,"priority":131,"file":436,"line":504},"posts_search","meta_search",644,{"type":165,"name":506,"callback":507,"priority":131,"file":436,"line":508},"posts_distinct_request","meta_search_distinct",645,{"type":165,"name":510,"callback":511,"file":436,"line":512},"get_meta_sql","append_search_meta",678,{"type":165,"name":514,"callback":514,"priority":131,"file":515,"line":516},"register_post_type_args","class-rewrite.php",22,{"type":145,"name":480,"callback":480,"priority":131,"file":515,"line":518},23,{"type":165,"name":520,"callback":520,"priority":131,"file":515,"line":521},"register_taxonomy_args",25,{"type":145,"name":523,"callback":523,"priority":131,"file":515,"line":431},"registered_taxonomy",{"type":165,"name":525,"callback":525,"file":515,"line":433},"page_rewrite_rules",{"type":165,"name":527,"callback":528,"priority":201,"file":515,"line":529},"rewrite_rules_array","append_language_slugs",32,{"type":165,"name":531,"callback":532,"file":533,"line":516},"locale","get_locale","class-site.php",{"type":145,"name":287,"callback":288,"file":533,"line":518},{"type":165,"name":536,"callback":537,"priority":378,"file":533,"line":293},"the_content","translate_post_content",{"type":165,"name":270,"callback":539,"priority":131,"file":533,"line":148},"translate_post_title",{"type":165,"name":541,"callback":542,"priority":378,"file":533,"line":543},"get_the_excerpt","translate_post_excerpt",38,{"type":165,"name":545,"callback":546,"priority":131,"file":533,"line":299},"single_post_title","translate_single_post_title",{"type":165,"name":291,"callback":292,"priority":131,"file":533,"line":153},{"type":165,"name":549,"callback":550,"file":533,"line":551},"wp_setup_nav_menu_item","translate_menu_nav_item",41,{"type":165,"name":553,"callback":554,"priority":131,"file":533,"line":306},"wp_nav_menu_objects","filter_nav_menu_objects",{"type":165,"name":556,"callback":557,"priority":131,"file":533,"line":157},"tag_cloud_sort","translate_tag_cloud",{"type":145,"name":150,"callback":150,"file":533,"line":313},{"type":165,"name":560,"callback":560,"file":533,"line":183},"query_vars",{"type":165,"name":562,"callback":563,"file":533,"line":564},"request","catch_translation",63,{"type":145,"name":566,"callback":567,"priority":100,"file":533,"line":568},"wp","redirect_uncanonical",64,{"type":145,"name":570,"callback":194,"file":533,"line":571},"wp_enqueue_scripts",71,{"type":145,"name":573,"callback":574,"file":533,"line":575},"parse_request","add_links_translation_filters",76,{"type":145,"name":577,"callback":574,"file":533,"line":49},"rest_api_init",{"type":165,"name":579,"callback":580,"file":533,"line":447},"login_url","translate_login_url",{"type":165,"name":582,"callback":580,"file":533,"line":451},"lostpassword_url",{"type":165,"name":584,"callback":580,"file":533,"line":373},"logout_url",{"type":165,"name":586,"callback":580,"file":533,"line":140},"register_url",{"type":145,"name":588,"callback":589,"file":533,"line":62},"login_form","translate_login_form",{"type":145,"name":591,"callback":589,"file":533,"line":462},"lostpassword_form",{"type":145,"name":593,"callback":589,"file":533,"line":379},"resetpass_form",{"type":145,"name":595,"callback":589,"file":533,"line":469},"register_form",{"type":165,"name":597,"callback":598,"file":533,"line":473},"retrieve_password_message","translate_retrieve_password_message",{"type":165,"name":600,"callback":600,"file":533,"line":202},"lostpassword_redirect",{"type":165,"name":602,"callback":602,"file":533,"line":13},"registration_redirect",{"type":145,"name":604,"callback":605,"file":533,"line":482},"wp_head","print_hreflang",{"type":145,"name":607,"callback":608,"file":533,"line":72},"sublanguage_print_language_switch","print_language_switch",{"type":165,"name":610,"callback":611,"priority":131,"file":533,"line":152},"sublanguage_custom_translate","custom_translate",{"type":165,"name":253,"callback":254,"priority":131,"file":533,"line":613},646,{"type":165,"name":615,"callback":616,"priority":131,"file":533,"line":617},"pre_post_link","pre_translate_permalink",647,{"type":165,"name":619,"callback":620,"priority":131,"file":533,"line":621},"post_link","translate_permalink",648,{"type":165,"name":304,"callback":305,"priority":131,"file":533,"line":623},649,{"type":165,"name":308,"callback":309,"priority":131,"file":533,"line":625},650,{"type":165,"name":311,"callback":312,"priority":131,"file":533,"line":627},651,{"type":165,"name":629,"callback":630,"priority":131,"file":533,"line":631},"post_link_category","translate_post_link_category",652,{"type":165,"name":633,"callback":634,"priority":131,"file":533,"line":635},"post_type_archive_link","translate_post_type_archive_link",653,{"type":165,"name":637,"callback":638,"file":533,"line":639},"year_link","translate_month_link",654,{"type":165,"name":641,"callback":638,"file":533,"line":642},"month_link",655,{"type":165,"name":644,"callback":638,"file":533,"line":645},"day_link",656,{"type":165,"name":647,"callback":648,"priority":131,"file":533,"line":649},"term_link","translate_term_link",657,{"type":165,"name":324,"callback":325,"priority":131,"file":533,"line":651},658,{"type":165,"name":253,"callback":254,"priority":131,"file":653,"line":131},"include\\settings-post-option-page.php",{"type":165,"name":253,"callback":254,"priority":131,"file":655,"line":201},"include\\settings-taxonomy-option-page.php",[],[],[],[],{"dangerousFunctions":661,"sqlUsage":662,"outputEscaping":686,"fileOperations":28,"externalRequests":28,"nonceChecks":100,"capabilityChecks":713,"bundledLibraries":900},[],{"prepared":663,"raw":378,"locations":664},34,[665,668,670,673,675,677,679,681,684],{"file":147,"line":666,"context":667},595,"$wpdb->get_results() with variable interpolation",{"file":147,"line":669,"context":667},675,{"file":289,"line":671,"context":672},264,"$wpdb->query() with variable interpolation",{"file":289,"line":674,"context":672},275,{"file":533,"line":676,"context":667},761,{"file":533,"line":678,"context":667},813,{"file":533,"line":680,"context":667},891,{"file":533,"line":682,"context":683},956,"$wpdb->get_row() with variable interpolation",{"file":533,"line":685,"context":683},1014,{"escaped":518,"rawEcho":687,"locations":688},163,[689,692,694,696,698,701,703,706,707,708,710,712,714,717,719,721,722,723,724,725,726,727,728,729,730,732,733,734,735,736,737,738,740,743,744,746,748,750,752,753,754,756,757,758,759,760,761,762,763,764,766,767,768,770,771,772,774,775,776,777,779,780,781,782,783,784,785,787,788,789,790,791,792,793,794,795,796,797,798,799,800,801,802,804,806,808,810,812,814,816,818,819,820,821,822,823,824,825,826,827,828,829,830,831,832,833,834,835,836,838,839,840,841,842,843,844,845,846,847,848,849,850,851,852,853,854,855,856,858,859,860,861,862,863,864,865,866,867,869,871,872,873,874,875,876,877,878,879,880,881,882,883,885,887,888,889,890,892,894,895,896,897,899],{"file":147,"line":690,"context":691},1349,"raw output",{"file":533,"line":693,"context":691},426,{"file":533,"line":695,"context":691},1068,{"file":533,"line":697,"context":691},1420,{"file":699,"line":700,"context":691},"include\\editor-button-script.php",2,{"file":699,"line":702,"context":691},3,{"file":704,"line":705,"context":691},"include\\extra-post-metabox.php",72,{"file":704,"line":575,"context":691},{"file":704,"line":113,"context":691},{"file":709,"line":27,"context":691},"include\\gutenberg-metabox.php",{"file":711,"line":702,"context":691},"include\\language-locale-metabox.php",{"file":711,"line":713,"context":691},4,{"file":715,"line":716,"context":691},"include\\language-settings-metabox.php",6,{"file":715,"line":718,"context":691},7,{"file":720,"line":543,"context":691},"include\\nav-menu-item-metabox.php",{"file":720,"line":543,"context":691},{"file":720,"line":543,"context":691},{"file":720,"line":543,"context":691},{"file":720,"line":153,"context":691},{"file":720,"line":153,"context":691},{"file":720,"line":306,"context":691},{"file":720,"line":306,"context":691},{"file":720,"line":313,"context":691},{"file":720,"line":313,"context":691},{"file":720,"line":731,"context":691},45,{"file":720,"line":731,"context":691},{"file":720,"line":319,"context":691},{"file":720,"line":319,"context":691},{"file":720,"line":163,"context":691},{"file":720,"line":163,"context":691},{"file":720,"line":163,"context":691},{"file":739,"line":716,"context":691},"include\\nav-menu-language-metabox.php",{"file":741,"line":742,"context":691},"include\\posts-form-language-tabs.php",8,{"file":741,"line":378,"context":691},{"file":741,"line":745,"context":691},13,{"file":741,"line":747,"context":691},16,{"file":749,"line":100,"context":691},"include\\posts-table-language-switch.php",{"file":751,"line":27,"context":691},"include\\settings-attachment-option-page.php",{"file":751,"line":702,"context":691},{"file":751,"line":713,"context":691},{"file":751,"line":755,"context":691},5,{"file":751,"line":755,"context":691},{"file":751,"line":378,"context":691},{"file":751,"line":745,"context":691},{"file":751,"line":267,"context":691},{"file":751,"line":263,"context":691},{"file":751,"line":516,"context":691},{"file":751,"line":431,"context":691},{"file":751,"line":663,"context":691},{"file":765,"line":27,"context":691},"include\\settings-page.php",{"file":765,"line":702,"context":691},{"file":765,"line":718,"context":691},{"file":765,"line":769,"context":691},19,{"file":765,"line":769,"context":691},{"file":765,"line":156,"context":691},{"file":765,"line":773,"context":691},24,{"file":765,"line":773,"context":691},{"file":765,"line":521,"context":691},{"file":765,"line":521,"context":691},{"file":765,"line":778,"context":691},27,{"file":765,"line":778,"context":691},{"file":765,"line":148,"context":691},{"file":765,"line":322,"context":691},{"file":765,"line":322,"context":691},{"file":765,"line":163,"context":691},{"file":765,"line":168,"context":691},{"file":765,"line":786,"context":691},61,{"file":765,"line":183,"context":691},{"file":765,"line":183,"context":691},{"file":765,"line":187,"context":691},{"file":765,"line":348,"context":691},{"file":765,"line":348,"context":691},{"file":765,"line":352,"context":691},{"file":765,"line":195,"context":691},{"file":765,"line":195,"context":691},{"file":765,"line":49,"context":691},{"file":765,"line":373,"context":691},{"file":765,"line":373,"context":691},{"file":765,"line":462,"context":691},{"file":765,"line":13,"context":691},{"file":765,"line":84,"context":691},{"file":765,"line":395,"context":691},{"file":765,"line":803,"context":691},105,{"file":765,"line":805,"context":691},110,{"file":765,"line":807,"context":691},114,{"file":765,"line":809,"context":691},119,{"file":765,"line":811,"context":691},123,{"file":765,"line":813,"context":691},128,{"file":765,"line":815,"context":691},130,{"file":765,"line":817,"context":691},135,{"file":653,"line":27,"context":691},{"file":653,"line":702,"context":691},{"file":653,"line":713,"context":691},{"file":653,"line":755,"context":691},{"file":653,"line":755,"context":691},{"file":653,"line":745,"context":691},{"file":653,"line":518,"context":691},{"file":653,"line":518,"context":691},{"file":653,"line":518,"context":691},{"file":653,"line":518,"context":691},{"file":653,"line":778,"context":691},{"file":653,"line":529,"context":691},{"file":653,"line":157,"context":691},{"file":653,"line":157,"context":691},{"file":653,"line":157,"context":691},{"file":653,"line":157,"context":691},{"file":653,"line":319,"context":691},{"file":653,"line":330,"context":691},{"file":653,"line":837,"context":691},57,{"file":653,"line":837,"context":691},{"file":653,"line":568,"context":691},{"file":653,"line":191,"context":691},{"file":653,"line":362,"context":691},{"file":653,"line":451,"context":691},{"file":653,"line":379,"context":691},{"file":655,"line":27,"context":691},{"file":655,"line":702,"context":691},{"file":655,"line":713,"context":691},{"file":655,"line":755,"context":691},{"file":655,"line":755,"context":691},{"file":655,"line":378,"context":691},{"file":655,"line":516,"context":691},{"file":655,"line":773,"context":691},{"file":655,"line":773,"context":691},{"file":655,"line":773,"context":691},{"file":655,"line":521,"context":691},{"file":655,"line":778,"context":691},{"file":655,"line":857,"context":691},28,{"file":655,"line":857,"context":691},{"file":655,"line":857,"context":691},{"file":655,"line":857,"context":691},{"file":655,"line":148,"context":691},{"file":655,"line":153,"context":691},{"file":655,"line":551,"context":691},{"file":655,"line":306,"context":691},{"file":655,"line":322,"context":691},{"file":655,"line":168,"context":691},{"file":655,"line":868,"context":691},60,{"file":870,"line":718,"context":691},"include\\terms-edit-form.php",{"file":870,"line":769,"context":691},{"file":870,"line":156,"context":691},{"file":870,"line":156,"context":691},{"file":870,"line":521,"context":691},{"file":870,"line":521,"context":691},{"file":870,"line":521,"context":691},{"file":870,"line":521,"context":691},{"file":870,"line":431,"context":691},{"file":870,"line":433,"context":691},{"file":870,"line":433,"context":691},{"file":870,"line":433,"context":691},{"file":870,"line":433,"context":691},{"file":870,"line":884,"context":691},30,{"file":870,"line":886,"context":691},33,{"file":870,"line":886,"context":691},{"file":870,"line":886,"context":691},{"file":870,"line":663,"context":691},{"file":891,"line":857,"context":691},"include\\terms-table-language-switch.php",{"file":893,"line":433,"context":691},"widget.php",{"file":893,"line":886,"context":691},{"file":893,"line":299,"context":691},{"file":893,"line":330,"context":691},{"file":893,"line":898,"context":691},54,{"file":893,"line":898,"context":691},[],[902,920,928],{"entryPoint":903,"graph":904,"unsanitizedCount":28,"severity":919},"save_post_option (class-admin-ui.php:389)",{"nodes":905,"edges":916},[906,911],{"id":907,"type":908,"label":909,"file":147,"line":910},"n0","source","$_POST['_wp_http_referer'] (x3)",459,{"id":912,"type":913,"label":914,"file":147,"line":910,"wp_function":915},"n1","sink","wp_redirect() [Open Redirect]","wp_redirect",[917],{"from":907,"to":912,"sanitized":918},true,"low",{"entryPoint":921,"graph":922,"unsanitizedCount":28,"severity":919},"\u003Cclass-admin-ui> (class-admin-ui.php:0)",{"nodes":923,"edges":926},[924,925],{"id":907,"type":908,"label":909,"file":147,"line":910},{"id":912,"type":913,"label":914,"file":147,"line":910,"wp_function":915},[927],{"from":907,"to":912,"sanitized":918},{"entryPoint":929,"graph":930,"unsanitizedCount":700,"severity":919},"\u003Cclass-site> (class-site.php:0)",{"nodes":931,"edges":938},[932,935],{"id":907,"type":908,"label":933,"file":533,"line":934},"$_REQUEST (x2)",157,{"id":912,"type":913,"label":936,"file":533,"line":693,"wp_function":937},"echo() [XSS]","echo",[939],{"from":907,"to":912,"sanitized":940},false,{"summary":942,"deductions":943},"The 'sublanguage' v2.12 plugin presents a mixed security posture.  On the positive side, the static analysis reveals no apparent attack surface through common entry points like AJAX handlers, REST API routes, shortcodes, or cron events, and no dangerous functions are detected. The majority of SQL queries utilize prepared statements, which is a strong security practice. However, a significant concern is the low percentage (12%) of properly escaped output. This indicates a high potential for Cross-Site Scripting (XSS) vulnerabilities, as user-supplied data might be rendered directly in the browser without sufficient sanitization.  While there are no critical or high severity taint flows identified, one flow with unsanitized paths remains a potential risk. The vulnerability history shows one medium severity CVE in the past, which has since been patched. The common vulnerability type being 'Missing Authorization' in the past is a notable pattern, suggesting a historical tendency for authorization issues, though the current version appears to have addressed this or it was not found in the static analysis. Overall, the plugin has improved its security from past issues, but the high number of unescaped outputs is a substantial risk that requires immediate attention.",[944,946,948],{"reason":945,"points":263},"Low percentage of properly escaped output",{"reason":947,"points":742},"Taint flow with unsanitized path",{"reason":949,"points":131},"One medium severity CVE (even if patched)","2026-03-16T19:23:22.395Z",{"wat":952,"direct":970},{"assetPaths":953,"generatorPatterns":961,"scriptPaths":962,"versionParams":963},[954,955,956,957,958,959,960],"\u002Fwp-content\u002Fplugins\u002Fsublanguage\u002Fjs\u002Fsublanguage.js","\u002Fwp-content\u002Fplugins\u002Fsublanguage\u002Fjs\u002Fselect2.min.js","\u002Fwp-content\u002Fplugins\u002Fsublanguage\u002Fjs\u002Ftinymce\u002Fplugins\u002Fcompat3x\u002Ftiny_mce_popup.js","\u002Fwp-content\u002Fplugins\u002Fsublanguage\u002Fjs\u002Ftinymce\u002Fplugins\u002Fcompat3x\u002Feditors.js","\u002Fwp-content\u002Fplugins\u002Fsublanguage\u002Fjs\u002Ftinymce\u002Ftinymce.min.js","\u002Fwp-content\u002Fplugins\u002Fsublanguage\u002Fcss\u002Fsublanguage.css","\u002Fwp-content\u002Fplugins\u002Fsublanguage\u002Fcss\u002Fselect2.css",[5],[954,955,956,957,958],[964,965,966,967,968,969],"sublanguage.css?ver=","sublanguage.js?ver=","select2.min.js?ver=","tiny_mce_popup.js?ver=","editors.js?ver=","tinymce.min.js?ver=",{"cssClasses":971,"htmlComments":981,"htmlAttributes":983,"restEndpoints":986,"jsGlobals":990,"shortcodeOutput":992},[972,973,974,975,976,977,978,979,980],"sl-language-flags","sl-flags","sl-language-flag","sl-hide","sl-selected-language","sl-languages-menu","sl-menu-item","sl-current-language-flag","sl-current-language-name",[982],"\u003C!-- Sublanguage -->",[984,985],"data-sl-language-codes","data-sl-current-language",[987,988,989],"\u002Fwp-json\u002Fsublanguage\u002Fv1\u002Flanguages","\u002Fwp-json\u002Fsublanguage\u002Fv1\u002Flanguage","\u002Fwp-json\u002Fsublanguage\u002Fv1\u002Ftranslate",[991,5],"sublanguage_settings",[993],"[sublanguage]"]