You can override the hierarchy and load a specific page template via the page_template
filter.
The fastest way is to identify the parent page by ID:
function wpd_page_template_filter( $template ){
$page = get_queried_object();
if( 42 == $page->post_parent ){ // en page has ID of 42
$template = locate_template( 'page-en.php' );
}
return $template;
}
add_filter( 'page_template', 'wpd_page_template_filter' );
or you can also identify it by slug with an extra step:
function wpd_page_template_filter( $template ){
$page = get_queried_object();
$parent_slug = get_post_field( 'post_name', $page->post_parent );
if( 'en' == $parent_slug ){
$template = locate_template( 'page-en.php' );
}
return $template;
}
add_filter( 'page_template', 'wpd_page_template_filter' );
If your page is a grandchild or lower, you can get the topmost parent with the get_ancestors
function