Title: KOZ Static Translate
Author: Tony_Koz
Published: <strong>August 27, 2026</strong>
Last modified: August 27, 2026

---

Search plugins

![](https://ps.w.org/koz-static-translate/assets/banner-772x250.png?rev=3669124)

![](https://ps.w.org/koz-static-translate/assets/icon-256x256.png?rev=3669124)

# KOZ Static Translate

 By [Tony_Koz](https://profiles.wordpress.org/ramirkz/)

[Download](https://downloads.wordpress.org/plugin/koz-static-translate.0.9.39.zip)

 * [Details](https://wordpress.org/plugins/koz-static-translate/#description)
 * [Reviews](https://wordpress.org/plugins/koz-static-translate/#reviews)
 *  [Installation](https://wordpress.org/plugins/koz-static-translate/#installation)
 * [Development](https://wordpress.org/plugins/koz-static-translate/#developers)

 [Support](https://wordpress.org/support/plugin/koz-static-translate/)

## Description

KOZ Static Translate is an AI-powered translation plugin for WordPress that creates
static multilingual versions of published content using Microsoft Azure AI Translator.

It scans published WordPress content, splits it into translation segments, reuses
matching translations from local translation memory, sends only required text to
Microsoft Azure Translator, stores completed translations locally and serves clean
translated language routes without modifying the original posts.

#### AI-powered automatic translation workflow

KOZ Static Translate automates the translation workflow after an authorized administrator
starts processing:

 * Detects published WordPress content that requires translation.
 * Reuses translation memory before requesting new AI translations.
 * Sends required text segments to Microsoft Azure AI Translator.
 * Stores completed translations locally in WordPress.
 * Publishes static translated language routes when the required translation state
   is ready.
 * Supports dynamic text added after page load, SVG text and Chart.js content.
 * Provides a floating language selector and a language sitemap.
 * Keeps original WordPress posts unchanged.

The automatic background worker remains disabled in version 0.9.39. Translation 
processing is started by an authorized administrator, while the plugin handles the
queue, translation-memory reuse, Azure requests, local storage and route-readiness
workflow.

#### Part of the KOZ Suite

KOZ Static Translate is one focused module of the KOZ Suite, a family of independent
WordPress plugins with a shared KOZ administration experience and visual identity.

Each KOZ plugin can be installed independently or combined with other KOZ Suite 
modules.

Current public KOZ plugins:

 * [KOZ SEO Core](https://wordpress.org/plugins/koz-seo-core/) — technical SEO, 
   schema, sitemaps, AI discovery and OpenAI Vision image ALT.
 * [KOZ Copy Actions](https://wordpress.org/plugins/koz-copy-actions/) — accessible
   copy-to-clipboard actions for selected WordPress content.
 * [KOZ URL-Only Comment Spam](https://wordpress.org/plugins/koz-url-only-comment-spam/)—
   privacy-first local moderation for URL-only comment spam.
 * KOZ Static Translate — AI-powered multilingual translation with Microsoft Azure
   Translator and static language routes.

#### Main features

 * AI-powered translation through Microsoft Azure AI Translator.
 * Automatic queue, translation-memory and route-readiness workflow after administrator
   start.
 * Translation memory to avoid paying repeatedly for identical text.
 * Queued translation processing with monthly character controls.
 * Static multilingual routes without changing original posts.
 * Public language routes enabled only after required translation state is ready.
 * Dynamic text, SVG and Chart.js translation support.
 * Floating language selector and translation sitemap.
 * Multilingual SEO integration for clean translated URLs.
 * Backup-first cleanup and reset tools.
 * Ten bundled administration languages with English fallback.

#### Source code

The complete human-readable source for this plugin is included in the plugin package
and is maintained publicly at:
 https://github.com/ramirkoz/ua-free-plugins/tree/
main/koz-static-translate

The JavaScript files in `assets/` are shipped as human-readable source files. No
npm, webpack or other build step is required to regenerate the distributed JavaScript.

#### Privacy

KOZ Static Translate does not add analytics or advertising telemetry.

Only text selected for translation is sent to the configured Microsoft Azure Translator
endpoint. Azure credentials are encrypted in the WordPress database using keys derived
from WordPress salts.

### External services

KOZ Static Translate optionally uses Microsoft Azure Translator / Azure AI Translator
when the site administrator configures Azure credentials and starts translation 
processing.

When translation processing runs, text segments selected from published WordPress
content are sent to the configured Azure Translator endpoint so Microsoft can return
translated text. The plugin does not send visitor analytics or advertising telemetry
to the developer. Azure Translator credentials are stored in the WordPress database
in encrypted form using keys derived from WordPress salts.

The external service is not required for WordPress administration, cleanup tools,
translation-memory storage, language routing logic or KOZ Suite navigation, but 
new machine translations cannot be produced without a configured translation provider.

Service provider: Microsoft Azure Translator / Azure AI Translator.
 Default API
endpoint: https://api.cognitive.microsofttranslator.com

What is sent: only text segments selected for translation, together with the source
and target language codes required by the Translator API. Site visitor analytics,
advertising identifiers and WordPress user passwords are not sent by this plugin.

When it is sent: only when an authorized site administrator explicitly runs translation
processing or an administrator-only dynamic translation request while Azure credentials
are configured. The automatic background worker remains disabled in this release.

Why it is sent: to receive machine-translated text that is stored in the site’s 
translation memory and translation tables.

Azure Translator product information:
 https://azure.microsoft.com/products/ai-services/
ai-translator/

Azure Translator data, privacy and security information:
 https://learn.microsoft.
com/en-us/azure/foundry/responsible-ai/translator/data-privacy-security

Microsoft Privacy Statement:
 https://privacy.microsoft.com/en-us/privacystatement

Microsoft Product Terms for Azure services:
 https://www.microsoft.com/licensing/
terms/productoffering/MicrosoftAzureServices/MCA

## Installation

 1. Upload and activate KOZ Static Translate.
 2. Open KOZ Suite > Static Translate.
 3. Configure Microsoft Azure Translator credentials.
 4. Review the translation queue and supported languages.
 5. Start AI translation processing from the plugin administration screen.
 6. Verify a translated language route and run Plugin Check after installation or upgrade.

Existing compatible translation settings and stored translation data from earlier
installations are migrated automatically where supported.

## FAQ

### Does KOZ Static Translate use AI translation?

Yes. New machine translations are produced through Microsoft Azure AI Translator
when Azure credentials are configured and an authorized administrator starts translation
processing.

### Is translation automatic?

After an authorized administrator starts processing, the plugin automatically manages
the queue, translation-memory reuse, Azure translation requests, local storage and
translated-route readiness. The unattended background worker is disabled in version
0.9.39.

### Does it change my original WordPress posts?

No. The plugin stores translation data in plugin-owned tables and serves translated
language routes without rewriting the original posts.

### Does it translate everything again every time?

No. Translation memory is checked first so existing matching translations can be
reused before a new Azure translation request is made.

### Can KOZ Static Translate be used without the other KOZ plugins?

Yes. It is part of KOZ Suite but remains an independent plugin and can be installed
on its own.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“KOZ Static Translate” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Tony_Koz ](https://profiles.wordpress.org/ramirkz/)

[Translate “KOZ Static Translate” into your language.](https://translate.wordpress.org/projects/wp-plugins/koz-static-translate)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/koz-static-translate/),
check out the [SVN repository](https://plugins.svn.wordpress.org/koz-static-translate/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/koz-static-translate/)
by [RSS](https://plugins.trac.wordpress.org/log/koz-static-translate/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 0.9.39

 * Updated WordPress.org description to emphasize AI-powered Microsoft Azure translation
   and KOZ Suite positioning.
 * Uses the WordPress Filesystem API for backup-directory/file permission changes
   and legacy-backup moves.
 * Sanitizes the server document-root value before using it in backup path safety
   checks.
 * WordPress Plugin Check remediation for the filesystem and input-sanitization 
   findings reported after 0.9.38.

#### 0.9.38

 * Stores cleanup/reset backups only in a verified non-public temporary directory
   and migrates legacy uploads backups away from the public web tree.
 * Hardens inline JavaScript configuration JSON with JSON_HEX escaping and validates
   the JavaScript global identifier before enqueue output.
 * WordPress.org T3 security/compliance remediation; translation behavior is otherwise
   unchanged.

#### 0.9.37

 * Uses WordPress enqueue APIs for plugin-owned frontend CSS and JavaScript instead
   of printing raw style/script tags.
 * Makes the dynamic translation REST endpoint administrator-only with capability
   checks and WordPress REST nonce authentication; public HMAC tokens are removed.
 * Stops automatically deactivating the former UA FREE plugin and shows a manual-
   action notice instead.
 * Documents the public source repository and Microsoft Azure Translator external-
   service data flow, privacy and product terms.
 * Ships the admin JavaScript in human-readable form; translation/readiness behavior
   is otherwise unchanged.

#### 0.9.36

 * Makes meta_description, meta_og_description and meta_twitter_description universally
   non-blocking for page readiness.
 * Makes image alt-text segments non-blocking for readiness while keeping them available
   for later translation.
 * Removes the site-specific text exceptions previously used for readiness and replaces
   consent/privacy handling with generic structural context detection.
 * No Azure request, scan, rebuild, cron or automatic worker is introduced.

#### 0.9.35

 * Adds a universal manual action that prepares exactly one pending Priority Core
   source per click.
 * The next page is selected from dynamically detected internal navigation; no site-
   specific paths, titles or slugs are used.
 * Preparation performs one local source scan and hydrates existing Translation 
   Memory only; no Azure request, full inventory rebuild, cron or automatic loop.

#### 0.9.34

 * Adds a read-only Priority Core discovery diagnostic showing each detected internal
   navigation path and whether it exists in source inventory and core queue.
 * Diagnostic performs no writes, scans, rebuilds, cron work or Azure requests.
 * Priority Core processing behavior remains unchanged from 0.9.33.

#### 0.9.33

 * Priority Core now merges internal links from all assigned primary/main/header
   navigation locations, the richest unassigned classic-menu fallback, and block-
   theme Navigation.
 * External URLs are discarded and duplicate internal paths are removed.
 * No site-specific page names, titles or URL paths are used.

#### 0.9.32

 * Expands universal Priority Core menu detection for page builders and block themes.
 * Detection now checks assigned classic menu locations, unassigned classic nav 
   menus and block-theme wp_navigation menus, then selects the strongest internal
   navigation set.
 * No site-specific page names, titles or URL paths are used.

#### 0.9.31

 * Removes all site-specific Priority Core page names, titles and URL paths.
 * Priority Core is now detected universally from the WordPress home page plus the
   active primary/main navigation menu.
 * Matching uses exact internal URL paths only, preventing legacy pages from entering
   Priority Core because of similar titles.
 * Processing remains manual, local-only and limited to 4 pages per click.

#### 0.9.30

 * Replaces broad core batching with an explicit Priority Core set: Home, Projects,
   Donate, Reports, About, Gallery, Partners and Financial report.
 * Secondary/legacy core URLs and report posts are excluded from this batch entirely.
 * Batch output now shows the Priority Core label and the maximum number of source
   segments still missing for an incomplete page.
 * Processing remains manual, local-only and limited to 4 pages per click.

#### 0.9.29

 * Core readiness batches now use explicit page priority instead of source/database
   ID order.
 * First wave: Home, UA FREE, Donate, About and Reports landing; then remaining 
   top-level core pages; nested core pages last.
 * Reports remain excluded from the core batch. Processing stays manual and limited
   to 4 pages per click.

#### 0.9.28

 * Adds a manual bounded core-readiness batch: maximum 4 core pages per click.
 * Uses only existing local translations and Translation Memory; no Azure, scan,
   rebuild, cron or automatic loop.
 * Incomplete pages remain pending and are reported without being forced ready.

#### 0.9.27

 * Treats two consent-component descriptions and the UA FREE logo alt text as non-
   blocking readiness segments.
 * One-page reconcile safely promotes only those matching segments to protected 
   status, then recalculates readiness from existing local translations/Translation
   Memory.
 * No scan, queue rebuild, automatic worker or Azure request is performed.

#### 0.9.26

 * Adds a read-only one-page diagnostic that lists source segments missing from 
   Translation Memory/ready translations.
 * Diagnostic is capped at 25 rows and performs no writes, scans, rebuilds, cron
   work or Azure requests.
 * Safety-mode behavior remains unchanged.

#### 0.9.25

 * Plugin Check compliance fix for the one-page readiness action: direct nonce verification,
   sanitized path input, and translator comments.
 * No change to the 0.9.24 safety-mode runtime behavior.

#### 0.9.24

 * Adds a bounded one-page readiness reconciliation using existing Translation Memory
   only.
 * The reconciliation performs no source scan, queue rebuild or Azure request.
 * Admin status now accurately reports that the automatic worker is disabled in 
   safety mode.
 * Opening the Static Translate admin screen no longer runs hidden upgrade/repair
   maintenance.

#### 0.9.23

 * Stability release: activation performs no inventory scan, rebuild, readiness 
   repair or Azure work.
 * Automatic cron and shutdown workers are disabled.
 * Manual Run/Rebuild actions are temporarily disabled to protect production stability.
 * Existing translated routes, language switching and stored translation data remain
   available.

#### 0.9.19

 * Keep the language switcher visible on translated provisional routes.
 * Provisional routes show only the source language and the current language, without
   advertising other unfinished translations.

#### 0.9.18

 * The floating language switcher now advertises only fully translated routes for
   the current page and stays hidden when none are ready.
 * Provisional translated routes no longer render the language switcher, preventing
   unfinished language URLs from being exposed through navigation.
 * No changes to Azure budget limits, translation memory, queue contents or public
   URL structure.

#### 0.9.17

 * Updated WordPress compatibility metadata for WordPress 7.1.
 * No functional changes.

#### 0.9.16

 * Fixes retired-language queue cleanup SQL for WordPress 6.0+ without the WP 6.2-
   only %i identifier placeholder.
 * No change to languages, Azure usage logic, translation memory or readiness behavior.

#### 0.9.15

 * Fix Plugin Check prepared-SQL placeholder warning in retired-language queue cleanup.

#### 0.9.14

 * Finalizes the supported public language set: EN/ZH/ES/AR/ID/PT/FR/JA/DE/HI; Russian
   is forbidden.
 * Stops accidental PL/IT/CS/RO Azure queue work without deleting existing translation
   memory.
 * Keeps incomplete routes noindex with blank translation-dependent SEO fields until
   fully ready.
 * Shows Azure characters and requests for every billed language code, including
   inactive/legacy codes.
 * Exposes an optional provider contract for multilingual SEO integration without
   requiring KOZ SEO Core.

#### 0.9.9

 * Adds bounded transient render caching for source and translated HTML to reduce
   repeated same-site rendering work.
 * Caches translated HTML by source render hash and language while keeping translation
   data and URLs unchanged.

#### 0.9.8

 * Stops cache-busting the canonical source page during translated-route rendering.
 * Uses a normal browser-like source fetch with a bounded timeout to reduce intermittent
   translated-route timeouts seen by crawlers and ad destinations.
 * Translation data, queue state, readiness rules and public route structure remain
   unchanged.

#### 0.9.7

 * Fix the remaining English About H1 language mismatch with an exact route-scoped
   fallback.
 * Preserve existing SEO, canonical, Open Graph, robots and hreflang behavior.

#### 0.9.6

 * Fixes missing H1 semantics on provisional `/en/donate/` and `/en/about/` when
   an upstream PageLayer/cache fragment still exposes the primary heading as H2/
   H3.
 * Promotes only an existing matching translated heading; does not invent or duplicate
   heading text.
 * Leaves canonical, og:url, robots, hreflang and metadata behavior unchanged.

#### 0.9.5

 * Fixes Ukrainian metadata leaking into the provisional English home and reports
   routes.
 * Keeps canonical, localized og:url, noindex and hreflang safeguards unchanged.
 * Applies the fallback only when known UA FREE metadata remains in Ukrainian.

#### 0.9.4

 * Rewrites og:url to the localized self URL so social metadata matches the translated
   canonical.
 * Keeps translated-route hreflang checks read-only during frontend rendering.
 * Keeps provisional noindex routes out of hreflang until translation coverage is
   complete.

#### 0.9.3

 * Adds reciprocal source-page hreflang integration with KOZ SEO Core.
 * Exposes only fully translated language routes in source-page hreflang output.
 * Keeps provisional monthly-limit routes safely noindex until every required translation
   segment is ready.

#### 0.9.2

 * Moved plugin-owned runtime identifiers to the unique `kozstx / KOZSTX` prefix
   and `ramirkz\kozstx` namespace.
 * Added automatic migration of existing settings, runtime state and translation
   tables from the former `uafree_st_*` storage.
 * Preserved the existing public language sitemap URL and former Azure configuration
   constants as compatibility inputs.
 * Normalized KOZ Suite navigation and standalone support UI without duplicate support
   panels.

#### 0.9.1

 * Preserved JSON-LD and other JSON script blocks byte-for-byte during translated-
   page DOM processing.
 * Rewrote localized JSON-LD URLs before script protection to prevent invalid structured
   data.
 * Fixed Google Search Console parse errors caused by quotes inside translated site
   names.

#### 0.9.0

 * Rebranded the public package as KOZ Static Translate.
 * Added KOZ Suite navigation and current package status detection.
 * Added ten runtime administration languages with English fallback.
 * Rebuilt the administration screen and moved scripts and styles to enqueued assets.
 * Preserved existing translation tables, options, queue, cron hooks and public 
   language routes.
 * Replaced bundled PO/MO files with source-only translation metadata.
 * Added safe deactivation of the former package after KOZ activation.

#### 0.8.7

 * Last stable release under the former UA FREE public branding.

## Meta

 *  Version **0.9.39**
 *  Last updated **2 days ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 8.0 or higher **
 * Tags
 * [ai translation](https://wordpress.org/plugins/tags/ai-translation/)[Azure](https://wordpress.org/plugins/tags/azure/)
   [multilingual](https://wordpress.org/plugins/tags/multilingual/)[translation](https://wordpress.org/plugins/tags/translation/)
 *  [Advanced View](https://wordpress.org/plugins/koz-static-translate/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/koz-static-translate/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/koz-static-translate/reviews/)

## Contributors

 *   [ Tony_Koz ](https://profiles.wordpress.org/ramirkz/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/koz-static-translate/)

## Donate

Would you like to support the advancement of this plugin?

 [ Donate to this plugin ](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=kozyriev%40uafree.org&item_name=Support+KOZ+WordPress+plugin+development&currency_code=USD)