Everything you have tried should have worked perfectly, I am not sure why is this not working,
I am modifying your code a little bit to check for post type, check if it can help you,
function rename_publish_button_to_review( $translation, $text ) {
if( !current_user_can('administrator') && 'post' == get_post_type() ) {
if( 'Publish' == $text ) {
return "Submit for review";
}
}
return $translation;
}
add_filter( 'gettext', 'rename_publish_button_to_review', 10, 2 );
Other wise try to see if this function working when no role specified.
WILL THIS WORK ?
function rename_publish_button_to_review( $translation, $text ) {
if( 'Publish' == $text ) {
return "Submit for review";
}
return $translation;
}
function wpse_53371_bulk_actions()
{
if ( ! is_admin() )
return;
if ( ! current_user_can( 'administrator' ) )
{
add_filter( 'gettext', 'rename_publish_button_to_review', 10, 2 )
}
}
add_action( 'wp_loaded', 'wpse_53371_bulk_actions' );