]> scripts.mit.edu Git - autoinstalls/wordpress.git/blobdiff - wp-admin/options-general.php
WordPress 4.5.2
[autoinstalls/wordpress.git] / wp-admin / options-general.php
index 701188555353a3b4de1734327b99b4a90397cb31..9091d5e3eb797545e42670a3f56083ad278e53a1 100644 (file)
@@ -9,52 +9,17 @@
 /** WordPress Administration Bootstrap */
 require_once( dirname( __FILE__ ) . '/admin.php' );
 
+/** WordPress Translation Install API */
+require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
+
 if ( ! current_user_can( 'manage_options' ) )
        wp_die( __( 'You do not have sufficient permissions to manage options for this site.' ) );
 
 $title = __('General Settings');
 $parent_file = 'options-general.php';
 /* translators: date and time format for exact current time, mainly about timezones, see http://php.net/date */
-$timezone_format = _x('Y-m-d G:i:s', 'timezone date format');
+$timezone_format = _x('Y-m-d H:i:s', 'timezone date format');
 
-/**
- * Display JavaScript on the page.
- *
- * @since 3.5.0
- */
-function options_general_add_js() {
-?>
-<script type="text/javascript">
-//<![CDATA[
-       jQuery(document).ready(function($){
-               $("input[name='date_format']").click(function(){
-                       if ( "date_format_custom_radio" != $(this).attr("id") )
-                               $("input[name='date_format_custom']").val( $(this).val() ).siblings('.example').text( $(this).siblings('span').text() );
-               });
-               $("input[name='date_format_custom']").focus(function(){
-                       $( '#date_format_custom_radio' ).prop( 'checked', true );
-               });
-
-               $("input[name='time_format']").click(function(){
-                       if ( "time_format_custom_radio" != $(this).attr("id") )
-                               $("input[name='time_format_custom']").val( $(this).val() ).siblings('.example').text( $(this).siblings('span').text() );
-               });
-               $("input[name='time_format_custom']").focus(function(){
-                       $( '#time_format_custom_radio' ).prop( 'checked', true );
-               });
-               $("input[name='date_format_custom'], input[name='time_format_custom']").change( function() {
-                       var format = $(this);
-                       format.siblings('.spinner').css('display', 'inline-block'); // show(); can't be used here
-                       $.post(ajaxurl, {
-                                       action: 'date_format_custom' == format.attr('name') ? 'date_format' : 'time_format',
-                                       date : format.val()
-                               }, function(d) { format.siblings('.spinner').hide(); format.siblings('.example').text(d); } );
-               });
-       });
-//]]>
-</script>
-<?php
-}
 add_action('admin_head', 'options_general_add_js');
 
 $options_help = '<p>' . __('The fields on this screen determine some of the basics of your site setup.') . '</p>' .
@@ -65,7 +30,8 @@ if ( ! is_multisite() ) {
                '<p>' . __('If you want site visitors to be able to register themselves, as opposed to by the site administrator, check the membership box. A default user role can be set for all new users, whether self-registered or registered by the site admin.') . '</p>';
 }
 
