Changelog

Latest features, fixes, and improvements. Update via Composer or download the ZIP file.
Download v3.9.1

v3.9.1

๐Ÿš€ Features

  • Remember provider choice: Option to remember your last used translation provider for future requests.

v3.9.0

AI-powered translations are here! Kirby Content Translator now integrates with Kirby Copilot to offer AI translation alongside DeepL. When both are configured, choose your preferred provider for each translation.

๐Ÿš€ Features

  • AI translations: Kirby Copilot integration for AI-powered translations using OpenAI's GPT models, Google Gemini, Anthropic Claude, or Mistral models.
  • UX Improvements: Loading indicator during translation requests for better user feedback.
  • System view license management: View your license key, activation status, and version compatibility directly in the Kirby Panel system view. Activate new licenses without leaving the Panel โ€“ no more manual file editing required.
  • Provider selection: Provider selection dialog when both DeepL and Copilot are configured โ€“ choose your translation backend per request.
Content Translator multi-language translation dialog

v3.8.1

๐Ÿš€ Features

  • View button theming: Customize the appearance of the Content Translator view button with the new theme prop. Available themes match Kirby's button styles (e.g., positive, negative, blue-icon).

๐Ÿž Bug Fixes

  • Respect translate: false in blocks: Fields marked with translate: false inside blocks are now correctly skipped during content synchronization (import). Previously, these fields were being imported even when marked as non-translatable, causing unwanted content overwrites.

v3.8.0

Major performance overhaul! Batch translation is now enabled by default when using DeepL, eliminating single API requests and dramatically improving translation speed. Up to 50 texts can now be translated in a single request to DeepL.

๐Ÿš€ Features

  • Chunked translations: Texts are now sent to DeepL in chunks for translation by default when no custom translator function is set. This significantly improves performance by reducing the number of API calls to DeepL.

v3.7.0

๐Ÿš€ Features

  • View button props: Support props for Content Translator view button (Kirby 5+) to customize its behavior per blueprint. See the View Button & Section Configuration guide for details.
buttons:
  preview: true
  content-translator:
    title: true
    slug: true
    excludeFields:
      - description
  languages: true
  • Batch concurrency: Global batchConcurrency option to set a maximum number of concurrent translations in batch mode (default: 4).

v3.6.0

๐Ÿš€ Features

  • Kirby Table plugin support: Added translation support for the Kirby Table plugin by Bogdan Condorachi. Table cell content is now properly translated in both Panel (client-side) and programmatic (server-side) translation modes.

๐Ÿž Bug Fixes

  • File metadata batch translation: Batch translation of file metadata is now working correctly again. Previously, file metadata (like title, alt text) was skipped during batch operations.

v3.5.0

๐Ÿš€ Features

  • KirbyTags translation: KirbyTags translation support with selective attribute translation while preserving tag structure and functionality.
  • Translation hooks: Translation hooks for customizing translation behavior with content-translator.translate:before and content-translator.translate:after hooks.

v3.4.0

๐Ÿš€ Features

  • Kirby 5 license status integration: The plugin now displays its license status on the Panel's system page, following Kirby 5's plugin license management conventions. This provides a unified view of all plugin licenses alongside Kirby's own license information.

v3.3.0

๐Ÿš€ Features

  • Locale-based language resolution: Use the language's LC_ALL locale (if available) to resolve the DeepL target language.
  • Language code validation: Validate language code against DeepL's supported target languages.
For example, if you set LC_ALL to en_UK, the target language for DeepL will still be EN, since EN-UK is not supported by DeepL. If you set LC_ALL to en_GB instead, then the Content Translator will send EN-GB as the target language to DeepL.

v3.2.0

โ™ป๏ธ Refactorings

  • Option renamed: bulk โ†’ batch: The bulk configuration option has been renamed to batch for clearer terminology. The old bulk option name continues to work for backward compatibility, but we recommend updating your blueprints to use batch for consistency with the documentation.

v3.1.0

๐Ÿš€ Features

  • Language selection: Select the languages to translate the content into when using the batch translation feature.

v3.0.0

Kirby Content Translator v3 is a major release with full support for Kirby 5. This major release requires a new license key. If you already have a license, you receive a 50% discount on your new license. Head over to the Kirby Tools Hub to get your discount or read more in the license compatibility guide.

๐Ÿš€ Features

  • Panel view button: Panel view button as an alternative to the section. Including backward compatibility for Kirby 4 ๐ŸŽ‰.
  • Kirby 5: Full compatibility with Kirby 5 including the new Panel architecture.

v2.5.0

๐Ÿš€ Features

  • Improved HTML translation: Enabled HTML handling for DeepL API requests, ensuring HTML content (like rich text with formatting) is translated correctly while preserving tags and structure.
  • Markdown Field plugin support: Added compatibility with the community-driven Markdown Field plugin by Fabian Michael. Markdown content is now properly handled during translation.
  • Custom DeepL options: The new DeepL.requestOptions configuration option lets you set custom request options for the DeepL API, such as formality level or specific glossary IDs.

v2.4.0

๐Ÿš€ Features

  • Tags field translation: The tags field type is now supported for translation. Each tag value is translated individually while preserving the comma-separated structure. This is useful for translating categories, labels, or keywords stored in tags fields.

v2.3.0

๐Ÿš€ Features

  • Slug translation API: New translateSlug PHP API method.
  • Batch translation mode: Batch translation mode overwrites the content of all secondary languages with the data of the default language and then translates into the respective language.
Content Translator section in default language

Unlike per-language translation, this translation process is not reversible in the Panel and is handled server-side. Use it with caution, as it may take a while to translate all content. When the button is clicked, a confirmation dialog is displayed to prevent accidental batch translation.

If this new feature breaks your workflow, you can disable it by setting batch: false in the plugin configuration.

๐Ÿž Bug Fixes

  • Homepage slug protection: Disallow changing the slug on the homepage page ID.

v2.2.2

๐Ÿš€ Features

  • DeepL error visibility: Common DeepL API errors are now displayed in the Panel instead of failing silently. This includes quota exceeded errors, character limit warnings, and authentication issues. Editors will see clear error messages when translations fail, making it easier to diagnose and resolve issues.

v2.2.0

๐Ÿš€ Features

  • Kirby 5 alpha: Added compatibility with the Kirby 5 alpha release for developers who want to test with the upcoming Kirby version.
This is alpha support for testing purposes. Future Kirby 5 alpha releases may introduce breaking changes. Content Translator v3 will be released alongside the final Kirby 5 release with full, stable support.

v2.1.0

๐Ÿš€ Features

  • Field-level translation control: Skip translating specific fields by setting translate: false in your blueprint field options. This is useful for fields that contain code, identifiers, or other content that should remain unchanged across languages.
blueprint.yml
fields:
  code:
    type: textarea
    translate: false # This field will not be translated
  • Improved button labels: Translation button texts have been updated to more clearly indicate their action (Import/Translate).

v2.0.0

Kirby Content Translator v2 is a major release with a complete overhaul of the plugin architecture. This release introduces a modern Panel section interface and streamlined translation workflows.

๐Ÿš€ Features

  • New Panel section UI: Redesigned translation interface with clearer actions for importing and translating content.
  • Improved DeepL integration: Enhanced API handling with better error messages and support for all DeepL-supported languages.
  • Structure-aware translation: Properly handles blocks, layouts, structures, and nested fields while preserving their structure.
  • Field-level control: Skip specific fields from translation by setting translate: false in blueprint options.

โš ๏ธ Migration from v1

This is a major release with breaking changes. Read the migration guide to update your project from v1 to v2. Key changes include updated configuration options and new section blueprint syntax.