WordPress.org

Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

Plugin API/Filter Reference/gettext

Description

This filter hook is applied to the translated text by the internationalization functions (__(), _e(), etc.). IMPORTANT: This filter is always applied even if internationalization is not in effect, and if the text domain has not been loaded. If there are functions hooked to this filter, they will always run. This could lead to a performance problem.

For context-specific translation functions such as _x(), see filter hook gettext_with_context.

Arguments

Filter function arguments are: 'translated text', 'untranslated text' and 'text domain'. apply_filters( 'gettext', $translations->translate( $text ), $text, $domain );

The text domain for WordPress translatable texts is 'default'.

Examples

Change the Comment Form

Change the default field names of the comment form. Assumes the current form includes field names "Name" and "Email" and that 'theme_text_domain' is the name of your theme's text domain.

add_filter( 'gettext', 'theme_change_comment_field_names', 20, 3 );
/**
 * Change comment form default field names.
 *
 * @link http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext
 */
function theme_change_comment_field_names( $translated_text, $text, $domain ) {

    if ( is_singular() ) {

        switch ( $translated_text ) {

            case 'Name' :

                $translated_text = __( 'First Name', 'theme_text_domain' );
                break;

            case 'Email' :

                $translated_text = __( 'Email Address', 'theme_text_domain' );
                break;
        }

    }

    return $translated_text;
}

Remove Text from Admin Form

add_filter('gettext', 'remove_admin_stuff', 20, 3);
/**
 * Remove the text at the bottom of the Custom fields box in WordPress Post/Page Editor.
 *
 * @link http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext
 */
function remove_admin_stuff( $translated_text, $untranslated_text, $domain ) {

    $custom_field_text = 'Custom fields can be used to add extra metadata to a post that you can <a href="http://codex.wordpress.org/Using_Custom_Fields" target="_blank">use in your theme</a>.';

    if ( is_admin() && $untranslated_text === $custom_field_text ) {
        return '';
    }

    return $translated_text;
}

Change Text in Custom Post Admin Form

add_filter('gettext', 'change_admin_cpt_text_filter', 20, 3);
/*
 * Change the text in the admin for my custom post type
 * 
**/
function change_admin_cpt_text_filter( $translated_text, $untranslated_text, $domain ) {

  global $typenow;

  if( is_admin() && 'MY_CPT' == $typenow )  {

    //make the changes to the text
    switch( $untranslated_text ) {

        case 'Featured Image':
          $translated_text = __( 'NEW FEATURED IMAGE TEXT','text_domain' );
        break;

        case 'Enter title here':
          $translated_text = __( 'NEW TITLE COPY','text_domain' );
        break;
        
        //add more items
     }
   }
   return $translated_text;
}

Related