diff --git a/lib/private/l10n.php b/lib/private/l10n.php index 6c66bee3e7975f5f2a167e225558a2fef39366b1..4e9316c333e561954b48df11eed4a65d628b651c 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 - * - * @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. + * The code (en, de, ...) of the language that is used for this OC_L10N object * - * 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/private/util.php b/lib/private/util.php index 3a0d7f653ed8f5902bfa801457ae055373a75224..4c60af881895714c47236edc1b0fecaea5ef7a60 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"; diff --git a/lib/public/il10n.php b/lib/public/il10n.php index 2c95ddfec181f88628a9f6aa4bd73060b6809d6b..c63c18209e451bc38bc7031f153fede3c286d5f2 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 - * @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. + * The code (en, de, ...) of the language that is used for this OC_L10N object * - * If nothing works it returns 'en' + * @return string language */ - public function getLanguageCode($app=null); + public function getLanguageCode(); } diff --git a/tests/lib/l10n.php b/tests/lib/l10n.php index 2235581add87b5f2eae619250917fb6e652a88be..0307dd459e5b7d89004619e1e3adb2a4a629615b 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()); + } }