PHPackages                             daandelange/k3-translations - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. daandelange/k3-translations

AbandonedArchivedKirby-plugin

daandelange/k3-translations
===========================

Translations menu replacement, field and section for Kirby 3

0.2.5-beta(3y ago)30627MITVue

Since Feb 10Pushed 6mo ago2 watchersCompare

[ Source](https://github.com/Daandelange/k3-translations)[ Packagist](https://packagist.org/packages/daandelange/k3-translations)[ Docs](https://github.com/Daandelange/k3-translations)[ RSS](/packages/daandelange-k3-translations/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (8)Used By (0)

Kirby Translations
==================

[](#kirby-translations)

**Warning :** Discontinued. While this plugin worked great for Kirby 3, it didn't make it to Kirby4. Kirby5 refactored the page header buttons, not needing all the complex k3 Vue hacks. Luckily, there's [junohamburg/kirby-language-selector](https://github.com/junohamburg/kirby-language-selector) which is a way cleaner solution for Kirby 5 !

Beta: This plugin started as a port of k2-translations to Kirby 3. Please note that the much loved "saved" state of a field is not yet implemented. For now, the plugin provides revert and delete functions for translations, and replaces the native Kirby languages menu by a more advanced one, indicating the translation status of each language.

[![License](https://camo.githubusercontent.com/784362b26e4b3546254f1893e778ba64616e362bd6ac791991d2c9e880a3a64e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e2e737667)](https://camo.githubusercontent.com/784362b26e4b3546254f1893e778ba64616e362bd6ac791991d2c9e880a3a64e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e2e737667) [![Kirby](https://camo.githubusercontent.com/f2411f55d545e3fd0708dad34c85852ee5d07f2b9ee100d748e7878fddd1a2f8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4b697262792d332e362b2d6630633637342e737667)](https://camo.githubusercontent.com/f2411f55d545e3fd0708dad34c85852ee5d07f2b9ee100d748e7878fddd1a2f8/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4b697262792d332e362b2d6630633637342e737667)

This plugin enhances the translation handling of content pages for [Kirby 3](http://getkirby.com). By default, it replaces the original language switch by an enhanced one; but you can also use it as a section (and in the future as a field to indicate the translation status).

- The language menu explicitly shows if the translation exists:
    - **RED**: The translated `.txt`-file doesn't exist, the content is not translated in this language.
    - **GREEN**: The translated `.txt`-file exists, the content is translated in this language.
- All languages are always visible, for faster switching between translations.
- For all non-default languages you can:
    - Delete a translation content file (without deleting the whole page).
    - Resynchronise translations with the default language file (revert).

[![Kirby 3 Translations plugin screenshot](https://user-images.githubusercontent.com/7975568/156542901-0b3713af-25a1-4d5b-9df4-2cd5196b2516.gif)](https://user-images.githubusercontent.com/7975568/156542901-0b3713af-25a1-4d5b-9df4-2cd5196b2516.gif)

Requirements
------------

[](#requirements)

This plugin works with Fiber, so you probably need Kirby 3.6.

Although, there are is a chance that it works on versions below. *(if so, please report back!)*

Installation
------------

[](#installation)

### Download

[](#download)

Download this repository, extract it and drop it into the plugins folder of your Kirby installation.

```
site/plugins/k3-translations

```

### Composer

[](#composer)

If you are using Composer, you can install the plugin with

```
composer require daandelange/k3-translations:~0.x.x-beta

```

*Note: While `k3-translations` is still alpha, there is no stable channel for composer, so you need to specify the unstable version.*

### Git submodule

[](#git-submodule)

```
git submodule add https://github.com/daandelange/k3-translations.git site/plugins/translations

```

Setup
-----

[](#setup)

### Replacing Kirby's native language menu

[](#replacing-kirbys-native-language-menu)

Within your website project, you can customise the language switching menu in the header by setting the following options:

```
// Site /site/config/config.php
return [
  'daandelange.translations' => [
    'header' => [
      'replaceKirbyLanguages' => false, // To disable replacing the native lang menu. Default = true.
      'compactMode' => true, // To enable a more compact mode. Default = false. (alpha! only affects fields/sections)
      'deletable' => false, // To disallow deleting a language. Default = true.
      'revertable' => false, // To disallow reverting a language. Default = true.
      'showEditLanguage' => false, // To hide the menu link to the panel language. Default = true.
    ],
  ],
];
```

### Translations Section

[](#translations-section)

Add the following `section` to your blueprint(s). (optional)

```
sections:
  translations:
    type: translations
```

### Advanced usage

[](#advanced-usage)

- `$page->isTranslated(string|bool|array $langCode = false)`
    Returns if a page content translation is available.
    `$langCode` :
    - `false`: For the current language
    - `true` : For all languages.
    - `'fr'` : For a specific language.
    - `['fr', 'en']` : For specific languages.

### Options

[](#options)

The following options are available for any translations section or field:

- Disallow deleting content translations: ```
    deletable: false # default = true
    ```
- Disallow reverting a translation to the default language: ```
    revertable: false # default = true
    ```
- Use a more compact layout: ```
    compactmode: true # default = false
    ```
- Set a custom label: ```
    label: Labelized! # default = [empty]
    ```
- Hide the "Edit language in panel" menu item: ```
    showEditLanguage: false # default = true
    ```

Development
-----------

[](#development)

This plugin follows the [standard Kirby PluginKit](https://github.com/getkirby/pluginkit/tree/4-panel) structure, see [their plugin guide](https://getkirby.com/docs/guide/plugins/plugin-setup-basic) for more details on using it. *These steps are optional, for building development versions.*

If you're using a modified Kirby folder structure, you probably have to fix the relative path to the `kirby` folder in `kirbyup.config.ts` (in the `alias` section).

- Npm requirements (optional) : `npm install -g kirbyup`
- Setup : `cd /path/to/website/site/plugins/translations && npm install`
- While developing : `npm run dev`
- Compile a production build : `npm run build`
- Update dependencies : `npm update`
- Composer install &amp; update : `composer update`

License
-------

[](#license)

[MIT](https://github.com/daandelange/k3-translations/blob/main/.github/LICENSE)

### Commercial Usage

[](#commercial-usage)

This plugin is free but if you use it in a commercial project please consider to contribute an improvement, or hire someone to do so.

Alternatives / Similar
----------------------

[](#alternatives--similar)

- If you need to sync specific fields between languages, there's the [kirby3-language-sync](https://github.com/sietseveenman/kirby3-language-sync) plugin.
- To get an overview of your pages' translation status in the panel, you can use [k3-translation-status](https://github.com/doldenroller/k3-translation-status).

Credits
-------

[](#credits)

This is a Kirby 3 port of @Flokosiol's [kirby-translations](https://github.com/flokosiol/kirby-translations) *(which is for Kirby 2)*; thanks to him for initiating this plugin ! :)
Special thanks to all [contributors](https://github.com/daandelange/k3-translations/graph/contributors) as well as the original [kirby2-translations contributors](https://github.com/flokosiol/kirby-translations/graphs/contributors) !

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance46

Moderate activity, may be stable

Popularity23

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 60.2% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~67 days

Recently: every ~84 days

Total

6

Last Release

1215d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1042ade2129860410fbad8fa2b0c5eb8059a3af12590091a5542b54d3781963d?d=identicon)[daandelange](/maintainers/daandelange)

---

Top Contributors

[![flokosiol](https://avatars.githubusercontent.com/u/11918336?v=4)](https://github.com/flokosiol "flokosiol (59 commits)")[![Daandelange](https://avatars.githubusercontent.com/u/1329784?v=4)](https://github.com/Daandelange "Daandelange (33 commits)")[![sylvainjule](https://avatars.githubusercontent.com/u/14079751?v=4)](https://github.com/sylvainjule "sylvainjule (2 commits)")[![pqml](https://avatars.githubusercontent.com/u/7287905?v=4)](https://github.com/pqml "pqml (1 commits)")[![malvese](https://avatars.githubusercontent.com/u/193492?v=4)](https://github.com/malvese "malvese (1 commits)")[![fk-3st](https://avatars.githubusercontent.com/u/1224797?v=4)](https://github.com/fk-3st "fk-3st (1 commits)")[![medienbaecker](https://avatars.githubusercontent.com/u/7975568?v=4)](https://github.com/medienbaecker "medienbaecker (1 commits)")

---

Tags

kirby3kirby3-plugintranslationskirby3kirby3-pluginkirby3-fieldkirby3-section

### Embed Badge

![Health badge](/badges/daandelange-k3-translations/health.svg)

```
[![Health](https://phpackages.com/badges/daandelange-k3-translations/health.svg)](https://phpackages.com/packages/daandelange-k3-translations)
```

###  Alternatives

[fabianmichael/kirby-meta

Your all-in-one powerhouse for any SEO and metadata needs imaginable.

6910.7k1](/packages/fabianmichael-kirby-meta)[bvdputte/kirby-autopublish

Kirby plugin to schedule the automatic publishing of pages on a certain date+time. It is built to work with enabled cache.

348.2k](/packages/bvdputte-kirby-autopublish)[bvdputte/kirby-queue

A simple queue utility plugin for Kirby 3. It enables workers in Kirby that can do tasks (in the background) at scheduled intervals (cron) by working through queues of jobs.

314.6k](/packages/bvdputte-kirby-queue)[bvdputte/kirby-fingerprint

Cache-busting utility to fingerprint assets (JS/CSS) in Kirby 3

1610.0k](/packages/bvdputte-kirby-fingerprint)[bvdputte/kirby-logbook

A Kirby 3 panel plugin to visualise the `site/logs` folder in the panel.

213.1k](/packages/bvdputte-kirby-logbook)[schnti/cachebuster

A plugin for Kirby 3 CMS to add modification timestamps to css and js files

108.3k1](/packages/schnti-cachebuster)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
