__( "The changes you made will be lost if you navigate away from this page.", 'bogo' ), 'rest_api' => array( 'url' => trailingslashit( rest_url( 'bogo/v1' ) ), 'nonce' => wp_create_nonce( 'wp_rest' ) ) ); if ( 'nav-menus.php' == $hook_suffix ) { $nav_menu_id = absint( get_user_option( 'nav_menu_recently_edited' ) ); $nav_menu_items = wp_get_nav_menu_items( $nav_menu_id ); $locales = array(); foreach ( (array) $nav_menu_items as $item ) { $locales[$item->db_id] = $item->bogo_locales; } $local_args = array_merge( $local_args, array( 'availableLanguages' => bogo_available_languages( array( 'exclude_enus_if_inactive' => true, 'orderby' => 'value' ) ), 'locales' => $locales, 'selectorLegend' => __( 'Displayed on pages in', 'bogo' ), 'cbPrefix' => 'menu-item-bogo-locale' ) ); } if ( 'options-general.php' == $hook_suffix ) { $local_args = array_merge( $local_args, array( 'defaultLocale' => bogo_get_default_locale() ) ); } if ( 'post.php' == $hook_suffix && ! empty( $GLOBALS['post'] ) ) { $post = $GLOBALS['post']; $local_args = array_merge( $local_args, array( 'post_id' => $post->ID ) ); } wp_localize_script( 'bogo-admin', '_bogo', $local_args ); } add_action( 'admin_menu', 'bogo_admin_menu' ); function bogo_admin_menu() { add_menu_page( __( 'Languages', 'bogo' ), __( 'Languages', 'bogo' ), 'bogo_manage_language_packs', 'bogo', 'bogo_tools_page', 'dashicons-translation', 73 ); // between Users (70) and Tools (75) $tools = add_submenu_page( 'bogo', __( 'Installed Languages', 'bogo' ), __( 'Installed Languages', 'bogo' ), 'bogo_manage_language_packs', 'bogo', 'bogo_tools_page' ); add_action( 'load-' . $tools, 'bogo_load_tools_page' ); $texts = add_submenu_page( 'bogo', __( 'Translatable Text Strings', 'bogo' ), __( 'Text Translation', 'bogo' ), 'bogo_edit_text_translation', 'bogo-texts', 'bogo_texts_page' ); add_action( 'load-' . $texts, 'bogo_load_texts_page' ); } function bogo_load_tools_page() { require_once( ABSPATH . 'wp-admin/includes/translation-install.php' ); $action = isset( $_GET['action'] ) ? $_GET['action'] : ''; if ( 'install_translation' == $action ) { check_admin_referer( 'bogo-tools' ); if ( ! current_user_can( 'bogo_manage_language_packs' ) ) { wp_die( __( "You are not allowed to install translations.", 'bogo' ) ); } $locale = isset( $_GET['locale'] ) ? $_GET['locale'] : null; if ( wp_download_language_pack( $locale ) ) { $redirect_to = add_query_arg( array( 'locale' => $locale, 'message' => 'install_success' ), menu_page_url( 'bogo', false ) ); } else { $redirect_to = add_query_arg( array( 'locale' => $locale, 'message' => 'install_failed' ), menu_page_url( 'bogo', false ) ); } wp_safe_redirect( $redirect_to ); exit(); } if ( 'delete_translation' == $action ) { check_admin_referer( 'bogo-tools' ); if ( ! current_user_can( 'bogo_manage_language_packs' ) ) { wp_die( __( "You are not allowed to delete translations.", 'bogo' ) ); } $locale = isset( $_GET['locale'] ) ? $_GET['locale'] : null; if ( bogo_delete_language_pack( $locale ) ) { $redirect_to = add_query_arg( array( 'locale' => $locale, 'message' => 'delete_success' ), menu_page_url( 'bogo', false ) ); } else { $redirect_to = add_query_arg( array( 'locale' => $locale, 'message' => 'delete_failed' ), menu_page_url( 'bogo', false ) ); } wp_safe_redirect( $redirect_to ); exit(); } if ( 'deactivate_enus' == $action ) { check_admin_referer( 'bogo-tools' ); bogo_set_prop( 'enus_deactivated', true ); $redirect_to = add_query_arg( array( 'message' => 'enus_deactivated' ), menu_page_url( 'bogo', false ) ); wp_safe_redirect( $redirect_to ); exit(); } if ( 'activate_enus' == $action ) { check_admin_referer( 'bogo-tools' ); bogo_set_prop( 'enus_deactivated', false ); $redirect_to = add_query_arg( array( 'message' => 'enus_activated' ), menu_page_url( 'bogo', false ) ); wp_safe_redirect( $redirect_to ); exit(); } } function bogo_load_texts_page() { $action = isset( $_POST['action'] ) ? $_POST['action'] : ''; if ( 'save' == $action ) { check_admin_referer( 'bogo-edit-text-translation' ); if ( ! current_user_can( 'bogo_edit_text_translation' ) ) { wp_die( __( "You are not allowed to edit translations.", 'bogo' ) ); } $locale = isset( $_POST['locale'] ) ? $_POST['locale'] : null; $blogname = isset( $_POST['blogname'] ) ? $_POST['blogname'] : ''; $blogdescription = isset( $_POST['blogdescription'] ) ? $_POST['blogdescription'] : ''; $entries = array( array( 'singular' => 'blogname', 'translations' => array( $blogname ), 'context' => 'blogname' ), array( 'singular' => 'blogdescription', 'translations' => array( $blogdescription ), 'context' => 'blogdescription' ) ); if ( Bogo_POMO::export( $locale, $entries ) ) { $message = 'translation_saved'; } else { $message = 'translation_failed'; } $redirect_to = add_query_arg( array( 'locale' => $locale, 'message' => $message ), menu_page_url( 'bogo-texts', false ) ); wp_safe_redirect( $redirect_to ); exit(); } } function bogo_tools_page() { $enus_deactivated = bogo_get_prop( 'enus_deactivated' ); $can_install = wp_can_install_language_pack(); $default_locale = bogo_get_default_locale(); $available_locales = bogo_available_locales(); ?>
| 1 |
[]
|
|---|---|
| [] | |
| [] |
%s
', esc_html( $message ) ); } else { echo sprintf( '%s