Free downloads
Zinn® Translate
Serve your Zinn Digital®-translated site in every language, each on its own address, with correct hreflang.
What Zinn® Translate does
Your site is translated by Zinn Digital®. This plugin is what shows those translations to your visitors. Each language gets its own web address — /fr/about/ alongside /about/ — and the right hreflang tags, so search engines index every version instead of treating them as duplicates of one another.
Why it matters
Translating a site is the easy half. The half that decides whether it earns anything is whether Google can index each language separately, and that needs a real URL per language and correct hreflang between them — not a cookie, not a query parameter, and not JavaScript that swaps the text after the page has loaded. A translated site served on one URL is one page in the index, however many languages it holds.
What is in it
A real URL per language
Every language is served at its own path, so each one is a page a search engine can crawl, index and rank on its own merits, and a visitor can link to or share.
Correct hreflang, generated for you
Each page declares its alternates in every language you publish, reciprocally. Getting this wrong is the commonest way a multilingual site ends up competing with itself, and it is not something to hand-maintain across a growing site.
It does not translate, and it never writes to your database
Not one word is generated on your server. The plugin fetches finished text from Zinn Digital® and renders it. No duplicated posts, no extra post type, no taxonomy. Deactivate it and your site returns to exactly what it was, with nothing to clean up.
A part-finished translation never blanks a page
A page whose title is translated and whose body is not shows the translated title and your original body. You always see your own words rather than a gap, so publishing does not have to wait for every field.
One cached request per language, every fifteen minutes
Not one request per page view. It adds no endpoint and no shortcode, and if Zinn Digital® cannot be reached your site serves its original content exactly as it always did.
What it looks like
A read-only token that can fetch this site's translations and nothing else, and a plain list of the languages you want published.

What you are downloading
- Version
- 1.1.2
- Minimum WordPress
- WordPress 6.6
- Minimum PHP
- PHP 8.2
- Tested up to
- WordPress 7.1
- Download size
- 416 KB
- Licence
- GNU General Public License, version 2 or later
- Written by
- Neil Lock — CEO, Zinn Digital® Ltd
What Zinn® Translate needs
WordPress 6.6 or later and PHP 8.2 or later, outbound HTTPS from your web server, and a Zinn Digital® account with the site's content translated.
How you get Zinn® Translate
Download it here and install it on the WordPress serving the translated site, then pair it with your Zinn Digital® account.
Built to WordPress.org plugin-directory standards: the WordPress Coding Standards, a security review, no PHP notices, and translation-ready in every language we sell in.
Installing it
WordPress installs a plugin from a zip file without you unpacking anything. The whole thing takes about a minute, and you need an administrator account on the site.
Download the zip
Use the download button above. Keep the file as it is — do not unzip it, because WordPress expects the archive itself.
Open Plugins → Add New Plugin in wp-admin
Sign in to your site's wp-admin, open Plugins in the left-hand menu, then Add New Plugin at the top of the page.
Upload and install
Choose Upload Plugin, select the zip you just downloaded, then Install Now. WordPress unpacks it for you.
Activate it
Choose Activate Plugin when the upload finishes. The plugin's own settings then appear in wp-admin — nothing else is required to start using it.
Checking the file is ours
This is code that will run on your site, so you should be able to prove the file you downloaded is the file we published. Run the command for your computer against the zip and compare the result with the checksum below — they must match exactly, character for character.
- SHA-256
35100e3ef4a5fc6947dd6c7b1782d2c72847e759b5dece566bb483579bd535ec- On Linux
sha256sum zinn-translate-1.1.2.zip- On macOS
shasum -a 256 zinn-translate-1.1.2.zip- On Windows
certutil -hashfile zinn-translate-1.1.2.zip SHA256
The download itself also returns the same value in an X-Zinn-Package-SHA256 header, so an automated deployment can check it without reading this page.
Changelog
1.0.0 — first release: per-language URL prefixes, reciprocal hreflang generation, per-field fallback to your original content, and a fifteen-minute cached fetch per language.
Updates
On a site we host, these plugins are configured to update themselves: they check with us and WordPress installs the new version for you, with the download verified against its published checksum first. On a WordPress we do not host, there is nothing to configure and nothing phones home — come back to this page when you want the newest version, or watch the plugin's GitHub releases.
Get Zinn® Translate working on a real site
Every plugin here is free and runs on any WordPress. On a site we host they are installed and kept current for you, so there is nothing to download and nothing to update.