Translation
Multilingual support via Google Translate (client-side) or DeepL (server-side, cached). Built in, not currently enabled.
The site can translate its content through the yax-translate mu-plugin, in one of two modes. It's built in but not currently enabled: the language switcher is hidden in the nav (the markup is kept so it can be turned back on) and TRANSLATE_ENABLED is off. This page covers what's there and how to switch it on.
Two modes
| Mode | How it works | SEO |
|---|---|---|
Google Translate (google) | Client-side, in the browser. No API key, no setup. | Not separately indexed; translations exist only in the visitor's browser |
DeepL (deepl) | Server-side, rendered and cached. Higher quality, needs a DeepL API key. | Indexable when URL routing is on: real /{lang}/ pages with hreflang and x-default |
If multilingual SEO ever matters, DeepL with URL routing is the indexable path. Google Translate is the quick, no-cost option for accessibility without indexable translated pages. See SEO for how the multilingual setup affects search.
Configuration
Environment-driven, like the rest of the site (see Hosting):
| Variable | Default | Purpose |
|---|---|---|
TRANSLATE_ENABLED | false | Master switch |
TRANSLATE_PROVIDER | google | google or deepl |
TRANSLATE_LANGUAGES | es,ko,ru,uk,vi,zh | Offered languages |
TRANSLATE_URL_ROUTING | false | DeepL only: serve translations at /{lang}/ paths so they can be indexed |
DeepL mode also needs a DeepL API key in the environment. The default language set is Spanish, Korean, Russian, Ukrainian, Vietnamese and Chinese; adjust TRANSLATE_LANGUAGES to match the audience.
Enabling it
- Set
TRANSLATE_ENABLED=trueand chooseTRANSLATE_PROVIDER. - For DeepL, add the API key and, for indexable pages, set
TRANSLATE_URL_ROUTING=true. - Un-hide the language switcher in the nav. The markup lives in
nav.meta.php, gated behind a flag and ready to re-enable. - For DeepL, pre-warm the translation cache with the plugin's WP-CLI command so the first visitor doesn't wait on the API.
The plugin detects a visitor's preferred language from the URL, a cookie, or the Accept-Language header, and can show a banner suggesting their language.
Current state
Disabled. The switcher markup stays in the nav so turning it on is a small change rather than a rebuild, and there are no translated /{lang}/ URLs live today, so there's nothing multilingual for search engines to index right now.