diff options
author | Thomas Müller <thomas.mueller@tmit.eu> | 2013-11-21 08:03:21 -0800 |
---|---|---|
committer | Thomas Müller <thomas.mueller@tmit.eu> | 2013-11-21 08:03:21 -0800 |
commit | 4a2f9636cf567142f277b2691eb7c5df852313de (patch) | |
tree | 40d1e1ec0355e4164ddfa06cf6f749d9dbb88409 | |
parent | 5d9731cef28d9c93e81216d31299b2b68fbc8758 (diff) | |
parent | cd1cf58875ffacf427420d6dbe94d8718e4075e0 (diff) | |
download | nextcloud-server-4a2f9636cf567142f277b2691eb7c5df852313de.tar.gz nextcloud-server-4a2f9636cf567142f277b2691eb7c5df852313de.zip |
Merge pull request #5773 from owncloud/fix-2152-master
Make working en_US.UTF-8 locale a hard requirement
-rw-r--r-- | lib/base.php | 8 | ||||
-rwxr-xr-x | lib/private/util.php | 11 | ||||
-rwxr-xr-x | settings/admin.php | 2 | ||||
-rw-r--r-- | settings/templates/admin.php | 14 |
4 files changed, 22 insertions, 13 deletions
diff --git a/lib/base.php b/lib/base.php index f3983a3800f..865d174d212 100644 --- a/lib/base.php +++ b/lib/base.php @@ -241,7 +241,7 @@ class OC { $minimizerCSS->clearCache(); $minimizerJS = new OC_Minimizer_JS(); $minimizerJS->clearCache(); - OC_Util::addscript('update'); + OC_Util::addScript('update'); $tmpl = new OC_Template('', 'update.admin', 'guest'); $tmpl->assign('version', OC_Util::getVersionString()); $tmpl->printPage(); @@ -559,12 +559,6 @@ class OC { } } - // write error into log if locale can't be set - if (OC_Util::isSetLocaleWorking() == false) { - OC_Log::write('core', - 'setting locale to en_US.UTF-8/en_US.UTF8 failed. Support is probably not installed on your system', - OC_Log::ERROR); - } if (OC_Config::getValue('installed', false) && !self::checkUpgrade(false)) { if (OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax') == 'ajax') { OC_Util::addScript('backgroundjobs'); diff --git a/lib/private/util.php b/lib/private/util.php index 959d36a89e9..426c5a025f3 100755 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -358,6 +358,13 @@ class OC_Util { $errors = array_merge($errors, self::checkDataDirectoryPermissions($CONFIG_DATADIRECTORY)); } + if(!OC_Util::isSetLocaleWorking()) { + $errors[] = array( + 'error' => 'Setting locale to en_US.UTF-8/fr_FR.UTF-8/es_ES.UTF-8/de_DE.UTF-8/ru_RU.UTF-8/pt_BR.UTF-8/it_IT.UTF-8/ja_JP.UTF-8/zh_CN.UTF-8 failed', + 'hint' => 'Please install one of theses locales on your system and restart your webserver.' + ); + } + $moduleHint = "Please ask your server administrator to install the module."; // check if all required php modules are present if(!class_exists('ZipArchive')) { @@ -852,8 +859,8 @@ class OC_Util { return true; } - $result = setlocale(LC_ALL, 'en_US.UTF-8', 'en_US.UTF8'); - if($result == false) { + \Patchwork\Utf8\Bootup::initLocale(); + if ('' === basename('§')) { return false; } return true; diff --git a/settings/admin.php b/settings/admin.php index 120f15bec19..0d3868afea8 100755 --- a/settings/admin.php +++ b/settings/admin.php @@ -25,7 +25,7 @@ $tmpl->assign('entries', $entries); $tmpl->assign('entriesremain', $entriesremain); $tmpl->assign('htaccessworking', $htaccessworking); $tmpl->assign('internetconnectionworking', OC_Util::isInternetConnectionEnabled() ? OC_Util::isInternetConnectionWorking() : false); -$tmpl->assign('islocaleworking', OC_Util::isSetLocaleWorking()); +$tmpl->assign('isLocaleWorking', OC_Util::isSetLocaleWorking()); $tmpl->assign('isWebDavWorking', OC_Util::isWebDAVWorking()); $tmpl->assign('has_fileinfo', OC_Util::fileInfoLoaded()); $tmpl->assign('backgroundjobs_mode', OC_Appconfig::getValue('core', 'backgroundjobs_mode', 'ajax')); diff --git a/settings/templates/admin.php b/settings/templates/admin.php index 5413b700936..f655a14be87 100644 --- a/settings/templates/admin.php +++ b/settings/templates/admin.php @@ -59,15 +59,23 @@ if (!$_['has_fileinfo']) { } // is locale working ? -if (!$_['islocaleworking']) { +if (!$_['isLocaleWorking']) { ?> <fieldset class="personalblock"> <h2><?php p($l->t('Locale not working'));?></h2> <span class="connectionwarning"> <?php - $locales = 'en_US.UTF-8/en_US.UTF8'; - p($l->t('System locale can\'t be set to %s. This means that there might be problems with certain characters in file names. We strongly suggest to install the required packages on your system to support %s.', array($locales, $locales))); + $locales = 'en_US.UTF-8/fr_FR.UTF-8/es_ES.UTF-8/de_DE.UTF-8/ru_RU.UTF-8/pt_BR.UTF-8/it_IT.UTF-8/ja_JP.UTF-8/zh_CN.UTF-8'; + p($l->t('System locale can not be set to a one which supports UTF-8.')); + ?> + <br> + <?php + p($l->t('This means that there might be problems with certain characters in file names.')); + ?> + <br> + <?php + p($l->t('We strongly suggest to install the required packages on your system to support one of the following locales: %s.', array($locales))); ?> </span> |