From 5fc004f8ead3a8b2cdf40768ba69f906d998af16 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 2 Mar 2015 18:01:17 +0100 Subject: [PATCH 1/3] Add a test of what everyone thinks should be the result of this method --- tests/lib/l10n.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/tests/lib/l10n.php b/tests/lib/l10n.php index 2235581add8..0307dd459e5 100644 --- a/tests/lib/l10n.php +++ b/tests/lib/l10n.php @@ -173,4 +173,20 @@ class Test_L10n extends \Test\TestCase { array(null, null, 'en'), ); } + + public function testGetLanguageCode() { + $l = OC_L10N::get('lib', 'de'); + $this->assertEquals('de', $l->getLanguageCode()); + } + + public function testFactoryGetLanguageCode() { + $factory = new \OC\L10N\Factory(); + $l = $factory->get('lib', 'de'); + $this->assertEquals('de', $l->getLanguageCode()); + } + + public function testServiceGetLanguageCode() { + $l = \OC::$server->getL10N('lib', 'de'); + $this->assertEquals('de', $l->getLanguageCode()); + } } From ed4c05c7b5e61d00722238f25154ad475fd632bb Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 2 Mar 2015 18:01:51 +0100 Subject: [PATCH 2/3] Use findLanguage() instead of creating the object first --- lib/private/util.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lib/private/util.php b/lib/private/util.php index 3a0d7f653ed..4c60af88189 100644 --- a/lib/private/util.php +++ b/lib/private/util.php @@ -396,8 +396,7 @@ class OC_Util { */ public static function addTranslations($application, $languageCode = null) { if (is_null($languageCode)) { - $l = new \OC_L10N($application); - $languageCode = $l->getLanguageCode($application); + $languageCode = \OC_L10N::findLanguage($application); } if (!empty($application)) { $path = "$application/l10n/$languageCode"; From b669bf26d6774706a61242d67fbfe24f05eb1760 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Mon, 2 Mar 2015 18:02:51 +0100 Subject: [PATCH 3/3] Fix the behaviour of getLanguageCode() to match the expectation of the name --- lib/private/l10n.php | 19 +++++-------------- lib/public/il10n.php | 12 +++--------- 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/lib/private/l10n.php b/lib/private/l10n.php index 6c66bee3e79..4e9316c333e 100644 --- a/lib/private/l10n.php +++ b/lib/private/l10n.php @@ -358,24 +358,15 @@ class OC_L10N implements \OCP\IL10N { self::$language = $lang; } - /** - * find the best language + * The code (en, de, ...) of the language that is used for this OC_L10N object * - * @param array|string $app details below - * - * If $app is an array, ownCloud assumes that these are the available - * languages. Otherwise ownCloud tries to find the files in the l10n - * folder. - * - * If nothing works it returns 'en' * @return string language */ - public function getLanguageCode($app=null) { - return self::findLanguage($app); + public function getLanguageCode() { + return $this->lang ? $this->lang : self::findLanguage(); } - /** * find the best language * @param array|string $app details below @@ -515,7 +506,7 @@ class OC_L10N implements \OCP\IL10N { * @throws \Punic\Exception\ValueNotInList */ public function getDateFormat() { - $locale = self::findLanguage(); + $locale = $this->getLanguageCode(); return Punic\Calendar::getDateFormat('short', $locale); } @@ -523,7 +514,7 @@ class OC_L10N implements \OCP\IL10N { * @return int */ public function getFirstWeekDay() { - $locale = self::findLanguage(); + $locale = $this->getLanguageCode(); return Punic\Calendar::getFirstWeekday($locale); } } diff --git a/lib/public/il10n.php b/lib/public/il10n.php index 2c95ddfec18..c63c18209e4 100644 --- a/lib/public/il10n.php +++ b/lib/public/il10n.php @@ -75,15 +75,9 @@ interface IL10N { /** - * find the best language - * @param array|string $app details below + * The code (en, de, ...) of the language that is used for this OC_L10N object + * * @return string language - * - * If $app is an array, ownCloud assumes that these are the available - * languages. Otherwise ownCloud tries to find the files in the l10n - * folder. - * - * If nothing works it returns 'en' */ - public function getLanguageCode($app=null); + public function getLanguageCode(); }