<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[29630] trunk: Language packs: No WPLANG anymore.</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://core.trac.wordpress.org/changeset/29630">29630</a></dd>
<dt>Author</dt> <dd>ocean90</dd>
<dt>Date</dt> <dd>2014-08-26 19:58:33 +0000 (Tue, 26 Aug 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Language packs: No WPLANG anymore.
* The WPLANG constant is no longer needed. Remove define('WPLANG', ''); from wp-config-sample.php. Populate WPLANG option based on the WPLANG constant. When get_option('WPLANG') is an empty string it will override WPLANG.
* Introduce translations_api() which is available to communicate with the translation API. Move translation install related functions to a new file.
* Replace mu_dropdown_languages() with wp_dropdown_languages(). wp_dropdown_languages() is now populated by the translation API.
* Remove wp_install_load_language() and allow load_default_textdomain() to switch a core translation.
fixes <a href="http://core.trac.wordpress.org/ticket/13069">#13069</a>, <a href="http://core.trac.wordpress.org/ticket/15677">#15677</a>, <a href="http://core.trac.wordpress.org/ticket/19760">#19760</a>, <a href="http://core.trac.wordpress.org/ticket/28730">#28730</a>, <a href="http://core.trac.wordpress.org/ticket/29281">#29281</a>. </pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunksrcwpadminincludesupgradephp">trunk/src/wp-admin/includes/upgrade.php</a></li>
<li><a href="#trunksrcwpadmininstallphp">trunk/src/wp-admin/install.php</a></li>
<li><a href="#trunksrcwpadminnetworksettingsphp">trunk/src/wp-admin/network/settings.php</a></li>
<li><a href="#trunksrcwpadminoptionsgeneralphp">trunk/src/wp-admin/options-general.php</a></li>
<li><a href="#trunksrcwpadminoptionsphp">trunk/src/wp-admin/options.php</a></li>
<li><a href="#trunksrcwpadminsetupconfigphp">trunk/src/wp-admin/setup-config.php</a></li>
<li><a href="#trunksrcwpincludesl10nphp">trunk/src/wp-includes/l10n.php</a></li>
<li><a href="#trunksrcwpincludesversionphp">trunk/src/wp-includes/version.php</a></li>
<li><a href="#trunkwpconfigsamplephp">trunk/wp-config-sample.php</a></li>
</ul>
<h3>Added Paths</h3>
<ul>
<li><a href="#trunksrcwpadminincludestranslationinstallphp">trunk/src/wp-admin/includes/translation-install.php</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunksrcwpadminincludestranslationinstallphpfromrev29628trunksrcwpadminincludesupgradephp"></a>
<div class="copfile"><h4>Copied: trunk/src/wp-admin/includes/translation-install.php (from rev 29628, trunk/src/wp-admin/includes/upgrade.php) (0 => 29630)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/src/wp-admin/includes/translation-install.php (rev 0)
+++ trunk/src/wp-admin/includes/translation-install.php 2014-08-26 19:58:33 UTC (rev 29630)
</span><span class="lines">@@ -0,0 +1,206 @@
</span><ins>+<?php
+/**
+ * WordPress Translation Install Administration API
+ *
+ * @package WordPress
+ * @subpackage Administration
+ */
+
+
+/**
+ * Retrieve translations from WordPress Translation API.
+ *
+ * @since 4.0.0
+ *
+ * @param string $type Type of translations. Accepts 'plugins', 'themes', 'core'.
+ * @param array|object $args Translation API arguments. Optional.
+ * @return object|WP_Error On success an object of translations, WP_Error on failure.
+ */
+function translations_api( $type, $args = null ) {
+ include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
+
+ if ( ! in_array( $type, array( 'plugins', 'themes', 'core' ) ) ) {
+ return new WP_Error( 'invalid_type', __( 'Invalid translation type.' ) );
+ }
+
+ /**
+ * Allows a plugin to override the WordPress.org Translation Install API entirely.
+ *
+ * @since 4.0.0
+ *
+ * @param bool|array $result The result object. Default false.
+ * @param string $type The type of translations being requested.
+ * @param object $args Translation API arguments.
+ */
+ $res = apply_filters( 'translations_api', false, $type, $args );
+
+ if ( false === $res ) {
+ $url = $http_url = 'http://api.wordpress.org/translations/' . $type . '/1.0/';
+ if ( $ssl = wp_http_supports( array( 'ssl' ) ) ) {
+ $url = set_url_scheme( $url, 'https' );
+ }
+
+ $options = array(
+ 'timeout' => 3,
+ 'body' => array(
+ 'wp_version' => $wp_version,
+ 'locale' => get_locale(),
+ 'version' => $args['version'], // Version of plugin, theme or core
+ ),
+ );
+
+ if ( 'core' !== $type ) {
+ $options['body']['slug'] = $args['slug']; // Plugin or theme slug
+ }
+
+ $request = wp_remote_post( $url, $options );
+
+ if ( $ssl && is_wp_error( $request ) ) {
+ trigger_error( __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ) . ' ' . __( '(WordPress could not establish a secure connection to WordPress.org. Please contact your server administrator.)' ), headers_sent() || WP_DEBUG ? E_USER_WARNING : E_USER_NOTICE );
+
+ $request = wp_remote_post( $http_url, $options );
+ }
+
+ if ( is_wp_error( $request ) ) {
+ $res = new WP_Error( 'translations_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ), $request->get_error_message() );
+ } else {
+ $res = json_decode( wp_remote_retrieve_body( $request ), true );
+ if ( ! is_object( $res ) && ! is_array( $res ) ) {
+ $res = new WP_Error( 'translations_api_failed', __( 'An unexpected error occurred. Something may be wrong with WordPress.org or this server’s configuration. If you continue to have problems, please try the <a href="https://wordpress.org/support/">support forums</a>.' ), wp_remote_retrieve_body( $request ) );
+ }
+ }
+ }
+
+ /**
+ * Filter the Translation Install API response results.
+ *
+ * @since 4.0.0
+ *
+ * @param object|WP_Error $res Response object or WP_Error.
+ * @param string $type The type of translations being requested.
+ * @param object $args Translation API arguments.
+ */
+ return apply_filters( 'translations_api_result', $res, $type, $args );
+}
+
+/**
+ * Get available translations from the WordPress.org API.
+ *
+ * @since 4.0.0
+ *
+ * @see translations_api()
+ *
+ * @return array Array of translations, each an array of data. If the API response results
+ * in an error, an empty array will be returned.
+ */
+function wp_get_available_translations() {
+ if ( ! defined( 'WP_INSTALLING' ) && false !== ( $translations = get_site_transient( 'available_translations' ) ) ) {
+ return $translations;
+ }
+
+ include( ABSPATH . WPINC . '/version.php' ); // include an unmodified $wp_version
+
+ $api = translations_api( 'core', array( 'version' => $wp_version ) );
+
+ if ( is_wp_error( $api ) || empty( $api['translations'] ) ) {
+ return array();
+ }
+
+ $translations = array();
+ // Key the array with the language code for now.
+ foreach ( $api['translations'] as $translation ) {
+ $translations[ $translation['language'] ] = $translation;
+ }
+
+ if ( ! defined( 'WP_INSTALLING' ) ) {
+ set_site_transient( 'available_translations', $translations, 3 * HOUR_IN_SECONDS );
+ }
+
+ return $translations;
+}
+
+/**
+ * Output the select form for the language selection on the installation screen.
+ *
+ * @since 4.0.0
+ *
+ * @param array $languages Array of available languages (populated via the Translation API).
+ */
+function wp_install_language_form( $languages ) {
+ global $wp_local_package;
+
+ $installed_languages = get_available_languages();
+
+ echo "<label class='screen-reader-text' for='language'>Select a default language</label>\n";
+ echo "<select size='14' name='language' id='language'>\n";
+ echo '<option value="" lang="en" selected="selected" data-continue="Continue" data-installed="1">English (United States)</option>';
+ echo "\n";
+
+ if ( ! empty( $wp_local_package ) && isset( $languages[ $wp_local_package ] ) ) {
+ if ( isset( $languages[ $wp_local_package ] ) ) {
+ $language = $languages[ $wp_local_package ];
+ echo '<option value="' . esc_attr( $language['language'] ) . '" lang="' . esc_attr( $language['iso'][1] ) . '">' . esc_html( $language['native_name'] ) . "</option>\n";
+ unset( $languages[ $wp_local_package ] );
+ }
+ }
+
+ foreach ( $languages as $language ) {
+ printf( '<option value="%s" lang="%s" data-continue="%s"%s>%s</option>' . "\n",
+ esc_attr( $language['language'] ),
+ esc_attr( $language['iso'][1] ),
+ esc_attr( $language['strings']['continue'] ),
+ in_array( $language['language'], $installed_languages ) ? ' data-installed="1"' : '',
+ esc_html( $language['native_name'] ) );
+ }
+ echo "</select>\n";
+ echo '<p class="step"><span class="spinner"></span><input id="language-continue" type="submit" class="button button-primary button-large" value="Continue" /></p>';
+}
+
+/**
+ * Download a language pack.
+ *
+ * @since 4.0.0
+ *
+ * @see wp_get_available_translations()
+ *
+ * @param string $download Language code to download.
+ * @return string|bool Returns the language code if successfully downloaded
+ * (or already installed), or false on failure.
+ */
+function wp_download_language_pack( $download ) {
+ // Check if the translation is already installed.
+ if ( in_array( $download, get_available_languages() ) ) {
+ return $download;
+ }
+
+ if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS ) {
+ return false;
+ }
+
+ // Confirm the translation is one we can download.
+ $translations = wp_get_available_translations();
+ if ( ! $translations ) {
+ return false;
+ }
+ foreach ( $translations as $translation ) {
+ if ( $translation['language'] === $download ) {
+ $translation_to_load = true;
+ break;
+ }
+ }
+
+ if ( empty( $translation_to_load ) ) {
+ return false;
+ }
+ $translation = (object) $translation;
+
+ require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
+ $skin = new Automatic_Upgrader_Skin;
+ $upgrader = new Language_Pack_Upgrader( $skin );
+ $translation->type = 'core';
+ /**
+ * @todo failures (such as non-direct FS)
+ */
+ $result = $upgrader->upgrade( $translation, array( 'clear_update_cache' => false ) );
+ return $translation->language;
+}
</ins></span></pre></div>
<a id="trunksrcwpadminincludesupgradephp"></a>
<div class="modfile"><h4>Modified: trunk/src/wp-admin/includes/upgrade.php (29629 => 29630)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/src/wp-admin/includes/upgrade.php 2014-08-26 19:05:44 UTC (rev 29629)
+++ trunk/src/wp-admin/includes/upgrade.php 2014-08-26 19:58:33 UTC (rev 29630)
</span><span class="lines">@@ -437,6 +437,9 @@
</span><span class="cx"> if ( $wp_current_db_version < 26691 )
</span><span class="cx"> upgrade_380();
</span><span class="cx">
</span><ins>+ if ( $wp_current_db_version < 29630 )
+ upgrade_400();
+
</ins><span class="cx"> maybe_disable_link_manager();
</span><span class="cx">
</span><span class="cx"> maybe_disable_automattic_widgets();
</span><span class="lines">@@ -1304,7 +1307,26 @@
</span><span class="cx"> deactivate_plugins( array( 'mp6/mp6.php' ), true );
</span><span class="cx"> }
</span><span class="cx"> }
</span><ins>+
</ins><span class="cx"> /**
</span><ins>+ * Execute changes made in WordPress 4.0.0.
+ *
+ * @since 4.0.0
+ */
+function upgrade_400() {
+ global $wp_current_db_version;
+ if ( $wp_current_db_version < 29630 ) {
+ if ( ! is_multisite() && false === get_option( 'WPLANG' ) ) {
+ if ( defined( 'WPLANG' ) && ( '' !== WPLANG ) && in_array( WPLANG, get_available_languages() ) ) {
+ update_option( 'WPLANG', WPLANG );
+ } else {
+ update_option( 'WPLANG', '' );
+ }
+ }
+ }
+}
+
+/**
</ins><span class="cx"> * Execute network level changes
</span><span class="cx"> *
</span><span class="cx"> * @since 3.0.0
</span><span class="lines">@@ -1419,7 +1441,7 @@
</span><span class="cx"> */
</span><span class="cx"> function maybe_create_table($table_name, $create_ddl) {
</span><span class="cx"> global $wpdb;
</span><del>-
</del><ins>+
</ins><span class="cx"> $query = $wpdb->prepare( "SHOW TABLES LIKE %s", $wpdb->esc_like( $table_name ) );
</span><span class="cx">
</span><span class="cx"> if ( $wpdb->get_var( $query ) == $table_name ) {
</span><span class="lines">@@ -2192,145 +2214,3 @@
</span><span class="cx"> dbDelta( $ms_queries );
</span><span class="cx"> }
</span><span class="cx"> endif;
</span><del>-
-/**
- * Output the input fields for the language selection form on the installation screen.
- *
- * @since 4.0.0
- *
- * @see wp_get_available_translations_from_api()
- *
- * @param array $languages Array of available languages (populated via the Translations API).
- */
-function wp_install_language_form( $languages ) {
- $installed_languages = get_available_languages();
-
- echo "<label class='screen-reader-text' for='language'>Select a default language</label>\n";
- echo "<select size='14' name='language' id='language'>\n";
- echo '<option value="" lang="en" selected="selected" data-continue="Continue" data-installed="1">English (United States)</option>';
- echo "\n";
-
- if ( defined( 'WPLANG' ) && ( '' !== WPLANG ) && ( 'en_US' !== WPLANG ) ) {
- if ( isset( $languages[ WPLANG ] ) ) {
- $language = $languages[ WPLANG ];
- echo '<option value="' . esc_attr( $language['language'] ) . '" lang="' . esc_attr( $language['iso'][1] ) . '">' . esc_html( $language['native_name'] ) . "</option>\n";
- }
- }
-
- foreach ( $languages as $language ) {
- printf( '<option value="%s" lang="%s" data-continue="%s"%s>%s</option>' . "\n",
- esc_attr( $language['language'] ),
- esc_attr( $language['iso'][1] ),
- esc_attr( $language['strings']['continue'] ),
- in_array( $language['language'], $installed_languages ) ? ' data-installed="1"' : '',
- esc_html( $language['native_name'] ) );
- }
- echo "</select>\n";
- echo '<p class="step"><span class="spinner"></span><input id="language-continue" type="submit" class="button button-primary button-large" value="Continue" /></p>';
-}
-
-/**
- * Get available translations from the WordPress.org API.
- *
- * @since 4.0.0
- *
- * @see wp_remote_post()
- *
- * @return array Array of translations, each an array of data.
- */
-function wp_get_available_translations_from_api() {
- $url = 'http://api.wordpress.org/translations/core/1.0/';
- if ( wp_http_supports( array( 'ssl' ) ) ) {
- $url = set_url_scheme( $url, 'https' );
- }
-
- $options = array(
- 'timeout' => 3,
- 'body' => array( 'version' => $GLOBALS['wp_version'] ),
- );
-
- $response = wp_remote_post( $url, $options );
- $body = wp_remote_retrieve_body( $response );
- if ( $body && $body = json_decode( $body, true ) ) {
- $translations = array();
- // Key the array with the language code for now
- foreach ( $body['translations'] as $translation ) {
- $translations[ $translation['language'] ] = $translation;
- }
- return $translations;
- }
- return false;
-}
-
-/**
- * Download a language pack.
- *
- * @since 4.0.0
- *
- * @see wp_get_available_translations_from_api()
- *
- * @param string $download Language code to download.
- * @return string|bool Returns the language code if successfully downloaded
- * (or already installed), or false on failure.
- */
-function wp_install_download_language_pack( $download ) {
- // Check if the translation is already installed.
- if ( in_array( $download, get_available_languages() ) ) {
- return $download;
- }
-
- // Confirm the translation is one we can download.
- $translations = wp_get_available_translations_from_api();
- if ( ! $translations ) {
- return false;
- }
- foreach ( $translations as $translation ) {
- if ( $translation['language'] === $download ) {
- $translation_to_load = true;
- break;
- }
- }
-
- if ( empty( $translation_to_load ) ) {
- return false;
- }
- $translation = (object) $translation;
-
- require_once ABSPATH . 'wp-admin/includes/class-wp-upgrader.php';
- $skin = new Automatic_Upgrader_Skin;
- $upgrader = new Language_Pack_Upgrader( $skin );
- $translation->type = 'core';
- /**
- * @todo failures (such as non-direct FS)
- */
- $upgrader->upgrade( $translation, array( 'clear_update_cache' => false ) );
- return $translation->language;
-}
-
-/**
- * Load a translation during the install process.
- *
- * @since 4.0.0
- *
- * @see load_textdomain()
- *
- * @param string $translation Translation to load.
- * @return string|bool Returns the language code if successfully loaded,
- * or false on failure.
- */
-function wp_install_load_language( $translation ) {
- if ( ! empty( $translation ) ) {
- if ( in_array( $translation, get_available_languages() ) ) {
- $translation_to_load = $translation;
- }
- }
-
- if ( empty( $translation_to_load ) ) {
- return false;
- }
-
- unload_textdomain( 'default' ); // Start over.
- load_textdomain( 'default', WP_LANG_DIR . "/{$translation_to_load}.mo" );
- load_textdomain( 'default', WP_LANG_DIR . "/admin-{$translation_to_load}.mo" );
- return $translation_to_load;
-}
</del></span></pre></div>
<a id="trunksrcwpadmininstallphp"></a>
<div class="modfile"><h4>Modified: trunk/src/wp-admin/install.php (29629 => 29630)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/src/wp-admin/install.php 2014-08-26 19:05:44 UTC (rev 29629)
+++ trunk/src/wp-admin/install.php 2014-08-26 19:58:33 UTC (rev 29630)
</span><span class="lines">@@ -38,6 +38,9 @@
</span><span class="cx"> /** Load WordPress Administration Upgrade API */
</span><span class="cx"> require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
</span><span class="cx">
</span><ins>+/** Load WordPress Translation Install API */
+require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
+
</ins><span class="cx"> /** Load wpdb */
</span><span class="cx"> require_once( ABSPATH . WPINC . '/wp-db.php' );
</span><span class="cx">
</span><span class="lines">@@ -178,10 +181,15 @@
</span><span class="cx"> die( '<h1>' . __( 'Configuration Error' ) . '</h1><p>' . __( 'Your <code>wp-config.php</code> file has an empty database table prefix, which is not supported.' ) . '</p></body></html>' );
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+$langugage = '';
+if ( ! empty( $_REQUEST['language'] ) ) {
+ $langugage = preg_replace( '/[^a-zA-Z_]/', '', $_REQUEST['language'] );
+}
+
</ins><span class="cx"> switch($step) {
</span><span class="cx"> case 0: // Step 0
</span><span class="cx">
</span><del>- if ( empty( $_GET['language'] ) && ( $languages = wp_get_available_translations_from_api() ) ) {
</del><ins>+ if ( empty( $langugage ) && ( $languages = wp_get_available_translations() ) ) {
</ins><span class="cx"> display_header( 'language-chooser' );
</span><span class="cx"> echo '<form id="setup" method="post" action="?step=1">';
</span><span class="cx"> wp_install_language_form( $languages );
</span><span class="lines">@@ -192,10 +200,10 @@
</span><span class="cx"> // Deliberately fall through if we can't reach the translations API.
</span><span class="cx">
</span><span class="cx"> case 1: // Step 1, direct link or from language chooser.
</span><del>- if ( ! empty( $_REQUEST['language'] ) ) {
- $loaded_language = wp_install_download_language_pack( $_REQUEST['language'] );
</del><ins>+ if ( ! empty( $langugage ) ) {
+ $loaded_language = wp_download_language_pack( $langugage );
</ins><span class="cx"> if ( $loaded_language ) {
</span><del>- wp_install_load_language( $loaded_language );
</del><ins>+ load_default_textdomain( $loaded_language );
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -211,8 +219,8 @@
</span><span class="cx"> display_setup_form();
</span><span class="cx"> break;
</span><span class="cx"> case 2:
</span><del>- if ( !empty( $_REQUEST['language'] ) ) {
- $loaded_language = wp_install_load_language( $_REQUEST['language'] );
</del><ins>+ if ( ! empty( $langugage ) && load_default_textdomain( $langugage ) ) {
+ $loaded_language = $langugage;
</ins><span class="cx"> } else {
</span><span class="cx"> $loaded_language = 'en_US';
</span><span class="cx"> }
</span><span class="lines">@@ -226,8 +234,8 @@
</span><span class="cx"> $user_name = isset($_POST['user_name']) ? trim( wp_unslash( $_POST['user_name'] ) ) : '';
</span><span class="cx"> $admin_password = isset($_POST['admin_password']) ? wp_unslash( $_POST['admin_password'] ) : '';
</span><span class="cx"> $admin_password_check = isset($_POST['admin_password2']) ? wp_unslash( $_POST['admin_password2'] ) : '';
</span><del>- $admin_email = isset( $_POST['admin_email'] ) ?trim( wp_unslash( $_POST['admin_email'] ) ) : '';
- $public = isset( $_POST['blog_public'] ) ? (int) $_POST['blog_public'] : 0;
</del><ins>+ $admin_email = isset( $_POST['admin_email'] ) ?trim( wp_unslash( $_POST['admin_email'] ) ) : '';
+ $public = isset( $_POST['blog_public'] ) ? (int) $_POST['blog_public'] : 0;
</ins><span class="cx">
</span><span class="cx"> // Check e-mail address.
</span><span class="cx"> $error = false;
</span></span></pre></div>
<a id="trunksrcwpadminnetworksettingsphp"></a>
<div class="modfile"><h4>Modified: trunk/src/wp-admin/network/settings.php (29629 => 29630)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/src/wp-admin/network/settings.php 2014-08-26 19:05:44 UTC (rev 29629)
+++ trunk/src/wp-admin/network/settings.php 2014-08-26 19:58:33 UTC (rev 29630)
</span><span class="lines">@@ -102,7 +102,7 @@
</span><span class="cx"> <input name="admin_email" type="email" id="admin_email" class="regular-text" value="<?php echo esc_attr( get_site_option( 'admin_email' ) ) ?>" />
</span><span class="cx"> <p class="description">
</span><span class="cx"> <?php _e( 'This email address will receive notifications. Registration and support emails will also come from this address.' ); ?>
</span><del>- </p>
</del><ins>+ </p>
</ins><span class="cx"> </td>
</span><span class="cx"> </tr>
</span><span class="cx"> </table>
</span><span class="lines">@@ -165,7 +165,7 @@
</span><span class="cx"> <?php echo esc_textarea( $limited_email_domains == '' ? '' : implode( "\n", (array) $limited_email_domains ) ); ?></textarea>
</span><span class="cx"> <p class="description">
</span><span class="cx"> <?php _e( 'If you want to limit site registrations to certain domains. One domain per line.' ) ?>
</span><del>- </p>
</del><ins>+ </p>
</ins><span class="cx"> </td>
</span><span class="cx"> </tr>
</span><span class="cx">
</span><span class="lines">@@ -231,7 +231,7 @@
</span><span class="cx"> <?php echo esc_textarea( get_site_option( 'first_comment' ) ) ?></textarea>
</span><span class="cx"> <p class="description">
</span><span class="cx"> <?php _e( 'The first comment on a new site.' ) ?>
</span><del>- </p>
</del><ins>+ </p>
</ins><span class="cx"> </td>
</span><span class="cx"> </tr>
</span><span class="cx"> <tr>
</span><span class="lines">@@ -273,25 +273,34 @@
</span><span class="cx"> </tr>
</span><span class="cx"> </table>
</span><span class="cx">
</span><del>-<?php
</del><ins>+ <?php
</ins><span class="cx"> $languages = get_available_languages();
</span><span class="cx"> if ( ! empty( $languages ) ) {
</span><del>- $lang = get_site_option( 'WPLANG' );
-?>
- <h3><?php _e( 'Language Settings' ); ?></h3>
- <table class="form-table">
</del><ins>+ ?>
+ <h3><?php _e( 'Language Settings' ); ?></h3>
+ <table class="form-table">
</ins><span class="cx"> <tr>
</span><span class="cx"> <th><label for="WPLANG"><?php _e( 'Default Language' ); ?></label></th>
</span><span class="cx"> <td>
</span><del>- <select name="WPLANG" id="WPLANG">
- <?php mu_dropdown_languages( $languages, get_site_option( 'WPLANG' ) ); ?>
- </select>
</del><ins>+ <?php
+ $lang = get_site_option( 'WPLANG' );
+ if ( ! in_array( $lang, $languages ) ) {
+ $lang = '';
+ }
+
+ wp_dropdown_languages( array(
+ 'name' => 'WPLANG',
+ 'id' => 'WPLANG',
+ 'selected' => $lang,
+ 'languages' => $languages,
+ ) );
+ ?>
</ins><span class="cx"> </td>
</span><span class="cx"> </tr>
</span><del>- </table>
-<?php
- } // languages
-?>
</del><ins>+ </table>
+ <?php
+ }
+ ?>
</ins><span class="cx">
</span><span class="cx"> <h3><?php _e( 'Menu Settings' ); ?></h3>
</span><span class="cx"> <table id="menu" class="form-table">
</span><span class="lines">@@ -324,7 +333,7 @@
</span><span class="cx"> </tr>
</span><span class="cx"> </table>
</span><span class="cx">
</span><del>- <?php
</del><ins>+ <?php
</ins><span class="cx"> /**
</span><span class="cx"> * Fires at the end of the Network Settings form, before the submit button.
</span><span class="cx"> *
</span></span></pre></div>
<a id="trunksrcwpadminoptionsgeneralphp"></a>
<div class="modfile"><h4>Modified: trunk/src/wp-admin/options-general.php (29629 => 29630)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/src/wp-admin/options-general.php 2014-08-26 19:05:44 UTC (rev 29629)
+++ trunk/src/wp-admin/options-general.php 2014-08-26 19:58:33 UTC (rev 29630)
</span><span class="lines">@@ -302,23 +302,43 @@
</span><span class="cx"> </select></td>
</span><span class="cx"> </tr>
</span><span class="cx"> <?php do_settings_fields('general', 'default'); ?>
</span><ins>+
</ins><span class="cx"> <?php
</span><del>- $languages = get_available_languages();
- if ( $languages ) :
-?>
</del><ins>+$languages = get_available_languages();
+if ( ! empty( $languages ) ) {
+ ?>
</ins><span class="cx"> <tr>
</span><del>- <th width="33%" scope="row"><label for="WPLANG"><?php _e('Site Language') ?></label></th>
</del><ins>+ <th width="33%" scope="row"><label for="WPLANG"><?php _e( 'Site Language' ); ?></label></th>
</ins><span class="cx"> <td>
</span><del>- <?php wp_dropdown_languages( array(
</del><ins>+ <?php
+ $locale = get_locale();
+ if ( ! in_array( $locale, $languages ) ) {
+ $locale = '';
+ }
+
+ wp_dropdown_languages( array(
</ins><span class="cx"> 'name' => 'WPLANG',
</span><span class="cx"> 'id' => 'WPLANG',
</span><del>- 'selected' => get_option( 'WPLANG' ),
</del><ins>+ 'selected' => $locale,
</ins><span class="cx"> 'languages' => $languages,
</span><del>- ) ); ?>
</del><ins>+ ) );
+
+ // Add note about deprecated WPLANG constant.
+ if ( defined( 'WPLANG' ) && ( '' !== WPLANG ) && $locale !== WPLANG ) {
+ if ( is_super_admin() ) {
+ ?>
+ <p class="description">
+ <strong><?php _e( 'Note:' ); ?></strong> <?php printf( __( 'The %s constant in your %s file is no longer needed.' ), '<code>WPLANG</code>', '<code>wp-config.php</code>' ); ?>
+ </p>
+ <?php
+ }
+ _deprecated_argument( 'define()', '4.0', sprintf( __( 'The %s constant in your %s file is no longer needed.' ), 'WPLANG', 'wp-config.php' ) );
+ }
+ ?>
</ins><span class="cx"> </td>
</span><span class="cx"> </tr>
</span><del>-<?php
- endif;
</del><ins>+ <?php
+}
</ins><span class="cx"> ?>
</span><span class="cx"> </table>
</span><span class="cx">
</span></span></pre></div>
<a id="trunksrcwpadminoptionsphp"></a>
<div class="modfile"><h4>Modified: trunk/src/wp-admin/options.php (29629 => 29630)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/src/wp-admin/options.php 2014-08-26 19:05:44 UTC (rev 29629)
+++ trunk/src/wp-admin/options.php 2014-08-26 19:58:33 UTC (rev 29630)
</span><span class="lines">@@ -151,7 +151,7 @@
</span><span class="cx"> $options = $whitelist_options[ $option_page ];
</span><span class="cx"> }
</span><span class="cx">
</span><del>- // Handle custom date/time formats
</del><ins>+ // Handle custom date/time formats.
</ins><span class="cx"> if ( 'general' == $option_page ) {
</span><span class="cx"> if ( !empty($_POST['date_format']) && isset($_POST['date_format_custom']) && '\c\u\s\t\o\m' == wp_unslash( $_POST['date_format'] ) )
</span><span class="cx"> $_POST['date_format'] = $_POST['date_format_custom'];
</span><span class="lines">@@ -180,6 +180,14 @@
</span><span class="cx"> }
</span><span class="cx"> update_option( $option, $value );
</span><span class="cx"> }
</span><ins>+
+ // Switch translation in case WPLANG was changed.
+ $language = get_option( 'WPLANG' );
+ if ( $language ) {
+ load_default_textdomain( $language );
+ } else {
+ unload_textdomain( 'default' );
+ }
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> /**
</span></span></pre></div>
<a id="trunksrcwpadminsetupconfigphp"></a>
<div class="modfile"><h4>Modified: trunk/src/wp-admin/setup-config.php (29629 => 29630)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/src/wp-admin/setup-config.php 2014-08-26 19:05:44 UTC (rev 29629)
+++ trunk/src/wp-admin/setup-config.php 2014-08-26 19:58:33 UTC (rev 29630)
</span><span class="lines">@@ -32,8 +32,12 @@
</span><span class="cx">
</span><span class="cx"> require( ABSPATH . 'wp-settings.php' );
</span><span class="cx">
</span><del>-require( ABSPATH . 'wp-admin/includes/upgrade.php' );
</del><ins>+/** Load WordPress Administration Upgrade API */
+require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
</ins><span class="cx">
</span><ins>+/** Load WordPress Translation Install API */
+require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
+
</ins><span class="cx"> nocache_headers();
</span><span class="cx">
</span><span class="cx"> // Support wp-config-sample.php one level up, for the develop repo.
</span><span class="lines">@@ -85,10 +89,13 @@
</span><span class="cx"> <?php
</span><span class="cx"> } // end function setup_config_display_header();
</span><span class="cx">
</span><ins>+$language = '';
+if ( ! empty( $_REQUEST['language'] ) ) {
+ $language = preg_replace( '/[^a-zA-Z_]/', '', $_REQUEST['language'] );
+}
</ins><span class="cx"> switch($step) {
</span><span class="cx"> case -1:
</span><del>-
- if ( empty( $_GET['language'] ) && ( $languages = wp_get_available_translations_from_api() ) ) {
</del><ins>+ if ( empty( $language ) && ( $languages = wp_get_available_translations() ) ) {
</ins><span class="cx"> setup_config_display_header( 'language-chooser' );
</span><span class="cx"> echo '<form id="setup" method="post" action="?step=0">';
</span><span class="cx"> wp_install_language_form( $languages );
</span><span class="lines">@@ -99,10 +106,10 @@
</span><span class="cx"> // Deliberately fall through if we can't reach the translations API.
</span><span class="cx">
</span><span class="cx"> case 0:
</span><del>- if ( ! empty( $_REQUEST['language'] ) ) {
- $loaded_language = wp_install_download_language_pack( $_REQUEST['language'] );
</del><ins>+ if ( ! empty( $language ) ) {
+ $loaded_language = wp_download_language_pack( $language );
</ins><span class="cx"> if ( $loaded_language ) {
</span><del>- wp_install_load_language( $loaded_language );
</del><ins>+ load_default_textdomain( $loaded_language );
</ins><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -136,7 +143,7 @@
</span><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> case 1:
</span><del>- $loaded_language = wp_install_load_language( $_REQUEST['language'] );
</del><ins>+ load_default_textdomain( $language );
</ins><span class="cx"> setup_config_display_header();
</span><span class="cx"> ?>
</span><span class="cx"> <form method="post" action="setup-config.php?step=2">
</span><span class="lines">@@ -169,14 +176,14 @@
</span><span class="cx"> </tr>
</span><span class="cx"> </table>
</span><span class="cx"> <?php if ( isset( $_GET['noapi'] ) ) { ?><input name="noapi" type="hidden" value="1" /><?php } ?>
</span><del>- <input type="hidden" name="language" value="<?php echo esc_attr( $loaded_language ); ?>" />
</del><ins>+ <input type="hidden" name="language" value="<?php echo esc_attr( $language ); ?>" />
</ins><span class="cx"> <p class="step"><input name="submit" type="submit" value="<?php echo htmlspecialchars( __( 'Submit' ), ENT_QUOTES ); ?>" class="button button-large" /></p>
</span><span class="cx"> </form>
</span><span class="cx"> <?php
</span><span class="cx"> break;
</span><span class="cx">
</span><span class="cx"> case 2:
</span><del>- $loaded_language = wp_install_load_language( $_REQUEST['language'] );
</del><ins>+ load_default_textdomain( $language );
</ins><span class="cx"> $dbname = trim( wp_unslash( $_POST[ 'dbname' ] ) );
</span><span class="cx"> $uname = trim( wp_unslash( $_POST[ 'uname' ] ) );
</span><span class="cx"> $pwd = trim( wp_unslash( $_POST[ 'pwd' ] ) );
</span><span class="lines">@@ -189,9 +196,9 @@
</span><span class="cx"> $step_1 .= '&noapi';
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if ( $loaded_language ) {
- $step_1 .= '&language=' . $loaded_language;
- $install .= '?language=' . $loaded_language;
</del><ins>+ if ( ! empty( $language ) ) {
+ $step_1 .= '&language=' . $language;
+ $install .= '?language=' . $language;
</ins><span class="cx"> } else {
</span><span class="cx"> $install .= '?language=en_US';
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunksrcwpincludesl10nphp"></a>
<div class="modfile"><h4>Modified: trunk/src/wp-includes/l10n.php (29629 => 29630)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/src/wp-includes/l10n.php 2014-08-26 19:05:44 UTC (rev 29629)
+++ trunk/src/wp-includes/l10n.php 2014-08-26 19:58:33 UTC (rev 29630)
</span><span class="lines">@@ -24,7 +24,7 @@
</span><span class="cx"> * @return string The locale of the blog or from the 'locale' hook.
</span><span class="cx"> */
</span><span class="cx"> function get_locale() {
</span><del>- global $locale;
</del><ins>+ global $locale, $wp_local_package;
</ins><span class="cx">
</span><span class="cx"> if ( isset( $locale ) ) {
</span><span class="cx"> /**
</span><span class="lines">@@ -37,27 +37,35 @@
</span><span class="cx"> return apply_filters( 'locale', $locale );
</span><span class="cx"> }
</span><span class="cx">
</span><del>- // WPLANG is defined in wp-config.
- if ( defined( 'WPLANG' ) )
</del><ins>+ if ( isset( $wp_local_package ) ) {
+ $locale = $wp_local_package;
+ }
+
+ // WPLANG was defined in wp-config.
+ if ( defined( 'WPLANG' ) ) {
</ins><span class="cx"> $locale = WPLANG;
</span><ins>+ }
</ins><span class="cx">
</span><span class="cx"> // If multisite, check options.
</span><span class="cx"> if ( is_multisite() ) {
</span><span class="cx"> // Don't check blog option when installing.
</span><del>- if ( defined( 'WP_INSTALLING' ) || ( false === $ms_locale = get_option( 'WPLANG' ) ) )
- $ms_locale = get_site_option('WPLANG');
</del><ins>+ if ( defined( 'WP_INSTALLING' ) || ( false === $ms_locale = get_option( 'WPLANG' ) ) ) {
+ $ms_locale = get_site_option( 'WPLANG' );
+ }
</ins><span class="cx">
</span><del>- if ( $ms_locale !== false )
</del><ins>+ if ( $ms_locale !== false ) {
</ins><span class="cx"> $locale = $ms_locale;
</span><del>- } elseif ( ! defined( 'WP_INSTALLING' ) ) {
</del><ins>+ }
+ } else {
</ins><span class="cx"> $db_locale = get_option( 'WPLANG' );
</span><del>- if ( $db_locale ) {
</del><ins>+ if ( $db_locale !== false ) {
</ins><span class="cx"> $locale = $db_locale;
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if ( empty( $locale ) )
</del><ins>+ if ( empty( $locale ) ) {
</ins><span class="cx"> $locale = 'en_US';
</span><ins>+ }
</ins><span class="cx">
</span><span class="cx"> /** This filter is documented in wp-includes/l10n.php */
</span><span class="cx"> return apply_filters( 'locale', $locale );
</span><span class="lines">@@ -523,23 +531,32 @@
</span><span class="cx"> * @see load_textdomain()
</span><span class="cx"> *
</span><span class="cx"> * @since 1.5.0
</span><ins>+ *
+ * @param string $locale Optional. Locale to load. Defaults to get_locale().
</ins><span class="cx"> */
</span><del>-function load_default_textdomain() {
- $locale = get_locale();
</del><ins>+function load_default_textdomain( $locale = null ) {
+ if ( null === $locale ) {
+ $locale = get_locale();
+ }
</ins><span class="cx">
</span><del>- load_textdomain( 'default', WP_LANG_DIR . "/$locale.mo" );
</del><ins>+ // Unload previously loaded strings so we can switch translations.
+ unload_textdomain( 'default' );
</ins><span class="cx">
</span><ins>+ $return = load_textdomain( 'default', WP_LANG_DIR . "/$locale.mo" );
+
</ins><span class="cx"> if ( ( is_multisite() || ( defined( 'WP_INSTALLING_NETWORK' ) && WP_INSTALLING_NETWORK ) ) && ! file_exists( WP_LANG_DIR . "/admin-$locale.mo" ) ) {
</span><span class="cx"> load_textdomain( 'default', WP_LANG_DIR . "/ms-$locale.mo" );
</span><del>- return;
</del><ins>+ return $return;
</ins><span class="cx"> }
</span><span class="cx">
</span><del>- if ( is_admin() || ( defined( 'WP_REPAIRING' ) && WP_REPAIRING ) )
</del><ins>+ if ( is_admin() || defined( 'WP_INSTALLING' ) || ( defined( 'WP_REPAIRING' ) && WP_REPAIRING ) ) {
</ins><span class="cx"> load_textdomain( 'default', WP_LANG_DIR . "/admin-$locale.mo" );
</span><ins>+ }
</ins><span class="cx">
</span><span class="cx"> if ( is_network_admin() || ( defined( 'WP_INSTALLING_NETWORK' ) && WP_INSTALLING_NETWORK ) )
</span><span class="cx"> load_textdomain( 'default', WP_LANG_DIR . "/admin-network-$locale.mo" );
</span><span class="cx">
</span><ins>+ return $return;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> /**
</span><span class="lines">@@ -818,26 +835,67 @@
</span><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> /**
</span><del>- * Language selector. More to come.
</del><ins>+ * Language selector.
</ins><span class="cx"> *
</span><span class="cx"> * @since 4.0.0
</span><span class="cx"> *
</span><span class="cx"> * @see get_available_languages()
</span><ins>+ * @see wp_get_available_translations()
</ins><span class="cx"> *
</span><span class="cx"> * @param array $args Optional arguments. Default empty array.
</span><span class="cx"> */
</span><span class="cx"> function wp_dropdown_languages( $args = array() ) {
</span><del>- if ( isset( $args['languages'] ) ) {
- $languages = $args['languages'];
- } else {
- $languages = get_available_languages();
</del><ins>+ require_once( ABSPATH . 'wp-admin/includes/translation-install.php' );
+
+ $args = wp_parse_args( $args, array(
+ 'id' => '',
+ 'name' => '',
+ 'languages' => array(),
+ 'selected' => ''
+ ) );
+
+ if ( empty( $args['languages'] ) ) {
+ return false;
</ins><span class="cx"> }
</span><span class="cx">
</span><ins>+ $translations = wp_get_available_translations();
+
+ /*
+ * $args['languages'] should only contain the locales. Find the locale in
+ * $translations to get the native name. Fall back to locale.
+ */
+ $languages = array();
+ foreach ( $args['languages'] as $locale ) {
+ if ( isset( $translations[ $locale ] ) ) {
+ $translation = $translations[ $locale ];
+ $languages[] = array(
+ 'language' => $translation['language'],
+ 'native_name' => $translation['native_name'],
+ 'lang' => $translation['iso'][1],
+ );
+ } else {
+ $languages[] = array(
+ 'language' => $locale,
+ 'native_name' => $locale,
+ 'lang' => '',
+ );
+ }
+ }
+
</ins><span class="cx"> printf( '<select name="%s" id="%s">', esc_attr( $args['name'] ), esc_attr( $args['id'] ) );
</span><del>- echo '<option value="">en_US</option>';
</del><ins>+
+ // List installed languages.
+ echo '<option value="" lang="en">English (United States)</option>';
</ins><span class="cx"> foreach ( $languages as $language ) {
</span><del>- $selected = selected( $language, $args['selected'], false );
- echo '<option value="' . esc_attr( $language ) .'"' . $selected . '>' . $language . '</option>';
</del><ins>+ $selected = selected( $language['language'], $args['selected'], false );
+ printf(
+ '<option value="%s" lang="%s"%s>%s</option>',
+ esc_attr( $language['language'] ),
+ esc_attr( $language['lang'] ),
+ $selected,
+ esc_html( $language['native_name'] )
+ );
</ins><span class="cx"> }
</span><ins>+
</ins><span class="cx"> echo '</select>';
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunksrcwpincludesversionphp"></a>
<div class="modfile"><h4>Modified: trunk/src/wp-includes/version.php (29629 => 29630)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/src/wp-includes/version.php 2014-08-26 19:05:44 UTC (rev 29629)
+++ trunk/src/wp-includes/version.php 2014-08-26 19:58:33 UTC (rev 29630)
</span><span class="lines">@@ -11,7 +11,7 @@
</span><span class="cx"> *
</span><span class="cx"> * @global int $wp_db_version
</span><span class="cx"> */
</span><del>-$wp_db_version = 29188;
</del><ins>+$wp_db_version = 29630;
</ins><span class="cx">
</span><span class="cx"> /**
</span><span class="cx"> * Holds the TinyMCE version
</span></span></pre></div>
<a id="trunkwpconfigsamplephp"></a>
<div class="modfile"><h4>Modified: trunk/wp-config-sample.php (29629 => 29630)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/wp-config-sample.php 2014-08-26 19:05:44 UTC (rev 29629)
+++ trunk/wp-config-sample.php 2014-08-26 19:58:33 UTC (rev 29630)
</span><span class="lines">@@ -62,16 +62,6 @@
</span><span class="cx"> $table_prefix = 'wp_';
</span><span class="cx">
</span><span class="cx"> /**
</span><del>- * WordPress Localized Language, defaults to English.
- *
- * Change this to localize WordPress. A corresponding MO file for the chosen
- * language must be installed to wp-content/languages. For example, install
- * de_DE.mo to wp-content/languages and set WPLANG to 'de_DE' to enable German
- * language support.
- */
-define('WPLANG', '');
-
-/**
</del><span class="cx"> * For developers: WordPress debugging mode.
</span><span class="cx"> *
</span><span class="cx"> * Change this to true to enable the display of notices during development.
</span></span></pre>
</div>
</div>
</body>
</html>