Move away from legacy OC_L10Ntags/v11.0RC2
@@ -1,6 +1,6 @@ | |||
<?php | |||
/** @var array $_ */ | |||
/** @var OC_L10N $l */ | |||
/** @var \OCP\IL10N $l */ | |||
script('encryption', 'settings-admin'); | |||
script('core', 'multiselect'); | |||
style('encryption', 'settings-admin'); |
@@ -1,6 +1,6 @@ | |||
<?php | |||
/** @var array $_ */ | |||
/** @var OC_L10N $l */ | |||
/** @var \OCP\IL10N $l */ | |||
script('encryption', 'settings-personal'); | |||
script('core', 'multiselect'); | |||
?> |
@@ -1,5 +1,5 @@ | |||
<?php | |||
/** @var OC_L10N $l */ | |||
/** @var \OCP\IL10N $l */ | |||
/** @var array $_ */ | |||
script('federatedfilesharing', 'settings-admin'); | |||
?> |
@@ -1,5 +1,5 @@ | |||
<?php | |||
/** @var OC_L10N $l */ | |||
/** @var \OCP\IL10N $l */ | |||
/** @var array $_ */ | |||
script('federatedfilesharing', 'settings-personal'); | |||
style('federatedfilesharing', 'settings-personal'); |
@@ -2,7 +2,7 @@ | |||
/** @var array $_ */ | |||
use OCA\Federation\TrustedServers; | |||
/** @var OC_L10N $l */ | |||
/** @var \OCP\IL10N $l */ | |||
script('federation', 'settings-admin'); | |||
style('federation', 'settings-admin') | |||
?> |
@@ -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)); |
@@ -1,4 +1,4 @@ | |||
<?php /** @var $l OC_L10N */ ?> | |||
<?php /** @var $l \OCP\IL10N */ ?> | |||
<?php $_['appNavigation']->printPage(); ?> | |||
<div id="app-content"> | |||
<?php foreach ($_['appContents'] as $content) { ?> |
@@ -1,4 +1,4 @@ | |||
<?php /** @var $l OC_L10N */ ?> | |||
<?php /** @var $l \OCP\IL10N */ ?> | |||
<div id='notification'></div> | |||
<div id="emptycontent" class="hidden"></div> |
@@ -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], | |||
]); | |||
@@ -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' => '', | |||
], |
@@ -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(); |
@@ -1,6 +1,6 @@ | |||
<?php | |||
/** @var $_ array */ | |||
/** @var $l OC_L10N */ | |||
/** @var $l \OCP\IL10N */ | |||
style('files_sharing', 'authenticate'); | |||
script('files_sharing', 'authenticate'); | |||
?> |
@@ -1,4 +1,4 @@ | |||
<?php /** @var $l OC_L10N */ ?> | |||
<?php /** @var $l \OCP\IL10N */ ?> | |||
<div id='notification'></div> | |||
<div id="emptycontent" class="hidden"></div> |
@@ -1,5 +1,5 @@ | |||
<?php | |||
/** @var $l OC_L10N */ | |||
/** @var $l \OCP\IL10N */ | |||
/** @var $_ array */ | |||
?> | |||
@@ -1,4 +1,4 @@ | |||
<?php /** @var $l OC_L10N */ ?> | |||
<?php /** @var $l \OCP\IL10N */ ?> | |||
<div id="controls"> | |||
<div id="file_action_panel"></div> | |||
</div> |
@@ -1,6 +1,6 @@ | |||
<?php | |||
/** @var $_ array */ | |||
/** @var $l OC_L10N */ | |||
/** @var $l \OCP\IL10N */ | |||
/** @var $theme OC_Theme */ | |||
// @codeCoverageIgnoreStart | |||
if(!isset($_)) {//also provide standalone error page |
@@ -1,6 +1,6 @@ | |||
<?php | |||
/** @var array $_ */ | |||
/** @var OC_L10N $l */ | |||
/** @var \OCP\IL10N $l */ | |||
style('core', ['styles', 'header']); | |||
?> |
@@ -1,4 +1,4 @@ | |||
<?php /** @var $l OC_L10N */ ?> | |||
<?php /** @var $l \OCP\IL10N */ ?> | |||
<?php | |||
vendor_script('jsTimezoneDetect/jstz'); | |||
script('core', [ |
@@ -1,5 +1,5 @@ | |||
<?php | |||
/** @var $l OC_L10N */ | |||
/** @var $l \OCP\IL10N */ | |||
/** @var $_ array */ | |||
/* @var $error boolean */ | |||
$error = $_['error']; |
@@ -533,6 +533,9 @@ class DIContainer extends SimpleContainer implements IAppContainer { | |||
$this->query('OC\CapabilitiesManager')->registerCapability(function() use ($serviceName) { | |||
return $this->query($serviceName); | |||
}); | |||
} | |||
public function query($name) { | |||
return parent::query($name); | |||
} | |||
} |
@@ -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; |
@@ -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)) { |
@@ -1,343 +0,0 @@ | |||
<?php | |||
/** | |||
* @copyright Copyright (c) 2016, ownCloud, Inc. | |||
* | |||
* @author Bart Visscher <bartv@thisnet.nl> | |||
* @author Bernhard Posselt <dev@bernhard-posselt.com> | |||
* @author Jakob Sack <mail@jakobsack.de> | |||
* @author Jan-Christoph Borchardt <hey@jancborchardt.net> | |||
* @author Joas Schilling <coding@schilljs.com> | |||
* @author Lukas Reschke <lukas@statuscode.ch> | |||
* @author Morris Jobke <hey@morrisjobke.de> | |||
* @author Robin Appelman <robin@icewind.nl> | |||
* @author Robin McCorkell <robin@mccorkell.me.uk> | |||
* @author Thomas Müller <thomas.mueller@tmit.eu> | |||
* @author Thomas Tanghus <thomas@tanghus.net> | |||
* | |||
* @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 <http://www.gnu.org/licenses/> | |||
* | |||
*/ | |||
/** | |||
* 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); | |||
} | |||
} |
@@ -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; |
@@ -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"; |
@@ -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) { |
@@ -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 |
@@ -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), |
@@ -1,139 +0,0 @@ | |||
<?php | |||
/** | |||
* Copyright (c) 2013 Thomas Müller <thomas.mueller@tmit.eu> | |||
* 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()); | |||
} | |||
} |
@@ -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); |