Languages
You can publish your Chinaski site in one or several languages. Everything starts from the two settings under Settings → General: Active Languages and Default Language.
Enabling languages
Set Active Languages to a comma-separated list of two-letter lowercase language codes, for example en,es,pt. If you clear the field, the site falls back to en. Save the list first, then set the Default Language; the hint on the settings page walks you through that order.
Each language code is validated when you save: lowercase two-letter codes, optionally with suffixes like zh-cn. Invalid codes abort the save with a message listing the offending ones. If you typed code variants or stray whitespace, they’re cleaned up automatically.
Every place in the CMS that asks “which language?” (the language dropdowns on pages, posts, and blocks) reads from this list, showing the codes in uppercase.
Choosing the default language
Default Language is the fallback language for the static build. It must be one of your Active Languages; the dropdown only offers codes from that list. If you save a default that isn’t in the list, Chinaski silently clamps it to the first code in the list instead.
The default language is used when content is missing in another language (for example, a block that hasn’t been translated is rendered from the default-language version) and for the x-default hreflang link that search engines and browsers use for visitors’ preferred pages.
Language removal safety
You can’t remove a language that still has content. If the language being removed has any pages, posts, or blocks, the save is refused and the message tells you exactly how much content exists there. Delete or reassign that content first, then remove the language from the list.
Removing a language never deletes content: it’s only blocked from the save.
How languages appear in URLs
Language URL Mode (Settings → Permalinks) controls how the language code appears in URLs. It adjusts itself automatically when you change your language count:
- One language: no language segment at all: content is served straight from the site root.
- Multiple languages: each language lives under its own prefix, like
/en/…and/es/…. - Subdomain mode is its own choice and is never auto-changed; each language is then served from its own subdomain (for example
es.example.com).
Keeping the URL mode in sync matters: a monolingual site configured with the wrong mode would 404 its URLs.
hreflang links
When the site is multilingual and a Site URL is set, translated pages and posts automatically get alternate hreflang links pointing to each language’s version, plus x-default pointing to the default-language version. These links appear on the homepage too, listing all active languages. Monolingual sites don’t get hreflang links, and disabling the language path mode removes them.
Settings that can differ per language
Some settings accept a per-language override identified by the language code suffix, falling back to the site-wide value when you haven’t set one:
- Post URL prefix (Permalinks): per-language URL prefix for blog posts (default
blog) - Blog index title: falls back to the site-wide title, then a derived title from the URL prefix, then “Blog”
What happens to content when you narrow the list
Language removal is checked at save time: as long as a language still has unpublished or published pages, posts, or blocks, saving a list without it is refused. Delete or reassign that content first (it appears in your normal content lists filtered by that language), then save again.