Não é possível fazer o trabalho translate_user_role ()

Estive investigando arquivos do wpse para resolver meu problema, mas não consigo fazer isso. Eu construí este código:

$args = array('fields' => 'all_with_meta'); $users = get_users($args); foreach ($users as $user) { echo esc_html( translate_user_role( ucfirst ( $user->roles[0] ) ) ); } 

Eu fiz um print_r() para ver o que eu recebo. Tudo está bem, quero dizer, eu agarro o papel do usuário, mas não se traduz por si só. Preciso fazer mais?

Solutions Collecting From Web of "Não é possível fazer o trabalho translate_user_role ()"

Eu acho que sua function de nidificação está ligeiramente confusa; ucfirst depois de traduzir, assim:

 esc_html( ucfirst( translate_user_role( $user->roles[0] ) ) ); 

Meu ruim, completamente pulou uma batida lá. Em vez disso, você deveria usar:

 translate_user_role( $GLOBALS['wp_roles']->role_names[ $user->roles[0] ] ); 

Não é confiável assumir que todos os nomes de exibição de function são simplesmente ucfirst( $role key ) . Se isso ainda não funcionar, você tem certeza de que os arquivos de idioma que você está usando traduziram o WordPress completamente?

Por favor note que translate_user_role não funciona no front-end atualmente.

Aqui está uma solução alternativa, você pode colocar isso em seu tema:

 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' ); } }