Merge pull request #11294 from nextcloud/stable14-locale-template-fix
[stable14] Use user locale as default in the template
This commit is contained in:
commit
a0f2bd8d28
|
@ -244,6 +244,25 @@ class Factory implements IFactory {
|
||||||
return 'en_US';
|
return 'en_US';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* find the matching lang from the locale
|
||||||
|
*
|
||||||
|
* @param string $app
|
||||||
|
* @param string $locale
|
||||||
|
* @return null|string
|
||||||
|
*/
|
||||||
|
public function findLanguageFromLocale(string $app = 'core', string $locale = null) {
|
||||||
|
if ($this->languageExists($app, $locale)) {
|
||||||
|
return $locale;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Try to split e.g: fr_FR => fr
|
||||||
|
$locale = explode('_', $locale)[0];
|
||||||
|
if ($this->languageExists($app, $locale)) {
|
||||||
|
return $locale;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find all available languages for an app
|
* Find all available languages for an app
|
||||||
*
|
*
|
||||||
|
|
|
@ -139,9 +139,12 @@ class TemplateLayout extends \OC_Template {
|
||||||
}
|
}
|
||||||
// Send the language and the locale to our layouts
|
// Send the language and the locale to our layouts
|
||||||
$lang = \OC::$server->getL10NFactory()->findLanguage();
|
$lang = \OC::$server->getL10NFactory()->findLanguage();
|
||||||
|
$locale = \OC::$server->getL10NFactory()->findLocale($lang);
|
||||||
|
$localeLang = \OC::$server->getL10NFactory()->findLanguageFromLocale('lib', $locale);
|
||||||
|
|
||||||
$lang = str_replace('_', '-', $lang);
|
$lang = str_replace('_', '-', $lang);
|
||||||
$this->assign('language', $lang);
|
$this->assign('language', $lang);
|
||||||
$this->assign('locale', \OC::$server->getL10NFactory()->findLocale($lang));
|
$this->assign('locale', $locale);
|
||||||
|
|
||||||
if(\OC::$server->getSystemConfig()->getValue('installed', false)) {
|
if(\OC::$server->getSystemConfig()->getValue('installed', false)) {
|
||||||
if (empty(self::$versionHash)) {
|
if (empty(self::$versionHash)) {
|
||||||
|
@ -159,7 +162,7 @@ class TemplateLayout extends \OC_Template {
|
||||||
if ($this->config->getSystemValue('installed', false) && $renderAs != 'error') {
|
if ($this->config->getSystemValue('installed', false) && $renderAs != 'error') {
|
||||||
if (\OC::$server->getContentSecurityPolicyNonceManager()->browserSupportsCspV3()) {
|
if (\OC::$server->getContentSecurityPolicyNonceManager()->browserSupportsCspV3()) {
|
||||||
$jsConfigHelper = new JSConfigHelper(
|
$jsConfigHelper = new JSConfigHelper(
|
||||||
\OC::$server->getL10N('lib'),
|
\OC::$server->getL10N('lib', $localeLang ?: $lang),
|
||||||
\OC::$server->query(Defaults::class),
|
\OC::$server->query(Defaults::class),
|
||||||
\OC::$server->getAppManager(),
|
\OC::$server->getAppManager(),
|
||||||
\OC::$server->getSession(),
|
\OC::$server->getSession(),
|
||||||
|
|
|
@ -53,6 +53,16 @@ interface IFactory {
|
||||||
*/
|
*/
|
||||||
public function findLocale($lang = null);
|
public function findLocale($lang = null);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* find the matching lang from the locale
|
||||||
|
*
|
||||||
|
* @param string $app
|
||||||
|
* @param string $locale
|
||||||
|
* @return null|string
|
||||||
|
* @since 14.0.1
|
||||||
|
*/
|
||||||
|
public function findLanguageFromLocale(string $app = 'core', string $locale = null);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Find all available languages for an app
|
* Find all available languages for an app
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue