Skip to content

Instantly share code, notes, and snippets.

@BFTrick
Last active March 30, 2023 07:18
Show Gist options
  • Star 30 You must be signed in to star a gist
  • Fork 14 You must be signed in to fork a gist
  • Save BFTrick/7040403 to your computer and use it in GitHub Desktop.
Save BFTrick/7040403 to your computer and use it in GitHub Desktop.
Use the gettext WordPress filter to change any translatable string.
<?php
/**
* Change text strings
*
* @link http://codex.wordpress.org/Plugin_API/Filter_Reference/gettext
*/
function my_text_strings( $translated_text, $text, $domain ) {
switch ( $translated_text ) {
case 'Sale!' :
$translated_text = __( 'Clearance!', 'woocommerce' );
break;
case 'Add to cart' :
$translated_text = __( 'Add to basket', 'woocommerce' );
break;
case 'Related Products' :
$translated_text = __( 'Check out these related products', 'woocommerce' );
break;
}
return $translated_text;
}
add_filter( 'gettext', 'my_text_strings', 20, 3 );
@sohan5005
Copy link

Translation functions like _(), n(), esc_html(), x() or any other xx() functions should not be used inside gettext filter. It may end up infinite loop.

@naiaramooy
Copy link

Hello, is it possible to apply this function so that the strings according to the language with WPML? Could you say how to apply it? Thank you.

@glunkov
Copy link

glunkov commented Nov 13, 2020

I'd recommend avoiding this filter, if possible, especially if it's used in several places through code, cause:
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. (source: https://developer.wordpress.org/reference/hooks/gettext/#more-information )
Depending on situation, sometimes it's better to place modified template file to theme's folder (if plugin allows, like woocommerce), or use a special filter (if plugin allows)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment