Properly fix the default locale issue
This commit is contained in:
parent
2ecf1a99a6
commit
56abc53a2b
|
@ -435,7 +435,11 @@ abstract class ApplicationBootstrap
|
||||||
*/
|
*/
|
||||||
protected function setupInternationalization()
|
protected function setupInternationalization()
|
||||||
{
|
{
|
||||||
Translator::setupLocale($this->config->global->get('language', Translator::DEFAULT_LOCALE));
|
try {
|
||||||
|
Translator::setupLocale($this->config->global->get('language', Translator::DEFAULT_LOCALE));
|
||||||
|
} catch (Exception $error) {
|
||||||
|
Logger::info($error->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
$localeDir = $this->getApplicationDir('locale');
|
$localeDir = $this->getApplicationDir('locale');
|
||||||
if (file_exists($localeDir) && is_dir($localeDir)) {
|
if (file_exists($localeDir) && is_dir($localeDir)) {
|
||||||
|
|
|
@ -448,7 +448,7 @@ class Web extends ApplicationBootstrap
|
||||||
try {
|
try {
|
||||||
Translator::setupLocale($userLocale);
|
Translator::setupLocale($userLocale);
|
||||||
} catch (Exception $error) {
|
} catch (Exception $error) {
|
||||||
Logger::error(
|
Logger::info(
|
||||||
'Cannot set locale "' . $userLocale . '" configured in ' .
|
'Cannot set locale "' . $userLocale . '" configured in ' .
|
||||||
'preferences of user "' . $this->user->getUsername() . '"'
|
'preferences of user "' . $this->user->getUsername() . '"'
|
||||||
);
|
);
|
||||||
|
|
|
@ -43,11 +43,8 @@ class Translator
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The locale code that is used in the project
|
* The locale code that is used in the project
|
||||||
*
|
|
||||||
* We are actually using en_US. "C" refers to "whatever is hardcoded"
|
|
||||||
* and is used because en_US might not be available though.
|
|
||||||
*/
|
*/
|
||||||
const DEFAULT_LOCALE = 'C';
|
const DEFAULT_LOCALE = 'en_US';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Known gettext domains and directories
|
* Known gettext domains and directories
|
||||||
|
@ -108,10 +105,14 @@ class Translator
|
||||||
public static function setupLocale($localeName)
|
public static function setupLocale($localeName)
|
||||||
{
|
{
|
||||||
if (setlocale(LC_ALL, $localeName . '.UTF-8') === false) {
|
if (setlocale(LC_ALL, $localeName . '.UTF-8') === false) {
|
||||||
throw new Exception("Cannot set locale '$localeName.UTF-8' for category 'LC_ALL'");
|
setlocale(LC_ALL, 'C'); // C == "use whatever is hardcoded"
|
||||||
|
if ($localeName !== self::DEFAULT_LOCALE) {
|
||||||
|
throw new Exception("Cannot set locale '$localeName.UTF-8' for category 'LC_ALL'");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
putenv('LC_ALL=' . $localeName . '.UTF-8'); // Failsafe, Win and Unix
|
||||||
|
putenv('LANG=' . $localeName . '.UTF-8'); // Windows fix, untested
|
||||||
}
|
}
|
||||||
putenv('LC_ALL=' . $localeName . '.UTF-8'); // Failsafe, Win and Unix
|
|
||||||
putenv('LANG=' . $localeName . '.UTF-8'); // Windows fix, untested
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Loading…
Reference in New Issue