Changeset 30335
- Timestamp:
- 11/13/2014 05:00:08 PM (10 years ago)
- Location:
- trunk/src
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-admin/css/forms.css
r30333 r30335 612 612 } 613 613 614 table.form-table td .updated p { 615 font-size: 13px; 616 margin: 0.3em 0; 614 table.form-table td .updated p { 615 font-size: 13px; 616 margin: 0.3em 0; 617 617 } 618 618 … … 768 768 } 769 769 770 .settings-php .language-install-spinner, 771 .options-general-php .language-install-spinner { 772 display: inline-block; 773 float: none; 774 margin: -3px 5px 0; 775 vertical-align: middle; 776 } 777 770 778 /* =Media Queries 771 779 -------------------------------------------------------------- */ -
trunk/src/wp-admin/network/settings.php
r29718 r30335 11 11 require_once( dirname( __FILE__ ) . '/admin.php' ); 12 12 13 /** WordPress Translation Install API */ 14 require_once( ABSPATH . 'wp-admin/includes/translation-install.php' ); 15 13 16 if ( ! is_multisite() ) 14 17 wp_die( __( 'Multisite support is not enabled.' ) ); … … 19 22 $title = __( 'Network Settings' ); 20 23 $parent_file = 'settings.php'; 24 25 /** 26 * Display JavaScript on the page. 27 * 28 * @since 4.1.0 29 */ 30 function network_settings_add_js() { 31 ?> 32 <script type="text/javascript"> 33 jQuery(document).ready( function($) { 34 var languageSelect = $( '#WPLANG' ); 35 $( 'form' ).submit( function() { 36 // Don't show a spinner for English and installed languages, 37 // as there is nothing to download. 38 if ( ! languageSelect.find( 'option:selected' ).data( 'installed' ) ) { 39 $( '#submit', this ).after( '<span class="spinner language-install-spinner" />' ); 40 } 41 }); 42 }); 43 </script> 44 <?php 45 } 46 add_action( 'admin_head', 'network_settings_add_js' ); 21 47 22 48 get_current_screen()->add_help_tab( array( … … 59 85 ); 60 86 87 // Handle translation install. 88 if ( ! empty( $_POST['WPLANG'] ) && wp_can_install_language_pack() ) { // @todo: Skip if already installed 89 $language = wp_download_language_pack( $_POST['WPLANG'] ); 90 if ( $language ) { 91 $_POST['WPLANG'] = $language; 92 } 93 } 94 61 95 foreach ( $options as $option_name ) { 62 96 if ( ! isset($_POST[$option_name]) ) … … 276 310 <?php 277 311 $languages = get_available_languages(); 278 if ( ! empty( $languages ) ) { 312 $translations = wp_get_available_translations(); 313 if ( ! empty( $languages ) || ! empty( $translations ) ) { 279 314 ?> 280 315 <h3><?php _e( 'Language Settings' ); ?></h3> … … 290 325 291 326 wp_dropdown_languages( array( 292 'name' => 'WPLANG', 293 'id' => 'WPLANG', 294 'selected' => $lang, 295 'languages' => $languages, 327 'name' => 'WPLANG', 328 'id' => 'WPLANG', 329 'selected' => $lang, 330 'languages' => $languages, 331 'translations' => $translations, 332 'show_available_translations' => wp_can_install_language_pack(), 296 333 ) ); 297 334 ?> -
trunk/src/wp-admin/options-general.php
r29963 r30335 9 9 /** WordPress Administration Bootstrap */ 10 10 require_once( dirname( __FILE__ ) . '/admin.php' ); 11 12 /** WordPress Translation Install API */ 13 require_once( ABSPATH . 'wp-admin/includes/translation-install.php' ); 11 14 12 15 if ( ! current_user_can( 'manage_options' ) ) … … 63 66 date : format.val() 64 67 }, function(d) { format.siblings('.spinner').hide(); format.siblings('.example').text(d); } ); 68 }); 69 70 var languageSelect = $( '#WPLANG' ); 71 $( 'form' ).submit( function() { 72 // Don't show a spinner for English and installed languages, 73 // as there is nothing to download. 74 if ( ! languageSelect.find( 'option:selected' ).data( 'installed' ) ) { 75 $( '#submit', this ).after( '<span class="spinner language-install-spinner" />' ); 76 } 65 77 }); 66 78 }); … … 319 331 <?php 320 332 $languages = get_available_languages(); 333 $translations = wp_get_available_translations(); 321 334 if ( ! is_multisite() && defined( 'WPLANG' ) && '' !== WPLANG && 'en_US' !== WPLANG && ! in_array( WPLANG, $languages ) ) { 322 335 $languages[] = WPLANG; 323 336 } 324 if ( $languages) {337 if ( ! empty( $languages ) || ! empty( $translations ) ) { 325 338 ?> 326 339 <tr> … … 334 347 335 348 wp_dropdown_languages( array( 336 'name' => 'WPLANG', 337 'id' => 'WPLANG', 338 'selected' => $locale, 339 'languages' => $languages, 349 'name' => 'WPLANG', 350 'id' => 'WPLANG', 351 'selected' => $locale, 352 'languages' => $languages, 353 'translations' => $translations, 354 'show_available_translations' => ( ! is_multisite() || is_super_admin() ) && wp_can_install_language_pack(), 340 355 ) ); 341 356 -
trunk/src/wp-admin/options.php
r29630 r30335 152 152 } 153 153 154 // Handle custom date/time formats.155 154 if ( 'general' == $option_page ) { 155 // Handle custom date/time formats. 156 156 if ( !empty($_POST['date_format']) && isset($_POST['date_format_custom']) && '\c\u\s\t\o\m' == wp_unslash( $_POST['date_format'] ) ) 157 157 $_POST['date_format'] = $_POST['date_format_custom']; … … 163 163 $_POST['gmt_offset'] = preg_replace('/UTC\+?/', '', $_POST['gmt_offset']); 164 164 $_POST['timezone_string'] = ''; 165 } 166 167 // Handle translation install. 168 if ( ! empty( $_POST['WPLANG'] ) && ( ! is_multisite() || is_super_admin() ) ) { // @todo: Skip if already installed 169 require_once( ABSPATH . 'wp-admin/includes/translation-install.php' ); 170 171 if ( wp_can_install_language_pack() ) { 172 $language = wp_download_language_pack( $_POST['WPLANG'] ); 173 if ( $language ) { 174 $_POST['WPLANG'] = $language; 175 } 176 } 165 177 } 166 178 } -
trunk/src/wp-includes/l10n.php
r29984 r30335 850 850 * @see wp_get_available_translations() 851 851 * 852 * @param array $args Optional arguments. Default empty array. 852 * @param string|array $query { 853 * Optional. Array of arguments. 854 * 855 * @type string $id ID attribute of the select element. Default empty. 856 * @type string $name Name attribute of the select element. Default empty. 857 * @type array $languages List of installed languages, contain only the locales. 858 * Default empty array. 859 * @type array $translations List of available translations. Default result of 860 * {@see wp_get_available_translations()}. 861 * @type string $selected Language which should be selected. Default empty. 862 * @type bool $show_available_translations Whether to show available translations. Default true. 863 * } 853 864 */ 854 865 function wp_dropdown_languages( $args = array() ) { 855 require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );856 866 857 867 $args = wp_parse_args( $args, array( 858 'id' => '', 859 'name' => '', 860 'languages' => array(), 861 'selected' => '' 868 'id' => '', 869 'name' => '', 870 'languages' => array(), 871 'translations' => array(), 872 'selected' => '', 873 'show_available_translations' => true, 862 874 ) ); 863 875 864 if ( empty( $args['languages'] ) ) {865 return false;866 }867 868 $translations = wp_get_available_translations();876 $translations = $args['translations']; 877 if ( empty( $translations ) ) { 878 require_once( ABSPATH . 'wp-admin/includes/translation-install.php' ); 879 $translations = wp_get_available_translations(); 880 } 869 881 870 882 /* … … 881 893 'lang' => $translation['iso'][1], 882 894 ); 895 896 // Remove installed language from available translations. 897 unset( $translations[ $locale ] ); 883 898 } else { 884 899 $languages[] = array( … … 892 907 printf( '<select name="%s" id="%s">', esc_attr( $args['name'] ), esc_attr( $args['id'] ) ); 893 908 909 // Holds the HTML markup. 910 $structure = array(); 911 894 912 // List installed languages. 895 echo '<option value="" lang="en">English (United States)</option>'; 913 $structure[] = '<optgroup label="' . esc_attr_x( 'Installed', 'translations' ) . '">'; 914 $structure[] = '<option value="" lang="en" data-installed="1">English (United States)</option>'; 896 915 foreach ( $languages as $language ) { 897 $selected = selected( $language['language'], $args['selected'], false ); 898 printf( 899 '<option value="%s" lang="%s"%s>%s</option>', 916 $structure[] = sprintf( 917 '<option value="%s" lang="%s"%s data-installed="1">%s</option>', 900 918 esc_attr( $language['language'] ), 901 919 esc_attr( $language['lang'] ), 902 $selected,920 selected( $language['language'], $args['selected'], false ), 903 921 esc_html( $language['native_name'] ) 904 922 ); 905 923 } 924 $structure[] = '</optgroup>'; 925 926 // List available translations. 927 if ( ! empty( $translations ) && $args['show_available_translations'] ) { 928 $structure[] = '<optgroup label="' . esc_attr_x( 'Available', 'translations' ) . '">'; 929 foreach ( $translations as $translation ) { 930 $structure[] = sprintf( 931 '<option value="%s" lang="%s"%s>%s</option>', 932 esc_attr( $translation['language'] ), 933 esc_attr( $translation['iso'][1] ), 934 selected( $translation['language'], $args['selected'], false ), 935 esc_html( $translation['native_name'] ) 936 ); 937 } 938 $structure[] = '</optgroup>'; 939 } 940 941 echo join( "\n", $structure ); 906 942 907 943 echo '</select>';
Note: See TracChangeset
for help on using the changeset viewer.