translate_user_role( string $name, string $domain = 'default' )

Translates role name.

Description Description

Since the role names are in the database and not in the source there are dummy gettext calls to get them into the POT file and this function properly translates them back.

The before_last_bar() call is needed, because older installations keep the roles using the old context format: ‘Role name|User role’ and just skipping the content after the last bar is easier than fixing them in the DB. New installations won’t suffer from that problem.

Parameters Parameters


(string) (Required) The role name.


(string) (Optional) Text domain. Unique identifier for retrieving translated strings.

Default value: 'default'

Top ↑

Return Return

(string) Translated role name on success, original name on failure.

Top ↑

Source Source

File: wp-includes/l10n.php

function translate_user_role( $name, $domain = 'default' ) {
	return translate_with_gettext_context( before_last_bar( $name ), 'User role', $domain );

Top ↑

Changelog Changelog

Version Description
5.2.0 Added the $domain parameter.
2.8.0 Introduced.

Top ↑

User Contributed Notes User Contributed Notes

  1. Skip to note 1 content
    Contributed by Jory Hogeveen

    Please note that `translate_user_role` doesn’t work in the front-end currently.

    Here is a workaround, you can place this in your theme:

    add_action( 'init', 'load_admin_textdomain_in_front' )
    function load_admin_textdomain_in_front() {
        if ( ! is_admin() ) {
            load_textdomain( 'default', WP_LANG_DIR . '/admin-' . get_locale() . '.mo' );


You must log in before being able to contribute a note or feedback.