Introduction
Kirby Content Translator is a plugin for Kirby CMS that adds a translation button to any page, file, or site blueprint. Translate with DeepL or Kirby Copilot for AI – the same pipeline runs from PHP and the CLI for hooks, custom controllers, and batch jobs.
Features
- 🖱️ One-Click Translation: View button in any page, file, or site blueprint.
- 📦 Batch Translation: All target languages from one dialog, with DeepL or AI.
- 📊 Translation Coverage: Rings per language and the pages still missing one, in the Languages view.
- 🧩 Nested Fields: Walks blocks, layouts, structures, and objects –
translate: falseholds at any depth. - 🏷️ KirbyTags: Tag attributes translated selectively, URLs and UUIDs preserved.
- 🔁 Import from Source: Copy default-language content without translating.
- 🎛️ Configurable Scope: By field type, or include and exclude fields, globally or per section.
- ⚡ PHP API: Drive translations from CLI or custom workflows, with
before,after, andwarninghooks – see PHP classes. - 🔌 Pluggable Strategies: DeepL, AI via Copilot, or your own custom strategy.
How It Works
Add the content-translator Panel view button to your blueprints. The button adapts to the current language context:
- In secondary languages it offers an Import action (copy content from the default language) and a Translate action (send the current content through the configured provider).
- In the default language it offers a → All Languages batch action that translates into every other configured language at once.
Per-language translation writes to the view you're looking at, so you can review and undo it. Batch translation writes to every selected language at once and is not reversible from the Panel – use it for the initial setup, and switch to the per-language action when fine-tuning.
Translation Providers
AI Translation
Context-aware translation via the Kirby Copilot plugin (OpenAI, Anthropic, Google, Mistral).