Open panel page in a specific language

In Kirby 2 I can start the panel using the wanted language by adding e.g.
?_language=de” to the panel url of the page.

How can I do this with Kirby 3?

I need this for the code of multilangage websites in HowTo: Working with contextual links to the panel, where I want to select the language in the panel too.

I haven’t received an answer, probably because there aren’t any at the moment.
To show, how this should work, I show you my Kirby 2 solution:


Install a fresh Kirby Langkit, version 2.5.12.
Then follow HowTo: Working with contextual links to the panel with the following code in step 1:

  /* Kirby 2.x snippet: pagetitle.php
   * last update 23.04.2019 by HeinerEF (using the hints from @texnixe at
   * last update 28.04.2019 by HeinerEF (adding multilingual: now it is single or multilingual)
  $theTag       = $theTag ?? 'h1'; // the tag for the page title via the snippet variable "theTag" assigned
  // $theTagAddon // the e.g. "class-text" in the pagetitle tag via the snippet variable "theTagAddon" assigned
  $thePage      = $thePage ?? $page; // the "$page" via the snippet variable "thePage" assigned
  $thePageTitle = $thePageTitle ?? $thePage->title(); // the "$page->title()" via the snippet variable "thePageTitle" assigned
  $thePageTitle = str_replace('</<wbr>', '</', str_replace('/', '/<wbr>', $thePageTitle)); // add '<wbr>' after each '/' in the visible text
  // $thePageTitleAddon // the "Addon text" after the page title via the snippet variable "thePageTitleAddon" assigned
  // $thePageLink // the url of the link in the title is in "thePageLink" or the variable "thePageLink" is empty for no link
        <<?php echo $theTag; ?><?php if (isset($theTagAddon)) echo ' ' .$theTagAddon; ?>><?php if (isset($thePageLink)) echo '<a href="' . $thePageLink . '">'; ?><?php echo html($thePageTitle); ?><?php if (isset($thePageLink)) echo '</a>'; ?><?php if (isset($thePageTitleAddon)) echo $thePageTitleAddon; ?><?php if($user = $site->user() and $user->hasPanelAccess()): // user is logged in and has panel access ?><a href="<?php echo $site->url() ?>/panel/pages/<?php echo $thePage->uri( r($site->multilang(), $site->languages()->first()) ) ?>/edit<?php ecco ($site->multilang(),'?_language=' . $site->language()->code()); ?>" target="<?php echo c::get('HeinerEF.EditTarget', '_blank'); ?>" title="Edit page data (in new window / tab)" class="admineditlink"><sup class="fa fa-cog admincolor"></sup></a><?php endif; ?></<?php echo $theTag; ?>>

Do the rest of that HowTo like I wroted some time ago. Note that in step 2 the search text has changed to “<h1><?= $page->title()->html() ?></h1>”. You can omit step 3 if you want.

Add target

Within your config file “site\config\config.php” add this line at the end of the file:

c::set('HeinerEF.EditTarget', 'langkit_2.5.12_pagetitle_panel'); 

This shows the (with the cogwheel) linked panel pages always in the same tab of the browser.


If you are logged in, the frontend pages of the Kirby 2 Langkit show a cogwheel after each page title.
If you click at such a cogwheel, the corresponding panel page is shown in the language of the frontend page.
If you change the language in the frontend, the link to the panel page shows the same new language.

My goal

I want to do the same with Kirby 3.

For me this is a regression. What do you think?

Please add such a possibility in Kirby 3. Thank you and your team.

After more than a year and many new Kirby versions (currently Kirby 3.4.3), is it now possible to access the panel page in the desired language via a link from the frontend?