Translation & Multilingual
Multilingual is built in, not bolted on
Language is a first-class field in Chinaski's schema. Build English, Spanish, and Portuguese from one install — with an LLM translation pipeline and a human review queue in the admin.
View on GitHubHow multilingual works
Language as a schema field
Every page, post, and block has a language field. Content in different languages is stored separately but linked by a translation key. The CMS tracks what has been translated and what hasn't.
LLM-drafted translations
The pipeline extracts source content, sends it to Claude, Qwen, or a local Ollama model, and stages the result for review. You choose the model; the pipeline handles the plumbing.
Human review before publishing
Machine-drafted translations go into a review queue, not straight to publish. A reviewer can approve, edit, or reject each translation. Nothing goes live without a human sign-off.
The translation workflow
Step 1: Select content to translate
In the admin, open the translation panel and select the pages or posts you want to translate. Filter by language, publication status, or date. Choose a target language and a model.
Step 2: Draft with an LLM
The pipeline extracts translatable strings from the block content, sends them to the configured LLM with a structured prompt that preserves formatting, and stores the result in the review queue as a draft.
Step 3: Review and edit
Open the review queue and compare source and draft side by side. Edit any strings that need correction. Approve the translation when it's ready — or reject it and re-draft with a different model or prompt.
Step 4: Publish
Approved translations are published as full pages with their own URLs, metadata, and sitemap entries. The build includes all published languages. Hreflang tags are generated automatically.
Set up a multilingual site
Complete setup, theming, and API documentation lives at docs.chinaski.net.
Read the documentation