diff options
author | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2018-09-10 10:19:49 +0200 |
---|---|---|
committer | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2018-09-10 10:42:08 +0200 |
commit | df143cb72a9681d977a7fa85553a95ce1ee2314f (patch) | |
tree | d40f7d7bc787393a049e92ecb56ec98339502010 | |
parent | e9c644412c65aab4799c5dc24dcfa294cc7f5a23 (diff) | |
download | nextcloud-server-df143cb72a9681d977a7fa85553a95ce1ee2314f.tar.gz nextcloud-server-df143cb72a9681d977a7fa85553a95ce1ee2314f.zip |
Use user locale as default in the template
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
-rw-r--r-- | lib/private/L10N/Factory.php | 20 | ||||
-rw-r--r-- | lib/private/TemplateLayout.php | 7 | ||||
-rw-r--r-- | lib/public/L10N/IFactory.php | 8 |
3 files changed, 33 insertions, 2 deletions
diff --git a/lib/private/L10N/Factory.php b/lib/private/L10N/Factory.php index cc2de174509..1a7fff43229 100644 --- a/lib/private/L10N/Factory.php +++ b/lib/private/L10N/Factory.php @@ -245,6 +245,26 @@ class Factory implements IFactory { } /** + * find the matching lang from the locale + * + * @param string $app + * @param string $locale + * @return null|string + */ + public function findLanguageFromLocale($app = 'core', $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 * * @param string|null $app App id or null for core diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 0bd57c4139b..a710ee856e3 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -139,9 +139,12 @@ class TemplateLayout extends \OC_Template { } // Send the language and the locale to our layouts $lang = \OC::$server->getL10NFactory()->findLanguage(); + $locale = \OC::$server->getL10NFactory()->findLocale($lang); + $localeLang = \OC::$server->getL10NFactory()->findLanguageFromLocale('lib', $locale); + $lang = str_replace('_', '-', $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 (empty(self::$versionHash)) { @@ -159,7 +162,7 @@ class TemplateLayout extends \OC_Template { if ($this->config->getSystemValue('installed', false) && $renderAs != 'error') { if (\OC::$server->getContentSecurityPolicyNonceManager()->browserSupportsCspV3()) { $jsConfigHelper = new JSConfigHelper( - \OC::$server->getL10N('lib'), + \OC::$server->getL10N('lib', $localeLang), \OC::$server->query(Defaults::class), \OC::$server->getAppManager(), \OC::$server->getSession(), diff --git a/lib/public/L10N/IFactory.php b/lib/public/L10N/IFactory.php index 1bc231e4e2e..31276b12897 100644 --- a/lib/public/L10N/IFactory.php +++ b/lib/public/L10N/IFactory.php @@ -54,6 +54,14 @@ interface IFactory { public function findLocale($lang = null); /** + * find the matching lang from the locale + * + * @param string $locale + * @return null|string + */ + public function findLanguageFromLocale($locale = null); + + /** * Find all available languages for an app * * @param string|null $app App id or null for core |