__ ( "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();
}
}
}