J'utilise le plug-in Membres de Justin Tadlock pour créer de nouveaux rôles et WP Role on Registration pour les afficher sur le formulaire d'inscription.
J'ai un site multilingue (anglais et espagnol) et j'ai localisé mes taxonomies personnalisées à l'aide de qTranslate.
Je ne peux pas utiliser les balises rapides de qTranslate dans le champ Libellé de rôle du plug-in du membre, car il ne l'enregistre pas correctement (même avec $new_role_label = strip_tags( $_POST['role-label'] );
commenté sur role-new.php) et je ne peux pas accéder à la base de données pour effectuer les modifications. là parce qu'alors ça casse.
J'ai vu très peu d'informations sur la fonction WP translate_user_role mais je n'en suis pas sûr. Il n'y a pas grand chose d'autre à faire.
Je ne connais pas la fonction que vous mentionnez non plus, mais j'oserais même deviner que cela ne s'applique que de toute façon aux rôles par défaut.
Pourtant, le lien que vous avez posté contient un pointeur dans la bonne direction. Il parle d '"appels factices gettext", ce qui est exactement ce que vous devez faire.
Dans ce qui suit, nous ajusterons l'objet $wp_roles
global sur init
et raccorderons un filtre à l'appel get_option( 'wp_user_roles' )
.
function wpse92529_translatable_role_names() {
global $wp_roles;
$roles = $wp_roles->roles;
$role_names = $wp_roles->role_names;
/* define the translatable roles here */
$translated_roles = array(
'superuser' => _x( 'Superuser', 'Role Names', 'your-text-domain' ),
'custom-role' => _x( 'The custom role', 'Role Names', 'your-text-domain' )
);
foreach ( $roles as $role_slug => $role_info ) {
if ( array_key_exists( $role_slug, $translated_roles ) ) {
$roles[$role_slug]['name'] = $translated_roles[$role_slug];
$role_names[$role_slug] = $translated_roles[$role_slug];
}
}
$wp_roles->roles = $roles;
$wp_roles->role_names = $role_names;
return $roles;
}
add_action( 'init', 'wpse92529_translatable_role_names', 1 );
add_filter( 'option_wp_user_roles', 'wpse92529_translatable_role_names', 11 );
Les valeurs du tableau $translated_roles
apparaîtront maintenant dans le fichier .pot
de votre thème/plugin.