As for now we’re doing this with some url rewriting in WP.
This code may be useful if you translated the permalinks to your language, but want to use english as a secondary language (if otherwise, just change the lang=en to desired language code):
// Adding rewrite rules for events post type in english
function df_add_events_rewrite_rules() {
add_rewrite_rule('events/?$','index.php?post_type=event&lang=en','top'); // events archive
add_rewrite_rule('events/page/([0-9]{1,})/?$','index.php?post_type=event&paged=$matches[1]&lang=en','top'); // events archive with pagination
add_rewrite_rule('events/([0-9]{4}(?:/[0-9]{2}(?:/[0-9]{2})?)?)/?(?:page/([0-9]{1,})/?)?$','index.php?post_type=event&event_ondate=$matches[1]&paged=$matches[2]&lang=en','top'); // events date archive
add_rewrite_rule('events/event/([^/]+)/?$','index.php?post_type=event&event=$matches[1]&lang=en','top'); // single event
}
add_action('init', 'df_add_events_rewrite_rules');
This can be adjusted for event categories, tags, organizers and locations as well.
I’m not sure but I think for Polylang you need to change the “lang=en” parameter to “language=en”.