Issue getting gettext to work with conditional statements

I had success with the following where I specifically set the $domain. In your instance you might want to change $domain to $woocommerce. Take a look at the original related_products function and see how it is outputted using the localisation function to determine what domain to use.

Hope that helps

    function wpa_translate_email( $translated_text, $text, $domain ){
        if( $domain == 'woothemes' && $translated_text == 'E-mail' && is_front_page() )
            $translated_text="Enter your email for news, recipes and offers";

        return $translated_text;
    }

    add_filter( 'gettext', 'wpa_translate_email', 10, 3 );