Test you the following filter work for you:
function wpse245094_fist_duplicate_slug( $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug ) {
// slug had to change, we must have a duplicate
if ( $original_slug !== $slug ) {
// try to replace `-2` with `-es`
$new_slug = preg_replace( '#-2$#', '-es', $slug );
if ( $new_slug !== $slug ) {
// if a replacement occurred ensure uniqueness again.
$slug = wp_unique_post_slug( $new_slug, $post_ID, $post_status, $post_type, $post_parent );
}
}
}
add_filter( 'wp_unique_post_slug', 'wpse245094_fist_duplicate_slug', 10, 6 );
It will only try to match -2
in the end of slug, only if it changed after WP checks.