[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fkQRoAUQFzIbxQ6BacKqsk0A2kleR1xyOd8Kfl25VFw4":3,"$f1xPUzAdG5D2y6xfiiSJKD69yzKoyspbNvghUs80igZY":358,"$fzVnvSDOhpESzRC3ElWmD_dIDTXx9W5jEqYKojBUEkXs":362},{"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":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"discovery_status":29,"vulnerabilities":30,"developer":31,"crawl_stats":27,"alternatives":37,"analysis":137,"fingerprints":339},"quick-translate-pot-po-mo","Quick Translate POT\u002FPO\u002FMO","2.2.0","Kasuga","https:\u002F\u002Fprofiles.wordpress.org\u002Fkasuga16\u002F","\u003Cp>Quick Translate POT\u002FPO\u002FMO Plugin Manual\u003C\u002Fp>\n\u003Ch3>1. Introduction\u003C\u002Fh3>\n\u003Cp>“Quick Translate POT\u002FPO\u002FMO” is a tool for generating and modifying WordPress plugin translation files.\u003Cbr \u002F>\nIt allows you to instantly see the effects of your changes and complete the following tasks directly in your browser.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Generate POT files (Translation Template)\u003C\u002Fstrong>: Extract translatable strings from a plugin’s source code to create a template file.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Generate and Update PO files (Translation File)\u003C\u002Fstrong>: Create a new PO file for a specific language based on a POT file, or update an existing one.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Edit PO Files\u003C\u002Fstrong>: Directly edit translation strings in an existing PO file.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Generate MO Files (Binary File)\u003C\u002Fstrong>: Automatically create the binary MO file that WordPress uses when you save your PO file edits.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>PO File Automatic Translation Tool\u003C\u002Fstrong>: It automatically translates the untranslated parts of a PO file using Google Translation or DeepL.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Download POT, PO, and MO Files\u003C\u002Fstrong>: Download each POT, PO, and MO file to your local directory.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Delete MO Files\u003C\u002Fstrong>: Remove unnecessary MO files.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>2. How to Use\u003C\u002Fh3>\n\u003Ch3>Step 1: Generating a POT File\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to the \u003Cstrong>“1. Generate POT file”\u003C\u002Fstrong> section.\u003C\u002Fli>\n\u003Cli>Select the target plugin from the \u003Cstrong>“Select a Plugin”\u003C\u002Fstrong> dropdown.\u003C\u002Fli>\n\u003Cli>Click the \u003Cstrong>“Generate POT”\u003C\u002Fstrong> button.\u003C\u002Fli>\n\u003Cli>If a POT file already exists, a confirmation pop-up will appear.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>➡ This will create a \u003Ccode>[text-domain].pot\u003C\u002Fcode> file in the plugin’s \u003Ccode>languages\u003C\u002Fcode> directory.\u003C\u002Fp>\n\u003Ch3>Step 2: Generating and Updating a PO File\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to the \u003Cstrong>“2. Generate \u002F Update PO file from POT”\u003C\u002Fstrong> section.\u003C\u002Fli>\n\u003Cli>Select the target plugin from the \u003Cstrong>“Select a Plugin”\u003C\u002Fstrong> dropdown.\u003C\u002Fli>\n\u003Cli>Click the \u003Cstrong>“Generate \u002F Update PO”\u003C\u002Fstrong> button.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>➡ This will generate a PO file (e.g., \u003Ccode>ja.po\u003C\u002Fcode>) based on your WordPress language settings.\u003C\u002Fp>\n\u003Cp>➡ If the PO file already exists, the existing translations (msgstr) corresponding to the strings (msgid) in the POT file will be preserved in the updated PO file.\u003C\u002Fp>\n\u003Ch3>Step 3: Editing a PO File and Generating an MO File\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Go to the \u003Cstrong>“3. Edit PO file & Generate MO file”\u003C\u002Fstrong> section.\u003C\u002Fli>\n\u003Cli>Select the target plugin from the \u003Cstrong>“Select a Plugin”\u003C\u002Fstrong> dropdown.\u003C\u002Fli>\n\u003Cli>Click \u003Cstrong>“Load PO”\u003C\u002Fstrong> to display the PO file contents in a table.\u003C\u002Fli>\n\u003Cli>Edit translations directly in the \u003Cstrong>“msgstr”\u003C\u002Fstrong> column.\u003C\u002Fli>\n\u003Cli>Click \u003Cstrong>“Save Changes and Generate MO”\u003C\u002Fstrong> to save changes and create the MO file.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>➡ Changes in the editor are saved to the PO file and the MO file is generated simultaneously only when you click the “Save Changes and Generate MO” button.\u003C\u002Fp>\n\u003Ch3>For more effective translation work:\u003C\u002Fh3>\n\u003Ch3>Step 2.5: Automatically Translate a PO File\u003C\u002Fh3>\n\u003Col>\n\u003Cli>Click the \u003Cstrong>“Go to PO Auto Fill Tool”\u003C\u002Fstrong> button.\u003C\u002Fli>\n\u003Cli>Select the target plugin from the \u003Cstrong>“Select a Plugin”\u003C\u002Fstrong> dropdown.\u003C\u002Fli>\n\u003Cli>Choose either \u003Cstrong>Google API\u003C\u002Fstrong> or \u003Cstrong>DeepL API\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Enter the corresponding \u003Cstrong>API key\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Click the \u003Cstrong>“Preview Translation”\u003C\u002Fstrong> button.\u003C\u002Fli>\n\u003Cli>Click the \u003Cstrong>“Save”\u003C\u002Fstrong> button to save the results to the PO file.\u003C\u002Fli>\n\u003Cli>Click the \u003Cstrong>“Back to Quick Translate POT\u002FPO\u002FMO”\u003C\u002Fstrong> button to edit the saved PO file.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>➡ To use this tool for automatic translation, you need to \u003Cstrong>register with Google Translation or DeepL and obtain an API key\u003C\u002Fstrong>. Both services can be used within their free usage limits.\u003C\u002Fp>\n\u003Ch4>Table Operations\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>msgid (Source String):\u003C\u002Fstrong> Original string (not editable).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>msgstr (Translation):\u003C\u002Fstrong> Editable translation string.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Download A POT File\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Click the \u003Cstrong>“Download POT”\u003C\u002Fstrong> button to download the current POT file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Download A PO File\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Click the \u003Cstrong>“Download PO”\u003C\u002Fstrong> button to download the current PO file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Download A MO File\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Click the \u003Cstrong>“Download MO”\u003C\u002Fstrong> button to download the current MO file.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Deleting an MO File\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Click the \u003Cstrong>“Delete MO”\u003C\u002Fstrong> button to remove the current MO file.\u003C\u002Fli>\n\u003C\u002Ful>\n","\"Quick Translate POT\u002FPO\u002FMO\" is a tool for generating and modifying WordPress plugin translation files.",20,609,0,"2026-04-07T10:47:00.000Z","6.9.4","5.0","7.4",[19,20,21,22,23],"editor","i18n","po","tool","translation","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquick-translate-pot-po-mo.2.2.0.zip",100,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":26,"avg_patch_time_days":35,"trust_score":26,"computed_at":36},"kasuga16",8,140,1,"2026-05-20T05:10:35.101Z",[38,62,78,95,119],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":24,"tags":53,"homepage":59,"download_link":60,"security_score":61,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"post-editor-buttons-fork","Post Editor Buttons Fork","2.4","Kailey (trepmal)","https:\u002F\u002Fprofiles.wordpress.org\u002Ftrepmal\u002F","\u003Cp>Add custom buttons to the TEXT mode editor toolbar.\u003C\u002Fp>\n\u003Cp>This is a fork of \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fpost-editor-buttons\u002F\" rel=\"ugc\">Oren Yomtov’s\u003C\u002Fa> plugin.\u003C\u002Fp>\n\u003Cp>Unsure of the reason behind the poor rating and “doesn’t work” vote. Possibly the user didn’t realized this only adds tags to the \u003Cstrong>HTML editor\u003C\u002Fstrong>? If you use this plugin and it works for you, I’d appreciate it if you’d give my a good star rating and an “it works” vote.\u003C\u002Fp>\n\u003Cp>Conversely, if you have trouble, please post to the forums, and\u002For ask me on \u003Ca href=\"http:\u002F\u002Ftwitter.com\u002Ftrepmal\" rel=\"nofollow ugc\">twitter (@trepmal)\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>If you need this to work on WordPress \u003C 3.3\u003C\u002Fstrong> download \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fpost-editor-buttons-fork\u002Fdownload\u002F\" rel=\"ugc\">2.2.1\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Ftwitter.com\u002Ftrepmal\" rel=\"nofollow ugc\">I’m on twitter\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","This plugin allows you add your own buttons to the post editor's TEXT mode toolbar.",800,14559,98,11,"2016-10-01T03:32:00.000Z","4.6.30","3.3",[54,55,56,57,58],"add-buttons","buttons","post-editor","toolbar","toolbar-buttons","http:\u002F\u002Ftrepmal.com\u002Fplugins\u002Fpost-editor-buttons-fork\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-editor-buttons-fork.2.4.zip",85,{"slug":63,"name":64,"version":65,"author":66,"author_profile":67,"description":68,"short_description":69,"active_installs":70,"downloaded":71,"rating":13,"num_ratings":13,"last_updated":72,"tested_up_to":73,"requires_at_least":74,"requires_php":24,"tags":75,"homepage":76,"download_link":77,"security_score":61,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"post-editor-buttons","Post Editor Buttons","1.7","Oren Yomtov","https:\u002F\u002Fprofiles.wordpress.org\u002Fornani\u002F","\u003Cp>\u003Cstrong>1.7:\u003C\u002Fstrong>\u003Cbr \u002F>\nWordPress 2.9.1 compatible.\u003C\u002Fp>\n\u003Cp>\nThis plugins allows you to add your own buttons to the post edtor’s toolbar.\u003Cbr \u002F>\nI’m talking about the buttons that you see above your content text area when editing posts (b,i,link,img,ul,li).\u003Cbr \u002F>\nFor example you can add a “h3” button to make subheaders in your post.\u003Cbr \u002F>\nThere are virtually endless buttons you can add.\n\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Forenyomtov.com\" rel=\"nofollow ugc\">Yomtov\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Ftwitter.com\u002Forenyomtov\" rel=\"nofollow ugc\">You should follow me on twitter\u003C\u002Fa>\u003C\u002Fp>\n","This plugin allows you add your own buttons to the post editor's toolbar.",90,18658,"2011-02-23T18:07:00.000Z","2.9.2","2.7",[54,55,56,57,58],"http:\u002F\u002Forenyomtov.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-editor-buttons.zip",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":11,"downloaded":86,"rating":13,"num_ratings":13,"last_updated":87,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":88,"homepage":93,"download_link":94,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"tw-post-modifier-tracker","TW Post Modifier Tracker","1.0.0","Technology Wisdom","https:\u002F\u002Fprofiles.wordpress.org\u002Ftechnologywisdom\u002F","\u003Cp>\u003Cstrong>TW Post Modifier Tracker\u003C\u002Fstrong> is a lightweight plugin that helps editorial teams, site managers, and content creators track content updates.\u003Cbr \u002F>\nIt adds a new column to the WordPress \u003Cstrong>Posts\u003C\u002Fstrong>, \u003Cstrong>Pages\u003C\u002Fstrong>, \u003Cstrong>WooCommerce Products\u003C\u002Fstrong>, and \u003Cstrong>Custom Post Types\u003C\u002Fstrong> admin lists, showing the date\u002Ftime of the last modification and the user who made the change, with no configuration needed.\u003C\u002Fp>\n\u003Cp>Whether you’re managing a multi author site or auditing content activity, this plugin gives you clear visibility into post updates at a glance.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Adds a “Last Modified” column to the admin list table for posts, pages, products, and custom post types\u003C\u002Fli>\n\u003Cli>Shows the exact date and time a post was last updated\u003C\u002Fli>\n\u003Cli>Displays the user who last modified the content\u003C\u002Fli>\n\u003Cli>Seamlessly integrates with the WordPress admin interface\u003C\u002Fli>\n\u003Cli>No configuration required, Just install and activate\u003C\u002Fli>\n\u003Cli>Includes a built-in tutorial page under \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Tutorial (TW PMT)\u003C\u002Fstrong> with video guidance\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This plugin is licensed under the GPL-2.0+ License.\u003Cbr \u002F>\nYou can freely use, modify, and distribute it under the terms of this license. See the full license at: https:\u002F\u002Fopensource.org\u002Flicenses\u002FGPL-2.0\u003C\u002Fp>\n","Adds a Last Modified column in WordPress admin showing the date, time, and user of the last update for posts, pages, products and custom types.",260,"2025-12-02T10:16:00.000Z",[89,90,91,56,92],"custom-post-types","editorial-tools","last-modified","post-tracking","https:\u002F\u002Ftechnologywisdom.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftw-post-modifier-tracker.1.0.0.zip",{"slug":96,"name":97,"version":98,"author":99,"author_profile":100,"description":101,"short_description":102,"active_installs":103,"downloaded":104,"rating":26,"num_ratings":35,"last_updated":105,"tested_up_to":106,"requires_at_least":107,"requires_php":24,"tags":108,"homepage":117,"download_link":118,"security_score":61,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"post-lock","Post Lock","1.0","ggwicz","https:\u002F\u002Fprofiles.wordpress.org\u002Fggwicz\u002F","\u003Cp>\u003Cem>It’s way too easy to accidentally publish or update a post on WordPress.\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>https:\u002F\u002Fvimeo.com\u002F178698875\u003C\u002Fp>\n\u003Cp>Post Lock prevents accidental updating or publishing of content by requiring a password to do either.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Adds a layer of protection without adding a headache: unlocking a post is a seamless experience and takes a few seconds.\u003C\u002Fli>\n\u003Cli>Works on all post types (you can easily exclude or include post types with a plugin filter).\u003C\u002Fli>\n\u003Cli>Simple, solid code.\u003C\u002Fli>\n\u003Cli>If a post is unlocked, and two beats of the WordPress Heartbeat API happen without action (which is usally 30 seconds, 15 per beat), then the post is re-locked.\u003C\u002Fli>\n\u003Cli>Numerous plugin filters make it easy to customize the plugin.\u003C\u002Fli>\n\u003C\u002Ful>\n","Post Lock prevents accidental updating or publishing of content by requiring a password to do either.",10,1646,"2016-08-13T05:33:00.000Z","4.5.33","4.2",[109,110,111,96,112,113,114,115,116],"content-management","editing","editorial","publish-lock","publishing","tools","update","utility","http:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpost-lock\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpost-lock.zip",{"slug":120,"name":121,"version":122,"author":123,"author_profile":124,"description":125,"short_description":126,"active_installs":103,"downloaded":127,"rating":26,"num_ratings":35,"last_updated":128,"tested_up_to":129,"requires_at_least":130,"requires_php":24,"tags":131,"homepage":24,"download_link":136,"security_score":61,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"sticky-editor","Sticky Editor","1.4","Carlos Miguel Silva","https:\u002F\u002Fprofiles.wordpress.org\u002Fcarlosmiguelsns\u002F","\u003Cp>When we are writing content and the text grows the mceToolbar becomes a sticky element, so when necessary we can use the formatting options, without having to scroll to select the text and format, to scroll back and continue writing, so\u003Cbr \u002F>\nwhen the edit box out of the screen the mceToolbar also no longer visible.\u003C\u002Fp>\n\u003Ch4>Feedback\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fell free to suggest or contribute\u003C\u002Fli>\n\u003Cli>Can find me on twitter @carlosmiguelsns\u003C\u002Fli>\n\u003C\u002Ful>\n","Use a mceToolbar continuously while writing the content (as our text grows inside the editor box) for the page or post.",2744,"2014-06-27T10:35:00.000Z","3.9.40","3.0",[19,132,133,134,135],"mcetoolbar","post","sticky","tinymce","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fsticky-editor.zip",{"attackSurface":138,"codeSignals":231,"taintFlows":248,"riskAssessment":335,"analyzedAt":338},{"hooks":139,"ajaxHandlers":164,"restRoutes":227,"shortcodes":228,"cronEvents":229,"entryPointCount":230,"unprotectedCount":13},[140,146,150,154,158,161],{"type":141,"name":142,"callback":143,"file":144,"line":145},"action","admin_menu","auto_translator_register_hidden_page","po-auto-fill-helper.php",32,{"type":141,"name":147,"callback":148,"file":144,"line":149},"admin_init","auto_translator_settings_init",43,{"type":141,"name":151,"callback":152,"file":144,"line":153},"admin_enqueue_scripts","auto_translator_admin_scripts",770,{"type":141,"name":155,"callback":156,"file":144,"line":157},"admin_footer","auto_translator_modal_html",797,{"type":141,"name":142,"callback":159,"file":160,"line":149},"quick_translate_add_admin_menu","quick-translate-pot-po-mo.php",{"type":141,"name":151,"callback":162,"file":160,"line":163},"quick_translate_enqueue_assets",52,[165,171,175,179,183,187,191,195,199,203,207,211,215,219,223],{"action":166,"nopriv":167,"callback":168,"hasNonce":169,"hasCapCheck":169,"file":144,"line":170},"auto_translator_save_key",false,"auto_translator_ajax_save_key",true,180,{"action":172,"nopriv":167,"callback":173,"hasNonce":169,"hasCapCheck":169,"file":144,"line":174},"auto_translator_preview","auto_translator_ajax_preview",350,{"action":176,"nopriv":167,"callback":177,"hasNonce":169,"hasCapCheck":169,"file":144,"line":178},"auto_translator_save","auto_translator_ajax_save",492,{"action":180,"nopriv":167,"callback":181,"hasNonce":169,"hasCapCheck":169,"file":160,"line":182},"mmpt_check_i18n","mmpt_check_i18n_callback",57,{"action":184,"nopriv":167,"callback":185,"hasNonce":169,"hasCapCheck":169,"file":160,"line":186},"mmpt_check_pot_file","mmpt_check_pot_file_callback",58,{"action":188,"nopriv":167,"callback":189,"hasNonce":169,"hasCapCheck":169,"file":160,"line":190},"mmpt_check_po_file","mmpt_check_po_file_callback",59,{"action":192,"nopriv":167,"callback":193,"hasNonce":169,"hasCapCheck":169,"file":160,"line":194},"mmpt_check_mo_file","mmpt_check_mo_file_callback",60,{"action":196,"nopriv":167,"callback":197,"hasNonce":169,"hasCapCheck":169,"file":160,"line":198},"mmpt_generate_pot","mmpt_generate_pot_callback",61,{"action":200,"nopriv":167,"callback":201,"hasNonce":169,"hasCapCheck":169,"file":160,"line":202},"mmpt_generate_po","mmpt_generate_po_callback",62,{"action":204,"nopriv":167,"callback":205,"hasNonce":169,"hasCapCheck":169,"file":160,"line":206},"mmpt_load_po","mmpt_load_po_callback",63,{"action":208,"nopriv":167,"callback":209,"hasNonce":169,"hasCapCheck":169,"file":160,"line":210},"mmpt_save_po","mmpt_save_po_callback",64,{"action":212,"nopriv":167,"callback":213,"hasNonce":169,"hasCapCheck":169,"file":160,"line":214},"mmpt_delete_mo_file","mmpt_delete_mo_file_callback",65,{"action":216,"nopriv":167,"callback":217,"hasNonce":169,"hasCapCheck":169,"file":160,"line":218},"mmpt_download_pot","mmpt_download_pot_callback",66,{"action":220,"nopriv":167,"callback":221,"hasNonce":169,"hasCapCheck":169,"file":160,"line":222},"mmpt_download_po","mmpt_download_po_callback",67,{"action":224,"nopriv":167,"callback":225,"hasNonce":169,"hasCapCheck":169,"file":160,"line":226},"mmpt_download_mo","mmpt_download_mo_callback",68,[],[],[],15,{"dangerousFunctions":232,"sqlUsage":233,"outputEscaping":235,"fileOperations":35,"externalRequests":35,"nonceChecks":230,"capabilityChecks":246,"bundledLibraries":247},[],{"prepared":13,"raw":13,"locations":234},[],{"escaped":236,"rawEcho":237,"locations":238},101,3,[239,242,244],{"file":160,"line":240,"context":241},903,"raw output",{"file":160,"line":243,"context":241},944,{"file":160,"line":245,"context":241},985,16,[],[249,267,275,296,309,322],{"entryPoint":250,"graph":251,"unsanitizedCount":13,"severity":266},"auto_translator_ajax_save_key (po-auto-fill-helper.php:154)",{"nodes":252,"edges":264},[253,258],{"id":254,"type":255,"label":256,"file":144,"line":257},"n0","source","$_POST (x2)",163,{"id":259,"type":260,"label":261,"file":144,"line":262,"wp_function":263},"n1","sink","update_option() [Settings Manipulation]",175,"update_option",[265],{"from":254,"to":259,"sanitized":169},"low",{"entryPoint":268,"graph":269,"unsanitizedCount":13,"severity":266},"\u003Cpo-auto-fill-helper> (po-auto-fill-helper.php:0)",{"nodes":270,"edges":273},[271,272],{"id":254,"type":255,"label":256,"file":144,"line":257},{"id":259,"type":260,"label":261,"file":144,"line":262,"wp_function":263},[274],{"from":254,"to":259,"sanitized":169},{"entryPoint":276,"graph":277,"unsanitizedCount":13,"severity":266},"mmpt_download_pot_callback (quick-translate-pot-po-mo.php:874)",{"nodes":278,"edges":293},[279,282,286,289],{"id":254,"type":255,"label":280,"file":160,"line":281},"$_GET (x2)",884,{"id":259,"type":260,"label":283,"file":160,"line":284,"wp_function":285},"header() [Header Injection]",901,"header",{"id":287,"type":255,"label":288,"file":160,"line":281},"n2","$_GET",{"id":290,"type":260,"label":291,"file":160,"line":240,"wp_function":292},"n3","echo() [XSS]","echo",[294,295],{"from":254,"to":259,"sanitized":169},{"from":287,"to":290,"sanitized":169},{"entryPoint":297,"graph":298,"unsanitizedCount":13,"severity":266},"mmpt_download_po_callback (quick-translate-pot-po-mo.php:914)",{"nodes":299,"edges":306},[300,302,304,305],{"id":254,"type":255,"label":280,"file":160,"line":301},924,{"id":259,"type":260,"label":283,"file":160,"line":303,"wp_function":285},942,{"id":287,"type":255,"label":288,"file":160,"line":301},{"id":290,"type":260,"label":291,"file":160,"line":243,"wp_function":292},[307,308],{"from":254,"to":259,"sanitized":169},{"from":287,"to":290,"sanitized":169},{"entryPoint":310,"graph":311,"unsanitizedCount":13,"severity":266},"mmpt_download_mo_callback (quick-translate-pot-po-mo.php:955)",{"nodes":312,"edges":319},[313,315,317,318],{"id":254,"type":255,"label":280,"file":160,"line":314},965,{"id":259,"type":260,"label":283,"file":160,"line":316,"wp_function":285},983,{"id":287,"type":255,"label":288,"file":160,"line":314},{"id":290,"type":260,"label":291,"file":160,"line":245,"wp_function":292},[320,321],{"from":254,"to":259,"sanitized":169},{"from":287,"to":290,"sanitized":169},{"entryPoint":323,"graph":324,"unsanitizedCount":13,"severity":266},"\u003Cquick-translate-pot-po-mo> (quick-translate-pot-po-mo.php:0)",{"nodes":325,"edges":332},[326,328,329,331],{"id":254,"type":255,"label":327,"file":160,"line":281},"$_GET (x6)",{"id":259,"type":260,"label":283,"file":160,"line":284,"wp_function":285},{"id":287,"type":255,"label":330,"file":160,"line":281},"$_GET (x3)",{"id":290,"type":260,"label":291,"file":160,"line":240,"wp_function":292},[333,334],{"from":254,"to":259,"sanitized":169},{"from":287,"to":290,"sanitized":169},{"summary":336,"deductions":337},"Based on the provided static analysis and vulnerability history, the \"quick-translate-pot-po-mo\" plugin v2.1.2 exhibits a generally strong security posture. The static analysis reveals a well-implemented approach to security controls, with no detected dangerous functions, all SQL queries utilizing prepared statements, and a very high percentage of properly escaped output.  Crucially, all AJAX handlers and REST API routes (if any were present) appear to have proper authentication and capability checks, significantly reducing the attack surface.\n\nTaint analysis shows zero flows with unsanitized paths, indicating that the plugin is likely not vulnerable to common injection attacks like path traversal or command injection through user-supplied data. The complete absence of known CVEs and past vulnerabilities further strengthens this positive assessment. The presence of file operations and external HTTP requests is noted, but without further context on how these are handled, their risk is not immediately quantifiable from this data alone. However, the strong security practices observed in other areas suggest these might also be implemented securely.\n\nIn conclusion, the \"quick-translate-pot-po-mo\" plugin v2.1.2 demonstrates a commitment to secure coding practices. The lack of critical or high-severity issues in static analysis and the clean vulnerability history are significant strengths. While the presence of file operations and external HTTP requests warrants careful manual review in a deeper dive, the available data points to a low-risk plugin.",[],"2026-03-16T22:56:07.381Z",{"wat":340,"direct":349},{"assetPaths":341,"generatorPatterns":344,"scriptPaths":345,"versionParams":346},[342,343],"\u002Fwp-content\u002Fplugins\u002Fquick-translate-pot-po-mo\u002Fassets\u002Fqtppm-admin.css","\u002Fwp-content\u002Fplugins\u002Fquick-translate-pot-po-mo\u002Fassets\u002Fqtppm-admin.js",[],[343],[347,348],"quick-translate-pot-po-mo\u002Fassets\u002Fqtppm-admin.css?ver=","quick-translate-pot-po-mo\u002Fassets\u002Fqtppm-admin.js?ver=",{"cssClasses":350,"htmlComments":351,"htmlAttributes":352,"restEndpoints":354,"jsGlobals":355,"shortcodeOutput":357},[],[],[353],"data-plugin-slug",[],[356],"QuickTranslate",[],{"error":169,"url":359,"statusCode":360,"statusMessage":361,"message":361},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fquick-translate-pot-po-mo\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":363,"versions":364},7,[365,370,377,384,391,398,405],{"version":6,"download_url":25,"svn_tag_url":366,"released_at":27,"has_diff":167,"diff_files_changed":367,"diff_lines":27,"trac_diff_url":368,"vulnerabilities":369,"is_current":169},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fquick-translate-pot-po-mo\u002Ftags\u002F2.2.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fquick-translate-pot-po-mo%2Ftags%2F2.1.2&new_path=%2Fquick-translate-pot-po-mo%2Ftags%2F2.2.0",[],{"version":371,"download_url":372,"svn_tag_url":373,"released_at":27,"has_diff":167,"diff_files_changed":374,"diff_lines":27,"trac_diff_url":375,"vulnerabilities":376,"is_current":167},"2.1.2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquick-translate-pot-po-mo.2.1.2.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fquick-translate-pot-po-mo\u002Ftags\u002F2.1.2\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fquick-translate-pot-po-mo%2Ftags%2F2.1.1&new_path=%2Fquick-translate-pot-po-mo%2Ftags%2F2.1.2",[],{"version":378,"download_url":379,"svn_tag_url":380,"released_at":27,"has_diff":167,"diff_files_changed":381,"diff_lines":27,"trac_diff_url":382,"vulnerabilities":383,"is_current":167},"2.1.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquick-translate-pot-po-mo.2.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fquick-translate-pot-po-mo\u002Ftags\u002F2.1.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fquick-translate-pot-po-mo%2Ftags%2F2.1.0&new_path=%2Fquick-translate-pot-po-mo%2Ftags%2F2.1.1",[],{"version":385,"download_url":386,"svn_tag_url":387,"released_at":27,"has_diff":167,"diff_files_changed":388,"diff_lines":27,"trac_diff_url":389,"vulnerabilities":390,"is_current":167},"2.1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquick-translate-pot-po-mo.2.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fquick-translate-pot-po-mo\u002Ftags\u002F2.1.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fquick-translate-pot-po-mo%2Ftags%2F2.0.0&new_path=%2Fquick-translate-pot-po-mo%2Ftags%2F2.1.0",[],{"version":392,"download_url":393,"svn_tag_url":394,"released_at":27,"has_diff":167,"diff_files_changed":395,"diff_lines":27,"trac_diff_url":396,"vulnerabilities":397,"is_current":167},"2.0.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquick-translate-pot-po-mo.2.0.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fquick-translate-pot-po-mo\u002Ftags\u002F2.0.0\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fquick-translate-pot-po-mo%2Ftags%2F1.1.1&new_path=%2Fquick-translate-pot-po-mo%2Ftags%2F2.0.0",[],{"version":399,"download_url":400,"svn_tag_url":401,"released_at":27,"has_diff":167,"diff_files_changed":402,"diff_lines":27,"trac_diff_url":403,"vulnerabilities":404,"is_current":167},"1.1.1","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquick-translate-pot-po-mo.1.1.1.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fquick-translate-pot-po-mo\u002Ftags\u002F1.1.1\u002F",[],"https:\u002F\u002Fplugins.trac.wordpress.org\u002Fchangeset?old_path=%2Fquick-translate-pot-po-mo%2Ftags%2F1.1.0&new_path=%2Fquick-translate-pot-po-mo%2Ftags%2F1.1.1",[],{"version":406,"download_url":407,"svn_tag_url":408,"released_at":27,"has_diff":167,"diff_files_changed":409,"diff_lines":27,"trac_diff_url":27,"vulnerabilities":410,"is_current":167},"1.1.0","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fquick-translate-pot-po-mo.1.1.0.zip","https:\u002F\u002Fplugins.svn.wordpress.org\u002Fquick-translate-pot-po-mo\u002Ftags\u002F1.1.0\u002F",[],[]]