Introduction

Effortlessly translate content between languages in your Kirby project.

The Kirby Content Translator plugin empowers editors to translate content from one language to another with a single click. Add the Panel view button to any page, file, or site blueprint and translate content directly in the Kirby Panel using DeepL.

Kirby Content Translator batch translation

Key Features

  • πŸ–±οΈ One-Click Translation: Translate content directly from the Panel header with the view button.
  • πŸ“¦ Batch Translation: Translate to multiple languages simultaneously from the default language.
  • πŸ“„ All Content Types: Translate pages, files (metadata), and site content.
  • 🧩 Structure-Aware: Supports blocks, layouts, structures, objects, and nested fields.
  • 🏷️ KirbyTags Support: Selectively translate KirbyTag attributes while preserving URLs and UUIDs.
  • ⚑ PHP API: Automate translations with CLI commands or custom workflows.
  • πŸͺ Hooks System: Customize translation behavior with before/after hooks.
  • πŸ”Œ Custom Providers: Built-in DeepL support with options for custom translation services.

The plugin integrates seamlessly with the Kirby Panel and provides programmatic access via its PHP API.

How It Works

Add the content-translator Panel view button to your blueprints. The button adapts based on your current language context:

In secondary languages two actions appear:

  • Import: Copy content from the default language to the current language.
  • Translate: Send content to DeepL for translation.

In the default language a batch translation button appears:

  • β†’ All Languages: Translate to multiple languages at once
FeaturePer-Language TranslationBatch Translation
Language ContextSecondary languagePrimary/default language
Translation SpeedReal-time, instantBatch processing
ReversibilityReversible changesNon-reversible
InteractivitySee & edit immediatelyBackground processing
Target LanguagesSingle languageMultiple languages at once
Use CaseFine-tuning translationsInitial content setup

Translation Services

By default, the plugin uses the DeepL API for high-quality translations. DeepL's free tier includes 500,000 characters per month, which is sufficient for most projects. You can also define custom translation functions to integrate other providers.

Getting Started

Ready to translate? Follow the installation guide to set up the plugin in 5 minutes.