Installation

Learn how to install and configure the plugin in your Kirby project.

Step 1: Install the Plugin

Although it is a commercial plugin, you can download and test it in your local environment before purchasing.

Composer

The recommended way to install the plugin is via Composer. Run the following command in your terminal:

composer require johannschopplich/kirby-content-translator

ZIP File Download

Download the latest version v3.8.4 or head over to the releases page to see all versions. Extract the ZIP file to your site/plugins folder.

Step 2: Configure DeepL

By default, this plugin uses the DeepL API to translate your content. You can also use any other translation service by defining a custom translator function.

To use the DeepL API, create an account and generate an API key. The free account is sufficient for most use cases (500,000 characters per month).

Store the API key in your config.php file:

config.php
return [
    'johannschopplich.content-translator' => [
        'DeepL' => [
            // API key for the DeepL free or pro plan
            'apiKey' => '<deepl-api-key>'
        ]
    ]
];

Step 3: Blueprint Setup

View Button v3.0+

Kirby Content Translator Panel view button

Kirby 5 introduces new extensions that allow custom view buttons in most Panel views (e.g., site, page, or file). The Content Translator plugin provides a dropdown button that can be added alongside the default Panel header buttons, such as the languages dropdown.

To add the content-translator dropdown button to a view, set the buttons option in the corresponding blueprint. The following example shows how to reference the default buttons and add the content-translator button to the site, pages, and files views:

buttons:
  - open
  - preview
  - content-translator # Re-order the button as needed
  - languages

Reference the default buttons and decide where to place the content-translator button.

Kirby 4 does not support custom view buttons, but the content-translator button has been backported 🎉. It is always placed after the language dropdown and cannot be moved. Follow the Configuration Guide for more information or how to disable it.

Alternative: Section

If you prefer dedicated translation controls within the page content area, you can use the Content Translator section instead of (or in addition to) the view button:

pages/default.yml
sections:
  contentTranslator:
    type: content-translator

The section provides the same functionality as the view button but is placed within the blueprint layout. See the Section Configuration for all available options.

This is how the section will look in the default language:

Content Translator section in default language

When switching to secondary languages, the section buttons will change to Import and Translate:

Content Translator section in secondary language

Step 4: Translate Your Content

Open the Panel and navigate to a page. The translation workflow depends on your current language:

In Secondary Languages

  1. Click Import to copy content from the default language to the current language.
  2. Click Translate to send the imported content to DeepL for translation.
Why two steps?Import copies the raw content first, then Translate sends it to DeepL. This separation allows you to review content before translation or skip translation for content that does not need it.

In the Default Language

Click → All Languages to translate content to multiple languages at once. A dialog lets you select which target languages to include.

By default, all text-like fields are translated. Customize which fields, types, and behaviors apply in the Configuration Guide.

Step 5: Buy a License

You can test the plugin locally. However, you need to purchase a license to use the plugin in production environments.

Visit the product page on Lemon Squeezy and purchase a license. Then, open any Panel page that contains the Content Translator view button or section. You will see a license activation notice. Click the Activate link to open the activation form:

Kirby Content Translator activation

Enter the email you used for the purchase and the order number and hit the submit button. Done! Thanks for supporting our work. Once you activate your license, the license activation buttons will disappear.

Your license key will be stored automatically in /site/config/.kirby-tools-licenses. This file is created on first activation. Make sure to add it to your .gitignore to keep your license key private.