diff --git a/apps/encryption/templates/settings-admin.php b/apps/encryption/templates/settings-admin.php index 405dbaf703..efe9c44ece 100644 --- a/apps/encryption/templates/settings-admin.php +++ b/apps/encryption/templates/settings-admin.php @@ -1,6 +1,6 @@ diff --git a/apps/federatedfilesharing/templates/settings-admin.php b/apps/federatedfilesharing/templates/settings-admin.php index c454eeba17..3ffd4bd5b2 100644 --- a/apps/federatedfilesharing/templates/settings-admin.php +++ b/apps/federatedfilesharing/templates/settings-admin.php @@ -1,5 +1,5 @@ diff --git a/apps/federatedfilesharing/templates/settings-personal.php b/apps/federatedfilesharing/templates/settings-personal.php index 6b43f70495..98a1cd7f75 100644 --- a/apps/federatedfilesharing/templates/settings-personal.php +++ b/apps/federatedfilesharing/templates/settings-personal.php @@ -1,5 +1,5 @@ diff --git a/apps/files/lib/Helper.php b/apps/files/lib/Helper.php index 26bc020c87..b6b209dea7 100644 --- a/apps/files/lib/Helper.php +++ b/apps/files/lib/Helper.php @@ -45,7 +45,7 @@ class Helper { public static function buildFileStorageStatistics($dir) { // information about storage capacities $storageInfo = \OC_Helper::getStorageInfo($dir); - $l = new \OC_L10N('files'); + $l = \OC::$server->getL10N('files'); $maxUploadFileSize = \OCP\Util::maxUploadFilesize($dir, $storageInfo['free']); $maxHumanFileSize = \OCP\Util::humanFileSize($maxUploadFileSize); $maxHumanFileSize = $l->t('Upload (max. %s)', array($maxHumanFileSize)); diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index 92345d3063..17958d330b 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -1,4 +1,4 @@ - + printPage(); ?>
diff --git a/apps/files/templates/recentlist.php b/apps/files/templates/recentlist.php index 1667eb4cc8..6c271a07f5 100644 --- a/apps/files/templates/recentlist.php +++ b/apps/files/templates/recentlist.php @@ -1,4 +1,4 @@ - +
diff --git a/apps/files/tests/ActivityTest.php b/apps/files/tests/ActivityTest.php index e6199013e8..65e914c1a5 100644 --- a/apps/files/tests/ActivityTest.php +++ b/apps/files/tests/ActivityTest.php @@ -24,6 +24,8 @@ namespace OCA\Files\Tests; use OCA\Files\Activity; +use OCP\IL10N; +use OCP\L10N\IFactory; use Test\TestCase; /** @@ -77,12 +79,8 @@ class ActivityTest extends TestCase { $this->config ); - $this->l10nFactory = $this->getMockBuilder('OCP\L10N\IFactory') - ->disableOriginalConstructor() - ->getMock(); - $deL10n = $this->getMockBuilder('OC_L10N') - ->disableOriginalConstructor() - ->getMock(); + $this->l10nFactory = $this->createMock(IFactory::class); + $deL10n = $this->createMock(IL10N::class); $deL10n->expects($this->any()) ->method('t') ->willReturnCallback(function ($argument) { @@ -92,8 +90,8 @@ class ActivityTest extends TestCase { $this->l10nFactory->expects($this->any()) ->method('get') ->willReturnMap([ - ['files', null, new \OC_L10N('files', 'en')], - ['files', 'en', new \OC_L10N('files', 'en')], + ['files', null, \OC::$server->getL10N('files', 'en')], + ['files', 'en', \OC::$server->getL10N('files', 'en')], ['files', 'de', $deL10n], ]); diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php index b4b4bfa92f..179aaa373b 100644 --- a/apps/files/tests/Controller/ViewControllerTest.php +++ b/apps/files/tests/Controller/ViewControllerTest.php @@ -137,7 +137,7 @@ class ViewControllerTest extends TestCase { 'appname' => 'files', 'script' => 'list.php', 'order' => 0, - 'name' => (string)new \OC_L10N_String(new \OC_L10N('files'), 'All files', []), + 'name' => \OC::$server->getL10N('files')->t('All files'), 'active' => false, 'icon' => '', ], @@ -146,7 +146,7 @@ class ViewControllerTest extends TestCase { 'appname' => 'files', 'script' => 'recentlist.php', 'order' => 2, - 'name' => (string)new \OC_L10N_String(new \OC_L10N('files'), 'Recent', []), + 'name' => \OC::$server->getL10N('files')->t('Recent'), 'active' => false, 'icon' => '', ], @@ -164,7 +164,7 @@ class ViewControllerTest extends TestCase { 'appname' => 'files_sharing', 'script' => 'list.php', 'order' => 10, - 'name' => (string)new \OC_L10N_String(new \OC_L10N('files_sharing'), 'Shared with you', []), + 'name' => \OC::$server->getL10N('files_sharing')->t('Shared with you'), 'active' => false, 'icon' => '', ], @@ -173,7 +173,7 @@ class ViewControllerTest extends TestCase { 'appname' => 'files_sharing', 'script' => 'list.php', 'order' => 15, - 'name' => (string)new \OC_L10N_String(new \OC_L10N('files_sharing'), 'Shared with others', []), + 'name' => \OC::$server->getL10N('files_sharing')->t('Shared with others'), 'active' => false, 'icon' => '', ], @@ -182,7 +182,7 @@ class ViewControllerTest extends TestCase { 'appname' => 'files_sharing', 'script' => 'list.php', 'order' => 20, - 'name' => (string)new \OC_L10N_String(new \OC_L10N('files_sharing'), 'Shared by link', []), + 'name' => \OC::$server->getL10N('files_sharing')->t('Shared by link', []), 'active' => false, 'icon' => '', ], @@ -191,7 +191,7 @@ class ViewControllerTest extends TestCase { 'appname' => 'systemtags', 'script' => 'list.php', 'order' => 25, - 'name' => (string)new \OC_L10N_String(new \OC_L10N('systemtags'), 'Tags', []), + 'name' => \OC::$server->getL10N('systemtags')->t('Tags'), 'active' => false, 'icon' => '', ], @@ -200,7 +200,7 @@ class ViewControllerTest extends TestCase { 'appname' => 'files_trashbin', 'script' => 'list.php', 'order' => 50, - 'name' => (string)new \OC_L10N_String(new \OC_L10N('files_trashbin'), 'Deleted files', []), + 'name' => \OC::$server->getL10N('files_trashbin')->t('Deleted files'), 'active' => false, 'icon' => '', ], diff --git a/apps/files_external/tests/Command/ListCommandTest.php b/apps/files_external/tests/Command/ListCommandTest.php index 7caf61cf57..f2f9fa94c0 100644 --- a/apps/files_external/tests/Command/ListCommandTest.php +++ b/apps/files_external/tests/Command/ListCommandTest.php @@ -53,7 +53,7 @@ class ListCommandTest extends CommandTest { } public function testListAuthIdentifier() { - $l10n = $this->getMock('\OC_L10N', null, [], '', false); + $l10n = $this->getMock('\OPC\IL10N', null, [], '', false); $session = $this->createMock(ISession::class); $crypto = $this->createMock(ICrypto::class); $instance = $this->getInstance(); diff --git a/apps/files_sharing/templates/authenticate.php b/apps/files_sharing/templates/authenticate.php index 909e839177..fbc1d72a33 100644 --- a/apps/files_sharing/templates/authenticate.php +++ b/apps/files_sharing/templates/authenticate.php @@ -1,6 +1,6 @@ diff --git a/apps/files_sharing/templates/list.php b/apps/files_sharing/templates/list.php index 785b2bc72a..ec13b5c1f7 100644 --- a/apps/files_sharing/templates/list.php +++ b/apps/files_sharing/templates/list.php @@ -1,4 +1,4 @@ - +
diff --git a/apps/files_sharing/templates/public.php b/apps/files_sharing/templates/public.php index 80c7d4d746..e1a816e7fe 100644 --- a/apps/files_sharing/templates/public.php +++ b/apps/files_sharing/templates/public.php @@ -1,5 +1,5 @@ diff --git a/apps/files_trashbin/templates/index.php b/apps/files_trashbin/templates/index.php index 9ea8a9d14c..c3f0304d40 100644 --- a/apps/files_trashbin/templates/index.php +++ b/apps/files_trashbin/templates/index.php @@ -1,4 +1,4 @@ - +
diff --git a/core/templates/404.php b/core/templates/404.php index a0d2f0160b..79a67b3ce2 100644 --- a/core/templates/404.php +++ b/core/templates/404.php @@ -1,6 +1,6 @@ diff --git a/core/templates/login.php b/core/templates/login.php index 36ed59e930..46045f86b5 100644 --- a/core/templates/login.php +++ b/core/templates/login.php @@ -1,4 +1,4 @@ - + query('OC\CapabilitiesManager')->registerCapability(function() use ($serviceName) { return $this->query($serviceName); }); + } + public function query($name) { + return parent::query($name); } } diff --git a/lib/private/Setup/AbstractDatabase.php b/lib/private/Setup/AbstractDatabase.php index 47c3e5ee1c..2b9d7afb36 100644 --- a/lib/private/Setup/AbstractDatabase.php +++ b/lib/private/Setup/AbstractDatabase.php @@ -29,12 +29,13 @@ namespace OC\Setup; use OC\AllConfig; use OC\DB\ConnectionFactory; use OCP\IConfig; +use OCP\IL10N; use OCP\ILogger; use OCP\Security\ISecureRandom; abstract class AbstractDatabase { - /** @var \OC_L10N */ + /** @var IL10N */ protected $trans; /** @var string */ protected $dbDefinitionFile; @@ -57,7 +58,7 @@ abstract class AbstractDatabase { /** @var ISecureRandom */ protected $random; - public function __construct($trans, $dbDefinitionFile, IConfig $config, ILogger $logger, ISecureRandom $random) { + public function __construct(IL10N $trans, $dbDefinitionFile, IConfig $config, ILogger $logger, ISecureRandom $random) { $this->trans = $trans; $this->dbDefinitionFile = $dbDefinitionFile; $this->config = $config; diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 9f89174e7f..7878737bde 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -127,7 +127,7 @@ class TemplateLayout extends \OC_Template { } // Send the language to our layouts - $this->assign('language', \OC_L10N::findLanguage()); + $this->assign('language', \OC::$server->getL10NFactory()->findLanguage()); if(\OC::$server->getSystemConfig()->getValue('installed', false)) { if (empty(self::$versionHash)) { diff --git a/lib/private/legacy/l10n.php b/lib/private/legacy/l10n.php deleted file mode 100644 index 94eff197ab..0000000000 --- a/lib/private/legacy/l10n.php +++ /dev/null @@ -1,343 +0,0 @@ - - * @author Bernhard Posselt - * @author Jakob Sack - * @author Jan-Christoph Borchardt - * @author Joas Schilling - * @author Lukas Reschke - * @author Morris Jobke - * @author Robin Appelman - * @author Robin McCorkell - * @author Thomas Müller - * @author Thomas Tanghus - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see - * - */ - -/** - * This class is for i18n and l10n - * @deprecated 9.0.0 Use \OC::$server->getL10NFactory()->get() instead - */ -class OC_L10N implements \OCP\IL10N { - /** - * cache - */ - protected static $cache = array(); - protected static $availableLanguages = array(); - - /** - * The best language - */ - protected static $language = ''; - - /** - * App of this object - */ - protected $app; - - /** - * Language of this object - */ - protected $lang; - - /** - * Translations - */ - private $translations = array(); - - /** - * Plural forms (string) - */ - private $pluralFormString = 'nplurals=2; plural=(n != 1);'; - - /** - * Plural forms (function) - */ - private $pluralFormFunction = null; - - /** - * The constructor - * @param string $app app requesting l10n - * @param string $lang default: null Language - * - * If language is not set, the constructor tries to find the right - * language. - * @deprecated 9.0.0 Use \OC::$server->getL10NFactory()->get() instead - */ - public function __construct($app, $lang = null) { - $app = \OC_App::cleanAppId($app); - $this->app = $app; - - if ($lang !== null) { - $lang = str_replace(array('\0', '/', '\\', '..'), '', $lang); - } - - // Find the right language - if ($app !== 'test' && !\OC::$server->getL10NFactory()->languageExists($app, $lang)) { - $lang = \OC::$server->getL10NFactory()->findLanguage($app); - } - - $this->lang = $lang; - } - - /** - * @param $transFile - * @return bool - */ - public function load($transFile) { - $this->app = true; - - $json = json_decode(file_get_contents($transFile), true); - if (!is_array($json)) { - $jsonError = json_last_error(); - \OC::$server->getLogger()->warning("Failed to load $transFile - json error code: $jsonError", ['app' => 'l10n']); - return false; - } - - $this->pluralFormString = $json['pluralForm']; - $translations = $json['translations']; - - $this->translations = array_merge($this->translations, $translations); - - return true; - } - - protected function init() { - if ($this->app === true) { - return; - } - $app = $this->app; - $lang = $this->lang; - $this->app = true; - - /** @var \OC\L10N\Factory $factory */ - $factory = \OC::$server->getL10NFactory(); - $languageFiles = $factory->getL10nFilesForApp($app, $lang); - - $this->translations = []; - foreach ($languageFiles as $languageFile) { - $this->load($languageFile); - } - } - - /** - * Translating - * @param string $text The text we need a translation for - * @param array $parameters default:array() Parameters for sprintf - * @return \OC_L10N_String Translation or the same text - * - * Returns the translation. If no translation is found, $text will be - * returned. - */ - public function t($text, $parameters = array()) { - return new OC_L10N_String($this, $text, $parameters); - } - - /** - * Translating - * @param string $text_singular the string to translate for exactly one object - * @param string $text_plural the string to translate for n objects - * @param integer $count Number of objects - * @param array $parameters default:array() Parameters for sprintf - * @return \OC_L10N_String Translation or the same text - * - * Returns the translation. If no translation is found, $text will be - * returned. %n will be replaced with the number of objects. - * - * The correct plural is determined by the plural_forms-function - * provided by the po file. - * - */ - public function n($text_singular, $text_plural, $count, $parameters = array()) { - $this->init(); - $identifier = "_${text_singular}_::_${text_plural}_"; - if( array_key_exists($identifier, $this->translations)) { - return new OC_L10N_String( $this, $identifier, $parameters, $count ); - }else{ - if($count === 1) { - return new OC_L10N_String($this, $text_singular, $parameters, $count); - }else{ - return new OC_L10N_String($this, $text_plural, $parameters, $count); - } - } - } - - /** - * getTranslations - * @return array Fetch all translations - * - * Returns an associative array with all translations - */ - public function getTranslations() { - $this->init(); - return $this->translations; - } - - /** - * getPluralFormFunction - * @return string the plural form function - * - * returned function accepts the argument $n - */ - public function getPluralFormFunction() { - $this->init(); - if (is_null($this->pluralFormFunction)) { - $this->pluralFormFunction = \OC::$server->getL10NFactory()->createPluralFunction($this->pluralFormString); - } - return $this->pluralFormFunction; - } - - /** - * Localization - * @param string $type Type of localization - * @param array|int|string $data parameters for this localization - * @param array $options - * @return string|false - * - * Returns the localized data. - * - * Implemented types: - * - date - * - Creates a date - * - params: timestamp (int/string) - * - datetime - * - Creates date and time - * - params: timestamp (int/string) - * - time - * - Creates a time - * - params: timestamp (int/string) - * - firstday: Returns the first day of the week (0 sunday - 6 saturday) - * - jsdate: Returns the short JS date format - */ - public function l($type, $data, $options = array()) { - if ($type === 'firstday') { - return $this->getFirstWeekDay(); - } - if ($type === 'jsdate') { - return $this->getDateFormat(); - } - - $this->init(); - $value = new DateTime(); - if($data instanceof DateTime) { - $value = $data; - } elseif(is_string($data) && !is_numeric($data)) { - $data = strtotime($data); - $value->setTimestamp($data); - } else { - $value->setTimestamp($data); - } - - // Use the language of the instance - $locale = $this->transformToCLDRLocale($this->getLanguageCode()); - - $options = array_merge(array('width' => 'long'), $options); - $width = $options['width']; - switch($type) { - case 'date': - return Punic\Calendar::formatDate($value, $width, $locale); - case 'datetime': - return Punic\Calendar::formatDatetime($value, $width, $locale); - case 'time': - return Punic\Calendar::formatTime($value, $width, $locale); - default: - return false; - } - } - - /** - * The code (en, de, ...) of the language that is used for this OC_L10N object - * - * @return string language - */ - public function getLanguageCode() { - return $this->lang; - } - - /** - * @return string - * @throws \Punic\Exception\ValueNotInList - * @deprecated 9.0.0 Use $this->l('jsdate', null) instead - */ - public function getDateFormat() { - $locale = $this->transformToCLDRLocale($this->getLanguageCode()); - return Punic\Calendar::getDateFormat('short', $locale); - } - - /** - * @return int - * @deprecated 9.0.0 Use $this->l('firstday', null) instead - */ - public function getFirstWeekDay() { - $locale = $this->transformToCLDRLocale($this->getLanguageCode()); - return Punic\Calendar::getFirstWeekday($locale); - } - - /** - * @param string $locale - * @return string - */ - private function transformToCLDRLocale($locale) { - if ($locale === 'sr@latin') { - return 'sr_latn'; - } - - return $locale; - } - - /** - * find the best language - * @param string $app - * @return string language - * - * If nothing works it returns 'en' - * @deprecated 9.0.0 Use \OC::$server->getL10NFactory()->findLanguage() instead - */ - public static function findLanguage($app = null) { - return \OC::$server->getL10NFactory()->findLanguage($app); - } - - /** - * @return string - * @deprecated 9.0.0 Use \OC::$server->getL10NFactory()->setLanguageFromRequest() instead - */ - public static function setLanguageFromRequest() { - return \OC::$server->getL10NFactory()->setLanguageFromRequest(); - } - - /** - * find all available languages for an app - * @param string $app App that needs to be translated - * @return array an array of available languages - * @deprecated 9.0.0 Use \OC::$server->getL10NFactory()->findAvailableLanguages() instead - */ - public static function findAvailableLanguages($app=null) { - return \OC::$server->getL10NFactory()->findAvailableLanguages($app); - } - - /** - * @param string $app - * @param string $lang - * @return bool - * @deprecated 9.0.0 Use \OC::$server->getL10NFactory()->languageExists() instead - */ - public static function languageExists($app, $lang) { - return \OC::$server->getL10NFactory()->languageExists($app, $lang); - } -} diff --git a/lib/private/legacy/l10n/string.php b/lib/private/legacy/l10n/string.php index 3d9d72e069..1410db6d73 100644 --- a/lib/private/legacy/l10n/string.php +++ b/lib/private/legacy/l10n/string.php @@ -27,7 +27,7 @@ */ class OC_L10N_String implements JsonSerializable { - /** @var \OC_L10N|\OC\L10N\L10N */ + /** @var \OC\L10N\L10N */ protected $l10n; /** @var string */ @@ -40,12 +40,12 @@ class OC_L10N_String implements JsonSerializable { protected $count; /** - * @param \OC_L10N|\OC\L10N\L10N $l10n + * @param \OC\L10N\L10N $l10n * @param string|string[] $text * @param array $parameters * @param int $count */ - public function __construct($l10n, $text, $parameters, $count = 1) { + public function __construct(\OC\L10N\L10N $l10n, $text, $parameters, $count = 1) { $this->l10n = $l10n; $this->text = $text; $this->parameters = $parameters; diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php index 42fd0ba7db..e4c2caeafd 100644 --- a/lib/private/legacy/util.php +++ b/lib/private/legacy/util.php @@ -526,7 +526,7 @@ class OC_Util { */ public static function addTranslations($application, $languageCode = null, $prepend = false) { if (is_null($languageCode)) { - $languageCode = \OC_L10N::findLanguage($application); + $languageCode = \OC::$server->getL10NFactory()->findLanguage($application); } if (!empty($application)) { $path = "$application/l10n/$languageCode"; diff --git a/lib/public/Util.php b/lib/public/Util.php index d5b0752553..08661fd88c 100644 --- a/lib/public/Util.php +++ b/lib/public/Util.php @@ -195,7 +195,7 @@ class Util { * get l10n object * @param string $application * @param string|null $language - * @return \OC_L10N + * @return \OCP\IL10N * @since 6.0.0 - parameter $language was added in 8.0.0 */ public static function getL10N($application, $language = null) { diff --git a/settings/personal.php b/settings/personal.php index a0d08aa0bd..01c358de3a 100644 --- a/settings/personal.php +++ b/settings/personal.php @@ -68,7 +68,7 @@ $storageInfo=OC_Helper::getStorageInfo('/'); $user = OC::$server->getUserManager()->get(OC_User::getUser()); $email = $user->getEMailAddress(); -$userLang=$config->getUserValue( OC_User::getUser(), 'core', 'lang', OC_L10N::findLanguage() ); +$userLang=$config->getUserValue( OC_User::getUser(), 'core', 'lang', \OC::$server->getL10NFactory()->findLanguage() ); $languageCodes = \OC::$server->getL10NFactory()->findAvailableLanguages(); // array of common languages diff --git a/tests/lib/DateTimeFormatterTest.php b/tests/lib/DateTimeFormatterTest.php index 0d185128e2..85884c9bfb 100644 --- a/tests/lib/DateTimeFormatterTest.php +++ b/tests/lib/DateTimeFormatterTest.php @@ -34,7 +34,7 @@ class DateTimeFormatterTest extends TestCase { protected function setUp() { parent::setUp(); - $this->formatter = new \OC\DateTimeFormatter(new \DateTimeZone('UTC'), new \OC_L10N('lib', 'en')); + $this->formatter = new \OC\DateTimeFormatter(new \DateTimeZone('UTC'), \OC::$server->getL10N('lib', 'en')); } protected function getTimestampAgo($time, $seconds = 0, $minutes = 0, $hours = 0, $days = 0, $years = 0) { @@ -43,7 +43,7 @@ class DateTimeFormatterTest extends TestCase { public function formatTimeSpanData() { $time = 1416916800; // Use a fixed timestamp so we don't switch days/years with the getTimestampAgo - $deL10N = new \OC_L10N('lib', 'de'); + $deL10N = \OC::$server->getL10N('lib', 'de'); return array( array('seconds ago', $time, $time), array('1 minute ago', $this->getTimestampAgo($time, 30, 1), $time), @@ -81,7 +81,7 @@ class DateTimeFormatterTest extends TestCase { public function formatDateSpanData() { $time = 1416916800; // Use a fixed timestamp so we don't switch days/years with the getTimestampAgo - $deL10N = new \OC_L10N('lib', 'de'); + $deL10N = \OC::$server->getL10N('lib', 'de'); return array( // Normal testing array('today', $this->getTimestampAgo($time, 30, 15), $time), diff --git a/tests/lib/L10N/L10nLegacyTest.php b/tests/lib/L10N/L10nLegacyTest.php deleted file mode 100644 index 71b4e21f1a..0000000000 --- a/tests/lib/L10N/L10nLegacyTest.php +++ /dev/null @@ -1,139 +0,0 @@ - - * This file is licensed under the Affero General Public License version 3 or - * later. - * See the COPYING-README file. - */ - -namespace Test\L10N; - - -use OC_L10N; -use DateTime; - -/** - * Class Test_L10n - */ -class L10nLegacyTest extends \Test\TestCase { - - public function testGermanPluralTranslations() { - $l = new OC_L10N('test'); - $transFile = \OC::$SERVERROOT.'/tests/data/l10n/de.json'; - - $l->load($transFile); - $this->assertEquals('1 Datei', (string)$l->n('%n file', '%n files', 1)); - $this->assertEquals('2 Dateien', (string)$l->n('%n file', '%n files', 2)); - } - - public function testRussianPluralTranslations() { - $l = new OC_L10N('test'); - $transFile = \OC::$SERVERROOT.'/tests/data/l10n/ru.json'; - - $l->load($transFile); - $this->assertEquals('1 файл', (string)$l->n('%n file', '%n files', 1)); - $this->assertEquals('2 файла', (string)$l->n('%n file', '%n files', 2)); - $this->assertEquals('6 файлов', (string)$l->n('%n file', '%n files', 6)); - $this->assertEquals('21 файл', (string)$l->n('%n file', '%n files', 21)); - $this->assertEquals('22 файла', (string)$l->n('%n file', '%n files', 22)); - $this->assertEquals('26 файлов', (string)$l->n('%n file', '%n files', 26)); - - /* - 1 file 1 файл 1 папка - 2-4 files 2-4 файла 2-4 папки - 5-20 files 5-20 файлов 5-20 папок - 21 files 21 файл 21 папка - 22-24 files 22-24 файла 22-24 папки - 25-30 files 25-30 файлов 25-30 папок - etc - 100 files 100 файлов, 100 папок - 1000 files 1000 файлов 1000 папок - */ - } - - public function testCzechPluralTranslations() { - $l = new OC_L10N('test'); - $transFile = \OC::$SERVERROOT.'/tests/data/l10n/cs.json'; - - $l->load($transFile); - $this->assertEquals('1 okno', (string)$l->n('%n window', '%n windows', 1)); - $this->assertEquals('2 okna', (string)$l->n('%n window', '%n windows', 2)); - $this->assertEquals('5 oken', (string)$l->n('%n window', '%n windows', 5)); - } - - public function localizationDataProvider() { - return array( - // timestamp as string - array('February 13, 2009 at 11:31:30 PM GMT+0', 'en', 'datetime', '1234567890'), - array('13. Februar 2009 um 23:31:30 GMT+0', 'de', 'datetime', '1234567890'), - array('February 13, 2009', 'en', 'date', '1234567890'), - array('13. Februar 2009', 'de', 'date', '1234567890'), - array('11:31:30 PM GMT+0', 'en', 'time', '1234567890'), - array('23:31:30 GMT+0', 'de', 'time', '1234567890'), - - // timestamp as int - array('February 13, 2009 at 11:31:30 PM GMT+0', 'en', 'datetime', 1234567890), - array('13. Februar 2009 um 23:31:30 GMT+0', 'de', 'datetime', 1234567890), - array('February 13, 2009', 'en', 'date', 1234567890), - array('13. Februar 2009', 'de', 'date', 1234567890), - array('11:31:30 PM GMT+0', 'en', 'time', 1234567890), - array('23:31:30 GMT+0', 'de', 'time', 1234567890), - - // DateTime object - array('February 13, 2009 at 11:31:30 PM GMT+0', 'en', 'datetime', new DateTime('@1234567890')), - array('13. Februar 2009 um 23:31:30 GMT+0', 'de', 'datetime', new DateTime('@1234567890')), - array('February 13, 2009', 'en', 'date', new DateTime('@1234567890')), - array('13. Februar 2009', 'de', 'date', new DateTime('@1234567890')), - array('11:31:30 PM GMT+0', 'en', 'time', new DateTime('@1234567890')), - array('23:31:30 GMT+0', 'de', 'time', new DateTime('@1234567890')), - - // en_GB - array('13 February 2009 at 23:31:30 GMT+0', 'en_GB', 'datetime', new DateTime('@1234567890')), - array('13 February 2009', 'en_GB', 'date', new DateTime('@1234567890')), - array('23:31:30 GMT+0', 'en_GB', 'time', new DateTime('@1234567890')), - array('13 February 2009 at 23:31:30 GMT+0', 'en-GB', 'datetime', new DateTime('@1234567890')), - array('13 February 2009', 'en-GB', 'date', new DateTime('@1234567890')), - array('23:31:30 GMT+0', 'en-GB', 'time', new DateTime('@1234567890')), - ); - } - - /** - * @dataProvider localizationDataProvider - */ - public function testNumericStringLocalization($expectedDate, $lang, $type, $value) { - $l = new OC_L10N('test', $lang); - $this->assertSame($expectedDate, $l->l($type, $value)); - } - - public function firstDayDataProvider() { - return array( - array(1, 'de'), - array(0, 'en'), - ); - } - - /** - * @dataProvider firstDayDataProvider - * @param $expected - * @param $lang - */ - public function testFirstWeekDay($expected, $lang) { - $l = new OC_L10N('test', $lang); - $this->assertSame($expected, $l->l('firstday', 'firstday')); - } - - public function testFactoryGetLanguageCode() { - $factory = new \OC\L10N\Factory( - $this->getMockBuilder('OCP\IConfig')->getMock(), - $this->getMockBuilder('OCP\IRequest')->getMock(), - $this->getMockBuilder('OCP\IUserSession')->getMock(), - \OC::$SERVERROOT); - $l = $factory->get('lib', 'de'); - $this->assertEquals('de', $l->getLanguageCode()); - } - - public function testServiceGetLanguageCode() { - $l = \OC::$server->getL10N('lib', 'de'); - $this->assertEquals('de', $l->getLanguageCode()); - } -} diff --git a/tests/lib/UtilTest.php b/tests/lib/UtilTest.php index a1671191ab..60e50f750e 100644 --- a/tests/lib/UtilTest.php +++ b/tests/lib/UtilTest.php @@ -91,7 +91,7 @@ class UtilTest extends \Test\TestCase { $selectedTimeZone = \OC::$server->getDateTimeZone()->getTimeZone(1350129205); $this->assertEquals($expectedTimeZone, $selectedTimeZone->getName()); - $newDateTimeFormatter = new \OC\DateTimeFormatter($selectedTimeZone, new \OC_L10N('lib', 'en')); + $newDateTimeFormatter = new \OC\DateTimeFormatter($selectedTimeZone, \OC::$server->getL10N('lib', 'en')); $this->overwriteService('DateTimeFormatter', $newDateTimeFormatter); $result = OC_Util::formatDate(1350129205, false);