{"id":361354,"date":"2026-09-03T12:51:43","date_gmt":"2026-09-03T12:51:43","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/koz-translate-diagnostics\/"},"modified":"2026-09-03T17:03:56","modified_gmt":"2026-09-03T17:03:56","slug":"koz-translate-diagnostics","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/koz-translate-diagnostics\/","author":18387562,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.3.6","stable_tag":"0.3.6","tested":"7.1","requires":"6.2","requires_php":"8.0","requires_plugins":null,"header_name":"KOZ Translate Diagnostics","header_author":"Tony Kozyriev","header_description":"Read-only diagnostics and privacy-safe reports for KOZ Static Translate installations.","assets_banners_color":"544497","last_updated":"2026-09-03 17:03:56","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.paypal.com\/cgi-bin\/webscr?cmd=_donations&business=kozyriev%40uafree.org&item_name=Support+KOZ+WordPress+plugin+development&currency_code=USD","header_plugin_uri":"https:\/\/github.com\/ramirkoz\/ua-free-plugins","header_author_uri":"https:\/\/www.linkedin.com\/in\/tonykoz\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":36,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.3.6":{"tag":"0.3.6","author":"ramirkz","date":"2026-09-03 17:03:56","revision":3680115}},"upgrade_notice":{"0.3.6":"<p>WordPress 7.1 compatibility metadata update; plugin behavior remains unchanged.<\/p>","0.3.4":"<p>Corrects index-readiness calculations to follow effective public translation rendering, including translation-memory fallback.<\/p>","0.3.3":"<p>Adds page-level translation\/index-readiness diagnostics and mixed-language critical-field blockers while remaining read-only.<\/p>","0.3.2":"<p>Updates diagnostics to the current KOZ Static Translate storage\/API while keeping legacy read compatibility.<\/p>","0.3.1":"<p>The public plugin folder and slug changed. Deactivate the former package first, then verify diagnostics before deleting it.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3679727,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3679727,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3679727,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3679727,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.3.6"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[13289,23519,99,396,2333],"plugin_category":[48,54],"plugin_contributors":[275103],"plugin_business_model":[],"class_list":["post-361354","plugin","type-plugin","status-publish","hentry","plugin_tags-azure","plugin_tags-diagnostics","plugin_tags-multilingual","plugin_tags-privacy","plugin_tags-translation","plugin_category-language-tools","plugin_category-security-and-spam-protection","plugin_contributors-ramirkz","plugin_committers-ramirkz"],"banners":{"banner":"https:\/\/ps.w.org\/koz-translate-diagnostics\/assets\/banner-772x250.png?rev=3679727","banner_2x":"https:\/\/ps.w.org\/koz-translate-diagnostics\/assets\/banner-1544x500.png?rev=3679727","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/koz-translate-diagnostics\/assets\/icon-128x128.png?rev=3679727","icon_2x":"https:\/\/ps.w.org\/koz-translate-diagnostics\/assets\/icon-256x256.png?rev=3679727","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>KOZ Translate Diagnostics checks the operational state of KOZ Static Translate without changing translation data, options, cron events or caches.<\/p>\n\n<p>The plugin first uses the translator public diagnostics API. Older installations are inspected through a read-only compatibility layer. Quick mode avoids expensive full-table comparisons; deep mode verifies source hashes and prepares a privacy-safe JSON payload from the same scan result for immediate browser-side download.<\/p>\n\n<p>The plugin was originally developed for the UA FREE charitable foundation website, which remains a production environment for the suite. The software is independently owned and maintained by Tony Kozyriev (<code>ramirkz<\/code>).<\/p>\n\n<h4>Part of the KOZ Suite<\/h4>\n\n<p>This plugin is <strong>one focused module of the broader KOZ Suite<\/strong>, a family of independent WordPress plugins that share a common KOZ administration experience and visual identity.<\/p>\n\n<p>Each KOZ plugin remains independently installable, so site owners can use only the modules they need or combine several modules into one toolkit.<\/p>\n\n<p>Current public KOZ plugins:<\/p>\n\n<ul>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/koz-seo-core\/\">KOZ SEO Core<\/a> \u2014 technical SEO, schema, sitemaps, AI discovery and OpenAI Vision image ALT.<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/koz-copy-actions\/\">KOZ Copy Actions<\/a> \u2014 accessible copy-to-clipboard actions for selected WordPress content.<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/koz-url-only-comment-spam\/\">KOZ URL-Only Comment Spam<\/a> \u2014 privacy-first local moderation for URL-only comment spam.<\/li>\n<li><a href=\"https:\/\/wordpress.org\/plugins\/koz-static-translate\/\">KOZ Static Translate<\/a> \u2014 AI-powered multilingual translation with Microsoft Azure AI Translator and static language routes.<\/li>\n<li>KOZ Translate Diagnostics \u2014 read-only health checks and privacy-safe diagnostic reports for KOZ Static Translate.<\/li>\n<\/ul>\n\n<h4>Main features<\/h4>\n\n<ul>\n<li>Detects KOZ Static Translate and the former UA FREE package during migration.<\/li>\n<li>Summarizes sources, segments, translations, translation memory, queues, usage, cron and recent errors.<\/li>\n<li>Provides quick and administrator-triggered deep scans.<\/li>\n<li>Exports a privacy-safe JSON report with redacted operational identifiers without repeating the deep scan during download.<\/li>\n<li>Makes no database writes and sends no external requests.<\/li>\n<li>Includes ten administration languages with English fallback.<\/li>\n<li>Integrates with KOZ Suite while supporting the current translator storage\/API with read-only legacy fallback.<\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<p>The plugin is read-only. Exported reports remove raw paths and table names, fingerprint operational identifiers and redact credentials, addresses and common payment identifiers.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Deactivate the former UA FREE Translate Diagnostics package, but keep it installed until verification is complete.<\/li>\n<li>Upload and activate KOZ Translate Diagnostics.<\/li>\n<li>Open KOZ Suite &gt; Translate Diagnostics.<\/li>\n<li>Verify translator detection, quick scan and one deep JSON export.<\/li>\n<li>Run Plugin Check.<\/li>\n<li>Remove the former package only after the KOZ version works correctly.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20plugin%20change%20translation%20data%3F\"><h3>Does this plugin change translation data?<\/h3><\/dt>\n<dd><p>No. It performs read-only diagnostics and does not run the translator queue, alter options, clear caches or change cron events.<\/p><\/dd>\n<dt id=\"does%20it%20work%20with%20the%20former%20translator%20package%3F\"><h3>Does it work with the former translator package?<\/h3><\/dt>\n<dd><p>Yes. It detects both KOZ Static Translate and the former UA FREE package during migration.<\/p><\/dd>\n<dt id=\"is%20this%20an%20official%20ua%20free%20foundation%20plugin%3F\"><h3>Is this an official UA FREE foundation plugin?<\/h3><\/dt>\n<dd><p>No. It originated from production work for the foundation website but is independently owned and maintained by Tony Kozyriev.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.3.6<\/h4>\n\n<ul>\n<li>WordPress.org first public release; positioned as the fifth public KOZ Suite plugin.<\/li>\n<li>Updated WordPress compatibility metadata for WordPress 7.1.<\/li>\n<li>No functional changes.<\/li>\n<\/ul>\n\n<h4>0.3.5<\/h4>\n\n<ul>\n<li>Prevents Cloudflare\/origin timeout during JSON download by reusing the already-computed deep-scan result.<\/li>\n<li>Deep-scan JSON is downloaded directly by the browser; the download button no longer starts a second heavy report query.<\/li>\n<li>Legacy export links redirect to the deep scan instead of recomputing the report.<\/li>\n<li>Preserves the read-only contract: no database writes, report files, external requests, queue execution or robots changes.<\/li>\n<\/ul>\n\n<h4>0.3.4<\/h4>\n\n<ul>\n<li>Fixes readiness to use the same current-translation plus translation-memory fallback as public KOZ Static Translate rendering.<\/li>\n<li>Queue status no longer determines page-level translation readiness.<\/li>\n<li>Critical title\/meta\/Open Graph\/H1 checks now use effective translated text.<\/li>\n<li>Deep summaries expose effective-ready and memory-fallback counts for consistent missing estimates.<\/li>\n<li>Source-scan freshness remains a separate safety blocker; the plugin stays fully read-only.<\/li>\n<\/ul>\n\n<h4>0.3.3<\/h4>\n\n<ul>\n<li>Adds deep page-level translation readiness diagnostics without changing robots directives or translation data.<\/li>\n<li>Detects missing title, meta description, Open Graph title\/description and H1 translations when those source fields exist.<\/li>\n<li>Flags likely mixed-language critical fields using privacy-safe script\/language signals, including source-language leakage on translated routes.<\/li>\n<li>Adds a per-language ready-for-indexing versus keep-noindex summary and actionable blocker table in the administrator deep scan.<\/li>\n<li>Keeps export identifiers privacy-safe and preserves the read-only\/no-external-request contract.<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Added unique koztDiag \/ KOZTDIAG identifiers for plugin-owned runtime names.<\/li>\n<li>Added canonical KOZ Static Translate 0.9.2 API, option, table, cron and transient detection with legacy read fallback.<\/li>\n<li>Preserved read-only diagnostics, privacy-safe JSON export and KOZ Suite navigation.<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Added current KOZ Suite navigation and correct KOZ-versus-legacy status detection.<\/li>\n<li>Added ten runtime administration languages with English fallback.<\/li>\n<li>Added KOZ Static Translate detection while retaining compatibility with the former package.<\/li>\n<li>Replaced bundled PO\/MO translations with source-only metadata and runtime dictionaries.<\/li>\n<li>Updated ownership, support and repository metadata.<\/li>\n<li>Preserved the read-only diagnostics contract and established translator storage identifiers.<\/li>\n<\/ul>\n\n<h4>0.2.14<\/h4>\n\n<ul>\n<li>Last stable release under the former UA FREE public branding.<\/li>\n<\/ul>","raw_excerpt":"Read-only diagnostics and privacy-safe reports for KOZ Static Translate.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/361354","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=361354"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/ramirkz"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=361354"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=361354"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=361354"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=361354"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=361354"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=361354"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}