-$options_help .= '<p>' . __('UTC means Coordinated Universal Time.') . '</p>' .
+$options_help .= '<p>' . __( 'You can set the language, and the translation files will be automatically downloaded and installed (available if your filesystem is writable).' ) . '</p>' .
+       '<p>' . __( 'UTC means Coordinated Universal Time.' ) . '</p>' .
        '<p>' . __( 'You must click the Save Changes button at the bottom of the screen for new settings to take effect.' ) . '</p>';
 
 get_current_screen()->add_help_tab( array(
@@ -76,7 +42,7 @@ get_current_screen()->add_help_tab( array(
 
 get_current_screen()->set_help_sidebar(
        '<p><strong>' . __('For more information:') . '</strong></p>' .
-       '<p>' . __('<a href="http://codex.wordpress.org/Settings_General_Screen" target="_blank">Documentation on General Settings</a>') . '</p>' .
+       '<p>' . __('<a href="https://codex.wordpress.org/Settings_General_Screen" target="_blank">Documentation on General Settings</a>') . '</p>' .
        '<p>' . __('<a href="https://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
 );
 
@@ -84,7 +50,7 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 ?>
 
 <div class="wrap">
-<h2><?php echo esc_html( $title ); ?></h2>
+<h1><?php echo esc_html( $title ); ?></h1>
 
 <form method="post" action="options.php" novalidate="novalidate">
 <?php settings_fields('general'); ?>
@@ -96,8 +62,8 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 </tr>
 <tr>
 <th scope="row"><label for="blogdescription"><?php _e('Tagline') ?></label></th>
-<td><input name="blogdescription" type="text" id="blogdescription" value="<?php form_option('blogdescription'); ?>" class="regular-text" />
-<p class="description"><?php _e('In a few words, explain what this site is about.') ?></p></td>
+<td><input name="blogdescription" type="text" id="blogdescription" aria-describedby="tagline-description" value="<?php form_option('blogdescription'); ?>" class="regular-text" />
+<p class="description" id="tagline-description"><?php _e( 'In a few words, explain what this site is about.' ) ?></p></td>
 </tr>
 <?php if ( !is_multisite() ) { ?>
 <tr>
@@ -106,13 +72,15 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 </tr>
 <tr>
 <th scope="row"><label for="home"><?php _e('Site Address (URL)') ?></label></th>
-<td><input name="home" type="url" id="home" value="<?php form_option( 'home' ); ?>"<?php disabled( defined( 'WP_HOME' ) ); ?> class="regular-text code<?php if ( defined( 'WP_HOME' ) ) echo ' disabled' ?>" />
-<p class="description"><?php _e('Enter the address here if you want your site homepage <a href="http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">to be different from the directory</a> you installed WordPress.'); ?></p></td>
+<td><input name="home" type="url" id="home" aria-describedby="home-description" value="<?php form_option( 'home' ); ?>"<?php disabled( defined( 'WP_HOME' ) ); ?> class="regular-text code<?php if ( defined( 'WP_HOME' ) ) echo ' disabled' ?>" />
+<?php if ( ! defined( 'WP_HOME' ) ) : ?>
+<p class="description" id="home-description"><?php _e( 'Enter the address here if you <a href="https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory">want your site home page to be different from your WordPress installation directory.</a>' ); ?></p></td>
+<?php endif; ?>
 </tr>
 <tr>
-<th scope="row"><label for="admin_email"><?php _e('E-mail Address') ?> </label></th>
-<td><input name="admin_email" type="email" id="admin_email" value="<?php form_option( 'admin_email' ); ?>" class="regular-text ltr" />
-<p class="description"><?php _e('This address is used for admin purposes, like new user notification.') ?></p></td>
+<th scope="row"><label for="admin_email"><?php _e('Email Address') ?> </label></th>
+<td><input name="admin_email" type="email" id="admin_email" aria-describedby="admin-email-description" value="<?php form_option( 'admin_email' ); ?>" class="regular-text ltr" />
+<p class="description" id="admin-email-description"><?php _e( 'This address is used for admin purposes, like new user notification.' ) ?></p></td>
 </tr>
 <tr>
 <th scope="row"><?php _e('Membership') ?></th>
@@ -129,14 +97,25 @@ include( ABSPATH . 'wp-admin/admin-header.php' );
 </tr>
 <?php } else { ?>
 <tr>
-<th scope="row"><label for="new_admin_email"><?php _e('E-mail Address') ?> </label></th>
-<td><input name="new_admin_email" type="email" id="new_admin_email" value="<?php form_option( 'admin_email' ); ?>" class="regular-text ltr" />
-<p class="description"><?php _e('This address is used for admin purposes. If you change this we will send you an e-mail at your new address to confirm it. <strong>The new address will not become active until confirmed.</strong>') ?></p>
+<th scope="row"><label for="new_admin_email"><?php _e('Email Address') ?> </label></th>
+<td><input name="new_admin_email" type="email" id="new_admin_email" aria-describedby="new-admin-email-description" value="<?php form_option( 'admin_email' ); ?>" class="regular-text ltr" />
+<p class="description" id="new-admin-email-description"><?php _e( 'This address is used for admin purposes. If you change this we will send you an email at your new address to confirm it. <strong>The new address will not become active until confirmed.</strong>' ) ?></p>
 <?php
 $new_admin_email = get_option( 'new_admin_email' );
 if ( $new_admin_email && $new_admin_email != get_option('admin_email') ) : ?>
 <div class="updated inline">
-<p><?php printf( __('There is a pending change of the admin e-mail to <code>%1$s</code>. <a href="%2$s">Cancel</a>'), esc_html( $new_admin_email ), esc_url( admin_url( 'options.php?dismiss=new_admin_email' ) ) ); ?></p>
+<p><?php
+       printf(
+               /* translators: %s: new admin email */
+               __( 'There is a pending change of the admin email to %s.' ),
+               '<code>' . esc_html( $new_admin_email ) . '</code>'
+       );
+       printf(
+               ' <a href="%1$s">%2$s</a>',
+               esc_url( admin_url( 'options.php?dismiss=new_admin_email' ) ),
+               __( 'Cancel' )
+       );
+?></p>
 </div>
 <?php endif; ?>
 </td>
@@ -167,17 +146,32 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
 <th scope="row"><label for="timezone_string"><?php _e('Timezone') ?></label></th>
 <td>
 
-<select id="timezone_string" name="timezone_string">
+<select id="timezone_string" name="timezone_string" aria-describedby="timezone-description">
 <?php echo wp_timezone_choice($tzstring); ?>
 </select>
 
-       <span id="utc-time"><?php printf(__('<abbr title="Coordinated Universal Time">UTC</abbr> time is <code>%s</code>'), date_i18n($timezone_format, false, 'gmt')); ?></span>
-<?php if ( get_option('timezone_string') || !empty($current_offset) ) : ?>
-       <span id="local-time"><?php printf(__('Local time is <code>%1$s</code>'), date_i18n($timezone_format)); ?></span>
+<p class="description" id="timezone-description"><?php _e( 'Choose a city in the same timezone as you.' ); ?></p>
+
+<p class="timezone-info">
+       <span id="utc-time"><?php
+               /* translators: 1: UTC abbreviation, 2: UTC time */
+               printf( __( 'Universal time (%1$s) is %2$s.' ),
+                       '<abbr>' . __( 'UTC' ) . '</abbr>',
+                       '<code>' . date_i18n( $timezone_format, false, 'gmt' ) . '</code>'
+               );
+       ?></span>
+<?php if ( get_option( 'timezone_string' ) || ! empty( $current_offset ) ) : ?>
+       <span id="local-time"><?php
+               /* translators: %s: local time */
+               printf( __( 'Local time is %s.' ),
+                       '<code>' . date_i18n( $timezone_format ) . '</code>'
+               );
+       ?></span>
 <?php endif; ?>
-<p class="description"><?php _e('Choose a city in the same timezone as you.'); ?></p>
-<?php if ($check_zone_info && $tzstring) : ?>
-<br />
+</p>
+
+<?php if ( $check_zone_info && $tzstring ) : ?>
+<p class="timezone-info">
 <span>
        <?php
        // Set TZ so localtime works.
@@ -207,18 +201,26 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
                if ( $found ) {
                        echo ' ';
                        $message = $tr['isdst'] ?
-                               __('Daylight saving time begins on: <code>%s</code>.') :
-                               __('Standard time begins on: <code>%s</code>.');
+                               /* translators: %s: date and time  */
+                               __( 'Daylight saving time begins on: %s.')  :
+                               /* translators: %s: date and time  */
+                               __( 'Standard time begins on: %s.' );
                        // Add the difference between the current offset and the new offset to ts to get the correct transition time from date_i18n().
-                       printf( $message, date_i18n(get_option('date_format') . ' ' . get_option('time_format'), $tr['ts'] + ($tz_offset - $tr['offset']) ) );
+                       printf( $message,
+                               '<code>' . date_i18n(
+                                       __( 'F j, Y' ) . ' ' . __( 'g:i a' ),
+                                       $tr['ts'] + ( $tz_offset - $tr['offset'] )
+                               ) . '</code>'
+                       );
                } else {
-                       _e('This timezone does not observe daylight saving time.');
+                       _e( 'This timezone does not observe daylight saving time.' );
                }
        }
        // Set back to UTC.
        date_default_timezone_set('UTC');
        ?>
        </span>
+</p>
 <?php endif; ?>
 </td>
 
@@ -241,17 +243,21 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
        $custom = true;
 
        foreach ( $date_formats as $format ) {
-               echo "\t<label title='" . esc_attr($format) . "'><input type='radio' name='date_format' value='" . esc_attr($format) . "'";
+               echo "\t<label><input type='radio' name='date_format' value='" . esc_attr( $format ) . "'";
                if ( get_option('date_format') === $format ) { // checked() uses "==" rather than "==="
                        echo " checked='checked'";
                        $custom = false;
                }
-               echo ' /> <span>' . date_i18n( $format ) . "</span></label><br />\n";
+               echo ' /> <span class="date-time-text format-i18n">' . date_i18n( $format ) . '</span><code>' . esc_html( $format ) . "</code></label><br />\n";
        }
 
-       echo '  <label><input type="radio" name="date_format" id="date_format_custom_radio" value="\c\u\s\t\o\m"';
+       echo '<label><input type="radio" name="date_format" id="date_format_custom_radio" value="\c\u\s\t\o\m"';
        checked( $custom );
-       echo '/> ' . __('Custom:') . ' </label><input type="text" name="date_format_custom" value="' . esc_attr( get_option('date_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('date_format') ) . "</span> <span class='spinner'></span>\n";
+       echo '/> <span class="date-time-text date-time-custom-text">' . __( 'Custom:' ) . '<span class="screen-reader-text"> ' . __( 'enter a custom date format in the following field' ) . '</span></label>' .
+               '<label for="date_format_custom" class="screen-reader-text">' . __( 'Custom date format:' ) . '</label>' .
+               '<input type="text" name="date_format_custom" id="date_format_custom" value="' . esc_attr( get_option( 'date_format' ) ) . '" class="small-text" /></span>' .
+               '<span class="screen-reader-text">' . __( 'example:' ) . ' </span> <span class="example">' . date_i18n( get_option( 'date_format' ) ) . '</span>' .
+               "<span class='spinner'></span>\n";
 ?>
        </fieldset>
 </td>
@@ -273,19 +279,23 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
        $custom = true;
 
        foreach ( $time_formats as $format ) {
-               echo "\t<label title='" . esc_attr($format) . "'><input type='radio' name='time_format' value='" . esc_attr($format) . "'";
+               echo "\t<label><input type='radio' name='time_format' value='" . esc_attr( $format ) . "'";
                if ( get_option('time_format') === $format ) { // checked() uses "==" rather than "==="
                        echo " checked='checked'";
                        $custom = false;
                }
-               echo ' /> <span>' . date_i18n( $format ) . "</span></label><br />\n";
+               echo ' /> <span class="date-time-text format-i18n">' . date_i18n( $format ) . '</span><code>' . esc_html( $format ) . "</code></label><br />\n";
        }
 
-       echo '  <label><input type="radio" name="time_format" id="time_format_custom_radio" value="\c\u\s\t\o\m"';
+       echo '<label><input type="radio" name="time_format" id="time_format_custom_radio" value="\c\u\s\t\o\m"';
        checked( $custom );
-       echo '/> ' . __('Custom:') . ' </label><input type="text" name="time_format_custom" value="' . esc_attr( get_option('time_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('time_format') ) . "</span> <span class='spinner'></span>\n";
+       echo '/> <span class="date-time-text date-time-custom-text">' . __( 'Custom:' ) . '<span class="screen-reader-text"> ' . __( 'enter a custom time format in the following field' ) . '</span></label>' .
+               '<label for="time_format_custom" class="screen-reader-text">' . __( 'Custom time format:' ) . '</label>' .
+               '<input type="text" name="time_format_custom" id="time_format_custom" value="' . esc_attr( get_option( 'time_format' ) ) . '" class="small-text" /></span>' .
+               '<span class="screen-reader-text">' . __( 'example:' ) . ' </span> <span class="example">' . date_i18n( get_option( 'time_format' ) ) . '</span>' .
+               "<span class='spinner'></span>\n";
 
-       echo "\t<p>" . __('<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date and time formatting</a>.') . "</p>\n";
+       echo "\t<p class='date-time-doc'>" . __('<a href="https://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date and time formatting</a>.') . "</p>\n";
 ?>
        </fieldset>
 </td>
@@ -294,6 +304,11 @@ if ( empty($tzstring) ) { // Create a UTC+- zone if no timezone string exists
 <th scope="row"><label for="start_of_week"><?php _e('Week Starts On') ?></label></th>
 <td><select name="start_of_week" id="start_of_week">
 <?php
+/**
+ * @global WP_Locale $wp_locale
+ */
+global $wp_locale;
+
 for ($day_index = 0; $day_index <= 6; $day_index++) :
        $selected = (get_option('start_of_week') == $day_index) ? 'selected="selected"' : '';
        echo "\n\t<option value='" . esc_attr($day_index) . "' $selected>" . $wp_locale->get_weekday($day_index) . '</option>';
@@ -305,10 +320,11 @@ endfor;
 
 <?php
 $languages = get_available_languages();
+$translations = wp_get_available_translations();
 if ( ! is_multisite() && defined( 'WPLANG' ) && '' !== WPLANG && 'en_US' !== WPLANG && ! in_array( WPLANG, $languages ) ) {
        $languages[] = WPLANG;
 }
-if ( $languages ) {
+if ( ! empty( $languages ) || ! empty( $translations ) ) {
        ?>
        <tr>
                <th width="33%" scope="row"><label for="WPLANG"><?php _e( 'Site Language' ); ?></label></th>
@@ -320,10 +336,12 @@ if ( $languages ) {
                        }
 
                        wp_dropdown_languages( array(
-                               'name'      => 'WPLANG',
-                               'id'        => 'WPLANG',
-                               'selected'  => $locale,
-                               'languages' => $languages,
+                               'name'         => 'WPLANG',
+                               'id'           => 'WPLANG',
+                               'selected'     => $locale,
+                               'languages'    => $languages,
+                               'translations' => $translations,
+                               'show_available_translations' => ( ! is_multisite() || is_super_admin() ) && wp_can_install_language_pack(),
                        ) );
 
                        // Add note about deprecated WPLANG constant.