From df143cb72a9681d977a7fa85553a95ce1ee2314f Mon Sep 17 00:00:00 2001 From: "John Molakvoæ (skjnldsv)" <skjnldsv@protonmail.com> Date: Mon, 10 Sep 2018 10:19:49 +0200 Subject: Use user locale as default in the template MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> --- lib/private/L10N/Factory.php | 20 ++++++++++++++++++++ lib/private/TemplateLayout.php | 7 +++++-- 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 @@ -244,6 +244,26 @@ class Factory implements IFactory { return 'en_US'; } + /** + * 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 * 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 @@ -53,6 +53,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 * -- cgit v1.2.3 From 081dcc55ca4d87466f03dd180a86911c00df966d Mon Sep 17 00:00:00 2001 From: "John Molakvoæ (skjnldsv)" <skjnldsv@protonmail.com> Date: Mon, 10 Sep 2018 10:45:18 +0200 Subject: Fix public l10n MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> --- lib/public/L10N/IFactory.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/public/L10N/IFactory.php b/lib/public/L10N/IFactory.php index 31276b12897..4f42e498ed1 100644 --- a/lib/public/L10N/IFactory.php +++ b/lib/public/L10N/IFactory.php @@ -56,10 +56,11 @@ interface IFactory { /** * find the matching lang from the locale * + * @param string $app * @param string $locale * @return null|string */ - public function findLanguageFromLocale($locale = null); + public function findLanguageFromLocale($app = 'core', $locale = null); /** * Find all available languages for an app -- cgit v1.2.3 From 01f2fef1f56020ff561eb938b1f511cb94590f08 Mon Sep 17 00:00:00 2001 From: "John Molakvoæ (skjnldsv)" <skjnldsv@protonmail.com> Date: Mon, 10 Sep 2018 10:48:53 +0200 Subject: Since requirement MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> --- lib/public/L10N/IFactory.php | 1 + 1 file changed, 1 insertion(+) diff --git a/lib/public/L10N/IFactory.php b/lib/public/L10N/IFactory.php index 4f42e498ed1..49dab869476 100644 --- a/lib/public/L10N/IFactory.php +++ b/lib/public/L10N/IFactory.php @@ -59,6 +59,7 @@ interface IFactory { * @param string $app * @param string $locale * @return null|string + * @since 15.0.0 */ public function findLanguageFromLocale($app = 'core', $locale = null); -- cgit v1.2.3 From 7d158c62ce13bfe126aa96bf157fc890c2813fac Mon Sep 17 00:00:00 2001 From: "John Molakvoæ (skjnldsv)" <skjnldsv@protonmail.com> Date: Mon, 10 Sep 2018 11:17:03 +0200 Subject: Typehint MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> --- lib/private/L10N/Factory.php | 3 +-- lib/public/L10N/IFactory.php | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/lib/private/L10N/Factory.php b/lib/private/L10N/Factory.php index 1a7fff43229..1c56949c40d 100644 --- a/lib/private/L10N/Factory.php +++ b/lib/private/L10N/Factory.php @@ -251,7 +251,7 @@ class Factory implements IFactory { * @param string $locale * @return null|string */ - public function findLanguageFromLocale($app = 'core', $locale = null) { + public function findLanguageFromLocale(string $app = 'core', string $locale = null) { if ($this->languageExists($app, $locale)) { return $locale; } @@ -261,7 +261,6 @@ class Factory implements IFactory { if ($this->languageExists($app, $locale)) { return $locale; } - } /** diff --git a/lib/public/L10N/IFactory.php b/lib/public/L10N/IFactory.php index 49dab869476..810e916ef6b 100644 --- a/lib/public/L10N/IFactory.php +++ b/lib/public/L10N/IFactory.php @@ -61,7 +61,7 @@ interface IFactory { * @return null|string * @since 15.0.0 */ - public function findLanguageFromLocale($app = 'core', $locale = null); + public function findLanguageFromLocale(string $app = 'core', string $locale = null); /** * Find all available languages for an app -- cgit v1.2.3 From 92fbb6d79560fa41235981252bae4b3af89531f8 Mon Sep 17 00:00:00 2001 From: "John Molakvoæ (skjnldsv)" <skjnldsv@protonmail.com> Date: Thu, 13 Sep 2018 11:30:57 +0200 Subject: Fallback to $lang if no $locale match MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> --- lib/private/TemplateLayout.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index a710ee856e3..316e122e2c9 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -162,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', $localeLang), + \OC::$server->getL10N('lib', $localeLang ?: $lang), \OC::$server->query(Defaults::class), \OC::$server->getAppManager(), \OC::$server->getSession(), -- cgit v1.2.3 From 1e9ab0a3672dbc1255b2531f5656377cf5b23976 Mon Sep 17 00:00:00 2001 From: "John Molakvoæ (skjnldsv)" <skjnldsv@protonmail.com> Date: Wed, 19 Sep 2018 16:02:09 +0200 Subject: Fix since tag MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> --- lib/public/L10N/IFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/public/L10N/IFactory.php b/lib/public/L10N/IFactory.php index 810e916ef6b..a11977f8c03 100644 --- a/lib/public/L10N/IFactory.php +++ b/lib/public/L10N/IFactory.php @@ -59,7 +59,7 @@ interface IFactory { * @param string $app * @param string $locale * @return null|string - * @since 15.0.0 + * @since 14.0.1 */ public function findLanguageFromLocale(string $app = 'core', string $locale = null); -- cgit v1.2.3