__ ( "Show", "sitepress" ), "untranslated" => __ ( "untranslated", "sitepress" ), "all" => __ ( "all", "sitepress" ), "in" => __ ( "in", "sitepress" ), "to" => __ ( "to", "sitepress" ), "of" => __ ( "of", "sitepress" ), "taxonomy" => __ ( "Taxonomy", "sitepress" ), "anyLang" => __ ( "any language", "sitepress" ), "apply" => __ ( "Refresh", "sitepress" ), "synchronizeBtn" => __ ( "Update Taxonomy Hierarchy", "sitepress" ), "searchPlaceHolder" => __ ( "search", "sitepress" ), "selectParent" => __ ( "select parent", "sitepress" ), "taxToTranslate" => __ ( "Select the taxonomy to translate: ", "sitepress" ), "translate" => __ ( "Translate", "sitepress" ), "Synchronize" => __ ( "Synchronize Hierarchy", "sitepress" ), "lowercaseTranslate" => __ ( "translate", "sitepress" ), "willBeRemoved" => __ ( "Will be removed.", "sitepress" ), "willBeAdded" => __ ( "Will be added.", "sitepress" ), "refLang" => __ ( "Synchronize taxonomy hierarchy according to this language", "sitepress" ), "targetLang" => __ ( "Target Language", "sitepress" ), "Name" => __ ( "Name", "sitepress" ), "Slug" => __ ( "Slug", "sitepress" ), "Description" => __ ( "Description", "sitepress" ), "Ok" => __ ( "Ok", "sitepress" ), "Singular" => __ ( "Singular", "sitepress" ), "Plural" => __ ( "Plural", "sitepress" ), "cancel" => __ ( "cancel", "sitepress" ), "loading" => __ ( "loading", "sitepress" ), "Save" => __ ( "Save", "sitepress" ), "currentPage" => __ ( "Current page", "sitepress" ), "goToPreviousPage" => __ ( "Go to previous page", "sitepress" ), "goToNextPage" => __ ( "Go to the next page", "sitepress" ), "goToFirstPage" => __ ( "Go to the first page", "sitepress" ), "goToLastPage" => __ ( "Go to the last page", "sitepress" ), "hieraSynced" => __ ( "Taxonomy hierarchy sync is now complete.", "sitepress" ), "hieraAlreadySynced" => __ ( "The taxonomy hierarchy is already synchronized.", "sitepress" ), "items" => __ ( "items", "sitepress" ), "item" => __ ( "item", "sitepress" ), "summaryTerms" => __ ( "This table summarizes all the terms for the taxonomy %taxonomy% and their translations. Click on any cell to translate.", "sitepress" ), "summaryLabels" => __ ( "This table lets you translate the labels for the taxonomy %taxonomy%. These translations will appear in the WordPress admin menus.", "sitepress" ), "preparingTermsData" => __( "Loading ...", "sitepress" ), "wpml_save_term_nonce" => wp_create_nonce( 'wpml_save_term_nonce' ), "wpml_tt_save_labels_translation_nonce" => wp_create_nonce( 'wpml_tt_save_labels_translation_nonce' ), "wpml_tt_sync_hierarchy_nonce" => wp_create_nonce( 'wpml_tt_sync_hierarchy_nonce' ) ); if ( defined( 'WPML_ST_FOLDER' ) ) { $changeLabelLanguage_url = admin_url( 'admin.php?page=' . WPML_ST_FOLDER . '/menu/string-translation.php&context=WordPress' ); $changeLabelLanguage = __( 'You can change the language of this label from the string translation page.', "sitepress" ); } else { $changeLabelLanguage_url = 'https://wpml.org/account/downloads/#wpml-string-translation'; $changeLabelLanguage = __( 'You can change the language of this label if you install and activate WPML String Translation.', "sitepress" ); } $labels['changeLabelLanguage'] = sprintf( $changeLabelLanguage, $changeLabelLanguage_url ); return $labels; } public static function enqueue_taxonomy_table_js() { $core_dependencies = array( "jquery", "backbone", 'wpml-underscore-template-compiler' ); wp_register_script( "templates", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/templates.js', $core_dependencies ); $core_dependencies[ ] = "templates"; wp_register_script( "main-util", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/util.js', $core_dependencies ); wp_register_script( "main-model", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/main.js', $core_dependencies ); $core_dependencies[ ] = "main-model"; $dependencies = $core_dependencies; wp_register_script( "term-rows-collection", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/collections/term-rows.js', array_merge( $core_dependencies, array( "term-row-model" ) ) ); $dependencies[ ] = "term-rows-collection"; wp_register_script( "term-model", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/models/term.js', $core_dependencies ); $dependencies[ ] = "term-model"; wp_register_script( "taxonomy-model", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/models/taxonomy.js', $core_dependencies ); $dependencies[ ] = "taxonomy-model"; wp_register_script( "term-row-model", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/models/term-row.js', $core_dependencies ); $dependencies[ ] = "term-row-model"; wp_register_script( "filter-view", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/views/filter-view.js', $core_dependencies ); $dependencies[ ] = "filter-view"; wp_register_script( "nav-view", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/views/nav-view.js', $core_dependencies ); $dependencies[ ] = "nav-view"; wp_register_script( "table-view", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/views/table-view.js', $core_dependencies ); $dependencies[ ] = "table-view"; wp_register_script( "taxonomy-view", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/views/taxonomy-view.js', $core_dependencies ); $dependencies[ ] = "taxonomy-view"; wp_register_script( "term-popup-view", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/views/term-popup-view.js', $core_dependencies ); $dependencies[ ] = "term-popup-view"; wp_register_script( "label-popup-view", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/views/label-popup-view.js', $core_dependencies ); $dependencies[ ] = "label-popup-view"; wp_register_script( "term-row-view", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/views/term-row-view.js', $core_dependencies ); $dependencies[ ] = "term-row-view"; wp_register_script( "label-row-view", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/views/label-row-view.js', $core_dependencies ); $dependencies[ ] = "label-row-view"; wp_register_script( "term-rows-view", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/views/term-rows-view.js', $core_dependencies ); $dependencies[ ] = "term-rows-view"; wp_register_script( "term-view", ICL_PLUGIN_URL . '/res/js/taxonomy-translation/views/term-view.js', $core_dependencies ); $dependencies[ ] = "term-view"; foreach ( $dependencies as $dependency ) { if ( $dependency != "templates" ) { wp_localize_script( $dependency, "labels", self::get_strings_translation_array() ); } } $need_enqueue = $dependencies; $need_enqueue[ ] = "main-model"; $need_enqueue[ ] = "main-util"; $need_enqueue[ ] = "templates"; foreach ( $need_enqueue as $handle ) { wp_enqueue_script( $handle ); } } public static function wpml_get_table_taxonomies() { global $sitepress; $taxonomies = get_taxonomies( array(), 'objects' ); $result = array( "taxonomies" => array(), "activeLanguages" => array() ); $sitepress->set_admin_language(); $active_langs = $sitepress->get_active_languages(); $default_lang = $sitepress->get_default_language(); foreach ( $active_langs as $code => $lang ) { if ( is_array( $lang ) && isset( $lang[ 'display_name' ] ) ) { $result[ "activeLanguages" ][ $code ] = array( "label" => $lang[ 'display_name' ] ); } } if ( isset( $active_langs[ $default_lang ] ) ) { $def_lang = $active_langs[ $default_lang ]; $result[ "activeLanguages" ] = array( $default_lang => array( "label" => $def_lang[ 'display_name' ] ) ) + $result[ "activeLanguages" ]; } foreach ( $taxonomies as $key => $tax ) { if ( $sitepress->is_translated_taxonomy( $key ) ) { $result[ "taxonomies" ][ $key ] = array( "label" => $tax->label, "singularLabel" => $tax->labels->singular_name, "hierarchical" => $tax->hierarchical, "name" => $key ); } } wp_send_json( $result ); } public static function wpml_get_terms_and_labels_for_taxonomy_table() { global $sitepress; $args = array(); $taxonomy = false; $request_post_page = filter_input( INPUT_POST, 'page', FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_NULL_ON_FAILURE ); if ( $request_post_page ) { $args[ 'page' ] = $request_post_page; } $request_post_perPage = filter_input( INPUT_POST, 'perPage', FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_NULL_ON_FAILURE ); if ( $request_post_perPage ) { $args[ 'per_page' ] = $request_post_perPage; } $request_post_taxonomy = filter_input( INPUT_POST, 'taxonomy', FILTER_SANITIZE_FULL_SPECIAL_CHARS, FILTER_NULL_ON_FAILURE ); if ( $request_post_taxonomy ) { $taxonomy = html_entity_decode( $request_post_taxonomy ); } do_action( 'wpml_st_load_label_menu' ); if ( $taxonomy ) { $terms_data = new WPML_Taxonomy_Translation_Screen_Data( $sitepress, $taxonomy ); $labels = apply_filters( 'wpml_label_translation_data', false, $taxonomy ); $def_lang = $sitepress->get_default_language(); wp_send_json( array( "terms" => $terms_data->terms(), "taxLabelTranslations" => $labels, "defaultLanguage" => $def_lang ) ); } else { wp_send_json_error(); } } }