plugins – Rename existing cpt and taxonomy with new textdomain
Question
I’m developping a small plugin to rename existing custom post type from a theme (Divi).
I use this code :
add_filter( 'register_post_type_args', 'rename_project');
function rename_project( $args, $post_type ) {
// Let's make sure that we're customizing the post type we really need
if ( 'project' === $post_type ) {
$singular = get_option('ncd_title_field');
$plural = $singular.'s';
$title = ucfirst($plural);
$args['labels']['name'] = $title;
$args['labels']['singular_name'] = $singular;
$args['labels']['menu_name'] = $title;
$args['labels']['name_admin_bar'] = $title;
$args['labels']['add_new_item'] = __('Add ','nexus-collaborators-divi') . $singular;
$args['labels']['add_new'] = __('Add new ','nexus-collaborators-divi');
$args['labels']['new_item'] = __('Add ','nexus-collaborators-divi');
$args['labels']['edit_item'] = __('Edit ','nexus-collaborators-divi') . $singular;
$args['labels']['view_item'] = __('View ','nexus-collaborators-divi') . $singular;
$args['labels']['all_items'] = __('View ','nexus-collaborators-divi') . $plural;
$args['labels']['search_items'] = __('Search ','nexus-collaborators-divi') . $plural;
$args['labels']['archives'] = __('Archives ','nexus-collaborators-divi') . $plural;
$args['labels']['attributes'] = __('Attributes ','nexus-collaborators-divi') . $plural;
$args['labels']['update_item'] = __('Updates ','nexus-collaborators-divi');
$args['labels']['view_items'] = __('View all ','nexus-collaborators-divi') . $plural;
$args['labels']['not_found'] = __('Not found ','nexus-collaborators-divi');
$args['labels']['featured_image'] = __('Featured image ','nexus-collaborators-divi');
$args['labels']['set_featured_image'] = __('Set featured image ','nexus-collaborators-divi');
$args['labels']['remove_featured_image'] = __('Remove featured image ','nexus-collaborators-divi');
$args['labels']['use_featured_image'] = __('Use featured image ','nexus-collaborators-divi');
$args['labels']['insert_into_item'] = __('Insert','nexus-collaborators-divi');
$args['labels']['uploaded_to_this_item'] = __('Uploaded to this item','nexus-collaborators-divi');
$args['labels']['items_list'] = __('List ','nexus-collaborators-divi ') . $plural;
$args['labels']['items_list_navigation'] = __('Navigation list ','nexus-collaborators-divi') . $plural;
$args['labels']['filter_items_list'] = __('Filter list ','nexus-collaborators-divi') . $plural;
$args['rewrite']['slug'] = $plural;
$args['menu_icon'] = get_option('ncd_ico_field','dashicons-admin-post');
$args['menu_position'] = 5;
// Flushing the rewrite rules should make sure that you don't have to re-save your permalink structure
flush_rewrite_rules();
}//end if
// Finally return or altered labels
return $args;
}
add_filter('register_taxonomy_args', 'dp_register_taxonomy_args');
function dp_register_taxonomy_args($args, $taxonomy, $object_type){
// If it's either the project_category taxonomy, we apply the new name
if ('project_category' == $taxonomy && !empty(get_option('ncd_category_field')) ) {
$singular = get_option('ncd_category_field');
$plural = $singular.'s';
$title = ucfirst($plural);
$args['labels']['name'] = $title;
$args['labels']['singular_name'] =$singular;
$args['labels']['menu_name'] =$singular;
$args['labels']['all_items'] =__('All','nexus-collaborators-divi') . $plural;
$args['labels']['new_item_name'] =__('New ','nexus-collaborators-divi') . $singular;
$args['labels']['add_new_item'] =__('Add ','nexus-collaborators-divi') . $singular;
$args['labels']['edit_item'] =__('View ','nexus-collaborators-divi') . $singular;
$args['labels']['update_item'] =__('Update ','nexus-collaborators-divi');
$args['labels']['view_item'] =__('View ','nexus-collaborators-divi');
}
// Or if it's the project_tag taxonomy, we apply the new name
if ('project_tag' == $taxonomy && !empty(get_option('ncd_tag_field'))) {
$singular = get_option('ncd_tag_field');
$plural = $singular.'s';
$title = ucfirst($plural);
$args['labels']['name'] = $title;
$args['labels']['singular_name'] =$singular;
$args['labels']['menu_name'] =$singular;
$args['labels']['all_items'] =__('All','nexus-collaborators-divi') . $plural;
$args['labels']['new_item_name'] =__('New ','nexus-collaborators-divi') . $singular;
$args['labels']['add_new_item'] =__('Add ','nexus-collaborators-divi') . $singular;
$args['labels']['edit_item'] =__('View ','nexus-collaborators-divi') . $singular;
$args['labels']['update_item'] =__('Update ','nexus-collaborators-divi');
$args['labels']['view_item'] =__('View ','nexus-collaborators-divi');
}
// Finally return the taxonomy_args
return $args;
}
I use an option page to save and retrieve the new name.
I also translated my plugin to French but I have a problem :
The labels of the cpt and taxnonomy renamed with my new textdomain are not translated but the translation is in the po file. Everything else works fine, except for these ones
I think it’s because these labels are already configured with another textdomain.
Do you know how to correctly translate these labels ?
0
1 year
2022-08-05T02:38:16-05:00
2022-08-05T02:38:16-05:00 0 Answers
0 views
0
Leave an answer