handle config.php values
Signed-off-by: Georg Ehrke <developer@georgehrke.com>
This commit is contained in:
parent
4a9f8623b5
commit
abab7eb7f0
|
@ -442,6 +442,10 @@ class UsersController extends AUserData {
|
|||
if ($this->config->getSystemValue('force_language', false) === false ||
|
||||
$this->groupManager->isAdmin($currentLoggedInUser->getUID())) {
|
||||
$permittedFields[] = 'language';
|
||||
}
|
||||
|
||||
if ($this->config->getSystemValue('force_locale', false) === false ||
|
||||
$this->groupManager->isAdmin($currentLoggedInUser->getUID())) {
|
||||
$permittedFields[] = 'locale';
|
||||
}
|
||||
|
||||
|
|
|
@ -178,6 +178,29 @@ $CONFIG = array(
|
|||
*/
|
||||
'force_language' => 'en',
|
||||
|
||||
/**
|
||||
* This sets the default locale on your Nextcloud server, using ISO_639
|
||||
* language codes such as ``en`` for English, ``de`` for German, and ``fr`` for
|
||||
* French, and ISO-3166 country codes such as ``GB``, ``US``, ``CA``, as defined
|
||||
* in RFC 5646. It overrides automatic locale detection on public pages like
|
||||
* login or shared items. User's locale preferences configured under "personal
|
||||
* -> locale" override this setting after they have logged in.
|
||||
*
|
||||
* Defaults to ``en``
|
||||
*/
|
||||
'default_locale' => 'en_US',
|
||||
|
||||
/**
|
||||
* With this setting a locale can be forced for all users. If a locale is
|
||||
* forced, the users are also unable to change their locale in the personal
|
||||
* settings. If users shall be unable to change their locale, but users have
|
||||
* different languages, this value can be set to ``true`` instead of a locale
|
||||
* code.
|
||||
*
|
||||
* Defaults to ``false``
|
||||
*/
|
||||
'force_locale' => 'en_US',
|
||||
|
||||
/**
|
||||
* Set the default app to open on login. Use the app names as they appear in the
|
||||
* URL after clicking them in the Apps menu, such as documents, calendar, and
|
||||
|
|
|
@ -111,6 +111,11 @@ class Factory implements IFactory {
|
|||
$lang = $forceLang;
|
||||
}
|
||||
|
||||
$forceLocale = $this->config->getSystemValue('force_locale', false);
|
||||
if (is_string($forceLocale)) {
|
||||
$locale = $forceLocale;
|
||||
}
|
||||
|
||||
if ($lang === null || !$this->languageExists($app, $lang)) {
|
||||
$lang = $this->findLanguage($app);
|
||||
}
|
||||
|
@ -207,17 +212,17 @@ class Factory implements IFactory {
|
|||
return $userLocale;
|
||||
}
|
||||
|
||||
// If no user locale set, use lang as locale
|
||||
if (null !== $lang && $this->localeExists($lang)) {
|
||||
return $lang;
|
||||
}
|
||||
|
||||
// Default : use system default locale
|
||||
$defaultLocale = $this->config->getSystemValue('default_locale', false);
|
||||
if ($defaultLocale !== false && $this->localeExists($defaultLocale)) {
|
||||
return $defaultLocale;
|
||||
}
|
||||
|
||||
// If no user locale set, use lang as locale
|
||||
if (null !== $lang && $this->localeExists($lang)) {
|
||||
return $lang;
|
||||
}
|
||||
|
||||
// At last, return USA
|
||||
return 'en_US';
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue