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.
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:
return [
'johannschopplich.content-translator' => [
'DeepL' => [
// API key for the DeepL free or pro plan
'apiKey' => '<deepl-api-key>'
]
]
];

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
buttons:
- open
- preview
- settings
- content-translator # Re-order the button as needed
- languages
- status
buttons:
- open
- settings
- content-translator # Re-order the button as needed
- languages
Reference the default buttons and decide where to place the content-translator button.
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.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:
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:

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

Open the Panel and navigate to a page. The translation workflow depends on your current language:
Click → All Languages to translate content to multiple languages at once. A dialog lets you select which target languages to include.
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:

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.
/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.