{"slug":"voxfor-multilanguage","name":"Voxfor Multilanguage","description":"Professional multilingual WordPress plugin using the DeepL API. Transform your website into a global platform.","author":"voxfor","active_installs":10,"version":"2.2.7","wp_org_url":"https://wordpress.org/plugins/voxfor-multilanguage/","is_closed":false,"cleanup":{"has_uninstall_hook":false,"drops_tables_on_uninstall":false,"deletes_options_on_uninstall":false},"tables":[{"table_name":"exclusions","full_table_name":"wp_exclusions","description":"Stores exclusions data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"glossary","full_table_name":"wp_glossary","description":"Stores glossary data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"security_log","full_table_name":"wp_security_log","description":"A logging table that records activity, events, or audit history.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"slugs","full_table_name":"wp_slugs","description":"Stores slugs data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"statistics","full_table_name":"wp_statistics","description":"Stores statistics data created by this plugin.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"task_log","full_table_name":"wp_task_log","description":"A logging table that records activity, events, or audit history.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"taxonomy_slugs","full_table_name":"wp_taxonomy_slugs","description":"Stores taxonomy slugs data created by this plugin.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"bigint(20) unsigned","nullable":false,"primary_key":true},{"name":"term_id","type":"bigint(20) unsigned","nullable":false,"primary_key":false},{"name":"taxonomy","type":"varchar(50)","nullable":false,"primary_key":false},{"name":"language_code","type":"varchar(10)","nullable":false,"primary_key":false},{"name":"slug","type":"varchar(200)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":true,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE IF NOT EXISTS wp_taxonomy_slugs ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, term_id bigint(20) unsigned NOT NULL, taxonomy varchar(50) NOT NULL, language_code varchar(10) NOT NULL, slug varchar(200) NOT NULL, created_at datetime DEFAULT CURRENT_TIMESTAMP, updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY term_lang (term_id, language_code), UNIQUE KEY taxonomy_lang_slug (taxonomy, language_code, slug), KEY idx_term_id (term_id), KEY idx_taxonomy (taxonomy), KEY idx_language_code (language_code) ) $charset_collate;\"; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta( $sql_taxonomy_slugs );"},{"table_name":"translation_queue","full_table_name":"wp_translation_queue","description":"A job queue table for managing background tasks and scheduled operations.","detection_method":"static","confidence":"high","columns":[],"create_sql":null},{"table_name":"translations","full_table_name":"wp_translations","description":"Stores translations data created by this plugin.","detection_method":"static","confidence":"high","columns":[{"name":"id","type":"bigint(20) unsigned","nullable":false,"primary_key":true},{"name":"source_hash","type":"varchar(64)","nullable":false,"primary_key":false},{"name":"source_text","type":"longtext","nullable":false,"primary_key":false},{"name":"translated_text","type":"longtext","nullable":false,"primary_key":false},{"name":"language_code","type":"varchar(10)","nullable":false,"primary_key":false},{"name":"context","type":"varchar(100)","nullable":true,"primary_key":false},{"name":"post_id","type":"bigint(20) unsigned","nullable":true,"primary_key":false},{"name":"is_locked","type":"tinyint(1)","nullable":true,"primary_key":false},{"name":"needs_review","type":"tinyint(1)","nullable":true,"primary_key":false},{"name":"provider","type":"varchar(50)","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":true,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":true,"primary_key":false},{"name":"term","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"translation","type":"varchar(255)","nullable":false,"primary_key":false},{"name":"language_code","type":"varchar(10)","nullable":false,"primary_key":false},{"name":"case_sensitive","type":"tinyint(1)","nullable":true,"primary_key":false},{"name":"match_type","type":"enum('exact','partial')","nullable":true,"primary_key":false},{"name":"priority","type":"int(11)","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":true,"primary_key":false},{"name":"rule_type","type":"enum('url','css','regex','namespace')","nullable":false,"primary_key":false},{"name":"rule_value","type":"text","nullable":false,"primary_key":false},{"name":"description","type":"text","nullable":true,"primary_key":false},{"name":"is_active","type":"tinyint(1)","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":true,"primary_key":false},{"name":"source_hash","type":"varchar(64)","nullable":false,"primary_key":false},{"name":"source_text","type":"longtext","nullable":false,"primary_key":false},{"name":"language_code","type":"varchar(10)","nullable":false,"primary_key":false},{"name":"context","type":"varchar(100)","nullable":true,"primary_key":false},{"name":"post_id","type":"bigint(20) unsigned","nullable":true,"primary_key":false},{"name":"status","type":"enum('pending','processing','completed','failed')","nullable":true,"primary_key":false},{"name":"attempts","type":"int(11)","nullable":true,"primary_key":false},{"name":"error_message","type":"text","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":true,"primary_key":false},{"name":"processed_at","type":"datetime","nullable":true,"primary_key":false},{"name":"job_id","type":"varchar(50)","nullable":false,"primary_key":false},{"name":"event","type":"varchar(50)","nullable":false,"primary_key":false},{"name":"data","type":"longtext","nullable":true,"primary_key":false},{"name":"user_id","type":"bigint(20) unsigned","nullable":true,"primary_key":false},{"name":"timestamp","type":"datetime","nullable":true,"primary_key":false},{"name":"post_id","type":"bigint(20) unsigned","nullable":false,"primary_key":false},{"name":"changes","type":"longtext","nullable":false,"primary_key":false},{"name":"user_id","type":"bigint(20) unsigned","nullable":true,"primary_key":false},{"name":"timestamp","type":"datetime","nullable":true,"primary_key":false},{"name":"event_type","type":"varchar(50)","nullable":false,"primary_key":false},{"name":"ip_address","type":"varchar(45)","nullable":true,"primary_key":false},{"name":"user_id","type":"bigint(20) unsigned","nullable":true,"primary_key":false},{"name":"details","type":"longtext","nullable":true,"primary_key":false},{"name":"timestamp","type":"datetime","nullable":true,"primary_key":false},{"name":"stat_type","type":"varchar(50)","nullable":false,"primary_key":false},{"name":"stat_key","type":"varchar(100)","nullable":false,"primary_key":false},{"name":"stat_value","type":"bigint(20)","nullable":true,"primary_key":false},{"name":"date","type":"date","nullable":false,"primary_key":false},{"name":"post_id","type":"bigint(20) unsigned","nullable":false,"primary_key":false},{"name":"language_code","type":"varchar(10)","nullable":false,"primary_key":false},{"name":"slug","type":"varchar(200)","nullable":false,"primary_key":false},{"name":"created_at","type":"datetime","nullable":true,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":true,"primary_key":false},{"name":"term_id","type":"bigint(20) unsigned","nullable":true,"primary_key":false},{"name":"user_id","type":"bigint(20) unsigned","nullable":true,"primary_key":false},{"name":"taxonomy","type":"varchar(50)","nullable":true,"primary_key":false},{"name":"language_code","type":"varchar(10)","nullable":false,"primary_key":false},{"name":"slug","type":"varchar(200)","nullable":false,"primary_key":false},{"name":"slug_type","type":"enum('taxonomy', 'author')","nullable":true,"primary_key":false},{"name":"created_at","type":"datetime","nullable":true,"primary_key":false},{"name":"updated_at","type":"datetime","nullable":true,"primary_key":false}],"create_sql":"CREATE TABLE IF NOT EXISTS wp_translations ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, source_hash varchar(64) NOT NULL, source_text longtext NOT NULL, translated_text longtext NOT NULL, language_code varchar(10) NOT NULL, context varchar(100) DEFAULT 'general', post_id bigint(20) unsigned DEFAULT NULL, is_locked tinyint(1) DEFAULT 0, needs_review tinyint(1) DEFAULT 0, provider varchar(50) DEFAULT 'deepl', created_at datetime DEFAULT CURRENT_TIMESTAMP, updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY unique_translation (source_hash, language_code, context), KEY idx_language (language_code), KEY idx_post_id (post_id), KEY idx_context (context), KEY idx_created (created_at), KEY idx_needs_review (needs_review) ) $charset_collate;\"; // Glossary table $sql_glossary = \"CREATE TABLE IF NOT EXISTS wp_glossary ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, term varchar(255) NOT NULL, translation varchar(255) NOT NULL, language_code varchar(10) NOT NULL, case_sensitive tinyint(1) DEFAULT 0, match_type enum('exact','partial') DEFAULT 'exact', priority int(11) DEFAULT 0, created_at datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY unique_term (term, language_code), KEY idx_language (language_code), KEY idx_priority (priority) ) $charset_collate;\"; // Exclusion rules table $sql_exclusions = \"CREATE TABLE IF NOT EXISTS wp_exclusions ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, rule_type enum('url','css','regex','namespace') NOT NULL, rule_value text NOT NULL, description text, is_active tinyint(1) DEFAULT 1, created_at datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_type (rule_type), KEY idx_active (is_active) ) $charset_collate;\"; // Translation queue table for batch processing $sql_queue = \"CREATE TABLE IF NOT EXISTS wp_translation_queue ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, source_hash varchar(64) NOT NULL, source_text longtext NOT NULL, language_code varchar(10) NOT NULL, context varchar(100) DEFAULT 'general', post_id bigint(20) unsigned DEFAULT NULL, status enum('pending','processing','completed','failed') DEFAULT 'pending', attempts int(11) DEFAULT 0, error_message text, created_at datetime DEFAULT CURRENT_TIMESTAMP, processed_at datetime DEFAULT NULL, PRIMARY KEY (id), UNIQUE KEY unique_queue_item (source_hash, language_code, context), KEY idx_status (status), KEY idx_language (language_code), KEY idx_created (created_at) ) $charset_collate;\"; // Task log table for bulk translation tracking $sql_task_log = \"CREATE TABLE IF NOT EXISTS wp_task_log ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, job_id varchar(50) NOT NULL, event varchar(50) NOT NULL, data longtext, user_id bigint(20) unsigned, timestamp datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_job_id (job_id), KEY idx_event (event), KEY idx_timestamp (timestamp) ) $charset_collate;\"; // Update log table for content change tracking $sql_update_log = \"CREATE TABLE IF NOT EXISTS wp_update_log ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, post_id bigint(20) unsigned NOT NULL, changes longtext NOT NULL, user_id bigint(20) unsigned, timestamp datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_post_id (post_id), KEY idx_timestamp (timestamp) ) $charset_collate;\"; // Security log table $sql_security_log = \"CREATE TABLE IF NOT EXISTS wp_security_log ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, event_type varchar(50) NOT NULL, ip_address varchar(45), user_id bigint(20) unsigned, details longtext, timestamp datetime DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_event_type (event_type), KEY idx_timestamp (timestamp) ) $charset_collate;\"; // Statistics table for analytics $sql_statistics = \"CREATE TABLE IF NOT EXISTS wp_statistics ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, stat_type varchar(50) NOT NULL, stat_key varchar(100) NOT NULL, stat_value bigint(20) DEFAULT 0, date date NOT NULL, PRIMARY KEY (id), UNIQUE KEY unique_stat (stat_type, stat_key, date), KEY idx_date (date), KEY idx_type (stat_type) ) $charset_collate;\"; // Translated slugs table $sql_slugs = \"CREATE TABLE IF NOT EXISTS wp_slugs ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, post_id bigint(20) unsigned NOT NULL, language_code varchar(10) NOT NULL, slug varchar(200) NOT NULL, created_at datetime DEFAULT CURRENT_TIMESTAMP, updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY post_lang (post_id, language_code), UNIQUE KEY lang_slug (language_code, slug), KEY idx_post_id (post_id), KEY idx_language_code (language_code) ) $charset_collate;\"; // Translated slugs table (taxonomies and authors) $sql_taxonomy_slugs = \"CREATE TABLE IF NOT EXISTS wp_taxonomy_slugs ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, term_id bigint(20) unsigned NULL, user_id bigint(20) unsigned NULL, taxonomy varchar(50) NULL, language_code varchar(10) NOT NULL, slug varchar(200) NOT NULL, slug_type enum('taxonomy', 'author') DEFAULT 'taxonomy', created_at datetime DEFAULT CURRENT_TIMESTAMP, updated_at datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (id), UNIQUE KEY term_lang (term_id, language_code, taxonomy), UNIQUE KEY user_lang (user_id, language_code), UNIQUE KEY taxonomy_lang_slug (taxonomy, language_code, slug), KEY idx_term_id (term_id), KEY idx_user_id (user_id), KEY idx_taxonomy (taxonomy), KEY idx_language_code (language_code), KEY idx_slug_type (slug_type) ) $charset_collate;\"; require_once ABSPATH . 'wp-admin/includes/upgrade.php'; dbDelta( $sql_translations );"},{"table_name":"update_log","full_table_name":"wp_update_log","description":"A logging table that records activity, events, or audit history.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null},{"table_name":"voxfor_ml_security_log","full_table_name":"wp_voxfor_ml_security_log","description":"A logging table that records activity, events, or audit history.","detection_method":"static","confidence":"high","columns":[],"create_sql":null},{"table_name":"voxfor_ml_task_log","full_table_name":"wp_voxfor_ml_task_log","description":"A logging table that records activity, events, or audit history.","detection_method":"static","confidence":"high","columns":[],"create_sql":null},{"table_name":"voxfor_ml_update_log","full_table_name":"wp_voxfor_ml_update_log","description":"A logging table that records activity, events, or audit history.","detection_method":"static","confidence":"medium","columns":[],"create_sql":null}],"table_count":13}