# Replace Interface Text Per Language

> Changes specific interface strings (button labels, notices, form text) differently for each language, without editing translation files.

- Type: PHP
- Runs: Run everywhere
- Category: [Multilingual](https://wpide.com/library/category/multilingual/)
- Tags: gettext, strings, locale
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/i18n-string-overrides-per-locale/

## Code

```php
$wpide_overrides = array( // Locale => array( original => replacement ).
    'en_US' => array(
        'Leave a Reply' => 'Join the conversation',
        'Post Comment'  => 'Send comment',
    ),
    'fr_FR' => array(
        'Leave a Reply' => 'Participez à la discussion',
        'Post Comment'  => 'Envoyer',
    ),
);

add_filter( 'gettext', function ( $translation, $text ) use ( $wpide_overrides ) {
    static $map = null;

    if ( null === $map ) {
        $locale = determine_locale();
        $map    = isset( $wpide_overrides[ $locale ] ) ? $wpide_overrides[ $locale ] : array();
    }

    return isset( $map[ $text ] ) ? $map[ $text ] : $translation;
}, 20, 2 );
```

## Notes

Keys are the original English strings exactly as written in the code. Add a text domain check if a string is used by several plugins.

## How to use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Replace Interface Text Per Language" in its snippet library and add it in one click; or create a new PHP snippet in WPIDE (or any code snippets plugin) and paste the code above. More snippets: https://wpide.com/library/
