diff --git a/lib/base.php b/lib/base.php index f3983a3800..865d174d21 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 959d36a89e..426c5a025f 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 120f15bec1..0d3868afea 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 5413b70093..f655a14be8 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']) { ?>

t('Locale not working'));?>

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.')); + ?> +
+ t('This means that there might be problems with certain characters in file names.')); + ?> +
+ t('We strongly suggest to install the required packages on your system to support one of the following locales: %s.', array($locales))); ?>