From 0cff48971b107f007119b043863e4121720c42ff Mon Sep 17 00:00:00 2001 From: "Mark A. Hershberger" Date: Thu, 29 Jul 2010 19:28:16 +0000 Subject: [PATCH] =?utf8?q?follow-up=20r70126=20=E2=80=94=20better=20warnin?= =?utf8?q?gs?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- includes/installer/Installer.i18n.php | 10 ++++++---- includes/installer/Installer.php | 13 +++++++++---- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/includes/installer/Installer.i18n.php b/includes/installer/Installer.i18n.php index 54b7b10212..981a15af66 100644 --- a/includes/installer/Installer.i18n.php +++ b/includes/installer/Installer.i18n.php @@ -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. diff --git a/includes/installer/Installer.php b/includes/installer/Installer.php index 60bd7d470f..a4be97a322 100644 --- a/includes/installer/Installer.php +++ b/includes/installer/Installer.php @@ -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' ); } } -- 2.20.1