# Translatable Phrases With Polylang Strings

> Registers a list of your own phrases in Languages > Translations and adds a [wpide_pll_string name="..."] shortcode to show each one in the current language.

- Type: PHP
- Runs: Run everywhere
- Category: [Multilingual](https://wpide.com/library/category/multilingual/)
- Tags: polylang, strings, shortcode
- Author: WPIDE Team
- Installs: 0
- Updated: 2026-10-28
- Page: https://wpide.com/library/pll-register-strings/

## Code

```php
$wpide_strings = array( // Name => default-language text.
    'opening_hours' => 'Open Monday to Friday, 9am to 5pm',
    'cta_button'    => 'Book a free consultation',
);

add_action( 'init', function () use ( $wpide_strings ) {
    if ( ! is_admin() || ! function_exists( 'pll_register_string' ) ) {
        return;
    }
    foreach ( $wpide_strings as $name => $text ) {
        pll_register_string( $name, $text, 'WPIDE' );
    }
} );

add_shortcode( 'wpide_pll_string', function ( $atts ) use ( $wpide_strings ) {
    $atts = shortcode_atts( array( 'name' => '' ), $atts, 'wpide_pll_string' );

    if ( ! isset( $wpide_strings[ $atts['name'] ] ) ) {
        return '';
    }

    $text = $wpide_strings[ $atts['name'] ];

    return esc_html( function_exists( 'pll__' ) ? pll__( $text ) : $text );
} );
```

## Notes

Add phrases to $wpide_strings, then translate them in Languages > Translations under the "WPIDE" group. In PHP templates you can also call pll__( 'the phrase' ).

## How to use it

Install the free WPIDE plugin (https://wordpress.org/plugins/wpide/), find "Translatable Phrases With Polylang Strings" 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/
