follow-up r70126 — better warnings
authorMark A. Hershberger <mah@users.mediawiki.org>
Thu, 29 Jul 2010 19:28:16 +0000 (19:28 +0000)
committerMark A. Hershberger <mah@users.mediawiki.org>
Thu, 29 Jul 2010 19:28:16 +0000 (19:28 +0000)
includes/installer/Installer.i18n.php
includes/installer/Installer.php

index 54b7b10..981a15a 100644 (file)
@@ -79,10 +79,12 @@ You cannot install MediaWiki.',
        'config-env-latest-old'           => "'''Warning:''' You are installing an outdated version of Mediawiki.",
        'config-env-latest-help'          => 'You are installing version $1, but the latest version is $2.
 You are advised to use the latest release, which can be downloaded from [http://www.mediawiki.org/wiki/Download mediawiki.org]',
-       'config-unicode-php'              => "Using pure PHP to normalize Unicode characters.",
-       'config-unicode-pure-php-warning' => "'''Warning''': Either the PECL Intl extension is not available, or it uses an older version of [http://site.icu-project.org/ the ICU project's] library for handling Unicode normalization.  If you run a high-traffic site, you should read a little on [http://www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalization].",
-       'config-unicode-utf8'             => "Using Brion Vibber's utf8_normalize.so for UTF",
-       'config-unicode-intl'             => "Using the [http://pecl.php.net/intl intl PECL extension] for UTF-8 normalization.",
+       'config-unicode-php'              => "the slow PHP implementation",
+       'config-unicode-utf8'             => "Brion Vibber's utf8_normalize.so",
+       'config-unicode-intl'             => "the [http://pecl.php.net/intl intl PECL extension]",
+       'config-unicode-using'            => 'Using $1 for Unicode normalization.',
+       'config-unicode-pure-php-warning' => "'''Warning''': The [http://pecl.php.net/intl intl PECL extension] is not available to handle Unicode normalization.  If you run a high-traffic site, you should read a little on [http://www.mediawiki.org/wiki/Unicode_normalization_considerations Unicode normalization].",
+       'config-unicode-update-warning'   => "'''Warning''': The installed version of the Unicode normalization wrapper uses an older version of [http://site.icu-project.org/ the ICU project's] library.  You should [http://www.mediawiki.org/wiki/Unicode_normalization_considerations upgrade] if you are at all concerned about using Unicode.",
        'config-no-db'                    => 'Could not find a suitable database driver!',
        'config-no-db-help'               => 'You need to install a database driver for PHP.
 The following database types are supported: $1.
index 60bd7d4..a4be97a 100644 (file)
@@ -848,29 +848,34 @@ abstract class Installer {
                 * will properly normalize.  This normalization was found at
                 * http://www.unicode.org/versions/Unicode5.2.0/#Character_Additions
                 * Note that we use the hex representation to create the code
-                * points in order to avoid any Unicode-destroying during transite.
+                * points in order to avoid any Unicode-destroying during transit.
                 */
                $not_normal_c = $this->unicodeChar("FA6C");
                $normal_c = $this->unicodeChar("242EE");
 
                $useNormalizer = 'config-unicode-php';
+               $needsUpdate = false;
 
                /**
                 * We're going to prefer the pecl extension here unless
                 * utf8_normalize is more up to date.
                 */
                if( $utf8 ) {
-                       $utf8 = utf8_normalize( $not_normal_c, UNORM_NFC );
                        $useNormalizer = 'config-unicode-utf8';
+                       $utf8 = utf8_normalize( $not_normal_c, UNORM_NFC );
+                       if ( $utf8 !== $normal_c ) $needsUpdate = true;
                }
                if( $intl ) {
-                       $intl = normalizer_normalize( $not_normal_c, Normalizer::FORM_C );
                        $useNormalizer = 'config-unicode-intl';
+                       $intl = normalizer_normalize( $not_normal_c, Normalizer::FORM_C );
+                       if ( $intl !== $normal_c ) $needsUpdate = true;
                }
 
-               $this->showMessage( $useNormalizer );
+               $this->showMessage( 'config-unicode-using', wfMsg( $useNormalizer ) );
                if( $useNormalizer === 'config-unicode-php' ) {
                        $this->showMessage( 'config-unicode-pure-php-warning' );
+               } elseif( $needsUpdate ) {
+                       $this->showMessage( 'config-unicode-update-warning' );
                }
        }