[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fKHadntfj8tkPU16FC4-207omLbe-pxnKmMwLy1V2leM":3},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":29,"last_vuln_date":30,"fetched_at":31,"vulnerabilities":32,"developer":91,"crawl_stats":38,"alternatives":95,"analysis":197,"fingerprints":772},"lingotek-translation","Ray Enterprise Translation","1.7.2","jbhovik","https:\u002F\u002Fprofiles.wordpress.org\u002Fjbhovik\u002F","\u003Cp>Ray Enterprise Translation offers convenient cloud-based localization and translation for WordPress by simplifying the process of creating and maintaining your multilingual website. Features include machine, professional, and community translation solutions that ease the manual burden of launching in new markets while improving language consistency, cutting costs, and enabling you to deliver your brand to consumers abroad in the quickest and most effective way possible.\u003C\u002Fp>\n\u003Cp>Make your WordPress website content truly multilingual. The power to translate is now inside WordPress!\u003C\u002Fp>\n\u003Ch4>Customizable Translation Workflows\u003C\u002Fh4>\n\u003Cp>WordPress administrators use Translation Profiles to categorize content by its relative value. You associate each content type with a Translation Profile, and the plugin carries out the appropriate workflow:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Professional\u003C\u002Fstrong> – The plugin enables you to use your own translation agency or tap into Ray Enterprise’s marketplace of more than 5,000+ in-country translators. Don’t have time to manage your own translation project? Let Ray Enterprise take care of it for you. The plugin fully automates file transfer between WordPress and Ray Enterprise. You’ll have full visibility into the translation process every step of the way. And once the translations are completed, they’ll automatically download and publish to your website according to the preferences you’ve set.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Community\u003C\u002Fstrong> – If you’re looking to save money by avoiding professional translation, you can take the do-it-yourself approach and have your bilingual employees, partners and\u002For users perform translations right within WordPress. The plugin integrates with and provides use of the Ray Enterprise Workbench, a professional-grade text editor used for translating, reviewing, and post-editing multilingual content.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Free Automatic\u003C\u002Fstrong> – Machine translation is an excellent option if you’re on a tight budget, looking for near-instant results, and are okay with less-than-perfect quality. The plugin allows you to automatically translate your site by providing the commercial API for Microsoft Translator. You can upload up to 20,000 processed words in the Ray Enterprise system for free (we calculate processed words by multiplying the source word count by the number of requested translations). Machine translations can be post-edited at any time using the Ray Enterprise Workbench.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Cloud-Based Translation Management System\u003C\u002Fh4>\n\u003Cp>Need access to an enterprise level Translation Management System designed to work directly with WordPress and other content management systems, allowing you complete transparent access with all your translation projects? The cloud-based Ray Enterprise Translation Management Systems helps your business access new markets and customers. Contact sales@lingotek.com for more information and pricing of these features.\u003C\u002Fp>\n\u003Ch4>Benefits\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Cost Savings\u003C\u002Fli>\n\u003Cli>Faster Translation Times\u003C\u002Fli>\n\u003Cli>Higher Quality\u003C\u002Fli>\n\u003Cli>Real-time Monitoring\u003C\u002Fli>\n\u003Cli>Eliminate the Copy\u002FPaste Method of Translating\u003C\u002Fli>\n\u003Cli>Increased Involvement and Loyalty\u003C\u002Fli>\n\u003Cli>In-context Review\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cp>Ray Enterprise works in conjuction with the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpolylang\u002F\" rel=\"ugc\">Polylang\u003C\u002Fa> plugin (the plumbing to make WordPress multilingual ready) allowing you to create a bilingual or multilingual WordPress site. You write posts, pages, and create categories and post tags as usual, and then define the language for each of them.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>You can use as many languages as you want. RTL language scripts are supported. WordPress languages packs are automatically downloaded and updated.\u003C\u002Fli>\n\u003Cli>You can translate posts, pages, media, categories, post tags, menus, widgets…\u003C\u002Fli>\n\u003Cli>Custom post types, custom taxonomies, sticky posts and post formats, RSS feeds and all default WordPress widgets are supported.\u003C\u002Fli>\n\u003Cli>The language is either set by the content or by the language code in the url, or you can use one different subdomain or domain per language.\u003C\u002Fli>\n\u003Cli>Categories, post tags, and some other metas are automatically copied when adding a new post or page translation.\u003C\u002Fli>\n\u003Cli>A customizable language switcher is provided as a widget or in the nav menu.\u003C\u002Fli>\n\u003Cli>The admin interface is of course multilingual too and each user can set the WordPress admin language in its profile.\u003C\u002Fli>\n\u003Cli>We now support localization of pages created with Elementor\u003C\u002Fli>\n\u003Cli>We maintain the privacy of free automatic users by deleting all completed content from our TMS older than one month and active content older than two months. To ensure this does not affect your translated content, please download your translation soon after they are complete, or set your download settings to automatic. Enterprise customers should coordinate with client success about their community’s archive and deletion timeframes.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Credits\u003C\u002Fh4>\n\u003Cp>Wherever third party code has been used, credit has been given in the code’s comments.\u003C\u002Fp>\n\u003Ch4>Do you like Ray Enterprise?\u003C\u002Fh4>\n\u003Cp>Don’t hesitate to \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fview\u002Fplugin-reviews\u002Flingotek-translation\" rel=\"ugc\">give your feedback\u003C\u002Fa>. It will help make the plugin better. Other \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fplugin\u002Flingotek-translation\" rel=\"ugc\">contributions\u003C\u002Fa> (helping other users on the support forum) are welcome!\u003C\u002Fp>\n\u003Ch3>Third-Party Services\u003C\u002Fh3>\n\u003Cp>This plugin relies on the following third-party services:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\n\u003Cp>\u003Cstrong>Lingotek API\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Description\u003C\u002Fstrong>: This plugin uses the Lingotek API to manage translations.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fmyaccount.lingotek.com\" rel=\"nofollow ugc\">https:\u002F\u002Fmyaccount.lingotek.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.lingotek.com\u002Fprivacy-policy\" rel=\"nofollow ugc\">Lingotek Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Lingotek GMC\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Description\u003C\u002Fstrong>: This plugin uses Lingotek GMC for loading scripts and managing locales.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fgmc.lingotek.com\" rel=\"nofollow ugc\">https:\u002F\u002Fgmc.lingotek.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.lingotek.com\u002Fprivacy-policy\" rel=\"nofollow ugc\">Lingotek Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Lingotek Marketplace\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Description\u003C\u002Fstrong>: This plugin uses the Lingotek Marketplace API for transaction translations.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fmarketplace.lingotek.com\" rel=\"nofollow ugc\">https:\u002F\u002Fmarketplace.lingotek.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.lingotek.com\u002Fprivacy-policy\" rel=\"nofollow ugc\">Lingotek Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Lingotek Project\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Description\u003C\u002Fstrong>: This plugin uses the Lingotek project for content translation for WordPress CMS.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Flingotek.com\" rel=\"nofollow ugc\">https:\u002F\u002Flingotek.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.lingotek.com\u002Fprivacy-policy\" rel=\"nofollow ugc\">Lingotek Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Straker Translations Insight\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Description\u003C\u002Fstrong>: This plugin uses Straker Translations Insight for freemium upgrade connectors.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Finsight.strakertranslations.com\u002Flingotek-freemium-upgrade-connectors\" rel=\"nofollow ugc\">https:\u002F\u002Finsight.strakertranslations.com\u002Flingotek-freemium-upgrade-connectors\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.strakertranslations.com\u002Fprivacy-policy\" rel=\"nofollow ugc\">Straker Translations Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Polylang Plugin\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Description\u003C\u002Fstrong>: This plugin integrates with the Polylang plugin for multilingual support.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpolylang\u002F\" rel=\"ugc\">https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpolylang\u002F\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fpolylang.pro\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">Polylang Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Gravatar\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Description\u003C\u002Fstrong>: This plugin uses Gravatar to display user avatars.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Service URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.gravatar.com\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.gravatar.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy Policy\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fautomattic.com\u002Fprivacy\u002F\" rel=\"nofollow ugc\">Gravatar Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GNU General Public License v2.0.\u003Cbr \u002F>\n– \u003Cstrong>License URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\" rel=\"nofollow ugc\">https:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Additional Information\u003C\u002Fh3>\n\u003Cp>\u003Cstrong>bohemiancoding\u003C\u002Fstrong>\u003Cbr \u002F>\n  – \u003Cstrong>Description\u003C\u002Fstrong>: This plugin includes SVG files that contain metadata related to the Sketch design tool:\u003Cbr \u002F>\n  – \u003Cstrong>Sketch Metadata URL\u003C\u002Fstrong>: \u003Ca href=\"http:\u002F\u002Fwww.bohemiancoding.com\" rel=\"nofollow ugc\">http:\u002F\u002Fwww.bohemiancoding.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>W3C\u003C\u002Fstrong>\u003Cbr \u002F>\n   – \u003Cstrong>Description\u003C\u002Fstrong>: This plugin references the W3C for SVG standards.\u003Cbr \u002F>\n   – \u003Cstrong>Service URL\u003C\u002Fstrong>: \u003Ca href=\"http:\u002F\u002Fwww.w3.org\" rel=\"nofollow ugc\">http:\u002F\u002Fwww.w3.org\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>GitHub Repository\u003C\u002Fstrong>\u003Cbr \u002F>\n   – \u003Cstrong>Description\u003C\u002Fstrong>: The source code for this plugin is hosted on GitHub.\u003Cbr \u002F>\n   – \u003Cstrong>Repository URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flingotek\u002Flingotek-translation\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Flingotek\u002Flingotek-translation\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>PHP Manual\u003C\u002Fstrong>\u003Cbr \u002F>\n   – \u003Cstrong>Description\u003C\u002Fstrong>: This plugin references the PHP manual for the \u003Ccode>include\u003C\u002Fcode> function.\u003Cbr \u002F>\n   – \u003Cstrong>Service URL\u003C\u002Fstrong>: \u003Ca href=\"http:\u002F\u002Fphp.net\u002Fmanual\u002Fen\u002Ffunction.include.php\" rel=\"nofollow ugc\">http:\u002F\u002Fphp.net\u002Fmanual\u002Fen\u002Ffunction.include.php\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cstrong>WordPress Profile\u003C\u002Fstrong>\u003Cbr \u002F>\n   – \u003Cstrong>Description\u003C\u002Fstrong>: This plugin references the WordPress profile of a contributor.\u003Cbr \u002F>\n   – \u003Cstrong>Service URL\u003C\u002Fstrong>: \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fchouby\" rel=\"nofollow ugc\">https:\u002F\u002Fprofiles.wordpress.org\u002Fchouby\u003C\u002Fa>\u003C\u002Fp>\n","Convenient cloud-based localization and translation for WordPress.",10000,1333859,52,48,"2026-01-28T19:48:00.000Z","6.9.4","3.8","",[20,21,22,23,24],"automation","bilingual","international","language","lingotek","https:\u002F\u002Flingotek.com\u002Fproject\u002Fcontent-translation-for-wordpress-cms\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flingotek-translation.zip",65,4,1,"2025-09-05 00:00:00","2026-03-15T15:16:48.613Z",[33,47,61,76],{"id":34,"url_slug":35,"title":36,"description":37,"plugin_slug":4,"theme_slug":38,"affected_versions":39,"patched_in_version":38,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":30,"updated_date":44,"references":45,"days_to_patch":38},"CVE-2025-58785","ray-enterprise-translation-missing-authorization","Ray Enterprise Translation \u003C= 1.7.1 - Missing Authorization","The Ray Enterprise Translation plugin for WordPress is vulnerable to unauthorized access due to a missing capability check on a function in all versions up to, and including, 1.7.1. This makes it possible for authenticated attackers, with Subscriber-level access and above, to perform an unauthorized action.",null,"\u003C=1.7.1","medium",6.5,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:L\u002FUI:N\u002FS:U\u002FC:N\u002FI:H\u002FA:N","Missing Authorization","2025-09-09 19:35:53",[46],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Ff7e2246d-704c-40df-ab82-ffdb85e78cd3?source=api-prod",{"id":48,"url_slug":49,"title":50,"description":51,"plugin_slug":4,"theme_slug":38,"affected_versions":39,"patched_in_version":6,"severity":52,"cvss_score":53,"cvss_vector":54,"vuln_type":55,"published_date":56,"updated_date":57,"references":58,"days_to_patch":60},"CVE-2025-60076","ray-enterprise-translation-unauthenticated-local-file-inclusion","Ray Enterprise Translation \u003C= 1.7.1 - Unauthenticated Local File Inclusion","The Ray Enterprise Translation plugin for WordPress is vulnerable to Local File Inclusion in versions up to, and including, 1.7.1. This makes it possible for unauthenticated attackers to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other \"safe\" file types can be uploaded and included.","high",8.1,"CVSS:3.1\u002FAV:N\u002FAC:H\u002FPR:N\u002FUI:N\u002FS:U\u002FC:H\u002FI:H\u002FA:H","Improper Control of Filename for Include\u002FRequire Statement in PHP Program ('PHP Remote File Inclusion')","2025-08-30 00:00:00","2026-01-30 20:46:04",[59],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F1f0cc96c-8439-4e44-9e86-35d78ff53bc9?source=api-prod",154,{"id":62,"url_slug":63,"title":64,"description":65,"plugin_slug":4,"theme_slug":38,"affected_versions":66,"patched_in_version":67,"severity":68,"cvss_score":69,"cvss_vector":70,"vuln_type":55,"published_date":71,"updated_date":72,"references":73,"days_to_patch":75},"CVE-2025-31030","ray-enterprise-translation-unauthenticated-local-file-inclusion-2","Ray Enterprise Translation \u003C= 1.7.0 - Unauthenticated Local File Inclusion","The Ray Enterprise Translation plugin for WordPress is vulnerable to Local File Inclusion in versions up to, and including, 1.7.0. This makes it possible for unauthenticated attackers to include and execute arbitrary files on the server, allowing the execution of any PHP code in those files. This can be used to bypass access controls, obtain sensitive data, or achieve code execution in cases where images and other “safe” file types can be uploaded and included.","\u003C=1.7.0","1.7.1","critical",9.8,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:H\u002FI:H\u002FA:H","2025-04-10 00:00:00","2025-08-05 13:04:45",[74],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fb3f49046-d438-4c1b-803b-dba77dc28e95?source=api-prod",118,{"id":77,"url_slug":78,"title":79,"description":80,"plugin_slug":4,"theme_slug":38,"affected_versions":81,"patched_in_version":82,"severity":40,"cvss_score":83,"cvss_vector":84,"vuln_type":85,"published_date":86,"updated_date":87,"references":88,"days_to_patch":90},"WF-4fbeee29-751a-48c9-a875-393441f62dde-lingotek-translation","lingotek-translation-cross-site-scripting","Lingotek Translation \u003C= 1.1.8 - Cross-Site Scripting","The Lingotek Translation plugin for WordPress is vulnerable to Reflected Cross-Site Scripting via the ‘sm’ parameter in versions up to, and including, 1.1.8 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link.","\u003C=1.1.8","1.1.9",6.1,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:R\u002FS:C\u002FC:L\u002FI:L\u002FA:N","Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","2016-06-20 00:00:00","2024-01-22 19:56:02",[89],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F4fbeee29-751a-48c9-a875-393441f62dde?source=api-prod",2773,{"slug":7,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":11,"avg_security_score":27,"avg_patch_time_days":92,"trust_score":93,"computed_at":94},1015,55,"2026-04-04T16:49:11.660Z",[96,115,137,157,177],{"slug":97,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":104,"downloaded":105,"rating":106,"num_ratings":106,"last_updated":18,"tested_up_to":16,"requires_at_least":107,"requires_php":108,"tags":109,"homepage":112,"download_link":113,"security_score":104,"vuln_count":106,"unpatched_count":106,"last_vuln_date":38,"fetched_at":114},"wpcasa-polylang","WPCasa Polylang","1.2.1","WPSight","https:\u002F\u002Fprofiles.wordpress.org\u002Fwpsight\u002F","\u003Cp>The WPCasa Polylang add-on is a bridge for the Polylang plugin to make sure all the listing details, rental periods and other text strings of WPCasa are translated correctly.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Please notice that this plugin is an add-on for \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwpcasa\u002F\" rel=\"ugc\">WPCasa\u003C\u002Fa> and Polylang and will NOT work without the core plugins.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>WPCasa is a WordPress solution that provides an intuitive way to manage property listings and create first-class real estate websites.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Website: \u003Ca href=\"https:\u002F\u002Fwpcasa.com\" rel=\"nofollow ugc\">wpcasa.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Demo: \u003Ca href=\"https:\u002F\u002Fdemo.wpcasa.com\" rel=\"nofollow ugc\">demo.wpcasa.com\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Documentation: \u003Ca href=\"https:\u002F\u002Fdocs.wpcasa.com\" rel=\"nofollow ugc\">docs.wpcasa.com\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Languages\u003C\u002Fh3>\n\u003Cp>WPCasa Polylang is available in multiple languages maintained by the amazing WordPress community.\u003Cbr \u002F>\nYour language is missing? Please be part of the community and help to translate WPCasa Polylang on \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fwpcasa-polylang\u002F\" rel=\"nofollow ugc\">GlotPress\u003C\u002Fa>. Thank you!\u003C\u002Fp>\n\u003Ch3>Contributors\u003C\u002Fh3>\n\u003Cp>This is a list of contributors to WPCasa Polylang.\u003Cbr \u002F>\nMany thanks to all of them for contributing and making WPCasa Polylang even better.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fwww.kybernetik-services.com\u002F?utm_source=wordpress_org&utm_medium=plugin&utm_campaign=wpcasa&utm_content=readme\" rel=\"nofollow ugc\">Kybernetik Services\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fusers\u002Fjoehana\u002F\" rel=\"ugc\">Joe Hana\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fusers\u002Fcodestylist\u002F\" rel=\"ugc\">codestylist\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fsebastienserre\" rel=\"nofollow ugc\">sebastienserre\u003C\u002Fa>\u003C\u002Fp>\n","Add support for Polylang to manage WPCasa property data in multiple languages.",100,8480,0,"6.2","7.2",[21,22,23,110,111],"localization","polylang","https:\u002F\u002Fwpcasa.com\u002Fdownloads\u002Fwpcasa-polylang","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwpcasa-polylang.1.2.1.zip","2026-03-15T10:48:56.248Z",{"slug":116,"name":117,"version":118,"author":119,"author_profile":120,"description":121,"short_description":122,"active_installs":123,"downloaded":124,"rating":125,"num_ratings":126,"last_updated":127,"tested_up_to":128,"requires_at_least":129,"requires_php":18,"tags":130,"homepage":134,"download_link":135,"security_score":136,"vuln_count":106,"unpatched_count":106,"last_vuln_date":38,"fetched_at":31},"js-composer-qtranslate-x","WPBakery Visual Composer & qTranslate-X","1.0","John Clause","https:\u002F\u002Fprofiles.wordpress.org\u002Fjohnclause\u002F","\u003Cp>Enables \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fqtranslate-x\u002F\" rel=\"ugc\">qTranslate-X\u003C\u002Fa> multilingual framework for plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjs-composer-qtranslate-x\" rel=\"ugc\">WPBakery Visual Composer\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>At least version 3.3 of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fqtranslate-x\u002F\" rel=\"ugc\">qTranslate-X\u003C\u002Fa> or \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FqTranslate-Team\u002Fqtranslate-x\u002Farchive\u002F3.2.9.9.4.zip\" rel=\"nofollow ugc\">alpha pre-release\u003C\u002Fa> is required.\u003C\u002Fp>\n\u003Cp>This plugin is currently a work in progress, please review the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjs-composer-qtranslate-x\u002Fother_notes\u002F\" rel=\"ugc\">Known Issues\u003C\u002Fa> and report the features, which did not work for you.\u003C\u002Fp>\n\u003Ch3>Known Issues\u003C\u002Fh3>\n","Enables multilingual framework for plugin \"WPBakery Visual Composer\".",8000,149576,64,11,"2017-11-28T08:32:00.000Z","4.1.42","4.0",[21,131,132,23,133],"i18n","l10n","multilingual","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fjs-composer-qtranslate-x","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fjs-composer-qtranslate-x.1.0.zip",85,{"slug":138,"name":139,"version":140,"author":141,"author_profile":142,"description":143,"short_description":144,"active_installs":145,"downloaded":146,"rating":147,"num_ratings":148,"last_updated":149,"tested_up_to":16,"requires_at_least":129,"requires_php":150,"tags":151,"homepage":18,"download_link":155,"security_score":104,"vuln_count":29,"unpatched_count":106,"last_vuln_date":156,"fetched_at":31},"hreflang-manager-lite","Hreflang Manager – Hreflang Implementation for International SEO","1.16","DAEXT","https:\u002F\u002Fprofiles.wordpress.org\u002Fdaext\u002F","\u003Cp>The Hreflang Manager plugin provides you an easy and reliable method to implement hreflang in WordPress.\u003C\u002Fp>\n\u003Cp>For more information on the technical use of hreflang, please consider reading the \u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fsearch\u002Fdocs\u002Fadvanced\u002Fcrawling\u002Flocalized-versions\" rel=\"nofollow ugc\">official documentation provided by Google\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Pro Version\u003C\u002Fh3>\n\u003Cp>A \u003Ca href=\"https:\u002F\u002Fdaext.com\u002Fhreflang-manager\u002F\" rel=\"nofollow ugc\">Pro Version\u003C\u002Fa> of this plugin is available on our website with many additional features, like the ability to move the hreflang implementation in all the websites of the network, a maximum of 100 alternative versions of the page per connection, the ability to mass import hreflang data from a spreadsheet, and much more.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Supports the hreflang implementation of different websites or the sub-sites of a WordPress network\u003C\u002Fli>\n\u003Cli>Supports all the languages defined with \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FList_of_ISO_639-1_codes\" rel=\"nofollow ugc\">ISO_639-1\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Supports all the scripts defined with \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FISO_15924\" rel=\"nofollow ugc\">ISO 15924\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Supports all the countries defined with \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FISO_3166-1_alpha-2\" rel=\"nofollow ugc\">ISO 3166-1 alpha-2\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>A maximum of 10 alternative versions of the page per connection\u003C\u002Fli>\n\u003Cli>Includes a log system to verify the correct implementation in the front-end\u003C\u002Fli>\n\u003Cli>Ability to select the default languages, scripts, and countries\u003C\u002Fli>\n\u003Cli>Automatically deletes the hreflang data of the deleted posts\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cp>This plugin makes use of the following resources:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fselect2.org\u002F\" rel=\"nofollow ugc\">Select2\u003C\u002Fa> licensed under the MIT License\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>For each library you can find the actual copy of the license inside the folder used to store the library files.\u003C\u002Fp>\n","The Hreflang Manager plugin provides you an easy and reliable method to implement hreflang in WordPress.",6000,59403,92,7,"2026-03-01T09:08:00.000Z","5.2",[152,153,23,133,154],"hreflang","internationalization","seo","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhreflang-manager-lite.1.16.zip","2023-11-14 00:00:00",{"slug":158,"name":159,"version":160,"author":161,"author_profile":162,"description":163,"short_description":164,"active_installs":165,"downloaded":166,"rating":104,"num_ratings":167,"last_updated":168,"tested_up_to":16,"requires_at_least":169,"requires_php":170,"tags":171,"homepage":173,"download_link":174,"security_score":175,"vuln_count":29,"unpatched_count":106,"last_vuln_date":176,"fetched_at":31},"preferred-languages","Preferred Languages","2.4.1","Pascal Birchler","https:\u002F\u002Fprofiles.wordpress.org\u002Fswissspidy\u002F","\u003Cp>Thanks to language packs it’s easier than ever before to change the main language of your site.\u003Cbr \u002F>\nHowever, in some cases a single locale is not enough. When WordPress can’t find a translation for the active locale, it falls back to the original English strings.\u003Cbr \u002F>\nThat’s a poor user experience for many non-English speakers.\u003C\u002Fp>\n\u003Cp>This feature project aims to change that by letting users choose multiple languages for displaying WordPress in.\u003Cbr \u002F>\nThat way you can set some sort of “fallback chain” where WordPress tries to load translations in your preferred order.\u003C\u002Fp>\n\u003Cp>Please help us test this plugin and let us know if something is not working as you think it should.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Keyboard Shortcuts\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>Arrow Up\u003C\u002Fcode>: Move selected locale one position up.\u003C\u002Fli>\n\u003Cli>\u003Ccode>Arrow Down\u003C\u002Fcode>: Move selected locale one position down.\u003C\u002Fli>\n\u003Cli>\u003Ccode>Home\u003C\u002Fcode>: Select first locale in the list.\u003C\u002Fli>\n\u003Cli>\u003Ccode>End\u003C\u002Fcode>: Select last locale in the list.\u003C\u002Fli>\n\u003Cli>\u003Ccode>Backspace\u003C\u002Fcode>\u002F\u003Ccode>Delete\u003C\u002Fcode>: remove the selected locale from the list.\u003C\u002Fli>\n\u003Cli>\u003Ccode>Alt+A\u003C\u002Fcode>: Add the current locale from the dropdown to the list.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>: the Preferred Languages UI needs to be focused in order for the keyboard shortcuts to work.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Merging Translations\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Previously, only the first available translation for a given locale and domain will be loaded.\u003Cbr \u002F>\nHowever, when translations are incomplete, some strings might still be displayed in English.\u003Cbr \u002F>\nThat’s a poor user experience as well.\u003C\u002Fp>\n\u003Cp>To prevent this, Preferred Languages now automatically merges all incomplete translations in the list.\u003C\u002Fp>\n\u003Cp>the \u003Ccode>preferred_languages_merge_translations\u003C\u002Fcode> filter can be used to opt out of this behavior.\u003Cbr \u002F>\nIt provides three parameters:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Ccode>$merge\u003C\u002Fcode> – Whether translations should be merged. Defaults to \u003Ccode>true\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>\u003Ccode>$domain\u003C\u002Fcode> – The text domain\u003C\u002Fli>\n\u003Cli>\u003Ccode>$current_locale\u003C\u002Fcode> – The current locale.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Get Involved\u003C\u002Fh4>\n\u003Cp>Active development is taking place on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fpreferred-languages\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>If you want to get involved, check out \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fpreferred-languages\u002Fissues\" rel=\"nofollow ugc\">open issues\u003C\u002Fa> and join the \u003Ca href=\"https:\u002F\u002Fwordpress.slack.com\u002Fmessages\u002Fcore-i18n\" rel=\"nofollow ugc\">#core-i18n\u003C\u002Fa> channel on \u003Ca href=\"https:\u002F\u002Fwordpress.slack.com\u002F\" rel=\"nofollow ugc\">Slack\u003C\u002Fa>. If you don’t have a Slack account yet, you can sign up at \u003Ca href=\"https:\u002F\u002Fmake.wordpress.org\u002Fchat\u002F\" rel=\"nofollow ugc\">make.wordpress.org\u002Fchat\u002F\u003C\u002Fa>.\u003C\u002Fp>\n","Choose languages for displaying WordPress in, in order of preference.",2000,108228,17,"2025-11-28T15:06:00.000Z","6.6","7.2.24",[131,153,23,110,172],"translation","https:\u002F\u002Fgithub.com\u002Fswissspidy\u002Fpreferred-languages\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpreferred-languages.2.4.1.zip",99,"2024-05-30 00:00:00",{"slug":178,"name":179,"version":180,"author":181,"author_profile":182,"description":183,"short_description":184,"active_installs":185,"downloaded":186,"rating":187,"num_ratings":148,"last_updated":188,"tested_up_to":189,"requires_at_least":190,"requires_php":18,"tags":191,"homepage":194,"download_link":195,"security_score":175,"vuln_count":29,"unpatched_count":106,"last_vuln_date":196,"fetched_at":31},"language-switcher","Language Switcher","3.8.8","rafasashi","https:\u002F\u002Fprofiles.wordpress.org\u002Frafasashi\u002F","\u003Cp>Language Switcher allows you to map urls of alternative languages for Post Types and Taxonomies. Additionally it allows you to filter archive pages by language.\u003C\u002Fp>\n\u003Ch4>Support Forum\u003C\u002Fh4>\n\u003Cp>For quicker support on this plugin go to: \u003Ca href=\"https:\u002F\u002Fcode.recuweb.com\u002Fsupport\u002Fforum\u002Fwordpress-plugins\u002Flanguage-switcher\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fcode.recuweb.com\u002Fsupport\u002Fforum\u002Fwordpress-plugins\u002Flanguage-switcher\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Free Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>STANDALONE – No WordPress Multisite required\u003C\u002Fli>\n\u003Cli>MIXED SOURCES – map internal or external urls\u003C\u002Fli>\n\u003Cli>POST TYPE LANGUAGE – Add a main language selector to post types and map urls of alternative languages\u003C\u002Fli>\n\u003Cli>TAXONOMY LANGUAGE – Add a main language selector to terms and map urls of alternative languages\u003C\u002Fli>\n\u003Cli>HREFLANG LINKS – Add hreflang links into the head of each page and improve the SEO\u003C\u002Fli>\n\u003Cli>MENU LANGUAGE – Add a main language selector to the menu settings and switch the menu accordingly\u003C\u002Fli>\n\u003Cli>LANGUAGE FILTERS – Filter items by language in the main WP_Query of archive pages\u003C\u002Fli>\n\u003Cli>LANGUAGE WIDGET – Add the language switcher with the widget\u003C\u002Fli>\n\u003Cli>LANGUAGE SHORTCODE – Add the language switcher anywhere with the shortcode [language-switcher]\u003C\u002Fli>\n\u003Cli>LANGUAGE MENUS – Add the language switcher to your navigation menus\u003C\u002Fli>\n\u003Cli>SWITCHER TITLE – Select from multiple options to customize the switcher title\u003C\u002Fli>\n\u003Cli>COUNTRY FLAGS – Add country flags manually to your Theme Additional CSS or style.css\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Addon Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fcode.recuweb.com\u002Fget\u002Flanguage-switcher-everywhere\u002F\" rel=\"nofollow ugc\">LANGUAGE EVERYWHERE\u003C\u002Fa> –  Enable language switcher for custom post types and taxonomies such as WooCommerce Product, Order, Category and Tags\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Compatibility\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Polylang\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Localization\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>English\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Documentation\u003C\u002Fh4>\n\u003Cp>For all documentation on this plugin go to: \u003Ca href=\"https:\u002F\u002Fcode.recuweb.com\u002Fdownload\u002Flanguage-switcher\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fcode.recuweb.com\u002Fget\u002Flanguage-switcher\u002F\u003C\u002Fa>\u003C\u002Fp>\n","Add a Language Switcher to Menus, Post Types and Taxonomies.",1000,70467,80,"2025-09-01T11:29:00.000Z","6.8.5","4.6",[192,153,23,178,193],"internationalisation","languages","https:\u002F\u002Fcode.recuweb.com\u002Fdownload\u002Flanguage-switcher\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flanguage-switcher.3.8.8.zip","2024-10-10 00:00:00",{"attackSurface":198,"codeSignals":462,"taintFlows":584,"riskAssessment":749,"analyzedAt":771},{"hooks":199,"ajaxHandlers":423,"restRoutes":457,"shortcodes":458,"cronEvents":459,"entryPointCount":460,"unprotectedCount":461},[200,205,208,212,216,222,226,230,233,237,241,245,249,253,256,259,262,265,269,272,276,279,282,286,288,292,295,298,302,305,309,312,316,319,324,327,332,335,339,342,345,349,352,355,358,361,363,365,370,373,376,379,384,386,388,390,394,397,400,403,407,410,413,416,420],{"type":201,"name":202,"callback":202,"file":203,"line":204},"action","admin_enqueue_scripts","admin\\actions.php",246,{"type":201,"name":202,"callback":202,"file":206,"line":207},"admin\\admin.php",25,{"type":201,"name":209,"callback":210,"file":206,"line":211},"admin_menu","add_menus",31,{"type":201,"name":213,"callback":214,"file":206,"line":215},"load-translation_page_lingotek-translation_manage","load_manage_page",33,{"type":217,"name":218,"callback":219,"priority":220,"file":206,"line":221},"filter","set-screen-option","set_screen_option",10,34,{"type":201,"name":223,"callback":224,"file":206,"line":225},"network_admin_menu","add_network_admin_menu",39,{"type":201,"name":227,"callback":227,"file":228,"line":229},"edit_attachment","admin\\filters-media.php",27,{"type":201,"name":231,"callback":231,"priority":126,"file":228,"line":232},"add_attachment",29,{"type":201,"name":234,"callback":234,"priority":220,"file":235,"line":236},"post_updated","admin\\filters-post.php",47,{"type":201,"name":238,"callback":239,"file":235,"line":240},"trashed_post","trash_post",50,{"type":201,"name":242,"callback":243,"file":235,"line":244},"untrashed_post","untrash_post",51,{"type":217,"name":246,"callback":247,"file":235,"line":248},"manage_posts_columns","add_profile_column",53,{"type":201,"name":250,"callback":251,"priority":220,"file":235,"line":252},"manage_posts_custom_column","add_profile_column_data",54,{"type":217,"name":254,"callback":247,"file":235,"line":255},"manage_pages_columns",56,{"type":201,"name":257,"callback":251,"priority":220,"file":235,"line":258},"manage_pages_custom_column",57,{"type":201,"name":260,"callback":260,"file":235,"line":261},"parse_query",60,{"type":201,"name":263,"callback":263,"file":235,"line":264},"edit_form_top",75,{"type":201,"name":266,"callback":267,"priority":220,"file":268,"line":221},"edit_terms","save_old_term","admin\\filters-term.php",{"type":201,"name":270,"callback":270,"priority":220,"file":268,"line":271},"edited_term",35,{"type":217,"name":273,"callback":273,"priority":220,"file":274,"line":275},"post_row_actions","admin\\post-actions.php",20,{"type":217,"name":277,"callback":273,"priority":220,"file":274,"line":278},"page_row_actions",22,{"type":217,"name":280,"callback":273,"priority":220,"file":274,"line":281},"media_row_actions",23,{"type":217,"name":283,"callback":284,"file":274,"line":285},"bulk_actions-edit-post","add_bulk_actions",26,{"type":217,"name":287,"callback":284,"file":274,"line":229},"bulk_actions-edit-page",{"type":201,"name":289,"callback":290,"file":274,"line":291},"load-edit.php","manage_actions",42,{"type":201,"name":293,"callback":290,"file":274,"line":294},"load-upload.php",43,{"type":201,"name":289,"callback":296,"file":274,"line":297},"manage_promotions",46,{"type":201,"name":299,"callback":300,"file":274,"line":301},"add_meta_boxes","lingotek_add_meta_boxes",49,{"type":201,"name":303,"callback":304,"file":274,"line":240},"save_post","lingotek_save_meta_boxes",{"type":201,"name":306,"callback":307,"file":274,"line":308},"admin_notices","lingotek_professional_translation_notice",130,{"type":201,"name":310,"callback":310,"file":311,"line":167},"updated_option","admin\\string-actions.php",{"type":201,"name":313,"callback":290,"file":314,"line":315},"load-edit-tags.php","admin\\term-actions.php",24,{"type":201,"name":202,"callback":202,"file":317,"line":318},"admin\\utilities.php",21,{"type":217,"name":320,"callback":321,"file":322,"line":323},"safe_style_css","add_modal_styles","admin\\workflows\\workflow.php",274,{"type":217,"name":325,"callback":325,"file":326,"line":281},"request","include\\callback.php",{"type":217,"name":328,"callback":329,"file":330,"line":331},"content_save_pre","wp_filter_post_kses","include\\group-post.php",520,{"type":217,"name":333,"callback":329,"file":330,"line":334},"content_filtered_save_pre",521,{"type":201,"name":336,"callback":336,"file":337,"line":338},"pre_post_update","include\\group-term.php",138,{"type":217,"name":340,"callback":340,"file":337,"line":341},"set_pre_term_name",139,{"type":217,"name":343,"callback":343,"priority":220,"file":337,"line":344},"set_pre_term_slug",140,{"type":201,"name":346,"callback":347,"priority":29,"file":337,"line":348},"create_term","save_term",141,{"type":201,"name":350,"callback":347,"priority":29,"file":337,"line":351},"edit_term",142,{"type":201,"name":336,"callback":336,"file":353,"line":354},"include\\model.php",330,{"type":217,"name":356,"callback":356,"file":353,"line":357},"pre_term_name",331,{"type":217,"name":359,"callback":359,"priority":220,"file":353,"line":360},"pre_term_slug",332,{"type":201,"name":346,"callback":347,"priority":29,"file":353,"line":362},333,{"type":201,"name":350,"callback":347,"priority":29,"file":353,"line":364},334,{"type":201,"name":366,"callback":367,"file":368,"line":369},"init","lingotek_maybe_wordpress_importer","include\\plugins-compat.php",15,{"type":201,"name":371,"callback":372,"file":368,"line":232},"admin_init","lingotek_wordpress_importer_init",{"type":201,"name":202,"callback":374,"file":375,"line":211},"enqueue_scripts","include\\pointer.php",{"type":201,"name":377,"callback":378,"file":375,"line":14},"admin_print_footer_scripts","print_js",{"type":217,"name":380,"callback":381,"file":382,"line":383},"pll_model","PLL_Admin_Model","lingotek.php",292,{"type":217,"name":380,"callback":380,"file":382,"line":385},299,{"type":201,"name":366,"callback":366,"file":382,"line":387},300,{"type":201,"name":371,"callback":371,"file":382,"line":389},301,{"type":217,"name":391,"callback":392,"file":382,"line":393},"pll_languages_list","pre_set_languages_list",304,{"type":217,"name":395,"callback":395,"priority":220,"file":382,"line":396},"pll_flag_title",307,{"type":201,"name":366,"callback":398,"file":382,"line":399},"lingotek_activation_pointer",311,{"type":201,"name":366,"callback":401,"file":382,"line":402},"lingotek_professional_translation_pointer",313,{"type":201,"name":404,"callback":405,"file":382,"line":406},"plugins_loaded","lingotek_plugin_migration",320,{"type":201,"name":366,"callback":408,"priority":220,"file":382,"line":409},"lingotek_new_ui",327,{"type":201,"name":411,"callback":412,"file":382,"line":354},"elementor\u002Feditor\u002Fafter_save","elementor_update_status",{"type":201,"name":306,"callback":414,"file":382,"line":415},"closure",380,{"type":201,"name":417,"callback":418,"file":382,"line":419},"all_admin_notices","pll_inactive_notice",744,{"type":201,"name":417,"callback":421,"file":382,"line":422},"pll_old_notice",746,[424,430,434,438,442,446,449,452,454],{"action":425,"nopriv":426,"callback":427,"hasNonce":428,"hasCapCheck":428,"file":203,"line":429},"estimate_cost",false,"ajax_estimate_cost",true,248,{"action":431,"nopriv":426,"callback":432,"hasNonce":428,"hasCapCheck":428,"file":203,"line":433},"request_professional_translation","ajax_request_professional_translation",249,{"action":435,"nopriv":426,"callback":436,"hasNonce":428,"hasCapCheck":428,"file":203,"line":437},"get_user_payment_information","ajax_get_user_payment_information",250,{"action":439,"nopriv":426,"callback":440,"hasNonce":428,"hasCapCheck":428,"file":203,"line":441},"get_ltk_terms_and_conditions","ajax_get_ltk_terms_and_conditions",251,{"action":443,"nopriv":426,"callback":444,"hasNonce":426,"hasCapCheck":426,"file":206,"line":445},"get_current_status","ajax_get_current_status",37,{"action":447,"nopriv":426,"callback":447,"hasNonce":426,"hasCapCheck":426,"file":206,"line":448},"lingotek_authorization_action",40,{"action":450,"nopriv":426,"callback":451,"hasNonce":428,"hasCapCheck":428,"file":317,"line":278},"lingotek_progress_disassociate","ajax_utility_disassociate",{"action":453,"nopriv":426,"callback":451,"hasNonce":428,"hasCapCheck":428,"file":317,"line":281},"lingotek_progress_disassociate_and_delete",{"action":455,"nopriv":426,"callback":456,"hasNonce":428,"hasCapCheck":428,"file":317,"line":315},"lingotek_progress_cancel","ajax_utility_cancel",[],[],[],9,2,{"dangerousFunctions":463,"sqlUsage":484,"outputEscaping":496,"fileOperations":578,"externalRequests":579,"nonceChecks":291,"capabilityChecks":285,"bundledLibraries":580},[464,468,472,475,478,480,482],{"fn":465,"file":317,"line":466,"context":467},"unserialize",96,"$desc_arr = unserialize( $term->description );",{"fn":465,"file":469,"line":470,"context":471},"include\\group.php",38,"$this->desc_array  = unserialize( $term->description );",{"fn":465,"file":469,"line":473,"context":474},72,"$d                             = unserialize( $d );",{"fn":465,"file":353,"line":476,"context":477},703,"$group = unserialize( $group );",{"fn":465,"file":353,"line":479,"context":477},785,{"fn":465,"file":353,"line":481,"context":477},903,{"fn":465,"file":353,"line":483,"context":477},936,{"prepared":485,"raw":486,"locations":487},19,3,[488,491,494],{"file":469,"line":489,"context":490},70,"$wpdb->query() with variable interpolation",{"file":382,"line":492,"context":493},513,"$wpdb->get_col() with variable interpolation",{"file":495,"line":275,"context":493},"uninstall.php",{"escaped":497,"rawEcho":445,"locations":498},807,[499,502,504,506,508,511,513,515,518,520,522,525,527,528,530,532,534,536,538,540,543,545,548,550,552,554,556,558,560,562,564,566,568,570,572,574,576],{"file":203,"line":500,"context":501},1053,"raw output",{"file":203,"line":503,"context":501},1082,{"file":203,"line":505,"context":501},1092,{"file":203,"line":507,"context":501},1103,{"file":509,"line":510,"context":501},"admin\\custom-fields-table.php",309,{"file":235,"line":512,"context":501},117,{"file":235,"line":514,"context":501},122,{"file":516,"line":517,"context":501},"admin\\import\\view-content.php",145,{"file":519,"line":136,"context":501},"admin\\import\\view-settings.php",{"file":519,"line":521,"context":501},95,{"file":523,"line":524,"context":501},"admin\\manage\\view-edit-profile.php",98,{"file":523,"line":526,"context":501},225,{"file":523,"line":323,"context":501},{"file":523,"line":529,"context":501},312,{"file":274,"line":531,"context":501},121,{"file":274,"line":533,"context":501},343,{"file":274,"line":535,"context":501},395,{"file":537,"line":344,"context":501},"admin\\settings\\view-defaults.php",{"file":539,"line":531,"context":501},"admin\\settings\\view-preferences.php",{"file":541,"line":542,"context":501},"admin\\strings-table.php",110,{"file":544,"line":148,"context":501},"admin\\view-dashboard.php",{"file":546,"line":547,"context":501},"admin\\view-network.php",119,{"file":546,"line":549,"context":501},132,{"file":546,"line":551,"context":501},144,{"file":546,"line":553,"context":501},146,{"file":546,"line":555,"context":501},147,{"file":546,"line":557,"context":501},148,{"file":546,"line":559,"context":501},149,{"file":546,"line":561,"context":501},150,{"file":546,"line":563,"context":501},151,{"file":546,"line":565,"context":501},152,{"file":546,"line":567,"context":501},156,{"file":546,"line":569,"context":501},158,{"file":546,"line":571,"context":501},162,{"file":546,"line":573,"context":501},164,{"file":375,"line":575,"context":501},108,{"file":382,"line":577,"context":501},383,6,5,[581],{"name":582,"version":38,"knownCves":583},"Select2",[],[585,608,618,633,662,678,690,701,709,719,727,740],{"entryPoint":586,"graph":587,"unsanitizedCount":29,"severity":40},"ajax_utility_disassociate (admin\\utilities.php:153)",{"nodes":588,"edges":605},[589,594,598],{"id":590,"type":591,"label":592,"file":317,"line":593},"n0","source","$_POST['action']",159,{"id":595,"type":596,"label":597,"file":317,"line":593},"n1","transform","→ delete()",{"id":599,"type":600,"label":601,"file":602,"line":603,"wp_function":604},"n2","sink","wp_remote_request() [SSRF]","include\\http.php",106,"wp_remote_request",[606,607],{"from":590,"to":595,"sanitized":426},{"from":595,"to":599,"sanitized":426},{"entryPoint":609,"graph":610,"unsanitizedCount":29,"severity":40},"\u003Cutilities> (admin\\utilities.php:0)",{"nodes":611,"edges":615},[612,613,614],{"id":590,"type":591,"label":592,"file":317,"line":593},{"id":595,"type":596,"label":597,"file":317,"line":593},{"id":599,"type":600,"label":601,"file":602,"line":603,"wp_function":604},[616,617],{"from":590,"to":595,"sanitized":426},{"from":595,"to":599,"sanitized":426},{"entryPoint":619,"graph":620,"unsanitizedCount":29,"severity":40},"request (include\\callback.php:34)",{"nodes":621,"edges":630},[622,624,626],{"id":590,"type":591,"label":623,"file":326,"line":291},"$_GET",{"id":595,"type":596,"label":625,"file":326,"line":291},"→ handleGet()",{"id":599,"type":600,"label":627,"file":326,"line":628,"wp_function":629},"wp_redirect() [Open Redirect]",101,"wp_redirect",[631,632],{"from":590,"to":595,"sanitized":426},{"from":595,"to":599,"sanitized":426},{"entryPoint":634,"graph":635,"unsanitizedCount":579,"severity":40},"\u003Ccallback> (include\\callback.php:0)",{"nodes":636,"edges":656},[637,639,640,641,643,645,648,651],{"id":590,"type":591,"label":638,"file":326,"line":225},"$_GET (x3)",{"id":595,"type":600,"label":627,"file":326,"line":147,"wp_function":629},{"id":599,"type":591,"label":623,"file":326,"line":291},{"id":642,"type":596,"label":625,"file":326,"line":291},"n3",{"id":644,"type":600,"label":627,"file":326,"line":628,"wp_function":629},"n4",{"id":646,"type":591,"label":623,"file":326,"line":647},"n5",91,{"id":649,"type":596,"label":650,"file":326,"line":647},"n6","→ get()",{"id":652,"type":600,"label":653,"file":602,"line":654,"wp_function":655},"n7","wp_remote_get() [SSRF]",86,"wp_remote_get",[657,658,659,660,661],{"from":590,"to":595,"sanitized":426},{"from":599,"to":642,"sanitized":426},{"from":642,"to":644,"sanitized":426},{"from":646,"to":649,"sanitized":426},{"from":649,"to":652,"sanitized":426},{"entryPoint":663,"graph":664,"unsanitizedCount":29,"severity":677},"\u003Cimport> (admin\\import.php:0)",{"nodes":665,"edges":674},[666,669,672,673],{"id":590,"type":591,"label":667,"file":668,"line":291},"$_GET['page']","admin\\import.php",{"id":595,"type":600,"label":670,"file":668,"line":291,"wp_function":671},"echo() [XSS]","echo",{"id":599,"type":591,"label":623,"file":668,"line":252},{"id":642,"type":600,"label":670,"file":668,"line":261,"wp_function":671},[675,676],{"from":590,"to":595,"sanitized":428},{"from":599,"to":642,"sanitized":426},"low",{"entryPoint":679,"graph":680,"unsanitizedCount":106,"severity":677},"\u003Cview-custom-fields> (admin\\manage\\view-custom-fields.php:0)",{"nodes":681,"edges":688},[682,685],{"id":590,"type":591,"label":683,"file":684,"line":470},"$_POST","admin\\manage\\view-custom-fields.php",{"id":595,"type":600,"label":686,"file":684,"line":225,"wp_function":687},"update_option() [Settings Manipulation]","update_option",[689],{"from":590,"to":595,"sanitized":428},{"entryPoint":691,"graph":692,"unsanitizedCount":106,"severity":677},"manage_actions (admin\\string-actions.php:79)",{"nodes":693,"edges":699},[694,697],{"id":590,"type":591,"label":695,"file":311,"line":696},"$_REQUEST",105,{"id":595,"type":600,"label":627,"file":311,"line":698,"wp_function":629},126,[700],{"from":590,"to":595,"sanitized":428},{"entryPoint":702,"graph":703,"unsanitizedCount":106,"severity":677},"\u003Cstring-actions> (admin\\string-actions.php:0)",{"nodes":704,"edges":707},[705,706],{"id":590,"type":591,"label":695,"file":311,"line":696},{"id":595,"type":600,"label":627,"file":311,"line":698,"wp_function":629},[708],{"from":590,"to":595,"sanitized":428},{"entryPoint":710,"graph":711,"unsanitizedCount":106,"severity":677},"manage_actions (admin\\term-actions.php:93)",{"nodes":712,"edges":717},[713,715],{"id":590,"type":591,"label":695,"file":314,"line":714},160,{"id":595,"type":600,"label":627,"file":314,"line":716,"wp_function":629},193,[718],{"from":590,"to":595,"sanitized":428},{"entryPoint":720,"graph":721,"unsanitizedCount":106,"severity":677},"\u003Cterm-actions> (admin\\term-actions.php:0)",{"nodes":722,"edges":725},[723,724],{"id":590,"type":591,"label":695,"file":314,"line":714},{"id":595,"type":600,"label":627,"file":314,"line":716,"wp_function":629},[726],{"from":590,"to":595,"sanitized":428},{"entryPoint":728,"graph":729,"unsanitizedCount":29,"severity":677},"\u003Cview-manage> (admin\\view-manage.php:0)",{"nodes":730,"edges":737},[731,733,734,736],{"id":590,"type":591,"label":667,"file":732,"line":215},"admin\\view-manage.php",{"id":595,"type":600,"label":670,"file":732,"line":215,"wp_function":671},{"id":599,"type":591,"label":623,"file":732,"line":735},44,{"id":642,"type":600,"label":670,"file":732,"line":240,"wp_function":671},[738,739],{"from":590,"to":595,"sanitized":428},{"from":599,"to":642,"sanitized":426},{"entryPoint":741,"graph":742,"unsanitizedCount":106,"severity":677},"\u003Cview-tutorial> (admin\\view-tutorial.php:0)",{"nodes":743,"edges":747},[744,746],{"id":590,"type":591,"label":667,"file":745,"line":445},"admin\\view-tutorial.php",{"id":595,"type":600,"label":670,"file":745,"line":445,"wp_function":671},[748],{"from":590,"to":595,"sanitized":428},{"summary":750,"deductions":751},"The Lingotek Translation plugin (v1.7.2) exhibits a mixed security posture. While it demonstrates strong adherence to secure coding practices with a high percentage of prepared SQL statements and properly escaped output, significant concerns remain.  The presence of two unprotected AJAX handlers significantly increases the attack surface, as these can be exploited without proper authentication, potentially leading to unauthorized actions. The taint analysis, while reporting no critical or high severity issues, does indicate a concerning number of flows with unsanitized paths, which could be a precursor to vulnerabilities if input validation is not robust.\n\nThe plugin's vulnerability history is a major red flag. With four known CVEs, including one critical and one high severity, and a currently unpatched critical vulnerability, the plugin has a history of severe security flaws. The common types of vulnerabilities (Missing Authorization, PHP Remote File Inclusion, Cross-site Scripting) suggest recurring issues with input sanitization, authorization checks, and secure file handling. This pattern, coupled with the unprotected AJAX endpoints, indicates a persistent need for more rigorous security auditing and patching.\n\nOverall, while the codebase shows some positive security indicators, the documented history of critical vulnerabilities and the presence of unprotected entry points necessitate a cautious approach. The ongoing unpatched critical vulnerability is the most pressing concern, and the potential for exploitation of unprotected AJAX handlers warrants immediate attention.",[752,754,756,759,761,763,765,767,769],{"reason":753,"points":275},"Currently unpatched critical vulnerability",{"reason":755,"points":220},"Unprotected AJAX handlers present",{"reason":757,"points":758},"High number of flows with unsanitized paths",8,{"reason":760,"points":369},"Critical severity vulnerability in history",{"reason":762,"points":220},"High severity vulnerability in history",{"reason":764,"points":758},"Vulnerabilities related to Missing Authorization",{"reason":766,"points":220},"Vulnerabilities related to PHP Remote File Inclusion",{"reason":768,"points":758},"Vulnerabilities related to Cross-site Scripting",{"reason":770,"points":579},"Dangerous function 'unserialize' used","2026-03-16T17:46:51.445Z",{"wat":773,"direct":784},{"assetPaths":774,"generatorPatterns":778,"scriptPaths":779,"versionParams":780},[775,776,777],"\u002Fwp-content\u002Fplugins\u002Flingotek-translation\u002Fassets\u002Fcss\u002Flingotek-admin.css","\u002Fwp-content\u002Fplugins\u002Flingotek-translation\u002Fassets\u002Fjs\u002Flingotek-admin.js","\u002Fwp-content\u002Fplugins\u002Flingotek-translation\u002Fassets\u002Fjs\u002Flingotek-modal.js",[],[776,777],[781,782,783],"lingotek-translation\u002Fassets\u002Fcss\u002Flingotek-admin.css?ver=","lingotek-translation\u002Fassets\u002Fjs\u002Flingotek-admin.js?ver=","lingotek-translation\u002Fassets\u002Fjs\u002Flingotek-modal.js?ver=",{"cssClasses":785,"htmlComments":787,"htmlAttributes":788,"restEndpoints":790,"jsGlobals":791,"shortcodeOutput":794},[786],"lingotek-failed-color",[],[789],"data-lingotek-modal-trigger",[],[792,793],"lingotekTranslation","lingotekModal",[]]