translate_user_role( string $name, string $domain = ‘default’ ): string

Translates role name.


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.


The role name.
Text domain. Unique identifier for retrieving translated strings.
Default 'default'.



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


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


5.2.0Added the $domain parameter.

User Contributed Notes

  1. Skip to note 2 content

    Always make sure that the first letter of $name is Capitalized!
    For example this will fail and return the original $name

    translate_user_role( 'administrator' ); // return administrator

    but this one will return the translation of $name

    translate_user_role( 'Administrator' ); // return translation of Administrator

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