Year in blog url on multiple language site

Expanding on Simple route for year in blog url I need to use this on multiple language site.

Only thing that doesn’t work at the moment is switching languages on the blog-item page.

In my config:

 'routes' => [
      [
        'pattern' => 'blog/(:num)/(:any)',
        'language' => '*',
        'action'  => function ($language, $year, $slug) {
          return site()->visit('blog/' . $slug);
        }
      ],
      [
        'pattern' => 'blog/(:any)',
        'language' => '*',
        'action'  => function ($language, $uid) {
          $page = page('blog')->children()->find($uid);

          if ( $page ) {
              return site()->visit('blog/' . $page->date()->toDate('Y') . '/' . $page->slug());
          } else {
            $this->next();
          }
        }
      ]
]

My page model has not changed but I’m not sure if or how to change:

<?php 
class BlogItemPage extends Page {
  public function url($options = null): string {

  // Add year to the url 
  return $this->url = $this->parent()->url() . '/' . 
    $this->date()->toDate('Y'). '/' . $this->uid();
  }
}

This is missing the language code as second param, see Routing | Kirby CMS

Sorry, I’ve been going over the Routing Guide but I don’t understand the way it’s explained.

return site()->visit('blog/' . $slug, 'en');

This obviously helps with english but not with the default dutch.

You are passing $language as a param here. From that language object, you get the code:

return site()->visit('blog/' . $slug, $language->code());

Ok, but language switching on the blog-item page is still not possible.

@texnixe I’m sure you are very busy, but can you still help with this?
If you don’t want/can to follow up, fine also but let me know. Then I will skip the routing all together until I gain a better understanding how this all works.
Thank you

Guess you mean the second route? Do the same as for the first.

Yeah, done that, no joy.
But never mind I’ll solve it without routes.
Thanks.