diff options
Diffstat (limited to 'apps')
144 files changed, 2206 insertions, 337 deletions
diff --git a/apps/dav/appinfo/v1/caldav.php b/apps/dav/appinfo/v1/caldav.php index b10143208ec..a103f82a420 100644 --- a/apps/dav/appinfo/v1/caldav.php +++ b/apps/dav/appinfo/v1/caldav.php @@ -49,7 +49,7 @@ $db = \OC::$server->getDatabaseConnection(); $userManager = \OC::$server->getUserManager(); $random = \OC::$server->getSecureRandom(); $dispatcher = \OC::$server->getEventDispatcher(); -$calDavBackend = new CalDavBackend($db, $principalBackend, $userManager, $random, $dispatcher, true); +$calDavBackend = new CalDavBackend($db, $principalBackend, $userManager, \OC::$server->getGroupManager(), $random, $dispatcher, true); $debugging = \OC::$server->getConfig()->getSystemValue('debug', false); $sendInvitations = \OC::$server->getConfig()->getAppValue('dav', 'sendInvitations', 'yes') === 'yes'; diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php index 8dea6684742..74003f11c9b 100644 --- a/apps/dav/appinfo/v1/carddav.php +++ b/apps/dav/appinfo/v1/carddav.php @@ -48,7 +48,7 @@ $principalBackend = new Principal( 'principals/' ); $db = \OC::$server->getDatabaseConnection(); -$cardDavBackend = new CardDavBackend($db, $principalBackend, \OC::$server->getUserManager(), \OC::$server->getEventDispatcher()); +$cardDavBackend = new CardDavBackend($db, $principalBackend, \OC::$server->getUserManager(), \OC::$server->getGroupManager(), \OC::$server->getEventDispatcher()); $debugging = \OC::$server->getConfig()->getSystemValue('debug', false); diff --git a/apps/dav/appinfo/v2/remote.php b/apps/dav/appinfo/v2/remote.php index 3a00c8006ec..c1b29a4a177 100644 --- a/apps/dav/appinfo/v2/remote.php +++ b/apps/dav/appinfo/v2/remote.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/dav/lib/AppInfo/PluginManager.php b/apps/dav/lib/AppInfo/PluginManager.php new file mode 100644 index 00000000000..9cdf358c80e --- /dev/null +++ b/apps/dav/lib/AppInfo/PluginManager.php @@ -0,0 +1,170 @@ +<?php +/** + * @author Vincent Petry <pvince81@owncloud.com> + * + * @copyright Copyright (c) 2016, ownCloud GmbH. + * @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/> + * + */ +namespace OCA\DAV\AppInfo; + +use OCP\App\IAppManager; +use OC\ServerContainer; +use OCP\AppFramework\QueryException; + +/** + * Manager for DAV plugins from apps, used to register them + * to the Sabre server. + */ +class PluginManager { + + /** + * @var ServerContainer + */ + private $container; + + /** + * @var IAppManager + */ + private $appManager; + + /** + * App plugins + * + * @var array + */ + private $plugins = null; + + /** + * App collections + * + * @var array + */ + private $collections = null; + + /** + * Contstruct a PluginManager + * + * @param ServerContainer $container server container for resolving plugin classes + * @param IAppManager $appManager app manager to loading apps and their info + */ + public function __construct(ServerContainer $container, IAppManager $appManager) { + $this->container = $container; + $this->appManager = $appManager; + } + + /** + * Returns an array of app-registered plugins + * + * @return array + */ + public function getAppPlugins() { + if (null === $this->plugins) { + $this->populate(); + } + return $this->plugins; + } + + /** + * Returns an array of app-registered collections + * + * @return array + */ + public function getAppCollections() { + if (null === $this->collections) { + $this->populate(); + } + return $this->collections; + } + + /** + * Retrieve plugin and collection list and populate attributes + */ + private function populate() { + $this->plugins = []; + $this->collections = []; + foreach ($this->appManager->getInstalledApps() as $app) { + // load plugins and collections from info.xml + $info = $this->appManager->getAppInfo($app); + if (!isset($info['types']) || !in_array('dav', $info['types'], true)) { + continue; + } + // FIXME: switch to public API once available + // load app to make sure its classes are available + \OC_App::loadApp($app); + $this->loadSabrePluginsFromInfoXml($this->extractPluginList($info)); + $this->loadSabreCollectionsFromInfoXml($this->extractCollectionList($info)); + } + } + + private function extractPluginList(array $array) { + if (isset($array['sabre']) && is_array($array['sabre'])) { + if (isset($array['sabre']['plugins']) && is_array($array['sabre']['plugins'])) { + if (isset($array['sabre']['plugins']['plugin'])) { + $items = $array['sabre']['plugins']['plugin']; + if (!is_array($items)) { + $items = [$items]; + } + return $items; + } + } + } + return []; + } + + private function extractCollectionList(array $array) { + if (isset($array['sabre']) && is_array($array['sabre'])) { + if (isset($array['sabre']['collections']) && is_array($array['sabre']['collections'])) { + if (isset($array['sabre']['collections']['collection'])) { + $items = $array['sabre']['collections']['collection']; + if (!is_array($items)) { + $items = [$items]; + } + return $items; + } + } + } + return []; + } + + private function loadSabrePluginsFromInfoXml(array $plugins) { + foreach ($plugins as $plugin) { + try { + $this->plugins[] = $this->container->query($plugin); + } catch (QueryException $e) { + if (class_exists($plugin)) { + $this->plugins[] = new $plugin(); + } else { + throw new \Exception("Sabre plugin class '$plugin' is unknown and could not be loaded"); + } + } + } + } + + private function loadSabreCollectionsFromInfoXml(array $collections) { + foreach ($collections as $collection) { + try { + $this->collections[] = $this->container->query($collection); + } catch (QueryException $e) { + if (class_exists($collection)) { + $this->collections[] = new $collection(); + } else { + throw new \Exception("Sabre collection class '$collection' is unknown and could not be loaded"); + } + } + } + } + +} diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 83ef06f29e1..2c34f6d6d31 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -32,6 +32,7 @@ use OCP\DB\QueryBuilder\IQueryBuilder; use OCA\DAV\Connector\Sabre\Principal; use OCA\DAV\DAV\Sharing\Backend; use OCP\IDBConnection; +use OCP\IGroupManager; use OCP\IUser; use OCP\IUserManager; use OCP\Security\ISecureRandom; @@ -158,6 +159,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription * @param IDBConnection $db * @param Principal $principalBackend * @param IUserManager $userManager + * @param IGroupManager $groupManager * @param ISecureRandom $random * @param EventDispatcherInterface $dispatcher * @param bool $legacyEndpoint @@ -165,13 +167,14 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription public function __construct(IDBConnection $db, Principal $principalBackend, IUserManager $userManager, + IGroupManager $groupManager, ISecureRandom $random, EventDispatcherInterface $dispatcher, $legacyEndpoint = false) { $this->db = $db; $this->principalBackend = $principalBackend; $this->userManager = $userManager; - $this->sharingBackend = new Backend($this->db, $principalBackend, 'calendar'); + $this->sharingBackend = new Backend($this->db, $this->userManager, $groupManager, $principalBackend, 'calendar'); $this->random = $random; $this->dispatcher = $dispatcher; $this->legacyEndpoint = $legacyEndpoint; diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index 2e4acad6dfe..7c73a2cb941 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -33,6 +33,7 @@ use OCP\DB\QueryBuilder\IQueryBuilder; use OCA\DAV\DAV\Sharing\Backend; use OCA\DAV\DAV\Sharing\IShareable; use OCP\IDBConnection; +use OCP\IGroupManager; use OCP\IUser; use OCP\IUserManager; use PDO; @@ -88,17 +89,19 @@ class CardDavBackend implements BackendInterface, SyncSupport { * @param IDBConnection $db * @param Principal $principalBackend * @param IUserManager $userManager + * @param IGroupManager $groupManager * @param EventDispatcherInterface $dispatcher */ public function __construct(IDBConnection $db, Principal $principalBackend, IUserManager $userManager, + IGroupManager $groupManager, EventDispatcherInterface $dispatcher) { $this->db = $db; $this->principalBackend = $principalBackend; $this->userManager = $userManager; $this->dispatcher = $dispatcher; - $this->sharingBackend = new Backend($this->db, $principalBackend, 'addressbook'); + $this->sharingBackend = new Backend($this->db, $this->userManager, $groupManager, $principalBackend, 'addressbook'); } /** diff --git a/apps/dav/lib/Command/CreateCalendar.php b/apps/dav/lib/Command/CreateCalendar.php index 24990352fab..adc86faa190 100644 --- a/apps/dav/lib/Command/CreateCalendar.php +++ b/apps/dav/lib/Command/CreateCalendar.php @@ -79,7 +79,7 @@ class CreateCalendar extends Command { $dispatcher = \OC::$server->getEventDispatcher(); $name = $input->getArgument('name'); - $caldav = new CalDavBackend($this->dbConnection, $principalBackend, $this->userManager, $random, $dispatcher); + $caldav = new CalDavBackend($this->dbConnection, $principalBackend, $this->userManager, $this->groupManager, $random, $dispatcher); $caldav->createCalendar("principals/users/$user", $name, []); } } diff --git a/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php b/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php index ca2195fc65a..ba7ea13c548 100644 --- a/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php +++ b/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php @@ -27,28 +27,34 @@ namespace OCA\DAV\Connector\Sabre; +use OCA\DAV\Connector\Sabre\Exception\PasswordLoginForbidden; +use OCP\Files\StorageNotAvailableException; use OCP\ILogger; +use Sabre\DAV\Exception\Forbidden; +use Sabre\DAV\Exception\NotAuthenticated; +use Sabre\DAV\Exception\NotFound; +use Sabre\DAV\Exception\PreconditionFailed; use Sabre\DAV\Exception\ServiceUnavailable; class ExceptionLoggerPlugin extends \Sabre\DAV\ServerPlugin { protected $nonFatalExceptions = [ - 'Sabre\DAV\Exception\NotAuthenticated' => true, + NotAuthenticated::class => true, // If tokenauth can throw this exception (which is basically as // NotAuthenticated. So not fatal. - 'OCA\DAV\Connector\Sabre\Exception\PasswordLoginForbidden' => true, + PasswordLoginForbidden::class => true, // the sync client uses this to find out whether files exist, // so it is not always an error, log it as debug - 'Sabre\DAV\Exception\NotFound' => true, + NotFound::class => true, // this one mostly happens when the same file is uploaded at // exactly the same time from two clients, only one client // wins, the second one gets "Precondition failed" - 'Sabre\DAV\Exception\PreconditionFailed' => true, + PreconditionFailed::class => true, // forbidden can be expected when trying to upload to // read-only folders for example - 'Sabre\DAV\Exception\Forbidden' => true, + Forbidden::class => true, // Happens when an external storage or federated share is temporarily // not available - 'Sabre\DAV\Exception\StorageNotAvailableException' => true, + StorageNotAvailableException::class => true, ]; /** @var string */ diff --git a/apps/dav/lib/DAV/Sharing/Backend.php b/apps/dav/lib/DAV/Sharing/Backend.php index 6cc5e3b6f50..aa4b137f2b0 100644 --- a/apps/dav/lib/DAV/Sharing/Backend.php +++ b/apps/dav/lib/DAV/Sharing/Backend.php @@ -26,11 +26,17 @@ namespace OCA\DAV\DAV\Sharing; use OCA\DAV\Connector\Sabre\Principal; use OCP\IDBConnection; +use OCP\IGroupManager; +use OCP\IUserManager; class Backend { /** @var IDBConnection */ private $db; + /** @var IUserManager */ + private $userManager; + /** @var IGroupManager */ + private $groupManager; /** @var Principal */ private $principalBackend; /** @var string */ @@ -42,11 +48,15 @@ class Backend { /** * @param IDBConnection $db + * @param IUserManager $userManager + * @param IGroupManager $groupManager * @param Principal $principalBackend * @param string $resourceType */ - public function __construct(IDBConnection $db, Principal $principalBackend, $resourceType) { + public function __construct(IDBConnection $db, IUserManager $userManager, IGroupManager $groupManager, Principal $principalBackend, $resourceType) { $this->db = $db; + $this->userManager = $userManager; + $this->groupManager = $groupManager; $this->principalBackend = $principalBackend; $this->resourceType = $resourceType; } @@ -81,6 +91,18 @@ class Backend { return; } + $principal = explode('/', $parts[1], 3); + if (count($principal) !== 3 || $principal[0] !== 'principals' || !in_array($principal[1], ['users', 'groups'], true)) { + // Invalid principal + return; + } + + if (($principal[1] === 'users' && !$this->userManager->userExists($principal[2])) || + ($principal[1] === 'groups' && !$this->groupManager->groupExists($principal[2]))) { + // User or group does not exist + return; + } + // remove the share if it already exists $this->unshare($shareable, $element['href']); $access = self::ACCESS_READ; diff --git a/apps/dav/lib/RootCollection.php b/apps/dav/lib/RootCollection.php index a243ec6d00a..e4ba1f2c02a 100644 --- a/apps/dav/lib/RootCollection.php +++ b/apps/dav/lib/RootCollection.php @@ -41,15 +41,14 @@ class RootCollection extends SimpleCollection { $config = \OC::$server->getConfig(); $random = \OC::$server->getSecureRandom(); $userManager = \OC::$server->getUserManager(); + $groupManager = \OC::$server->getGroupManager(); $db = \OC::$server->getDatabaseConnection(); $dispatcher = \OC::$server->getEventDispatcher(); $userPrincipalBackend = new Principal( $userManager, - \OC::$server->getGroupManager() - ); - $groupPrincipalBackend = new GroupPrincipalBackend( - \OC::$server->getGroupManager() + $groupManager ); + $groupPrincipalBackend = new GroupPrincipalBackend($groupManager); // as soon as debug mode is enabled we allow listing of principals $disableListing = !$config->getSystemValue('debug', false); @@ -62,7 +61,7 @@ class RootCollection extends SimpleCollection { $systemPrincipals->disableListing = $disableListing; $filesCollection = new Files\RootCollection($userPrincipalBackend, 'principals/users'); $filesCollection->disableListing = $disableListing; - $caldavBackend = new CalDavBackend($db, $userPrincipalBackend, $userManager, $random, $dispatcher); + $caldavBackend = new CalDavBackend($db, $userPrincipalBackend, $userManager, $groupManager, $random, $dispatcher); $calendarRoot = new CalendarRoot($userPrincipalBackend, $caldavBackend, 'principals/users'); $calendarRoot->disableListing = $disableListing; $publicCalendarRoot = new PublicCalendarRoot($caldavBackend); @@ -71,28 +70,28 @@ class RootCollection extends SimpleCollection { $systemTagCollection = new SystemTag\SystemTagsByIdCollection( \OC::$server->getSystemTagManager(), \OC::$server->getUserSession(), - \OC::$server->getGroupManager() + $groupManager ); $systemTagRelationsCollection = new SystemTag\SystemTagsRelationsCollection( \OC::$server->getSystemTagManager(), \OC::$server->getSystemTagObjectMapper(), \OC::$server->getUserSession(), - \OC::$server->getGroupManager(), + $groupManager, \OC::$server->getEventDispatcher() ); $commentsCollection = new Comments\RootCollection( \OC::$server->getCommentsManager(), - \OC::$server->getUserManager(), + $userManager, \OC::$server->getUserSession(), \OC::$server->getEventDispatcher(), \OC::$server->getLogger() ); - $usersCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, \OC::$server->getUserManager(), $dispatcher); + $usersCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, $userManager, $groupManager, $dispatcher); $usersAddressBookRoot = new AddressBookRoot($userPrincipalBackend, $usersCardDavBackend, 'principals/users'); $usersAddressBookRoot->disableListing = $disableListing; - $systemCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, \OC::$server->getUserManager(), $dispatcher); + $systemCardDavBackend = new CardDavBackend($db, $userPrincipalBackend, $userManager, $groupManager, $dispatcher); $systemAddressBookRoot = new AddressBookRoot(new SystemPrincipalBackend(), $systemCardDavBackend, 'principals/system'); $systemAddressBookRoot->disableListing = $disableListing; diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php index bfb67e2e5fe..719e4974755 100644 --- a/apps/dav/lib/Server.php +++ b/apps/dav/lib/Server.php @@ -55,8 +55,8 @@ use OCP\SabrePluginEvent; use Sabre\CardDAV\VCFExportPlugin; use Sabre\DAV\Auth\Plugin; use OCA\DAV\Connector\Sabre\TagsPlugin; -use Sabre\HTTP\Auth\Bearer; use SearchDAV\DAV\SearchPlugin; +use OCA\DAV\AppInfo\PluginManager; class Server { @@ -187,7 +187,7 @@ class Server { } // wait with registering these until auth is handled and the filesystem is setup - $this->server->on('beforeMethod', function () { + $this->server->on('beforeMethod', function () use ($root) { // custom properties plugin must be the last one $userSession = \OC::$server->getUserSession(); $user = $userSession->getUser(); @@ -255,6 +255,18 @@ class Server { ))); } } + + // register plugins from apps + $pluginManager = new PluginManager( + \OC::$server, + \OC::$server->getAppManager() + ); + foreach ($pluginManager->getAppPlugins() as $appPlugin) { + $this->server->addPlugin($appPlugin); + } + foreach ($pluginManager->getAppCollections() as $appCollection) { + $root->addChild($appCollection); + } }); } diff --git a/apps/dav/tests/unit/AppInfo/PluginManagerTest.php b/apps/dav/tests/unit/AppInfo/PluginManagerTest.php new file mode 100644 index 00000000000..5776b939123 --- /dev/null +++ b/apps/dav/tests/unit/AppInfo/PluginManagerTest.php @@ -0,0 +1,104 @@ +<?php +/** + * @author Vincent Petry <pvince81@owncloud.com> + * + * @copyright Copyright (c) 2016, ownCloud GmbH. + * @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/> + * + */ + +namespace OCA\DAV\Tests\unit\AppInfo; + +use Test\TestCase; +use OCP\App\IAppManager; +use OC\ServerContainer; +use OCA\DAV\AppInfo\PluginManager; + +/** + * Class PluginManagerTest + * + * @package OCA\DAV\Tests\Unit\AppInfo + */ +class PluginManagerTest extends TestCase { + public function test() { + $server = $this->createMock(ServerContainer::class); + + + $appManager = $this->createMock(IAppManager::class); + $appManager->method('getInstalledApps') + ->willReturn(['adavapp', 'adavapp2']); + + $appInfo1 = [ + 'types' => ['dav'], + 'sabre' => [ + 'plugins' => [ + 'plugin' => [ + '\OCA\DAV\ADavApp\PluginOne', + '\OCA\DAV\ADavApp\PluginTwo', + ], + ], + 'collections' => [ + 'collection' => [ + '\OCA\DAV\ADavApp\CollectionOne', + '\OCA\DAV\ADavApp\CollectionTwo', + ] + ], + ], + ]; + $appInfo2 = [ + 'types' => ['logging', 'dav'], + 'sabre' => [ + 'plugins' => [ + 'plugin' => '\OCA\DAV\ADavApp2\PluginOne', + ], + 'collections' => [ + 'collection' => '\OCA\DAV\ADavApp2\CollectionOne', + ], + ], + ]; + + $appManager->method('getAppInfo') + ->will($this->returnValueMap([ + ['adavapp', $appInfo1], + ['adavapp2', $appInfo2], + ])); + + $pluginManager = new PluginManager($server, $appManager); + + $server->method('query') + ->will($this->returnValueMap([ + ['\OCA\DAV\ADavApp\PluginOne', 'dummyplugin1'], + ['\OCA\DAV\ADavApp\PluginTwo', 'dummyplugin2'], + ['\OCA\DAV\ADavApp\CollectionOne', 'dummycollection1'], + ['\OCA\DAV\ADavApp\CollectionTwo', 'dummycollection2'], + ['\OCA\DAV\ADavApp2\PluginOne', 'dummy2plugin1'], + ['\OCA\DAV\ADavApp2\CollectionOne', 'dummy2collection1'], + ])); + + $expectedPlugins = [ + 'dummyplugin1', + 'dummyplugin2', + 'dummy2plugin1', + ]; + $expectedCollections = [ + 'dummycollection1', + 'dummycollection2', + 'dummy2collection1', + ]; + + $this->assertEquals($expectedPlugins, $pluginManager->getAppPlugins()); + $this->assertEquals($expectedCollections, $pluginManager->getAppCollections()); + } +} diff --git a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php index a7bf4432c64..3f3b744e5ab 100644 --- a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php @@ -24,6 +24,7 @@ namespace OCA\DAV\Tests\unit\CalDAV; use OCA\DAV\CalDAV\CalDavBackend; use OCA\DAV\Connector\Sabre\Principal; +use OCP\IGroupManager; use OCP\IUserManager; use OCP\Security\ISecureRandom; use Sabre\CalDAV\Xml\Property\SupportedCalendarComponentSet; @@ -37,7 +38,7 @@ use Test\TestCase; * * @package OCA\DAV\Tests\unit\CalDAV */ -abstract class AbstractCalDavBackendTest extends TestCase { +abstract class AbstractCalDavBackend extends TestCase { /** @var CalDavBackend */ protected $backend; @@ -46,6 +47,8 @@ abstract class AbstractCalDavBackendTest extends TestCase { protected $principal; /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ protected $userManager; + /** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $groupManager; /** @var EventDispatcherInterface|\PHPUnit_Framework_MockObject_MockObject */ protected $dispatcher; @@ -61,6 +64,7 @@ abstract class AbstractCalDavBackendTest extends TestCase { parent::setUp(); $this->userManager = $this->createMock(IUserManager::class); + $this->groupManager = $this->createMock(IGroupManager::class); $this->dispatcher = $this->createMock(EventDispatcherInterface::class); $this->principal = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Principal') ->disableOriginalConstructor() @@ -77,7 +81,7 @@ abstract class AbstractCalDavBackendTest extends TestCase { $db = \OC::$server->getDatabaseConnection(); $this->random = \OC::$server->getSecureRandom(); - $this->backend = new CalDavBackend($db, $this->principal, $this->userManager, $this->random, $this->dispatcher); + $this->backend = new CalDavBackend($db, $this->principal, $this->userManager, $this->groupManager, $this->random, $this->dispatcher); $this->cleanUpBackend(); } diff --git a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php index fa298282d7e..50c8b39484e 100644 --- a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php @@ -42,7 +42,7 @@ use Sabre\DAVACL\IACL; * * @package OCA\DAV\Tests\unit\CalDAV */ -class CalDavBackendTest extends AbstractCalDavBackendTest { +class CalDavBackendTest extends AbstractCalDavBackend { public function testCalendarOperations() { @@ -130,6 +130,14 @@ class CalDavBackendTest extends AbstractCalDavBackendTest { return vsprintf($text, $parameters); })); + $this->userManager->expects($this->any()) + ->method('userExists') + ->willReturn(true); + + $this->groupManager->expects($this->any()) + ->method('groupExists') + ->willReturn(true); + $calendarId = $this->createTestCalendar(); $calendars = $this->backend->getCalendarsForUser(self::UNIT_TEST_USER); $this->assertCount(1, $calendars); diff --git a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php index eb9f9cd10d7..ec767f3dbd8 100644 --- a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php +++ b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php @@ -5,6 +5,7 @@ namespace OCA\DAV\Tests\unit\CalDAV; use OCA\DAV\CalDAV\Calendar; use OCA\DAV\CalDAV\PublicCalendar; use OCA\DAV\Connector\Sabre\Principal; +use OCP\IGroupManager; use OCP\IL10N; use OCA\DAV\CalDAV\CalDavBackend; use OCA\DAV\CalDAV\PublicCalendarRoot; @@ -33,6 +34,8 @@ class PublicCalendarRootTest extends TestCase { private $principal; /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ protected $userManager; + /** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ + protected $groupManager; /** @var ISecureRandom */ private $random; @@ -43,6 +46,7 @@ class PublicCalendarRootTest extends TestCase { $db = \OC::$server->getDatabaseConnection(); $this->principal = $this->createMock('OCA\DAV\Connector\Sabre\Principal'); $this->userManager = $this->createMock(IUserManager::class); + $this->groupManager = $this->createMock(IGroupManager::class); $this->random = \OC::$server->getSecureRandom(); $dispatcher = $this->createMock(EventDispatcherInterface::class); @@ -54,6 +58,7 @@ class PublicCalendarRootTest extends TestCase { $db, $this->principal, $this->userManager, + $this->groupManager, $this->random, $dispatcher ); diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php index 8ca7e8a33b1..992445392d5 100644 --- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php +++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php @@ -33,6 +33,7 @@ use OCA\DAV\CardDAV\CardDavBackend; use OCA\DAV\Connector\Sabre\Principal; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IDBConnection; +use OCP\IGroupManager; use OCP\IL10N; use OCP\IUserManager; use Sabre\DAV\PropPatch; @@ -60,6 +61,9 @@ class CardDavBackendTest extends TestCase { /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */ private $userManager; + /** @var IGroupManager|\PHPUnit_Framework_MockObject_MockObject */ + private $groupManager; + /** @var EventDispatcherInterface|\PHPUnit_Framework_MockObject_MockObject */ private $dispatcher; @@ -80,6 +84,7 @@ class CardDavBackendTest extends TestCase { parent::setUp(); $this->userManager = $this->createMock(IUserManager::class); + $this->groupManager = $this->createMock(IGroupManager::class); $this->principal = $this->getMockBuilder('OCA\DAV\Connector\Sabre\Principal') ->disableOriginalConstructor() ->setMethods(['getPrincipalByPath', 'getGroupMembership']) @@ -96,7 +101,7 @@ class CardDavBackendTest extends TestCase { $this->db = \OC::$server->getDatabaseConnection(); - $this->backend = new CardDavBackend($this->db, $this->principal, $this->userManager, $this->dispatcher); + $this->backend = new CardDavBackend($this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher); // start every test with a empty cards_properties and cards table $query = $this->db->getQueryBuilder(); $query->delete('cards_properties')->execute(); @@ -154,6 +159,14 @@ class CardDavBackendTest extends TestCase { public function testAddressBookSharing() { + $this->userManager->expects($this->any()) + ->method('userExists') + ->willReturn(true); + + $this->groupManager->expects($this->any()) + ->method('groupExists') + ->willReturn(true); + $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []); $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER); $this->assertEquals(1, count($books)); @@ -180,7 +193,7 @@ class CardDavBackendTest extends TestCase { /** @var CardDavBackend | \PHPUnit_Framework_MockObject_MockObject $backend */ $backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher]) ->setMethods(['updateProperties', 'purgeProperties'])->getMock(); // create a new address book @@ -253,7 +266,7 @@ class CardDavBackendTest extends TestCase { public function testMultiCard() { $this->backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher]) ->setMethods(['updateProperties'])->getMock(); // create a new address book @@ -299,7 +312,7 @@ class CardDavBackendTest extends TestCase { public function testDeleteWithoutCard() { $this->backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher]) ->setMethods([ 'getCardId', 'addChange', @@ -339,7 +352,7 @@ class CardDavBackendTest extends TestCase { public function testSyncSupport() { $this->backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher]) ->setMethods(['updateProperties'])->getMock(); // create a new address book @@ -362,32 +375,41 @@ class CardDavBackendTest extends TestCase { } public function testSharing() { + + $this->userManager->expects($this->any()) + ->method('userExists') + ->willReturn(true); + + $this->groupManager->expects($this->any()) + ->method('groupExists') + ->willReturn(true); + $this->backend->createAddressBook(self::UNIT_TEST_USER, 'Example', []); $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER); $this->assertEquals(1, count($books)); $l = $this->createMock(IL10N::class); $exampleBook = new AddressBook($this->backend, $books[0], $l); - $this->backend->updateShares($exampleBook, [['href' => 'principal:principals/best-friend']], []); + $this->backend->updateShares($exampleBook, [['href' => 'principal:' . self::UNIT_TEST_USER1]], []); $shares = $this->backend->getShares($exampleBook->getResourceId()); $this->assertEquals(1, count($shares)); // adding the same sharee again has no effect - $this->backend->updateShares($exampleBook, [['href' => 'principal:principals/best-friend']], []); + $this->backend->updateShares($exampleBook, [['href' => 'principal:' . self::UNIT_TEST_USER1]], []); $shares = $this->backend->getShares($exampleBook->getResourceId()); $this->assertEquals(1, count($shares)); - $books = $this->backend->getAddressBooksForUser('principals/best-friend'); + $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER1); $this->assertEquals(1, count($books)); - $this->backend->updateShares($exampleBook, [], ['principal:principals/best-friend']); + $this->backend->updateShares($exampleBook, [], ['principal:' . self::UNIT_TEST_USER1]); $shares = $this->backend->getShares($exampleBook->getResourceId()); $this->assertEquals(0, count($shares)); - $books = $this->backend->getAddressBooksForUser('principals/best-friend'); + $books = $this->backend->getAddressBooksForUser(self::UNIT_TEST_USER1); $this->assertEquals(0, count($books)); } @@ -398,7 +420,7 @@ class CardDavBackendTest extends TestCase { $cardId = 2; $backend = $this->getMockBuilder(CardDavBackend::class) - ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->dispatcher]) + ->setConstructorArgs([$this->db, $this->principal, $this->userManager, $this->groupManager, $this->dispatcher]) ->setMethods(['getCardId'])->getMock(); $backend->expects($this->any())->method('getCardId')->willReturn($cardId); diff --git a/apps/dav/tests/unit/ServerTest.php b/apps/dav/tests/unit/ServerTest.php index 19e75c7b24e..1b430b0f198 100644 --- a/apps/dav/tests/unit/ServerTest.php +++ b/apps/dav/tests/unit/ServerTest.php @@ -26,6 +26,7 @@ namespace OCA\DAV\Tests\unit; use OCA\DAV\Server; use OCP\IRequest; +use OCA\DAV\AppInfo\PluginManager; /** * Class ServerTest @@ -38,8 +39,7 @@ class ServerTest extends \Test\TestCase { public function test() { /** @var IRequest $r */ - $r = $this->getMockBuilder('\OCP\IRequest') - ->disableOriginalConstructor()->getMock(); + $r = $this->createMock(IRequest::class); $s = new Server($r, '/'); $this->assertInstanceOf('OCA\DAV\Server', $s); } diff --git a/apps/federatedfilesharing/l10n/ru.js b/apps/federatedfilesharing/l10n/ru.js index 24931800c9b..16443874c29 100644 --- a/apps/federatedfilesharing/l10n/ru.js +++ b/apps/federatedfilesharing/l10n/ru.js @@ -27,12 +27,12 @@ OC.L10N.register( "Sharing %s failed, because this item is already shared with %s" : "Не удалось поделиться «%s», пользователю%s уже предоставлен доступ к этому элементу", "Not allowed to create a federated share with the same user" : "Не допускается создание федеративного общего ресурса с тем же пользователем", "File is already shared with %s" : "Доступ к файлу уже предоставлен %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Не удалось поделиться «%s», не удалось найти %s, возможно, сервер не доступен или использует само-подписанный сертификат.", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Не удалось поделиться «%s», не удалось найти %s, возможно, сервер недоступен или использует самоподписанный сертификат.", "Could not find share" : "Не удалось найти общий ресурс", "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Вы получили «%3$s» в качестве удалённого ресурса из %1$s (от имени %2$s)", "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Вы получили «{share}» в качестве удалённого ресурса от {user} (от имени {behalf})", "You received \"%3$s\" as a remote share from %1$s" : "Вы получили «%3$s» в качестве удалённого ресурса из %1$s", - "You received {share} as a remote share from {user}" : "Вы получили «{share}» в качестве удалённого ресурса от {user}", + "You received {share} as a remote share from {user}" : "Вы получили {share} в качестве удалённого ресурса от {user}", "Accept" : "Принять", "Decline" : "Отклонить", "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Поделитесь со мной через мой #Nextcloud ID в федерации облачных хранилищ, смотрите %s", @@ -44,15 +44,15 @@ OC.L10N.register( "Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов", "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов", "Search global and public address book for users" : "Искать пользователей в глобальной и открытой адресной книге", - "Allow users to publish their data to a global and public address book" : "Резрешить пользователям публиковать свои данные в глобальной и общедосупной адресной книге", + "Allow users to publish their data to a global and public address book" : "Разрешить пользователям публиковать свои данные в глобальной и общедоступной адресной книге", "Federated Cloud" : "Федерация облачных хранилищ", "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Можно поделиться с любым пользователем Nextcloud, ownCloud или Pydio! Просто введите его идентификатор федеративного облачного хранилища в диалоге предоставления общего доступа. Идентификатор указывается в виде «person@cloud.example.com».", "Your Federated Cloud ID:" : "Ваш ID в федерации облачных хранилищ:", - "Share it so your friends can share files with you:" : "Сообщите его друзьям, что бы они могли поделиться с вами файлами:", + "Share it so your friends can share files with you:" : "Сообщите его друзьям, чтобы они могли поделиться с вами файлами:", "Add to your website" : "Добавить к себе на сайт", "Share with me via Nextcloud" : "Поделитесь со мной через Nextcloud", "HTML Code:" : "HTML код:", - "Search global and public address book for users and let local users publish their data" : "Поиск пользователей в глобальной и общедоступной адресной книге и резрешение публикации своих данных локальным пользователям ", + "Search global and public address book for users and let local users publish their data" : "Поиск пользователей в глобальной и общедоступной адресной книге и разрешение публикации своих данных локальным пользователям ", "Share it:" : "Поделиться:" }, "nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"); diff --git a/apps/federatedfilesharing/l10n/ru.json b/apps/federatedfilesharing/l10n/ru.json index f4bf96db775..b54c38a5339 100644 --- a/apps/federatedfilesharing/l10n/ru.json +++ b/apps/federatedfilesharing/l10n/ru.json @@ -25,12 +25,12 @@ "Sharing %s failed, because this item is already shared with %s" : "Не удалось поделиться «%s», пользователю%s уже предоставлен доступ к этому элементу", "Not allowed to create a federated share with the same user" : "Не допускается создание федеративного общего ресурса с тем же пользователем", "File is already shared with %s" : "Доступ к файлу уже предоставлен %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Не удалось поделиться «%s», не удалось найти %s, возможно, сервер не доступен или использует само-подписанный сертификат.", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Не удалось поделиться «%s», не удалось найти %s, возможно, сервер недоступен или использует самоподписанный сертификат.", "Could not find share" : "Не удалось найти общий ресурс", "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Вы получили «%3$s» в качестве удалённого ресурса из %1$s (от имени %2$s)", "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Вы получили «{share}» в качестве удалённого ресурса от {user} (от имени {behalf})", "You received \"%3$s\" as a remote share from %1$s" : "Вы получили «%3$s» в качестве удалённого ресурса из %1$s", - "You received {share} as a remote share from {user}" : "Вы получили «{share}» в качестве удалённого ресурса от {user}", + "You received {share} as a remote share from {user}" : "Вы получили {share} в качестве удалённого ресурса от {user}", "Accept" : "Принять", "Decline" : "Отклонить", "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Поделитесь со мной через мой #Nextcloud ID в федерации облачных хранилищ, смотрите %s", @@ -42,15 +42,15 @@ "Allow users on this server to send shares to other servers" : "Разрешить пользователям делиться с пользователями других серверов", "Allow users on this server to receive shares from other servers" : "Разрешить пользователям использовать общие ресурсы с других серверов", "Search global and public address book for users" : "Искать пользователей в глобальной и открытой адресной книге", - "Allow users to publish their data to a global and public address book" : "Резрешить пользователям публиковать свои данные в глобальной и общедосупной адресной книге", + "Allow users to publish their data to a global and public address book" : "Разрешить пользователям публиковать свои данные в глобальной и общедоступной адресной книге", "Federated Cloud" : "Федерация облачных хранилищ", "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Можно поделиться с любым пользователем Nextcloud, ownCloud или Pydio! Просто введите его идентификатор федеративного облачного хранилища в диалоге предоставления общего доступа. Идентификатор указывается в виде «person@cloud.example.com».", "Your Federated Cloud ID:" : "Ваш ID в федерации облачных хранилищ:", - "Share it so your friends can share files with you:" : "Сообщите его друзьям, что бы они могли поделиться с вами файлами:", + "Share it so your friends can share files with you:" : "Сообщите его друзьям, чтобы они могли поделиться с вами файлами:", "Add to your website" : "Добавить к себе на сайт", "Share with me via Nextcloud" : "Поделитесь со мной через Nextcloud", "HTML Code:" : "HTML код:", - "Search global and public address book for users and let local users publish their data" : "Поиск пользователей в глобальной и общедоступной адресной книге и резрешение публикации своих данных локальным пользователям ", + "Search global and public address book for users and let local users publish their data" : "Поиск пользователей в глобальной и общедоступной адресной книге и разрешение публикации своих данных локальным пользователям ", "Share it:" : "Поделиться:" },"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);" }
\ No newline at end of file diff --git a/apps/federatedfilesharing/l10n/sr.js b/apps/federatedfilesharing/l10n/sr.js index 0cbb6abf78f..be041737963 100644 --- a/apps/federatedfilesharing/l10n/sr.js +++ b/apps/federatedfilesharing/l10n/sr.js @@ -2,17 +2,57 @@ OC.L10N.register( "federatedfilesharing", { "Federated sharing" : "Здружено дељење", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Да ли желите да додате удаљено дељење {name} од {owner}@{remote}?", + "Remote share" : "Удаљено дељење", + "Remote share password" : "Лозинка удаљеног дељења", + "Cancel" : "Одустани", + "Add remote share" : "Додај удаљено дељење", + "Copy" : "Копирај", + "Copied!" : "Копирано!", + "Not supported!" : "Није подржано!", + "Press ⌘-C to copy." : "Притисните ⌘-C за копирање.", + "Press Ctrl-C to copy." : "Притисните Ctrl-C за копирање.", "Invalid Federated Cloud ID" : "Неисправан ИД Здруженог облака", + "Server to server sharing is not enabled on this server" : "Сервер-сервер дељење није подржано на овом серверу", + "Couldn't establish a federated share." : "Не могу да успоставим здружено дељење.", + "Couldn't establish a federated share, maybe the password was wrong." : "Не могу да успоставим здружено дељење, можда лозинка не ваља.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Послат захтев за здружено дељење, добићете позивницу. Проверавајте обавештења.", + "The mountpoint name contains invalid characters." : "Име тачке монтирања садржи неисправне карактере.", + "Not allowed to create a federated share with the owner." : "Није дозвољено да направите здружено дељење са власником.", + "Invalid or untrusted SSL certificate" : "Неисправан или SSL сертификат без поверења", + "Could not authenticate to remote share, password might be wrong" : "Удаљено дељење не може да провери Ваш идентитет, можда лозинка није исправна", + "Storage not valid" : "Складиште није исправно", + "Federated share added" : "Здружено дељење додато", + "Couldn't add remote share" : "Не могу да додам удаљено дељење", "Sharing %s failed, because this item is already shared with %s" : "Дељење %s није успело зато што се ова ставка већ дели са %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Дељење %s није успело, није могуће пронаћи %s, можда сервер тренутно није доступан.", + "Not allowed to create a federated share with the same user" : "Није дозвољено да се направи здружено дељење са истим корисником", + "File is already shared with %s" : "Фајл је већ дељен са %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Дељење %s није успело, не могу да нађем %s, можда сервер тренутно није доступан или користи самопотписани сертификат.", + "Could not find share" : "Не могу да пронађем дељење", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Примили сте \"%3$s\" као удаљено дељење од %1$s (у име %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Примили сте {share} као удаљено дељење од {user} (у име {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Примили сте \"%3$s\" као удаљено дељење од %1$s", + "You received {share} as a remote share from {user}" : "Примили сте {share} као удаљено дељење од {user}", "Accept" : "Прихвати", "Decline" : "Одбиј", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Дели са мном преко мог #Некстклауд Здруженог облака, види %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Дели са мном преко мог #Некстклауд Здруженог облака", + "Sharing" : "Дељење", "Federated Cloud Sharing" : "Здружено дељење у облаку", "Open documentation" : "Отвори документацију", + "Adjust how people can share between servers." : "Подеси како људи деле фајлове између сервера.", "Allow users on this server to send shares to other servers" : "Дозвољава корисницима овог сервера да шаљу дељења на друге сервере", "Allow users on this server to receive shares from other servers" : "Дозвољава корисницима овог сервера да примају дељења са других сервера", + "Search global and public address book for users" : "Тражи кориснике и у глобалним и јавним именицима", + "Allow users to publish their data to a global and public address book" : "Дозволи корисницима да објаве своје податке у јавне и глобалне именике", "Federated Cloud" : "Здружени облак", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Можете делите ствари са било ким ко користи Некстклауд, Оунклауд или Пидио. Само унесите њихов ИД Здруженог Облака у дијалог за дељење. ИД изгледа нешто попут person@cloud.example.com", "Your Federated Cloud ID:" : "ИД вашег здруженог облака:", - "HTML Code:" : "ХТМЛ кôд:" + "Share it so your friends can share files with you:" : "Поделите да би Ваши пријатељи могли да деле са Вама:", + "Add to your website" : "Додај на свој веб сајт", + "Share with me via Nextcloud" : "Дели са мном преко Некстклауда", + "HTML Code:" : "ХТМЛ кôд:", + "Search global and public address book for users and let local users publish their data" : "Претражи кориснике у глобалним и јавним именицима и дозволи да локални корисници објављују њихове податке", + "Share it:" : "Дели:" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/federatedfilesharing/l10n/sr.json b/apps/federatedfilesharing/l10n/sr.json index c5355e6ac6e..de872b01541 100644 --- a/apps/federatedfilesharing/l10n/sr.json +++ b/apps/federatedfilesharing/l10n/sr.json @@ -1,16 +1,56 @@ { "translations": { "Federated sharing" : "Здружено дељење", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Да ли желите да додате удаљено дељење {name} од {owner}@{remote}?", + "Remote share" : "Удаљено дељење", + "Remote share password" : "Лозинка удаљеног дељења", + "Cancel" : "Одустани", + "Add remote share" : "Додај удаљено дељење", + "Copy" : "Копирај", + "Copied!" : "Копирано!", + "Not supported!" : "Није подржано!", + "Press ⌘-C to copy." : "Притисните ⌘-C за копирање.", + "Press Ctrl-C to copy." : "Притисните Ctrl-C за копирање.", "Invalid Federated Cloud ID" : "Неисправан ИД Здруженог облака", + "Server to server sharing is not enabled on this server" : "Сервер-сервер дељење није подржано на овом серверу", + "Couldn't establish a federated share." : "Не могу да успоставим здружено дељење.", + "Couldn't establish a federated share, maybe the password was wrong." : "Не могу да успоставим здружено дељење, можда лозинка не ваља.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Послат захтев за здружено дељење, добићете позивницу. Проверавајте обавештења.", + "The mountpoint name contains invalid characters." : "Име тачке монтирања садржи неисправне карактере.", + "Not allowed to create a federated share with the owner." : "Није дозвољено да направите здружено дељење са власником.", + "Invalid or untrusted SSL certificate" : "Неисправан или SSL сертификат без поверења", + "Could not authenticate to remote share, password might be wrong" : "Удаљено дељење не може да провери Ваш идентитет, можда лозинка није исправна", + "Storage not valid" : "Складиште није исправно", + "Federated share added" : "Здружено дељење додато", + "Couldn't add remote share" : "Не могу да додам удаљено дељење", "Sharing %s failed, because this item is already shared with %s" : "Дељење %s није успело зато што се ова ставка већ дели са %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Дељење %s није успело, није могуће пронаћи %s, можда сервер тренутно није доступан.", + "Not allowed to create a federated share with the same user" : "Није дозвољено да се направи здружено дељење са истим корисником", + "File is already shared with %s" : "Фајл је већ дељен са %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Дељење %s није успело, не могу да нађем %s, можда сервер тренутно није доступан или користи самопотписани сертификат.", + "Could not find share" : "Не могу да пронађем дељење", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Примили сте \"%3$s\" као удаљено дељење од %1$s (у име %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Примили сте {share} као удаљено дељење од {user} (у име {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Примили сте \"%3$s\" као удаљено дељење од %1$s", + "You received {share} as a remote share from {user}" : "Примили сте {share} као удаљено дељење од {user}", "Accept" : "Прихвати", "Decline" : "Одбиј", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Дели са мном преко мог #Некстклауд Здруженог облака, види %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Дели са мном преко мог #Некстклауд Здруженог облака", + "Sharing" : "Дељење", "Federated Cloud Sharing" : "Здружено дељење у облаку", "Open documentation" : "Отвори документацију", + "Adjust how people can share between servers." : "Подеси како људи деле фајлове између сервера.", "Allow users on this server to send shares to other servers" : "Дозвољава корисницима овог сервера да шаљу дељења на друге сервере", "Allow users on this server to receive shares from other servers" : "Дозвољава корисницима овог сервера да примају дељења са других сервера", + "Search global and public address book for users" : "Тражи кориснике и у глобалним и јавним именицима", + "Allow users to publish their data to a global and public address book" : "Дозволи корисницима да објаве своје податке у јавне и глобалне именике", "Federated Cloud" : "Здружени облак", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Можете делите ствари са било ким ко користи Некстклауд, Оунклауд или Пидио. Само унесите њихов ИД Здруженог Облака у дијалог за дељење. ИД изгледа нешто попут person@cloud.example.com", "Your Federated Cloud ID:" : "ИД вашег здруженог облака:", - "HTML Code:" : "ХТМЛ кôд:" + "Share it so your friends can share files with you:" : "Поделите да би Ваши пријатељи могли да деле са Вама:", + "Add to your website" : "Додај на свој веб сајт", + "Share with me via Nextcloud" : "Дели са мном преко Некстклауда", + "HTML Code:" : "ХТМЛ кôд:", + "Search global and public address book for users and let local users publish their data" : "Претражи кориснике у глобалним и јавним именицима и дозволи да локални корисници објављују њихове податке", + "Share it:" : "Дели:" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/files/l10n/sk.js b/apps/files/l10n/sk.js index 640c6a477d9..79e74f8fc37 100644 --- a/apps/files/l10n/sk.js +++ b/apps/files/l10n/sk.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použi túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">prístup ku svojím súborom cez WebDAV</a>", "Uploading @" : "Nahráva sa @", + "Cancel upload" : "Zrušiť nahrávanie", "No files in here" : "Nie sú tu žiadne súbory", "Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte zo svojimi zariadeniami!", "No entries found in this folder" : "V tomto priečinku nebolo nič nájdené", diff --git a/apps/files/l10n/sk.json b/apps/files/l10n/sk.json index 7d66eaad059..3abaef4aa98 100644 --- a/apps/files/l10n/sk.json +++ b/apps/files/l10n/sk.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Použi túto adresu pre <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">prístup ku svojím súborom cez WebDAV</a>", "Uploading @" : "Nahráva sa @", + "Cancel upload" : "Zrušiť nahrávanie", "No files in here" : "Nie sú tu žiadne súbory", "Upload some content or sync with your devices!" : "Nahrajte nejaký obsah alebo synchronizujte zo svojimi zariadeniami!", "No entries found in this folder" : "V tomto priečinku nebolo nič nájdené", diff --git a/apps/files/l10n/sl.js b/apps/files/l10n/sl.js index 2791df23f32..cedf0bfc2b5 100644 --- a/apps/files/l10n/sl.js +++ b/apps/files/l10n/sl.js @@ -16,10 +16,13 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.", "Target folder \"{dir}\" does not exist any more" : "Ciljna mapa \"{dir}\" ne obstaja več", "Not enough free space" : "Ni dovolj prostora", + "Uploading …" : "Nalaganje", + "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} od {totalSize} ({bitrate})", "Actions" : "Dejanja", "Download" : "Prejmi", "Rename" : "Preimenuj", + "Move or copy" : "Premakni ali kopiraj", "Target folder" : "Ciljna mapa", "Delete" : "Izbriši", "Disconnect storage" : "Odklopi shrambo", @@ -116,6 +119,8 @@ OC.L10N.register( "Show hidden files" : "Pokaži skrite datoteke", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Uporabite naslov <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\"> za dostop do datotek prek sistema WebDAV</a>.", + "Uploading @" : "Nalaganje @", + "Cancel upload" : "Prekini nalaganje", "No files in here" : "V mapi ni datotek", "Upload some content or sync with your devices!" : "Uvozite vsebino ali pa omogočite usklajevanje z napravami!", "No entries found in this folder" : "V tej mapi ni najdenih predmetov.", diff --git a/apps/files/l10n/sl.json b/apps/files/l10n/sl.json index c13ad23edd0..a10d6ac1d91 100644 --- a/apps/files/l10n/sl.json +++ b/apps/files/l10n/sl.json @@ -14,10 +14,13 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Na voljo ni dovolj prostora. Velikost poslane datoteke je {size1}, na voljo pa je je {size2}.", "Target folder \"{dir}\" does not exist any more" : "Ciljna mapa \"{dir}\" ne obstaja več", "Not enough free space" : "Ni dovolj prostora", + "Uploading …" : "Nalaganje", + "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} od {totalSize} ({bitrate})", "Actions" : "Dejanja", "Download" : "Prejmi", "Rename" : "Preimenuj", + "Move or copy" : "Premakni ali kopiraj", "Target folder" : "Ciljna mapa", "Delete" : "Izbriši", "Disconnect storage" : "Odklopi shrambo", @@ -114,6 +117,8 @@ "Show hidden files" : "Pokaži skrite datoteke", "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Uporabite naslov <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\"> za dostop do datotek prek sistema WebDAV</a>.", + "Uploading @" : "Nalaganje @", + "Cancel upload" : "Prekini nalaganje", "No files in here" : "V mapi ni datotek", "Upload some content or sync with your devices!" : "Uvozite vsebino ali pa omogočite usklajevanje z napravami!", "No entries found in this folder" : "V tej mapi ni najdenih predmetov.", diff --git a/apps/files/l10n/sr.js b/apps/files/l10n/sr.js index add1c3615d6..1a3b01420f9 100644 --- a/apps/files/l10n/sr.js +++ b/apps/files/l10n/sr.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "ВебДАВ", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Користи ову адресу да <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">приступате Вашим фајловима преко ВебДАВа</a>", "Uploading @" : "Отпремам @", + "Cancel upload" : "Откажи отпремање", "No files in here" : "Овде нема фајлова", "Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!", "No entries found in this folder" : "Нема ничега у овој фасцикли", diff --git a/apps/files/l10n/sr.json b/apps/files/l10n/sr.json index dac49d86f33..c8db7af7ab8 100644 --- a/apps/files/l10n/sr.json +++ b/apps/files/l10n/sr.json @@ -122,6 +122,7 @@ "WebDAV" : "ВебДАВ", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Користи ову адресу да <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">приступате Вашим фајловима преко ВебДАВа</a>", "Uploading @" : "Отпремам @", + "Cancel upload" : "Откажи отпремање", "No files in here" : "Овде нема фајлова", "Upload some content or sync with your devices!" : "Отпремите неки садржај или синхронизујте са вашим уређајима!", "No entries found in this folder" : "Нема ничега у овој фасцикли", diff --git a/apps/files/l10n/zh_CN.js b/apps/files/l10n/zh_CN.js index 84bf822b471..97be741304e 100644 --- a/apps/files/l10n/zh_CN.js +++ b/apps/files/l10n/zh_CN.js @@ -124,6 +124,7 @@ OC.L10N.register( "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "使用这个地址 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">通过 WebDAV 访问您的文件</a>", "Uploading @" : "上传中", + "Cancel upload" : "取消上传", "No files in here" : "无文件", "Upload some content or sync with your devices!" : "上传或从您的设备中同步!", "No entries found in this folder" : "文件夹中无项目", diff --git a/apps/files/l10n/zh_CN.json b/apps/files/l10n/zh_CN.json index 42a8ea92093..b8630ae0b1e 100644 --- a/apps/files/l10n/zh_CN.json +++ b/apps/files/l10n/zh_CN.json @@ -122,6 +122,7 @@ "WebDAV" : "WebDAV", "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "使用这个地址 <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">通过 WebDAV 访问您的文件</a>", "Uploading @" : "上传中", + "Cancel upload" : "取消上传", "No files in here" : "无文件", "Upload some content or sync with your devices!" : "上传或从您的设备中同步!", "No entries found in this folder" : "文件夹中无项目", diff --git a/apps/files/templates/appnavigation.php b/apps/files/templates/appnavigation.php index 6a7b4e4b11e..8326fad73ea 100644 --- a/apps/files/templates/appnavigation.php +++ b/apps/files/templates/appnavigation.php @@ -24,7 +24,7 @@ } ?></p> <div class="quota-container"> <progress value="<?php p($_['usage_relative']); ?>" max="100" - <?php if($_['usage_relative'] > 80): ?> class="quota-warning" <?php endif; ?>></progress> + <?php if($_['usage_relative'] > 80): ?> class="warn" <?php endif; ?>></progress> </div> </a> </li> diff --git a/apps/files_external/js/settings.js b/apps/files_external/js/settings.js index 0003dbf0f75..cb9b7ad6822 100644 --- a/apps/files_external/js/settings.js +++ b/apps/files_external/js/settings.js @@ -1134,7 +1134,7 @@ MountConfigListView.prototype = _.extend({ storage: this.mountPoint }), t('files_external', 'Delete storage?'), function(confirm) { if (confirm) { - this.updateStatus($tr, StorageConfig.Status.IN_PROGRESS); + self.updateStatus($tr, StorageConfig.Status.IN_PROGRESS); storage.destroy({ success: function () { diff --git a/apps/files_external/l10n/zh_CN.js b/apps/files_external/l10n/zh_CN.js index 2eac6e70ad9..83aea82084c 100644 --- a/apps/files_external/l10n/zh_CN.js +++ b/apps/files_external/l10n/zh_CN.js @@ -14,6 +14,8 @@ OC.L10N.register( "(group)" : "(分组)", "Compatibility with Mac NFD encoding (slow)" : "兼用 Mac NFD 编码 (慢)", "Admin defined" : "管理员定义", + "Are you sure you want to delete this external storage" : "是否要删除该外部存储", + "Delete storage?" : "删除存储?", "Saved" : "已保存", "Saving..." : "正在保存...", "Save" : "保存", diff --git a/apps/files_external/l10n/zh_CN.json b/apps/files_external/l10n/zh_CN.json index 9883dfa7a90..95705cc41dc 100644 --- a/apps/files_external/l10n/zh_CN.json +++ b/apps/files_external/l10n/zh_CN.json @@ -12,6 +12,8 @@ "(group)" : "(分组)", "Compatibility with Mac NFD encoding (slow)" : "兼用 Mac NFD 编码 (慢)", "Admin defined" : "管理员定义", + "Are you sure you want to delete this external storage" : "是否要删除该外部存储", + "Delete storage?" : "删除存储?", "Saved" : "已保存", "Saving..." : "正在保存...", "Save" : "保存", diff --git a/apps/files_sharing/composer/autoload.php b/apps/files_sharing/composer/autoload.php new file mode 100644 index 00000000000..3b046bff7f4 --- /dev/null +++ b/apps/files_sharing/composer/autoload.php @@ -0,0 +1,7 @@ +<?php + +// autoload.php @generated by Composer + +require_once __DIR__ . '/composer/autoload_real.php'; + +return ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441::getLoader(); diff --git a/apps/files_sharing/composer/composer.json b/apps/files_sharing/composer/composer.json new file mode 100644 index 00000000000..4d2aae1d6e1 --- /dev/null +++ b/apps/files_sharing/composer/composer.json @@ -0,0 +1,12 @@ +{ + "config" : { + "vendor-dir": ".", + "optimize-autoloader": true, + "authorative-autoloader": true + }, + "autoload" : { + "psr-4": { + "OCA\\Files_Sharing\\": "../lib/" + } + } +} diff --git a/apps/files_sharing/composer/composer/ClassLoader.php b/apps/files_sharing/composer/composer/ClassLoader.php new file mode 100644 index 00000000000..2c72175e772 --- /dev/null +++ b/apps/files_sharing/composer/composer/ClassLoader.php @@ -0,0 +1,445 @@ +<?php + +/* + * This file is part of Composer. + * + * (c) Nils Adermann <naderman@naderman.de> + * Jordi Boggiano <j.boggiano@seld.be> + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Composer\Autoload; + +/** + * ClassLoader implements a PSR-0, PSR-4 and classmap class loader. + * + * $loader = new \Composer\Autoload\ClassLoader(); + * + * // register classes with namespaces + * $loader->add('Symfony\Component', __DIR__.'/component'); + * $loader->add('Symfony', __DIR__.'/framework'); + * + * // activate the autoloader + * $loader->register(); + * + * // to enable searching the include path (eg. for PEAR packages) + * $loader->setUseIncludePath(true); + * + * In this example, if you try to use a class in the Symfony\Component + * namespace or one of its children (Symfony\Component\Console for instance), + * the autoloader will first look for the class under the component/ + * directory, and it will then fallback to the framework/ directory if not + * found before giving up. + * + * This class is loosely based on the Symfony UniversalClassLoader. + * + * @author Fabien Potencier <fabien@symfony.com> + * @author Jordi Boggiano <j.boggiano@seld.be> + * @see http://www.php-fig.org/psr/psr-0/ + * @see http://www.php-fig.org/psr/psr-4/ + */ +class ClassLoader +{ + // PSR-4 + private $prefixLengthsPsr4 = array(); + private $prefixDirsPsr4 = array(); + private $fallbackDirsPsr4 = array(); + + // PSR-0 + private $prefixesPsr0 = array(); + private $fallbackDirsPsr0 = array(); + + private $useIncludePath = false; + private $classMap = array(); + private $classMapAuthoritative = false; + private $missingClasses = array(); + private $apcuPrefix; + + public function getPrefixes() + { + if (!empty($this->prefixesPsr0)) { + return call_user_func_array('array_merge', $this->prefixesPsr0); + } + + return array(); + } + + public function getPrefixesPsr4() + { + return $this->prefixDirsPsr4; + } + + public function getFallbackDirs() + { + return $this->fallbackDirsPsr0; + } + + public function getFallbackDirsPsr4() + { + return $this->fallbackDirsPsr4; + } + + public function getClassMap() + { + return $this->classMap; + } + + /** + * @param array $classMap Class to filename map + */ + public function addClassMap(array $classMap) + { + if ($this->classMap) { + $this->classMap = array_merge($this->classMap, $classMap); + } else { + $this->classMap = $classMap; + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, either + * appending or prepending to the ones previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 root directories + * @param bool $prepend Whether to prepend the directories + */ + public function add($prefix, $paths, $prepend = false) + { + if (!$prefix) { + if ($prepend) { + $this->fallbackDirsPsr0 = array_merge( + (array) $paths, + $this->fallbackDirsPsr0 + ); + } else { + $this->fallbackDirsPsr0 = array_merge( + $this->fallbackDirsPsr0, + (array) $paths + ); + } + + return; + } + + $first = $prefix[0]; + if (!isset($this->prefixesPsr0[$first][$prefix])) { + $this->prefixesPsr0[$first][$prefix] = (array) $paths; + + return; + } + if ($prepend) { + $this->prefixesPsr0[$first][$prefix] = array_merge( + (array) $paths, + $this->prefixesPsr0[$first][$prefix] + ); + } else { + $this->prefixesPsr0[$first][$prefix] = array_merge( + $this->prefixesPsr0[$first][$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, either + * appending or prepending to the ones previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * @param bool $prepend Whether to prepend the directories + * + * @throws \InvalidArgumentException + */ + public function addPsr4($prefix, $paths, $prepend = false) + { + if (!$prefix) { + // Register directories for the root namespace. + if ($prepend) { + $this->fallbackDirsPsr4 = array_merge( + (array) $paths, + $this->fallbackDirsPsr4 + ); + } else { + $this->fallbackDirsPsr4 = array_merge( + $this->fallbackDirsPsr4, + (array) $paths + ); + } + } elseif (!isset($this->prefixDirsPsr4[$prefix])) { + // Register directories for a new namespace. + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } elseif ($prepend) { + // Prepend directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + (array) $paths, + $this->prefixDirsPsr4[$prefix] + ); + } else { + // Append directories for an already registered namespace. + $this->prefixDirsPsr4[$prefix] = array_merge( + $this->prefixDirsPsr4[$prefix], + (array) $paths + ); + } + } + + /** + * Registers a set of PSR-0 directories for a given prefix, + * replacing any others previously set for this prefix. + * + * @param string $prefix The prefix + * @param array|string $paths The PSR-0 base directories + */ + public function set($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr0 = (array) $paths; + } else { + $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths; + } + } + + /** + * Registers a set of PSR-4 directories for a given namespace, + * replacing any others previously set for this namespace. + * + * @param string $prefix The prefix/namespace, with trailing '\\' + * @param array|string $paths The PSR-4 base directories + * + * @throws \InvalidArgumentException + */ + public function setPsr4($prefix, $paths) + { + if (!$prefix) { + $this->fallbackDirsPsr4 = (array) $paths; + } else { + $length = strlen($prefix); + if ('\\' !== $prefix[$length - 1]) { + throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator."); + } + $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length; + $this->prefixDirsPsr4[$prefix] = (array) $paths; + } + } + + /** + * Turns on searching the include path for class files. + * + * @param bool $useIncludePath + */ + public function setUseIncludePath($useIncludePath) + { + $this->useIncludePath = $useIncludePath; + } + + /** + * Can be used to check if the autoloader uses the include path to check + * for classes. + * + * @return bool + */ + public function getUseIncludePath() + { + return $this->useIncludePath; + } + + /** + * Turns off searching the prefix and fallback directories for classes + * that have not been registered with the class map. + * + * @param bool $classMapAuthoritative + */ + public function setClassMapAuthoritative($classMapAuthoritative) + { + $this->classMapAuthoritative = $classMapAuthoritative; + } + + /** + * Should class lookup fail if not found in the current class map? + * + * @return bool + */ + public function isClassMapAuthoritative() + { + return $this->classMapAuthoritative; + } + + /** + * APCu prefix to use to cache found/not-found classes, if the extension is enabled. + * + * @param string|null $apcuPrefix + */ + public function setApcuPrefix($apcuPrefix) + { + $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null; + } + + /** + * The APCu prefix in use, or null if APCu caching is not enabled. + * + * @return string|null + */ + public function getApcuPrefix() + { + return $this->apcuPrefix; + } + + /** + * Registers this instance as an autoloader. + * + * @param bool $prepend Whether to prepend the autoloader or not + */ + public function register($prepend = false) + { + spl_autoload_register(array($this, 'loadClass'), true, $prepend); + } + + /** + * Unregisters this instance as an autoloader. + */ + public function unregister() + { + spl_autoload_unregister(array($this, 'loadClass')); + } + + /** + * Loads the given class or interface. + * + * @param string $class The name of the class + * @return bool|null True if loaded, null otherwise + */ + public function loadClass($class) + { + if ($file = $this->findFile($class)) { + includeFile($file); + + return true; + } + } + + /** + * Finds the path to the file where the class is defined. + * + * @param string $class The name of the class + * + * @return string|false The path if found, false otherwise + */ + public function findFile($class) + { + // class map lookup + if (isset($this->classMap[$class])) { + return $this->classMap[$class]; + } + if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) { + return false; + } + if (null !== $this->apcuPrefix) { + $file = apcu_fetch($this->apcuPrefix.$class, $hit); + if ($hit) { + return $file; + } + } + + $file = $this->findFileWithExtension($class, '.php'); + + // Search for Hack files if we are running on HHVM + if (false === $file && defined('HHVM_VERSION')) { + $file = $this->findFileWithExtension($class, '.hh'); + } + + if (null !== $this->apcuPrefix) { + apcu_add($this->apcuPrefix.$class, $file); + } + + if (false === $file) { + // Remember that this class does not exist. + $this->missingClasses[$class] = true; + } + + return $file; + } + + private function findFileWithExtension($class, $ext) + { + // PSR-4 lookup + $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext; + + $first = $class[0]; + if (isset($this->prefixLengthsPsr4[$first])) { + $subPath = $class; + while (false !== $lastPos = strrpos($subPath, '\\')) { + $subPath = substr($subPath, 0, $lastPos); + $search = $subPath.'\\'; + if (isset($this->prefixDirsPsr4[$search])) { + foreach ($this->prefixDirsPsr4[$search] as $dir) { + $length = $this->prefixLengthsPsr4[$first][$search]; + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + return $file; + } + } + } + } + } + + // PSR-4 fallback dirs + foreach ($this->fallbackDirsPsr4 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) { + return $file; + } + } + + // PSR-0 lookup + if (false !== $pos = strrpos($class, '\\')) { + // namespaced class name + $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1) + . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR); + } else { + // PEAR-like class name + $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext; + } + + if (isset($this->prefixesPsr0[$first])) { + foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) { + if (0 === strpos($class, $prefix)) { + foreach ($dirs as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + } + } + } + + // PSR-0 fallback dirs + foreach ($this->fallbackDirsPsr0 as $dir) { + if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) { + return $file; + } + } + + // PSR-0 include paths. + if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) { + return $file; + } + + return false; + } +} + +/** + * Scope isolated include. + * + * Prevents access to $this/self from included files. + */ +function includeFile($file) +{ + include $file; +} diff --git a/apps/files_sharing/composer/composer/LICENSE b/apps/files_sharing/composer/composer/LICENSE new file mode 100644 index 00000000000..f27399a042d --- /dev/null +++ b/apps/files_sharing/composer/composer/LICENSE @@ -0,0 +1,21 @@ + +Copyright (c) Nils Adermann, Jordi Boggiano + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + diff --git a/apps/files_sharing/composer/composer/autoload_classmap.php b/apps/files_sharing/composer/composer/autoload_classmap.php new file mode 100644 index 00000000000..48b9651a00d --- /dev/null +++ b/apps/files_sharing/composer/composer/autoload_classmap.php @@ -0,0 +1,56 @@ +<?php + +// autoload_classmap.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Files_Sharing\\Activity\\Filter' => $baseDir . '/../lib/Activity/Filter.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Base' => $baseDir . '/../lib/Activity/Providers/Base.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Downloads' => $baseDir . '/../lib/Activity/Providers/Downloads.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Groups' => $baseDir . '/../lib/Activity/Providers/Groups.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\PublicLinks' => $baseDir . '/../lib/Activity/Providers/PublicLinks.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\RemoteShares' => $baseDir . '/../lib/Activity/Providers/RemoteShares.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Users' => $baseDir . '/../lib/Activity/Providers/Users.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\PublicLinks' => $baseDir . '/../lib/Activity/Settings/PublicLinks.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\RemoteShare' => $baseDir . '/../lib/Activity/Settings/RemoteShare.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\Shared' => $baseDir . '/../lib/Activity/Settings/Shared.php', + 'OCA\\Files_Sharing\\AppInfo\\Application' => $baseDir . '/../lib/AppInfo/Application.php', + 'OCA\\Files_Sharing\\Cache' => $baseDir . '/../lib/Cache.php', + 'OCA\\Files_Sharing\\Capabilities' => $baseDir . '/../lib/Capabilities.php', + 'OCA\\Files_Sharing\\Command\\CleanupRemoteStorages' => $baseDir . '/../lib/Command/CleanupRemoteStorages.php', + 'OCA\\Files_Sharing\\Controller\\ExternalSharesController' => $baseDir . '/../lib/Controller/ExternalSharesController.php', + 'OCA\\Files_Sharing\\Controller\\PublicPreviewController' => $baseDir . '/../lib/Controller/PublicPreviewController.php', + 'OCA\\Files_Sharing\\Controller\\RemoteController' => $baseDir . '/../lib/Controller/RemoteController.php', + 'OCA\\Files_Sharing\\Controller\\ShareAPIController' => $baseDir . '/../lib/Controller/ShareAPIController.php', + 'OCA\\Files_Sharing\\Controller\\ShareController' => $baseDir . '/../lib/Controller/ShareController.php', + 'OCA\\Files_Sharing\\Controller\\ShareInfoController' => $baseDir . '/../lib/Controller/ShareInfoController.php', + 'OCA\\Files_Sharing\\Controller\\ShareesAPIController' => $baseDir . '/../lib/Controller/ShareesAPIController.php', + 'OCA\\Files_Sharing\\DeleteOrphanedSharesJob' => $baseDir . '/../lib/DeleteOrphanedSharesJob.php', + 'OCA\\Files_Sharing\\Exceptions\\BrokenPath' => $baseDir . '/../lib/Exceptions/BrokenPath.php', + 'OCA\\Files_Sharing\\Exceptions\\S2SException' => $baseDir . '/../lib/Exceptions/S2SException.php', + 'OCA\\Files_Sharing\\ExpireSharesJob' => $baseDir . '/../lib/ExpireSharesJob.php', + 'OCA\\Files_Sharing\\External\\Cache' => $baseDir . '/../lib/External/Cache.php', + 'OCA\\Files_Sharing\\External\\Manager' => $baseDir . '/../lib/External/Manager.php', + 'OCA\\Files_Sharing\\External\\Mount' => $baseDir . '/../lib/External/Mount.php', + 'OCA\\Files_Sharing\\External\\MountProvider' => $baseDir . '/../lib/External/MountProvider.php', + 'OCA\\Files_Sharing\\External\\Scanner' => $baseDir . '/../lib/External/Scanner.php', + 'OCA\\Files_Sharing\\External\\Storage' => $baseDir . '/../lib/External/Storage.php', + 'OCA\\Files_Sharing\\External\\Watcher' => $baseDir . '/../lib/External/Watcher.php', + 'OCA\\Files_Sharing\\Helper' => $baseDir . '/../lib/Helper.php', + 'OCA\\Files_Sharing\\Hooks' => $baseDir . '/../lib/Hooks.php', + 'OCA\\Files_Sharing\\ISharedStorage' => $baseDir . '/../lib/ISharedStorage.php', + 'OCA\\Files_Sharing\\Middleware\\OCSShareAPIMiddleware' => $baseDir . '/../lib/Middleware/OCSShareAPIMiddleware.php', + 'OCA\\Files_Sharing\\Middleware\\ShareInfoMiddleware' => $baseDir . '/../lib/Middleware/ShareInfoMiddleware.php', + 'OCA\\Files_Sharing\\Middleware\\SharingCheckMiddleware' => $baseDir . '/../lib/Middleware/SharingCheckMiddleware.php', + 'OCA\\Files_Sharing\\Migration\\OwncloudGuestShareType' => $baseDir . '/../lib/Migration/OwncloudGuestShareType.php', + 'OCA\\Files_Sharing\\Migration\\SetPasswordColumn' => $baseDir . '/../lib/Migration/SetPasswordColumn.php', + 'OCA\\Files_Sharing\\MountProvider' => $baseDir . '/../lib/MountProvider.php', + 'OCA\\Files_Sharing\\Scanner' => $baseDir . '/../lib/Scanner.php', + 'OCA\\Files_Sharing\\ShareBackend\\File' => $baseDir . '/../lib/ShareBackend/File.php', + 'OCA\\Files_Sharing\\ShareBackend\\Folder' => $baseDir . '/../lib/ShareBackend/Folder.php', + 'OCA\\Files_Sharing\\SharedMount' => $baseDir . '/../lib/SharedMount.php', + 'OCA\\Files_Sharing\\SharedStorage' => $baseDir . '/../lib/SharedStorage.php', + 'OCA\\Files_Sharing\\Updater' => $baseDir . '/../lib/Updater.php', +); diff --git a/apps/files_sharing/composer/composer/autoload_namespaces.php b/apps/files_sharing/composer/composer/autoload_namespaces.php new file mode 100644 index 00000000000..71c9e91858d --- /dev/null +++ b/apps/files_sharing/composer/composer/autoload_namespaces.php @@ -0,0 +1,9 @@ +<?php + +// autoload_namespaces.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( +); diff --git a/apps/files_sharing/composer/composer/autoload_psr4.php b/apps/files_sharing/composer/composer/autoload_psr4.php new file mode 100644 index 00000000000..9fb758e4059 --- /dev/null +++ b/apps/files_sharing/composer/composer/autoload_psr4.php @@ -0,0 +1,10 @@ +<?php + +// autoload_psr4.php @generated by Composer + +$vendorDir = dirname(dirname(__FILE__)); +$baseDir = $vendorDir; + +return array( + 'OCA\\Files_Sharing\\' => array($baseDir . '/../lib'), +); diff --git a/apps/files_sharing/composer/composer/autoload_real.php b/apps/files_sharing/composer/composer/autoload_real.php new file mode 100644 index 00000000000..fc2e3dcfcb0 --- /dev/null +++ b/apps/files_sharing/composer/composer/autoload_real.php @@ -0,0 +1,52 @@ +<?php + +// autoload_real.php @generated by Composer + +class ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441 +{ + private static $loader; + + public static function loadClassLoader($class) + { + if ('Composer\Autoload\ClassLoader' === $class) { + require __DIR__ . '/ClassLoader.php'; + } + } + + public static function getLoader() + { + if (null !== self::$loader) { + return self::$loader; + } + + spl_autoload_register(array('ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441', 'loadClassLoader'), true, true); + self::$loader = $loader = new \Composer\Autoload\ClassLoader(); + spl_autoload_unregister(array('ComposerAutoloaderInitf32f03f7cd82bff20d6a51be16689441', 'loadClassLoader')); + + $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded()); + if ($useStaticLoader) { + require_once __DIR__ . '/autoload_static.php'; + + call_user_func(\Composer\Autoload\ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::getInitializer($loader)); + } else { + $map = require __DIR__ . '/autoload_namespaces.php'; + foreach ($map as $namespace => $path) { + $loader->set($namespace, $path); + } + + $map = require __DIR__ . '/autoload_psr4.php'; + foreach ($map as $namespace => $path) { + $loader->setPsr4($namespace, $path); + } + + $classMap = require __DIR__ . '/autoload_classmap.php'; + if ($classMap) { + $loader->addClassMap($classMap); + } + } + + $loader->register(true); + + return $loader; + } +} diff --git a/apps/files_sharing/composer/composer/autoload_static.php b/apps/files_sharing/composer/composer/autoload_static.php new file mode 100644 index 00000000000..caabc5d50a3 --- /dev/null +++ b/apps/files_sharing/composer/composer/autoload_static.php @@ -0,0 +1,82 @@ +<?php + +// autoload_static.php @generated by Composer + +namespace Composer\Autoload; + +class ComposerStaticInitf32f03f7cd82bff20d6a51be16689441 +{ + public static $prefixLengthsPsr4 = array ( + 'O' => + array ( + 'OCA\\Files_Sharing\\' => 18, + ), + ); + + public static $prefixDirsPsr4 = array ( + 'OCA\\Files_Sharing\\' => + array ( + 0 => __DIR__ . '/..' . '/../lib', + ), + ); + + public static $classMap = array ( + 'OCA\\Files_Sharing\\Activity\\Filter' => __DIR__ . '/..' . '/../lib/Activity/Filter.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Base' => __DIR__ . '/..' . '/../lib/Activity/Providers/Base.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Downloads' => __DIR__ . '/..' . '/../lib/Activity/Providers/Downloads.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Groups' => __DIR__ . '/..' . '/../lib/Activity/Providers/Groups.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\PublicLinks' => __DIR__ . '/..' . '/../lib/Activity/Providers/PublicLinks.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\RemoteShares' => __DIR__ . '/..' . '/../lib/Activity/Providers/RemoteShares.php', + 'OCA\\Files_Sharing\\Activity\\Providers\\Users' => __DIR__ . '/..' . '/../lib/Activity/Providers/Users.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\PublicLinks' => __DIR__ . '/..' . '/../lib/Activity/Settings/PublicLinks.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\RemoteShare' => __DIR__ . '/..' . '/../lib/Activity/Settings/RemoteShare.php', + 'OCA\\Files_Sharing\\Activity\\Settings\\Shared' => __DIR__ . '/..' . '/../lib/Activity/Settings/Shared.php', + 'OCA\\Files_Sharing\\AppInfo\\Application' => __DIR__ . '/..' . '/../lib/AppInfo/Application.php', + 'OCA\\Files_Sharing\\Cache' => __DIR__ . '/..' . '/../lib/Cache.php', + 'OCA\\Files_Sharing\\Capabilities' => __DIR__ . '/..' . '/../lib/Capabilities.php', + 'OCA\\Files_Sharing\\Command\\CleanupRemoteStorages' => __DIR__ . '/..' . '/../lib/Command/CleanupRemoteStorages.php', + 'OCA\\Files_Sharing\\Controller\\ExternalSharesController' => __DIR__ . '/..' . '/../lib/Controller/ExternalSharesController.php', + 'OCA\\Files_Sharing\\Controller\\PublicPreviewController' => __DIR__ . '/..' . '/../lib/Controller/PublicPreviewController.php', + 'OCA\\Files_Sharing\\Controller\\RemoteController' => __DIR__ . '/..' . '/../lib/Controller/RemoteController.php', + 'OCA\\Files_Sharing\\Controller\\ShareAPIController' => __DIR__ . '/..' . '/../lib/Controller/ShareAPIController.php', + 'OCA\\Files_Sharing\\Controller\\ShareController' => __DIR__ . '/..' . '/../lib/Controller/ShareController.php', + 'OCA\\Files_Sharing\\Controller\\ShareInfoController' => __DIR__ . '/..' . '/../lib/Controller/ShareInfoController.php', + 'OCA\\Files_Sharing\\Controller\\ShareesAPIController' => __DIR__ . '/..' . '/../lib/Controller/ShareesAPIController.php', + 'OCA\\Files_Sharing\\DeleteOrphanedSharesJob' => __DIR__ . '/..' . '/../lib/DeleteOrphanedSharesJob.php', + 'OCA\\Files_Sharing\\Exceptions\\BrokenPath' => __DIR__ . '/..' . '/../lib/Exceptions/BrokenPath.php', + 'OCA\\Files_Sharing\\Exceptions\\S2SException' => __DIR__ . '/..' . '/../lib/Exceptions/S2SException.php', + 'OCA\\Files_Sharing\\ExpireSharesJob' => __DIR__ . '/..' . '/../lib/ExpireSharesJob.php', + 'OCA\\Files_Sharing\\External\\Cache' => __DIR__ . '/..' . '/../lib/External/Cache.php', + 'OCA\\Files_Sharing\\External\\Manager' => __DIR__ . '/..' . '/../lib/External/Manager.php', + 'OCA\\Files_Sharing\\External\\Mount' => __DIR__ . '/..' . '/../lib/External/Mount.php', + 'OCA\\Files_Sharing\\External\\MountProvider' => __DIR__ . '/..' . '/../lib/External/MountProvider.php', + 'OCA\\Files_Sharing\\External\\Scanner' => __DIR__ . '/..' . '/../lib/External/Scanner.php', + 'OCA\\Files_Sharing\\External\\Storage' => __DIR__ . '/..' . '/../lib/External/Storage.php', + 'OCA\\Files_Sharing\\External\\Watcher' => __DIR__ . '/..' . '/../lib/External/Watcher.php', + 'OCA\\Files_Sharing\\Helper' => __DIR__ . '/..' . '/../lib/Helper.php', + 'OCA\\Files_Sharing\\Hooks' => __DIR__ . '/..' . '/../lib/Hooks.php', + 'OCA\\Files_Sharing\\ISharedStorage' => __DIR__ . '/..' . '/../lib/ISharedStorage.php', + 'OCA\\Files_Sharing\\Middleware\\OCSShareAPIMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/OCSShareAPIMiddleware.php', + 'OCA\\Files_Sharing\\Middleware\\ShareInfoMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/ShareInfoMiddleware.php', + 'OCA\\Files_Sharing\\Middleware\\SharingCheckMiddleware' => __DIR__ . '/..' . '/../lib/Middleware/SharingCheckMiddleware.php', + 'OCA\\Files_Sharing\\Migration\\OwncloudGuestShareType' => __DIR__ . '/..' . '/../lib/Migration/OwncloudGuestShareType.php', + 'OCA\\Files_Sharing\\Migration\\SetPasswordColumn' => __DIR__ . '/..' . '/../lib/Migration/SetPasswordColumn.php', + 'OCA\\Files_Sharing\\MountProvider' => __DIR__ . '/..' . '/../lib/MountProvider.php', + 'OCA\\Files_Sharing\\Scanner' => __DIR__ . '/..' . '/../lib/Scanner.php', + 'OCA\\Files_Sharing\\ShareBackend\\File' => __DIR__ . '/..' . '/../lib/ShareBackend/File.php', + 'OCA\\Files_Sharing\\ShareBackend\\Folder' => __DIR__ . '/..' . '/../lib/ShareBackend/Folder.php', + 'OCA\\Files_Sharing\\SharedMount' => __DIR__ . '/..' . '/../lib/SharedMount.php', + 'OCA\\Files_Sharing\\SharedStorage' => __DIR__ . '/..' . '/../lib/SharedStorage.php', + 'OCA\\Files_Sharing\\Updater' => __DIR__ . '/..' . '/../lib/Updater.php', + ); + + public static function getInitializer(ClassLoader $loader) + { + return \Closure::bind(function () use ($loader) { + $loader->prefixLengthsPsr4 = ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::$prefixLengthsPsr4; + $loader->prefixDirsPsr4 = ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::$prefixDirsPsr4; + $loader->classMap = ComposerStaticInitf32f03f7cd82bff20d6a51be16689441::$classMap; + + }, null, ClassLoader::class); + } +} diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js index 793546e34f4..c60c46de1a6 100644 --- a/apps/files_sharing/l10n/fr.js +++ b/apps/files_sharing/l10n/fr.js @@ -77,7 +77,7 @@ OC.L10N.register( "Public link sharing is disabled by the administrator" : "Le partage de lien public a été désactivé par l'administrateur", "Public upload disabled by the administrator" : "Téléversement public désactivé par l'administrateur", "Public upload is only possible for publicly shared folders" : "Le téléversement public est possible uniquement pour les dossiers partagés publiquement", - "Invalid date, date format must be YYYY-MM-DD" : "Date invalide, le format doit être YYYY-MM-DD", + "Invalid date, date format must be YYYY-MM-DD" : "Date non valide, le format doit être DD/MM/YYYY", "Sharing %s failed because the back end does not allow shares from type %s" : "Le partage %s a échoué parce que l'infrastructure n'autorise pas les partages du type %s", "You cannot share to a Circle if the app is not enabled" : "Vous ne pouvez pas partager au Cercle si l'application n'est pas activée", "Please specify a valid circle" : "Veuillez entrer un cercle valide", diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json index b0768a3d3f9..f53ba956c3c 100644 --- a/apps/files_sharing/l10n/fr.json +++ b/apps/files_sharing/l10n/fr.json @@ -75,7 +75,7 @@ "Public link sharing is disabled by the administrator" : "Le partage de lien public a été désactivé par l'administrateur", "Public upload disabled by the administrator" : "Téléversement public désactivé par l'administrateur", "Public upload is only possible for publicly shared folders" : "Le téléversement public est possible uniquement pour les dossiers partagés publiquement", - "Invalid date, date format must be YYYY-MM-DD" : "Date invalide, le format doit être YYYY-MM-DD", + "Invalid date, date format must be YYYY-MM-DD" : "Date non valide, le format doit être DD/MM/YYYY", "Sharing %s failed because the back end does not allow shares from type %s" : "Le partage %s a échoué parce que l'infrastructure n'autorise pas les partages du type %s", "You cannot share to a Circle if the app is not enabled" : "Vous ne pouvez pas partager au Cercle si l'application n'est pas activée", "Please specify a valid circle" : "Veuillez entrer un cercle valide", diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js index 2ee1fe2b5f8..a81b094dafe 100644 --- a/apps/files_sharing/l10n/ru.js +++ b/apps/files_sharing/l10n/ru.js @@ -96,7 +96,7 @@ OC.L10N.register( "Name" : "Имя", "Share time" : "Дата публикации", "Expiration date" : "Дата истечения", - "Sorry, this link doesn’t seem to work anymore." : "Эта ссылка устарела и более не действительна.", + "Sorry, this link doesn’t seem to work anymore." : "Похоже, эта ссылка больше не работает.", "Reasons might be:" : "Причиной может быть:", "the item was removed" : "объект был удалён", "the link expired" : "срок действия ссылки истёк", diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json index 669ce8fcd0f..a4891dd5c05 100644 --- a/apps/files_sharing/l10n/ru.json +++ b/apps/files_sharing/l10n/ru.json @@ -94,7 +94,7 @@ "Name" : "Имя", "Share time" : "Дата публикации", "Expiration date" : "Дата истечения", - "Sorry, this link doesn’t seem to work anymore." : "Эта ссылка устарела и более не действительна.", + "Sorry, this link doesn’t seem to work anymore." : "Похоже, эта ссылка больше не работает.", "Reasons might be:" : "Причиной может быть:", "the item was removed" : "объект был удалён", "the link expired" : "срок действия ссылки истёк", diff --git a/apps/files_sharing/l10n/sk.js b/apps/files_sharing/l10n/sk.js index b7d260ca332..b60205e40a6 100644 --- a/apps/files_sharing/l10n/sk.js +++ b/apps/files_sharing/l10n/sk.js @@ -34,6 +34,25 @@ OC.L10N.register( "Shared as public link" : "Sprístupnené ako verejný odkaz", "Removed public link" : "Verejný odkaz odstránený", "Public link expired" : "Verejnému odkazu vypršala platnosť", + "{actor} shared as public link" : "{actor} sprístupnil ako verejný odkaz", + "{actor} removed public link" : "{actor} odstránil verejný odkaz", + "Public link of {actor} expired" : "Verejný odkaz {actor} vypršal", + "You shared {file} as public link" : "Sprístupnili ste súbor {file} ako verejný odkaz", + "You removed public link for {file}" : "Odstránili ste verejný odkaz pre {file}", + "Public link expired for {file}" : "Verejný odkaz pre {file} vypršal", + "{actor} shared {file} as public link" : "{actor} sprístupnil {file} ako verejný odkaz", + "{actor} removed public link for {file}" : "{actor} odstránil verejný odkaz pre {file}", + "Public link of {actor} for {file} expired" : "Verejný odkaz používateľa {actor} pre {file} vypršal", + "{user} accepted the remote share" : "používateľ {user} prijal vzdialené sprístupnenie", + "{user} declined the remote share" : "používateľ {user} odmietol vzdialené sprístupnenie", + "You received a new remote share {file} from {user}" : "Obdržali ste nové vzdialené zdieľanie súboru {file} používateľom {user}", + "{user} accepted the remote share of {file}" : "používateľ {user} prijal vzdialené sprístupnenie súboru {file}", + "{user} declined the remote share of {file}" : "používateľ {user} odmietol vzdialené spristupnenie súboru {file} ", + "{user} unshared {file} from you" : "používateľ {user} vám už nesprístupňuje súbor {file}", + "Shared with {user}" : "Zdieľané s {user}", + "Removed share for {user}" : "Odstránené sprístupnenie pre používateľa {user}", + "{actor} shared with {user}" : "{actor} zdieľal s {user}", + "{actor} removed share for {user}" : "{actor} odstránil sprístupnenie pre používateľa {user}", "Shared by {actor}" : "Sprístupnil {actor}", "{actor} removed share" : "{actor} zrušil sprístupnenie", "You shared {file} with {user}" : "Sprístupnili ste {file} používateľovi {user}", diff --git a/apps/files_sharing/l10n/sk.json b/apps/files_sharing/l10n/sk.json index 7d88a4efd20..2953c12bf44 100644 --- a/apps/files_sharing/l10n/sk.json +++ b/apps/files_sharing/l10n/sk.json @@ -32,6 +32,25 @@ "Shared as public link" : "Sprístupnené ako verejný odkaz", "Removed public link" : "Verejný odkaz odstránený", "Public link expired" : "Verejnému odkazu vypršala platnosť", + "{actor} shared as public link" : "{actor} sprístupnil ako verejný odkaz", + "{actor} removed public link" : "{actor} odstránil verejný odkaz", + "Public link of {actor} expired" : "Verejný odkaz {actor} vypršal", + "You shared {file} as public link" : "Sprístupnili ste súbor {file} ako verejný odkaz", + "You removed public link for {file}" : "Odstránili ste verejný odkaz pre {file}", + "Public link expired for {file}" : "Verejný odkaz pre {file} vypršal", + "{actor} shared {file} as public link" : "{actor} sprístupnil {file} ako verejný odkaz", + "{actor} removed public link for {file}" : "{actor} odstránil verejný odkaz pre {file}", + "Public link of {actor} for {file} expired" : "Verejný odkaz používateľa {actor} pre {file} vypršal", + "{user} accepted the remote share" : "používateľ {user} prijal vzdialené sprístupnenie", + "{user} declined the remote share" : "používateľ {user} odmietol vzdialené sprístupnenie", + "You received a new remote share {file} from {user}" : "Obdržali ste nové vzdialené zdieľanie súboru {file} používateľom {user}", + "{user} accepted the remote share of {file}" : "používateľ {user} prijal vzdialené sprístupnenie súboru {file}", + "{user} declined the remote share of {file}" : "používateľ {user} odmietol vzdialené spristupnenie súboru {file} ", + "{user} unshared {file} from you" : "používateľ {user} vám už nesprístupňuje súbor {file}", + "Shared with {user}" : "Zdieľané s {user}", + "Removed share for {user}" : "Odstránené sprístupnenie pre používateľa {user}", + "{actor} shared with {user}" : "{actor} zdieľal s {user}", + "{actor} removed share for {user}" : "{actor} odstránil sprístupnenie pre používateľa {user}", "Shared by {actor}" : "Sprístupnil {actor}", "{actor} removed share" : "{actor} zrušil sprístupnenie", "You shared {file} with {user}" : "Sprístupnili ste {file} používateľovi {user}", diff --git a/apps/files_trashbin/l10n/pt_PT.js b/apps/files_trashbin/l10n/pt_PT.js index 7f0f658e9b0..fbf84019251 100644 --- a/apps/files_trashbin/l10n/pt_PT.js +++ b/apps/files_trashbin/l10n/pt_PT.js @@ -9,7 +9,7 @@ OC.L10N.register( "Delete permanently" : "Eliminar permanentemente", "Error" : "Erro", "This operation is forbidden" : "Esta operação é proibida", - "This directory is unavailable, please check the logs or contact the administrator" : "Esta diretoria está indisponível, por favor, verifique os registos ou contacte o administrador", + "This directory is unavailable, please check the logs or contact the administrator" : "Esta pasta não está disponível, por favor, verifique os registos ou contacte o administrador", "restored" : "Restaurado", "No deleted files" : "Sem ficheiros eliminados", "You will be able to recover deleted files from here" : "Poderá recuperar ficheiros eliminados a partir daqui", diff --git a/apps/files_trashbin/l10n/pt_PT.json b/apps/files_trashbin/l10n/pt_PT.json index 541a4b72f3c..d4fe15313f9 100644 --- a/apps/files_trashbin/l10n/pt_PT.json +++ b/apps/files_trashbin/l10n/pt_PT.json @@ -7,7 +7,7 @@ "Delete permanently" : "Eliminar permanentemente", "Error" : "Erro", "This operation is forbidden" : "Esta operação é proibida", - "This directory is unavailable, please check the logs or contact the administrator" : "Esta diretoria está indisponível, por favor, verifique os registos ou contacte o administrador", + "This directory is unavailable, please check the logs or contact the administrator" : "Esta pasta não está disponível, por favor, verifique os registos ou contacte o administrador", "restored" : "Restaurado", "No deleted files" : "Sem ficheiros eliminados", "You will be able to recover deleted files from here" : "Poderá recuperar ficheiros eliminados a partir daqui", diff --git a/apps/files_trashbin/tests/StorageTest.php b/apps/files_trashbin/tests/StorageTest.php index 2e3ddf2e6bf..bdddafcf016 100644 --- a/apps/files_trashbin/tests/StorageTest.php +++ b/apps/files_trashbin/tests/StorageTest.php @@ -530,7 +530,7 @@ class StorageTest extends \Test\TestCase { */ public function testShouldMoveToTrash($mountPoint, $path, $userExists, $appDisablesTrash, $expected) { $fileID = 1; - $cache = $this->getMock(ICache::class); + $cache = $this->createMock(ICache::class); $cache->expects($this->any())->method('getId')->willReturn($fileID); $tmpStorage = $this->getMockBuilder('\OC\Files\Storage\Temporary') ->disableOriginalConstructor()->getMock($cache); @@ -542,7 +542,7 @@ class StorageTest extends \Test\TestCase { $logger = $this->getMockBuilder(ILogger::class)->getMock(); $eventDispatcher = $this->getMockBuilder(EventDispatcher::class) ->disableOriginalConstructor()->getMock(); - $rootFolder = $this->getMock(IRootFolder::class); + $rootFolder = $this->createMock(IRootFolder::class); $node = $this->getMockBuilder(Node::class)->disableOriginalConstructor()->getMock(); $event = $this->getMockBuilder(MoveToTrashEvent::class)->disableOriginalConstructor()->getMock(); $event->expects($this->any())->method('shouldMoveToTrashBin')->willReturn(!$appDisablesTrash); diff --git a/apps/files_versions/l10n/nb.js b/apps/files_versions/l10n/nb.js index 14bdd10a893..40eecd966c3 100644 --- a/apps/files_versions/l10n/nb.js +++ b/apps/files_versions/l10n/nb.js @@ -4,7 +4,7 @@ OC.L10N.register( "Could not revert: %s" : "Klarte ikke å tilbakeføre: %s", "Versions" : "Versjoner", "Failed to revert {file} to revision {timestamp}." : "Klarte ikke å tilbakeføre {file} til revisjon {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n Byte","%n Byte"], + "_%n byte_::_%n bytes_" : ["%n byte","%n byte"], "Restore" : "Gjenopprett", "No earlier versions available" : "Ingen tidligere versjoner tilgjengelige", "More versions …" : "Flere versjoner…", diff --git a/apps/files_versions/l10n/nb.json b/apps/files_versions/l10n/nb.json index acbba4d379c..479d4037ec8 100644 --- a/apps/files_versions/l10n/nb.json +++ b/apps/files_versions/l10n/nb.json @@ -2,7 +2,7 @@ "Could not revert: %s" : "Klarte ikke å tilbakeføre: %s", "Versions" : "Versjoner", "Failed to revert {file} to revision {timestamp}." : "Klarte ikke å tilbakeføre {file} til revisjon {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n Byte","%n Byte"], + "_%n byte_::_%n bytes_" : ["%n byte","%n byte"], "Restore" : "Gjenopprett", "No earlier versions available" : "Ingen tidligere versjoner tilgjengelige", "More versions …" : "Flere versjoner…", diff --git a/apps/oauth2/l10n/sr.js b/apps/oauth2/l10n/sr.js new file mode 100644 index 00000000000..17bf401136d --- /dev/null +++ b/apps/oauth2/l10n/sr.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "oauth2", + { + "OAuth 2.0 clients" : "OAuth 2.0 клијенти", + "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 дозвољава спољним сервисима да захтевају приступ на %s.", + "Name" : "Име", + "Redirection URI" : "Адреса за преусмеравање", + "Client Identifier" : "Идентификација клијента", + "Secret" : "Тајна", + "Add client" : "Додај клијента", + "Add" : "Додај" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/oauth2/l10n/sr.json b/apps/oauth2/l10n/sr.json new file mode 100644 index 00000000000..ce91adc6253 --- /dev/null +++ b/apps/oauth2/l10n/sr.json @@ -0,0 +1,11 @@ +{ "translations": { + "OAuth 2.0 clients" : "OAuth 2.0 клијенти", + "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 дозвољава спољним сервисима да захтевају приступ на %s.", + "Name" : "Име", + "Redirection URI" : "Адреса за преусмеравање", + "Client Identifier" : "Идентификација клијента", + "Secret" : "Тајна", + "Add client" : "Додај клијента", + "Add" : "Додај" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +}
\ No newline at end of file diff --git a/apps/sharebymail/l10n/ca.js b/apps/sharebymail/l10n/ca.js index 0783846acb7..a80a7519582 100644 --- a/apps/sharebymail/l10n/ca.js +++ b/apps/sharebymail/l10n/ca.js @@ -23,12 +23,12 @@ OC.L10N.register( "Click the button below to open it." : "Feu clic al botó següent per obrir-lo.", "Open »%s«" : "Obert »%s«", "%s via %s" : "%svia%s", - "Password to access »%s« shared to you by %s" : "Contrasenya d'accés »%s« compartida per vostè %s", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%scompartit »%s« amb tu. Heu d'haver rebut un correu independent amb un enllaç per accedir-hi.", + "Password to access »%s« shared to you by %s" : "Contrasenya d'accés »%s« compartida per vostè %s", "Password to access »%s«" : "Contrasenya d'accés »%s«", "It is protected with the following password: %s" : "Està protegit amb la següent contrasenya: %s", - "Password to access »%s« shared with %s" : "Contrasenya d'accés »%s« compartit amb %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabeu de compartir »%s« amb %s. La part ja s'ha enviat al destinatari. A causa de les polítiques de seguretat definides per l'administrador de %scada acció, ha de ser protegit per contrasenya i no es permet enviar la contrasenya directament al destinatari. Per tant, heu de reenviar la contrasenya manualment al destinatari.", + "Password to access »%s« shared with %s" : "Contrasenya d'accés »%s« compartit amb %s", "This is the password: %s" : "Aquesta és la contrasenya:%s", "You can choose a different password at any time in the share dialog." : "Podeu triar una contrasenya diferent en qualsevol moment al diàleg d'accions.", "Could not find share" : "No s'ha pogut trobar la compartició", diff --git a/apps/sharebymail/l10n/ca.json b/apps/sharebymail/l10n/ca.json index c5254f91fd0..6e0981ab4e3 100644 --- a/apps/sharebymail/l10n/ca.json +++ b/apps/sharebymail/l10n/ca.json @@ -21,12 +21,12 @@ "Click the button below to open it." : "Feu clic al botó següent per obrir-lo.", "Open »%s«" : "Obert »%s«", "%s via %s" : "%svia%s", - "Password to access »%s« shared to you by %s" : "Contrasenya d'accés »%s« compartida per vostè %s", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%scompartit »%s« amb tu. Heu d'haver rebut un correu independent amb un enllaç per accedir-hi.", + "Password to access »%s« shared to you by %s" : "Contrasenya d'accés »%s« compartida per vostè %s", "Password to access »%s«" : "Contrasenya d'accés »%s«", "It is protected with the following password: %s" : "Està protegit amb la següent contrasenya: %s", - "Password to access »%s« shared with %s" : "Contrasenya d'accés »%s« compartit amb %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabeu de compartir »%s« amb %s. La part ja s'ha enviat al destinatari. A causa de les polítiques de seguretat definides per l'administrador de %scada acció, ha de ser protegit per contrasenya i no es permet enviar la contrasenya directament al destinatari. Per tant, heu de reenviar la contrasenya manualment al destinatari.", + "Password to access »%s« shared with %s" : "Contrasenya d'accés »%s« compartit amb %s", "This is the password: %s" : "Aquesta és la contrasenya:%s", "You can choose a different password at any time in the share dialog." : "Podeu triar una contrasenya diferent en qualsevol moment al diàleg d'accions.", "Could not find share" : "No s'ha pogut trobar la compartició", diff --git a/apps/sharebymail/l10n/cs.js b/apps/sharebymail/l10n/cs.js index e3231c6a65a..b2cbfa08f41 100644 --- a/apps/sharebymail/l10n/cs.js +++ b/apps/sharebymail/l10n/cs.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Pro otevření kliknětena tlačítko níže.", "Open »%s«" : "Otevřít »%s«", "%s via %s" : "%s přes %s", - "Password to access »%s« shared to you by %s" : "Heslo pro přístup k »%s« (vám nasdílel(a) %s)", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s s vámi sdílel(a) %s.", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s s vámi sdílel(a) »%s«. Již jste měli dostat e-mail s přístupovými údaji.", + "Password to access »%s« shared to you by %s" : "Heslo pro přístup k »%s« (vám nasdílel(a) %s)", "Password to access »%s«" : "Heslo pro přístup k »%s«", "It is protected with the following password: %s" : "Je chráněn následujícím heslem: %s", - "Password to access »%s« shared with %s" : "Heslo pro přístup k »%s« sdíleno s %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Právě jste s »%s» nasdílel(a) %s. Sdílení bylo již příjemci zasláno. Kvůli bezpečnostní politice nastavené administrátorem %s musí být každé sdílení chráněno heslem a toto heslo nemůže být příjemci zasláno přímo. Kvůli tomu ho budete muset manuálně přeposlat.", + "Password to access »%s« shared with %s" : "Heslo pro přístup k »%s« sdíleno s %s", "This is the password: %s" : "Toto je heslo: %s", "You can choose a different password at any time in the share dialog." : "V dialogu sdílení můžete kdykoliv vybrat jiné heslo.", "Could not find share" : "Nelze nalézt sdílení", diff --git a/apps/sharebymail/l10n/cs.json b/apps/sharebymail/l10n/cs.json index 7758949bd0f..80b4476b45d 100644 --- a/apps/sharebymail/l10n/cs.json +++ b/apps/sharebymail/l10n/cs.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Pro otevření kliknětena tlačítko níže.", "Open »%s«" : "Otevřít »%s«", "%s via %s" : "%s přes %s", - "Password to access »%s« shared to you by %s" : "Heslo pro přístup k »%s« (vám nasdílel(a) %s)", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s s vámi sdílel(a) %s.", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s s vámi sdílel(a) »%s«. Již jste měli dostat e-mail s přístupovými údaji.", + "Password to access »%s« shared to you by %s" : "Heslo pro přístup k »%s« (vám nasdílel(a) %s)", "Password to access »%s«" : "Heslo pro přístup k »%s«", "It is protected with the following password: %s" : "Je chráněn následujícím heslem: %s", - "Password to access »%s« shared with %s" : "Heslo pro přístup k »%s« sdíleno s %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Právě jste s »%s» nasdílel(a) %s. Sdílení bylo již příjemci zasláno. Kvůli bezpečnostní politice nastavené administrátorem %s musí být každé sdílení chráněno heslem a toto heslo nemůže být příjemci zasláno přímo. Kvůli tomu ho budete muset manuálně přeposlat.", + "Password to access »%s« shared with %s" : "Heslo pro přístup k »%s« sdíleno s %s", "This is the password: %s" : "Toto je heslo: %s", "You can choose a different password at any time in the share dialog." : "V dialogu sdílení můžete kdykoliv vybrat jiné heslo.", "Could not find share" : "Nelze nalézt sdílení", diff --git a/apps/sharebymail/l10n/da.js b/apps/sharebymail/l10n/da.js index d37a907e5a2..cd9584039bf 100644 --- a/apps/sharebymail/l10n/da.js +++ b/apps/sharebymail/l10n/da.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klik på knappen nedenunder for at åbne.", "Open »%s«" : "Åbn »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Kodeord for adgang til »%s« delt med dig af %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delte »%s« med dig.\nDu burde allerede have modtaget en email med et link til at tilgå det.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delte »%s« med dig.\nDu burde allerede have modtaget en email med et link til at tilgå det.", + "Password to access »%s« shared to you by %s" : "Kodeord for adgang til »%s« delt med dig af %s", "Password to access »%s«" : "Kodeord for adgang til »%s«", "It is protected with the following password: %s" : "Det er beskyttet af følgende kodeord: %s", - "Password to access »%s« shared with %s" : "Password for adgang til »%s« delt med dig af %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du har delt »%s« med %s. Delingen er allerede sendt til modtageren. Pga. sikkerhedsretninger der er lavet af administratoren af %s hver deling skal beskyttes af et password og det er ikke tilladt at sende passwordet direkte til modtageren. Derfor skal du give passwordet til modtageren manuelt.", + "Password to access »%s« shared with %s" : "Password for adgang til »%s« delt med dig af %s", "This is the password: %s" : "Dette password er: %s", "You can choose a different password at any time in the share dialog." : "Du kan til enhver tid vælge et andet password i delings dialogen.", "Could not find share" : "Kan ikke finde deling", diff --git a/apps/sharebymail/l10n/da.json b/apps/sharebymail/l10n/da.json index 046d4436386..77a40542d31 100644 --- a/apps/sharebymail/l10n/da.json +++ b/apps/sharebymail/l10n/da.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klik på knappen nedenunder for at åbne.", "Open »%s«" : "Åbn »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Kodeord for adgang til »%s« delt med dig af %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delte »%s« med dig.\nDu burde allerede have modtaget en email med et link til at tilgå det.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delte »%s« med dig.\nDu burde allerede have modtaget en email med et link til at tilgå det.", + "Password to access »%s« shared to you by %s" : "Kodeord for adgang til »%s« delt med dig af %s", "Password to access »%s«" : "Kodeord for adgang til »%s«", "It is protected with the following password: %s" : "Det er beskyttet af følgende kodeord: %s", - "Password to access »%s« shared with %s" : "Password for adgang til »%s« delt med dig af %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du har delt »%s« med %s. Delingen er allerede sendt til modtageren. Pga. sikkerhedsretninger der er lavet af administratoren af %s hver deling skal beskyttes af et password og det er ikke tilladt at sende passwordet direkte til modtageren. Derfor skal du give passwordet til modtageren manuelt.", + "Password to access »%s« shared with %s" : "Password for adgang til »%s« delt med dig af %s", "This is the password: %s" : "Dette password er: %s", "You can choose a different password at any time in the share dialog." : "Du kan til enhver tid vælge et andet password i delings dialogen.", "Could not find share" : "Kan ikke finde deling", diff --git a/apps/sharebymail/l10n/de.js b/apps/sharebymail/l10n/de.js index ed08ebf76bf..ad26d8f1c5a 100644 --- a/apps/sharebymail/l10n/de.js +++ b/apps/sharebymail/l10n/de.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klicke zum Öffnen auf die untere Schaltfläche", "Open »%s«" : "Öffne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Dir geteilt.", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s hat »%s« mit Dir geteilt.\nDu solltest eine weitere E-Mail mit dem Link für den Zugriff erhalten haben.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s hat »%s« mit Dir geteilt. Du solltest schon eine E-Mail mit einem Link erhalten haben um darauf zu zugreifen. ", + "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Dir geteilt.", "Password to access »%s«" : "Passwort um auf »%s« zu zugreifen", "It is protected with the following password: %s" : "Dies ist mit dem folgendem Passwort geschützt: %s", - "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du hast »%s« mit %s geteilt. Die Freigabe wurde an den Empfenger gesandt. Aufgrund der Sicherheits-Richtlinien die vom Administrator von %svorgegeben wurden, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu versenden. Aus diesem Grund musst Du das Passwort selbst an den Empfänger senden.", + "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "This is the password: %s" : "Das Passwort lautet: %s", "You can choose a different password at any time in the share dialog." : "Im Teilen-Dialog kannst Du jederzeit ein anderes Passwort wählen.", "Could not find share" : "Freigabe konnte nicht gefunden werden", diff --git a/apps/sharebymail/l10n/de.json b/apps/sharebymail/l10n/de.json index 367699482d9..64c6ac197ea 100644 --- a/apps/sharebymail/l10n/de.json +++ b/apps/sharebymail/l10n/de.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klicke zum Öffnen auf die untere Schaltfläche", "Open »%s«" : "Öffne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Dir geteilt.", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s hat »%s« mit Dir geteilt.\nDu solltest eine weitere E-Mail mit dem Link für den Zugriff erhalten haben.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s hat »%s« mit Dir geteilt. Du solltest schon eine E-Mail mit einem Link erhalten haben um darauf zu zugreifen. ", + "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Dir geteilt.", "Password to access »%s«" : "Passwort um auf »%s« zu zugreifen", "It is protected with the following password: %s" : "Dies ist mit dem folgendem Passwort geschützt: %s", - "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du hast »%s« mit %s geteilt. Die Freigabe wurde an den Empfenger gesandt. Aufgrund der Sicherheits-Richtlinien die vom Administrator von %svorgegeben wurden, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu versenden. Aus diesem Grund musst Du das Passwort selbst an den Empfänger senden.", + "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "This is the password: %s" : "Das Passwort lautet: %s", "You can choose a different password at any time in the share dialog." : "Im Teilen-Dialog kannst Du jederzeit ein anderes Passwort wählen.", "Could not find share" : "Freigabe konnte nicht gefunden werden", diff --git a/apps/sharebymail/l10n/de_DE.js b/apps/sharebymail/l10n/de_DE.js index b078e0be43c..1aa24570027 100644 --- a/apps/sharebymail/l10n/de_DE.js +++ b/apps/sharebymail/l10n/de_DE.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klicken Sie zum Öffnen auf die untere Schaltfläche", "Open »%s«" : "Öffne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Ihnen geteilt.", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s hat »%s« mit Ihnen geteilt.\nSie sollten eine weitere E-Mail mit dem Link für den Zugriff erhalten haben.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s hat »%s« mit Ihnen geteilt. Sie sollten schon eine E-Mail mit einem Link erhalten haben um darauf zu zugreifen. ", + "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Ihnen geteilt.", "Password to access »%s«" : "Passwort um auf »%s« zu zugreifen", "It is protected with the following password: %s" : "Dies ist mit dem folgendem Passwort geschützt: %s", - "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Sie haben »%s« mit %s geteilt. Die Freigabe wurde an den Empfenger gesandt. Aufgrund der Sicherheits-Richtlinien die vom Administrator von %svorgegeben wurden, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu versenden. Aus diesem Grund müssen Sie Passwort selbst an den Empfänger senden.", + "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "This is the password: %s" : "Das Passwort lautet: %s", "You can choose a different password at any time in the share dialog." : "Im Teilen-Dialog können Sie jederzeit ein anderes Passwort wählen.", "Could not find share" : "Freigabe konnte nicht gefunden werden", diff --git a/apps/sharebymail/l10n/de_DE.json b/apps/sharebymail/l10n/de_DE.json index 62aeb5df736..6cc73b38876 100644 --- a/apps/sharebymail/l10n/de_DE.json +++ b/apps/sharebymail/l10n/de_DE.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klicken Sie zum Öffnen auf die untere Schaltfläche", "Open »%s«" : "Öffne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Ihnen geteilt.", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s hat »%s« mit Ihnen geteilt.\nSie sollten eine weitere E-Mail mit dem Link für den Zugriff erhalten haben.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s hat »%s« mit Ihnen geteilt. Sie sollten schon eine E-Mail mit einem Link erhalten haben um darauf zu zugreifen. ", + "Password to access »%s« shared to you by %s" : "Das Passwort zum Zugriff auf %s wurde durch %s mit Ihnen geteilt.", "Password to access »%s«" : "Passwort um auf »%s« zu zugreifen", "It is protected with the following password: %s" : "Dies ist mit dem folgendem Passwort geschützt: %s", - "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Sie haben »%s« mit %s geteilt. Die Freigabe wurde an den Empfenger gesandt. Aufgrund der Sicherheits-Richtlinien die vom Administrator von %svorgegeben wurden, benötigt jede Freigabe einen Passwortschutz und es ist nicht zulässig, ein Passwort direkt an den Empfänger zu versenden. Aus diesem Grund müssen Sie Passwort selbst an den Empfänger senden.", + "Password to access »%s« shared with %s" : "Passwort für den Zugriff auf %s, geteilt mit %s", "This is the password: %s" : "Das Passwort lautet: %s", "You can choose a different password at any time in the share dialog." : "Im Teilen-Dialog können Sie jederzeit ein anderes Passwort wählen.", "Could not find share" : "Freigabe konnte nicht gefunden werden", diff --git a/apps/sharebymail/l10n/el.js b/apps/sharebymail/l10n/el.js index 2661f7d11f5..952d5245546 100644 --- a/apps/sharebymail/l10n/el.js +++ b/apps/sharebymail/l10n/el.js @@ -23,13 +23,13 @@ OC.L10N.register( "Click the button below to open it." : "Κάντε κλικ στο παρακάτω κουμπί για να το ανοίξετε.", "Open »%s«" : "Ανοίξτε »%s«", "%s via %s" : "%s μέσω %s", - "Password to access »%s« shared to you by %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε μαζί σας μέσω %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s διαμοιράστηκε »%s« με εσάς.\nΘα πρέπει να έχετε ήδη λάβει ένα ξεχωριστό mail με έναν σύνδεσμο με πρόσβαση σε αυτό.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s διαμοιράστηκε »%s« με εσάς. Θα πρέπει να έχετε ήδη λάβει ένα ξεχωριστό mail με έναν σύνδεσμο με πρόσβαση σε αυτό.", + "Password to access »%s« shared to you by %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε μαζί σας μέσω %s", "Password to access »%s«" : "Συνθηματικό για πρόσβαση στο »%s«", "It is protected with the following password: %s" : "Είναι προστατευμένο με το ακόλουθο συνθηματικό: %s", - "Password to access »%s« shared with %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε με %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Έχετε μόλις διαμοιραστεί »%s« με %s. Ο διαμοιρασμός έχει ήδη σταλθεί στον παραλήπτη. Βάση των πολιτικών ασφαλείας που έχουν ορισθεί από τον διαχειριστή του %s ο κάθε διαμοιρασμός χρειάζεται να προστατεύεται από ένα συνθηματικό και δεν επιτρέπετε να σταλθεί το συνθηματικό απευθείας στον παραλήπτη. Επομένως χρειάζεται να προωθήσετε το συνθηματικό χειροκίνητα στον παραλήπτη.", + "Password to access »%s« shared with %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε με %s", "This is the password: %s" : "Αυτό είναι το συνθηματικό: %s", "You can choose a different password at any time in the share dialog." : "Μπορείτε να διαλέξετε ένα διαφορετικό συνθηματικό οποιαδήποτε στιγμή στον διάλογο διαμοιρασμού.", "Could not find share" : "Αδυναμία εύρεσης κοινόχρηστου", diff --git a/apps/sharebymail/l10n/el.json b/apps/sharebymail/l10n/el.json index e2f80276367..f8d942c000f 100644 --- a/apps/sharebymail/l10n/el.json +++ b/apps/sharebymail/l10n/el.json @@ -21,13 +21,13 @@ "Click the button below to open it." : "Κάντε κλικ στο παρακάτω κουμπί για να το ανοίξετε.", "Open »%s«" : "Ανοίξτε »%s«", "%s via %s" : "%s μέσω %s", - "Password to access »%s« shared to you by %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε μαζί σας μέσω %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s διαμοιράστηκε »%s« με εσάς.\nΘα πρέπει να έχετε ήδη λάβει ένα ξεχωριστό mail με έναν σύνδεσμο με πρόσβαση σε αυτό.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s διαμοιράστηκε »%s« με εσάς. Θα πρέπει να έχετε ήδη λάβει ένα ξεχωριστό mail με έναν σύνδεσμο με πρόσβαση σε αυτό.", + "Password to access »%s« shared to you by %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε μαζί σας μέσω %s", "Password to access »%s«" : "Συνθηματικό για πρόσβαση στο »%s«", "It is protected with the following password: %s" : "Είναι προστατευμένο με το ακόλουθο συνθηματικό: %s", - "Password to access »%s« shared with %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε με %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Έχετε μόλις διαμοιραστεί »%s« με %s. Ο διαμοιρασμός έχει ήδη σταλθεί στον παραλήπτη. Βάση των πολιτικών ασφαλείας που έχουν ορισθεί από τον διαχειριστή του %s ο κάθε διαμοιρασμός χρειάζεται να προστατεύεται από ένα συνθηματικό και δεν επιτρέπετε να σταλθεί το συνθηματικό απευθείας στον παραλήπτη. Επομένως χρειάζεται να προωθήσετε το συνθηματικό χειροκίνητα στον παραλήπτη.", + "Password to access »%s« shared with %s" : "Συνθηματικό για πρόσβαση στο »%s« διαμοιράστηκε με %s", "This is the password: %s" : "Αυτό είναι το συνθηματικό: %s", "You can choose a different password at any time in the share dialog." : "Μπορείτε να διαλέξετε ένα διαφορετικό συνθηματικό οποιαδήποτε στιγμή στον διάλογο διαμοιρασμού.", "Could not find share" : "Αδυναμία εύρεσης κοινόχρηστου", diff --git a/apps/sharebymail/l10n/en_GB.js b/apps/sharebymail/l10n/en_GB.js index 51de9bcd3e3..463c28fa631 100644 --- a/apps/sharebymail/l10n/en_GB.js +++ b/apps/sharebymail/l10n/en_GB.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Click the button below to open it.", "Open »%s«" : "Open »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Password to access »%s« shared to you by %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s shared »%s« with you. You should have already received a separate mail with a link to access it.", + "Password to access »%s« shared to you by %s" : "Password to access »%s« shared to you by %s", "Password to access »%s«" : "Password to access »%s«", "It is protected with the following password: %s" : "It is protected with the following password: %s", - "Password to access »%s« shared with %s" : "Password to access »%s« shared with %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.", + "Password to access »%s« shared with %s" : "Password to access »%s« shared with %s", "This is the password: %s" : "This is the password: %s", "You can choose a different password at any time in the share dialog." : "You can choose a different password at any time in the share dialog.", "Could not find share" : "Could not find share", diff --git a/apps/sharebymail/l10n/en_GB.json b/apps/sharebymail/l10n/en_GB.json index 8ba45b8fa2c..5b9d653745c 100644 --- a/apps/sharebymail/l10n/en_GB.json +++ b/apps/sharebymail/l10n/en_GB.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Click the button below to open it.", "Open »%s«" : "Open »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Password to access »%s« shared to you by %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s shared »%s« with you. You should have already received a separate mail with a link to access it.", + "Password to access »%s« shared to you by %s" : "Password to access »%s« shared to you by %s", "Password to access »%s«" : "Password to access »%s«", "It is protected with the following password: %s" : "It is protected with the following password: %s", - "Password to access »%s« shared with %s" : "Password to access »%s« shared with %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.", + "Password to access »%s« shared with %s" : "Password to access »%s« shared with %s", "This is the password: %s" : "This is the password: %s", "You can choose a different password at any time in the share dialog." : "You can choose a different password at any time in the share dialog.", "Could not find share" : "Could not find share", diff --git a/apps/sharebymail/l10n/es.js b/apps/sharebymail/l10n/es.js index f205576ac9c..3f01dc6f3fe 100644 --- a/apps/sharebymail/l10n/es.js +++ b/apps/sharebymail/l10n/es.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Haga click en el botón debajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s por %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con un enlace para acceder.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« con usted. Debería haber recibido un mensaje de correo separado con un enlace para abrirlo.", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "Se ha compartido con %s una contraseña para acceder a »%s«", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Usted acaba de compartir »%s« con %s. El recurso compartido ya fue enviado al destinatario. Debido a las reglas de seguridad definadas por el administrador de %s cada recurso compartido necesita ser protegido por una contraseña y no esta permitido que usted mande la contraseña directamente al destinatario. Por eso, usted necesita mandar la contraseña manualmente al destinatario.", + "Password to access »%s« shared with %s" : "Se ha compartido con %s una contraseña para acceder a »%s«", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en el diálogo de compartir.", "Could not find share" : "No se pudo encontrar el recurso compartido", diff --git a/apps/sharebymail/l10n/es.json b/apps/sharebymail/l10n/es.json index 126ec78cbf2..1faa382564d 100644 --- a/apps/sharebymail/l10n/es.json +++ b/apps/sharebymail/l10n/es.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Haga click en el botón debajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s por %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con un enlace para acceder.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« con usted. Debería haber recibido un mensaje de correo separado con un enlace para abrirlo.", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "Se ha compartido con %s una contraseña para acceder a »%s«", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Usted acaba de compartir »%s« con %s. El recurso compartido ya fue enviado al destinatario. Debido a las reglas de seguridad definadas por el administrador de %s cada recurso compartido necesita ser protegido por una contraseña y no esta permitido que usted mande la contraseña directamente al destinatario. Por eso, usted necesita mandar la contraseña manualmente al destinatario.", + "Password to access »%s« shared with %s" : "Se ha compartido con %s una contraseña para acceder a »%s«", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en el diálogo de compartir.", "Could not find share" : "No se pudo encontrar el recurso compartido", diff --git a/apps/sharebymail/l10n/es_AR.js b/apps/sharebymail/l10n/es_AR.js index 14cc043d919..f2fa571d1cd 100644 --- a/apps/sharebymail/l10n/es_AR.js +++ b/apps/sharebymail/l10n/es_AR.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Haga click en el botón de abajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s vía %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s ", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« con usted.\nDebería haber recibido ya un correo por separado con el link para accederlo. \n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« con usted. Ya debería haber recibido un correo aparte con el link para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s ", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Usted compartió »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesita reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puede elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", "Could not find share" : "No fue posible encontrar el elemento compartido", diff --git a/apps/sharebymail/l10n/es_AR.json b/apps/sharebymail/l10n/es_AR.json index 4b27cbe5782..d7c9861e44b 100644 --- a/apps/sharebymail/l10n/es_AR.json +++ b/apps/sharebymail/l10n/es_AR.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Haga click en el botón de abajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s vía %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s ", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« con usted.\nDebería haber recibido ya un correo por separado con el link para accederlo. \n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« con usted. Ya debería haber recibido un correo aparte con el link para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido con usted por %s ", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Usted compartió »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesita reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puede elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", "Could not find share" : "No fue posible encontrar el elemento compartido", diff --git a/apps/sharebymail/l10n/es_MX.js b/apps/sharebymail/l10n/es_MX.js index 9dc5ee4b55d..92f61e8f63e 100644 --- a/apps/sharebymail/l10n/es_MX.js +++ b/apps/sharebymail/l10n/es_MX.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s vía %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con la liga para accederlo. \n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« contigo. Ya deberías haber recibido un correo aparte con la liga para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesitas reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", "Could not find share" : "No fue posible encontrar el elemento compartido", diff --git a/apps/sharebymail/l10n/es_MX.json b/apps/sharebymail/l10n/es_MX.json index 3cc7b9a4899..43a4bc87eb2 100644 --- a/apps/sharebymail/l10n/es_MX.json +++ b/apps/sharebymail/l10n/es_MX.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s vía %s", - "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con la liga para accederlo. \n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« contigo. Ya deberías haber recibido un correo aparte con la liga para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", "Password to access »%s«" : "Contraseña para acceder »%s«", "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", - "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesitas reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", "This is the password: %s" : "Esta es la contraseña: %s", "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", "Could not find share" : "No fue posible encontrar el elemento compartido", diff --git a/apps/sharebymail/l10n/fr.js b/apps/sharebymail/l10n/fr.js index 8a022b5afcd..d823ae21cf2 100644 --- a/apps/sharebymail/l10n/fr.js +++ b/apps/sharebymail/l10n/fr.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Cliquez sur le bouton ci-dessous pour l'ouvrir.", "Open »%s«" : "Ouvrir «%s»", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Mot de passe pour accèder à «%s» partagé par %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s a partagé «%s» avec vous.\nVous avez normalement déjà reçu un autre email avec un lien pour y accéder.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s a partagé «%s» avec vous. Vous avez normalement déjà reçu un autre email avec un lien pour y accéder.", + "Password to access »%s« shared to you by %s" : "Mot de passe pour accèder à «%s» partagé par %s", "Password to access »%s«" : "Mot de passe pour accèder à «%s»", "It is protected with the following password: %s" : "Il est protégé avec le mot de passe suivant : %s", - "Password to access »%s« shared with %s" : "Mot de passe pour accèder à «%s» partagé avec %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Vous venez de partager «%s» avec %s. Le partage a déjà été envoyé au destinataire. En raison de la politique de sécurité définie par l'administrateur de %s, chaque partage a besoin d'être protégé par mot de passe et il n'est pas autorisé d'envoyer le mot de passe directement au destinataire. C'est pourquoi vous devez transmettre le mot de passe manuellement au destinataire.", + "Password to access »%s« shared with %s" : "Mot de passe pour accèder à «%s» partagé avec %s", "This is the password: %s" : "Voici le mot de passe : %s", "You can choose a different password at any time in the share dialog." : "Vous pouvez choisir un mot de passe différent à n'importe quel moment dans la boîte de dialogue de partage.", "Could not find share" : "Impossible de trouver le partage", diff --git a/apps/sharebymail/l10n/fr.json b/apps/sharebymail/l10n/fr.json index 98f14cdb717..ed1df58468b 100644 --- a/apps/sharebymail/l10n/fr.json +++ b/apps/sharebymail/l10n/fr.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Cliquez sur le bouton ci-dessous pour l'ouvrir.", "Open »%s«" : "Ouvrir «%s»", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Mot de passe pour accèder à «%s» partagé par %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s a partagé «%s» avec vous.\nVous avez normalement déjà reçu un autre email avec un lien pour y accéder.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s a partagé «%s» avec vous. Vous avez normalement déjà reçu un autre email avec un lien pour y accéder.", + "Password to access »%s« shared to you by %s" : "Mot de passe pour accèder à «%s» partagé par %s", "Password to access »%s«" : "Mot de passe pour accèder à «%s»", "It is protected with the following password: %s" : "Il est protégé avec le mot de passe suivant : %s", - "Password to access »%s« shared with %s" : "Mot de passe pour accèder à «%s» partagé avec %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Vous venez de partager «%s» avec %s. Le partage a déjà été envoyé au destinataire. En raison de la politique de sécurité définie par l'administrateur de %s, chaque partage a besoin d'être protégé par mot de passe et il n'est pas autorisé d'envoyer le mot de passe directement au destinataire. C'est pourquoi vous devez transmettre le mot de passe manuellement au destinataire.", + "Password to access »%s« shared with %s" : "Mot de passe pour accèder à «%s» partagé avec %s", "This is the password: %s" : "Voici le mot de passe : %s", "You can choose a different password at any time in the share dialog." : "Vous pouvez choisir un mot de passe différent à n'importe quel moment dans la boîte de dialogue de partage.", "Could not find share" : "Impossible de trouver le partage", diff --git a/apps/sharebymail/l10n/is.js b/apps/sharebymail/l10n/is.js index 1a1a4feb92e..6fc01805d9b 100644 --- a/apps/sharebymail/l10n/is.js +++ b/apps/sharebymail/l10n/is.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Smelltu á tengilinn hér fyrir neðan til að opna það.", "Open »%s«" : "Opna »%s«", "%s via %s" : "%s með %s", - "Password to access »%s« shared to you by %s" : "Lykilorð fyrir aðgang að »%s« deilt með þér af %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s deildi »%s« með þér.\nÞú ættir að hafa fengið sérstakan tölvupóst með tengli sem vísar á gögnin.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s deildi »%s« með þér.\nÞú ættir að hafa fengið sérstakan tölvupóst með tengli sem vísar á gögnin.", + "Password to access »%s« shared to you by %s" : "Lykilorð fyrir aðgang að »%s« deilt með þér af %s", "Password to access »%s«" : "Lykilorð fyrir aðgang að »%s«", "It is protected with the following password: %s" : "Það er varið með eftirfarandi lykilorði: %s", - "Password to access »%s« shared with %s" : "Lykilorð fyrir aðgang að »%s« deilt með %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Þú varst í þessu að deila »%s« með %s. Sameignin var þegar send til viðtakandans. Vegna öryggisskilmála sem skilgreindir hafa verið af kerfisstjóra %s þarf hver sameign að vera varin með lykilorði og að ekki er leyfilegt að senda það lykilorð beint til viðtakandans. Því er nauðsynlegt að þú homir lykilorðinu beint til sjálfs viðtakandans.", + "Password to access »%s« shared with %s" : "Lykilorð fyrir aðgang að »%s« deilt með %s", "This is the password: %s" : "Þetta er lykilorðið: %s", "You can choose a different password at any time in the share dialog." : "Þú getur hvenær sem er valið annað lykilorð með því að fara í deilingargluggann.", "Could not find share" : "Gat ekki fundið sameign", diff --git a/apps/sharebymail/l10n/is.json b/apps/sharebymail/l10n/is.json index 8ed632b9424..e4ce4e63092 100644 --- a/apps/sharebymail/l10n/is.json +++ b/apps/sharebymail/l10n/is.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Smelltu á tengilinn hér fyrir neðan til að opna það.", "Open »%s«" : "Opna »%s«", "%s via %s" : "%s með %s", - "Password to access »%s« shared to you by %s" : "Lykilorð fyrir aðgang að »%s« deilt með þér af %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s deildi »%s« með þér.\nÞú ættir að hafa fengið sérstakan tölvupóst með tengli sem vísar á gögnin.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s deildi »%s« með þér.\nÞú ættir að hafa fengið sérstakan tölvupóst með tengli sem vísar á gögnin.", + "Password to access »%s« shared to you by %s" : "Lykilorð fyrir aðgang að »%s« deilt með þér af %s", "Password to access »%s«" : "Lykilorð fyrir aðgang að »%s«", "It is protected with the following password: %s" : "Það er varið með eftirfarandi lykilorði: %s", - "Password to access »%s« shared with %s" : "Lykilorð fyrir aðgang að »%s« deilt með %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Þú varst í þessu að deila »%s« með %s. Sameignin var þegar send til viðtakandans. Vegna öryggisskilmála sem skilgreindir hafa verið af kerfisstjóra %s þarf hver sameign að vera varin með lykilorði og að ekki er leyfilegt að senda það lykilorð beint til viðtakandans. Því er nauðsynlegt að þú homir lykilorðinu beint til sjálfs viðtakandans.", + "Password to access »%s« shared with %s" : "Lykilorð fyrir aðgang að »%s« deilt með %s", "This is the password: %s" : "Þetta er lykilorðið: %s", "You can choose a different password at any time in the share dialog." : "Þú getur hvenær sem er valið annað lykilorð með því að fara í deilingargluggann.", "Could not find share" : "Gat ekki fundið sameign", diff --git a/apps/sharebymail/l10n/it.js b/apps/sharebymail/l10n/it.js index 9fb612b2677..705dd042ff1 100644 --- a/apps/sharebymail/l10n/it.js +++ b/apps/sharebymail/l10n/it.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Fai clic sul pulsante sotto per aprirlo.", "Open »%s«" : "Apri «%s»", "%s via %s" : "%s tramite %s", - "Password to access »%s« shared to you by %s" : "Password per accedere a «%s» condivisa con te da %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s ha condiviso «%s» con te.\nDovresti aver ricevuto un messaggio separato con un collegamento per accedervi.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s ha condiviso «%s» con te. Dovresti aver ricevuto un messaggio separato con un collegamento per accedervi.", + "Password to access »%s« shared to you by %s" : "Password per accedere a «%s» condivisa con te da %s", "Password to access »%s«" : "Password per accedere a «%s»", "It is protected with the following password: %s" : "È protetta con la password seguente: %s", - "Password to access »%s« shared with %s" : "Password per accedere a «%s» condivisa con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Hai appena condiviso «%s» con %s. La condivisione è stata già inviata al destinatario. A causa dei criteri di sicurezza definiti dall'amministratore di %s, ogni condivisione deve essere protetta da password e non è consentito l'invio diretto della password al destinatario. Perciò, devi inoltrare manualmente la password al destinatario.", + "Password to access »%s« shared with %s" : "Password per accedere a «%s» condivisa con %s", "This is the password: %s" : "Questa è la password: %s", "You can choose a different password at any time in the share dialog." : "Puoi scegliere una password diversa in qualsiasi momento nella finestra di condivisione.", "Could not find share" : "Non è stato possibile trovare la condivisione", diff --git a/apps/sharebymail/l10n/it.json b/apps/sharebymail/l10n/it.json index e2000275c39..f2096a3e91a 100644 --- a/apps/sharebymail/l10n/it.json +++ b/apps/sharebymail/l10n/it.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Fai clic sul pulsante sotto per aprirlo.", "Open »%s«" : "Apri «%s»", "%s via %s" : "%s tramite %s", - "Password to access »%s« shared to you by %s" : "Password per accedere a «%s» condivisa con te da %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s ha condiviso «%s» con te.\nDovresti aver ricevuto un messaggio separato con un collegamento per accedervi.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s ha condiviso «%s» con te. Dovresti aver ricevuto un messaggio separato con un collegamento per accedervi.", + "Password to access »%s« shared to you by %s" : "Password per accedere a «%s» condivisa con te da %s", "Password to access »%s«" : "Password per accedere a «%s»", "It is protected with the following password: %s" : "È protetta con la password seguente: %s", - "Password to access »%s« shared with %s" : "Password per accedere a «%s» condivisa con %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Hai appena condiviso «%s» con %s. La condivisione è stata già inviata al destinatario. A causa dei criteri di sicurezza definiti dall'amministratore di %s, ogni condivisione deve essere protetta da password e non è consentito l'invio diretto della password al destinatario. Perciò, devi inoltrare manualmente la password al destinatario.", + "Password to access »%s« shared with %s" : "Password per accedere a «%s» condivisa con %s", "This is the password: %s" : "Questa è la password: %s", "You can choose a different password at any time in the share dialog." : "Puoi scegliere una password diversa in qualsiasi momento nella finestra di condivisione.", "Could not find share" : "Non è stato possibile trovare la condivisione", diff --git a/apps/sharebymail/l10n/ja.js b/apps/sharebymail/l10n/ja.js index 91d1000194a..29fb7e59be8 100644 --- a/apps/sharebymail/l10n/ja.js +++ b/apps/sharebymail/l10n/ja.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "クリックすると下が開きます", "Open »%s«" : "»%s«を開く", "%s via %s" : "%s に %s から", - "Password to access »%s« shared to you by %s" : "%sへの共有アクセスのパスワードが %s から共有されました", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s により »%s« が共有されました\nアクセスするためのリンクは別途メールで受信してください。\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s により »%s« が共有されました。アクセスするためのリンクは別途メールで受信してください。", + "Password to access »%s« shared to you by %s" : "%sへの共有アクセスのパスワードが %s から共有されました", "Password to access »%s«" : "»%s« にアクセスするパスワード", "It is protected with the following password: %s" : "次のパスワードで保護されています: %s", - "Password to access »%s« shared with %s" : "»%s« にアクセスするパスワードが %s から共有されました", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%sを%sと共有しました。共有は受信者に送信されています。セキュリティポリシーにより%sの管理者が共有はパスワードで保護されるべきで、直接受信者に送信するべきではないと定めている場合、手動で受信者にメールを転送する必要があります。", + "Password to access »%s« shared with %s" : "»%s« にアクセスするパスワードが %s から共有されました", "This is the password: %s" : "パスワード: %s", "You can choose a different password at any time in the share dialog." : "共有ダイアログからいつでも違うパスワードに変更できます。", "Could not find share" : "共有が見つかりませんでした", diff --git a/apps/sharebymail/l10n/ja.json b/apps/sharebymail/l10n/ja.json index 668810a581b..61c31c40e7d 100644 --- a/apps/sharebymail/l10n/ja.json +++ b/apps/sharebymail/l10n/ja.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "クリックすると下が開きます", "Open »%s«" : "»%s«を開く", "%s via %s" : "%s に %s から", - "Password to access »%s« shared to you by %s" : "%sへの共有アクセスのパスワードが %s から共有されました", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s により »%s« が共有されました\nアクセスするためのリンクは別途メールで受信してください。\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s により »%s« が共有されました。アクセスするためのリンクは別途メールで受信してください。", + "Password to access »%s« shared to you by %s" : "%sへの共有アクセスのパスワードが %s から共有されました", "Password to access »%s«" : "»%s« にアクセスするパスワード", "It is protected with the following password: %s" : "次のパスワードで保護されています: %s", - "Password to access »%s« shared with %s" : "»%s« にアクセスするパスワードが %s から共有されました", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%sを%sと共有しました。共有は受信者に送信されています。セキュリティポリシーにより%sの管理者が共有はパスワードで保護されるべきで、直接受信者に送信するべきではないと定めている場合、手動で受信者にメールを転送する必要があります。", + "Password to access »%s« shared with %s" : "»%s« にアクセスするパスワードが %s から共有されました", "This is the password: %s" : "パスワード: %s", "You can choose a different password at any time in the share dialog." : "共有ダイアログからいつでも違うパスワードに変更できます。", "Could not find share" : "共有が見つかりませんでした", diff --git a/apps/sharebymail/l10n/ko.js b/apps/sharebymail/l10n/ko.js index b3f275e47f2..3c0d9e5a270 100644 --- a/apps/sharebymail/l10n/ko.js +++ b/apps/sharebymail/l10n/ko.js @@ -23,13 +23,13 @@ OC.L10N.register( "Click the button below to open it." : "아래 단추를 눌러서 열 수 있습니다.", "Open »%s«" : "%s 열기", "%s via %s" : "%s(%s 경유)", - "Password to access »%s« shared to you by %s" : "%s에 접근할 수 있는 암호를 %s 님이 보냄", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s 님이 %s을(를) 공유했습니다.\n접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s 님이 %s을(를) 공유했습니다. 접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.", + "Password to access »%s« shared to you by %s" : "%s에 접근할 수 있는 암호를 %s 님이 보냄", "Password to access »%s«" : "%s에 접근할 수 있는 암호", "It is protected with the following password: %s" : "다음 암호로 보호되어 있습니다: %s", - "Password to access »%s« shared with %s" : "%s에 접근할 수 있는 암호를 %s 님과 공유함", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%s을(를) %s 님과 공유했습니다. 공유 정보를 이메일로 전송했습니다. %s 관리자의 보안 정책에 의하여 각각 공유 항목은 암호로 보호되어야 하며, 해당 암호를 직접 이메일로 보낼 수 없습니다. 수신자에게 이 암호를 다른 방법으로 직접 전달하십시오.", + "Password to access »%s« shared with %s" : "%s에 접근할 수 있는 암호를 %s 님과 공유함", "This is the password: %s" : "다음은 암호입니다: %s", "You can choose a different password at any time in the share dialog." : "공유 대화 상자에서 언제든지 다른 암호를 선택할 수 있습니다.", "Could not find share" : "공유를 찾을 수 없음", diff --git a/apps/sharebymail/l10n/ko.json b/apps/sharebymail/l10n/ko.json index 26af9862c7a..17c438f2a49 100644 --- a/apps/sharebymail/l10n/ko.json +++ b/apps/sharebymail/l10n/ko.json @@ -21,13 +21,13 @@ "Click the button below to open it." : "아래 단추를 눌러서 열 수 있습니다.", "Open »%s«" : "%s 열기", "%s via %s" : "%s(%s 경유)", - "Password to access »%s« shared to you by %s" : "%s에 접근할 수 있는 암호를 %s 님이 보냄", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s 님이 %s을(를) 공유했습니다.\n접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s 님이 %s을(를) 공유했습니다. 접근할 수 있는 링크가 포함된 별도의 이메일을 같이 전송했습니다.", + "Password to access »%s« shared to you by %s" : "%s에 접근할 수 있는 암호를 %s 님이 보냄", "Password to access »%s«" : "%s에 접근할 수 있는 암호", "It is protected with the following password: %s" : "다음 암호로 보호되어 있습니다: %s", - "Password to access »%s« shared with %s" : "%s에 접근할 수 있는 암호를 %s 님과 공유함", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "%s을(를) %s 님과 공유했습니다. 공유 정보를 이메일로 전송했습니다. %s 관리자의 보안 정책에 의하여 각각 공유 항목은 암호로 보호되어야 하며, 해당 암호를 직접 이메일로 보낼 수 없습니다. 수신자에게 이 암호를 다른 방법으로 직접 전달하십시오.", + "Password to access »%s« shared with %s" : "%s에 접근할 수 있는 암호를 %s 님과 공유함", "This is the password: %s" : "다음은 암호입니다: %s", "You can choose a different password at any time in the share dialog." : "공유 대화 상자에서 언제든지 다른 암호를 선택할 수 있습니다.", "Could not find share" : "공유를 찾을 수 없음", diff --git a/apps/sharebymail/l10n/lt_LT.js b/apps/sharebymail/l10n/lt_LT.js index 2e8465a46c9..2c3fb59305f 100644 --- a/apps/sharebymail/l10n/lt_LT.js +++ b/apps/sharebymail/l10n/lt_LT.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Norėdami atverti failą, spustelėkite mygtuką žemiau.", "Open »%s«" : "Atverti »%s«", "%s via %s" : "%s per %s", - "Password to access »%s« shared to you by %s" : "Slaptažodis, skirtas prieigai prie »%s« pasidalintas su jumis per %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s pasidalintas »%s« su Jumis.\nJūs turėjote gauti elektroninį laišką su prieigos nuoroda.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s pasidalintas »%s« su Jumis. Jūs turėjote gauti elektroninį laišką su prieigos nuoroda.", + "Password to access »%s« shared to you by %s" : "Slaptažodis, skirtas prieigai prie »%s« pasidalintas su jumis per %s", "Password to access »%s«" : "Slaptažodis, skirtas prieigai prie »%s«", "It is protected with the following password: %s" : "Apsaugotas slaptažodžiu: %s", - "Password to access »%s« shared with %s" : "Slaptažodis prieigai prie »%s« pasidalintas su %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Jūs ką tik pasidalinote »%s« su %s. Dalinimosi nuoroda buvo išsiųsta adresatui. Pagal saugumo taisykles, kurias nustatė %s administratorius, kiekvienas dalinimasis turi būti apsaugotas slaptažodžiu. Kadangi slaptažodžio negalima tiesiogiai siųsti adresatui, jūs turite jį perduoti gyvai.", + "Password to access »%s« shared with %s" : "Slaptažodis prieigai prie »%s« pasidalintas su %s", "This is the password: %s" : "Štai yra slaptažodis: %s", "You can choose a different password at any time in the share dialog." : "Bendrinimo dialoge bet kuriuo metu galite pasirinkti kitą slaptažodį.", "Could not find share" : "Nepavyko rasti viešinio", diff --git a/apps/sharebymail/l10n/lt_LT.json b/apps/sharebymail/l10n/lt_LT.json index e1859589e08..625265c468b 100644 --- a/apps/sharebymail/l10n/lt_LT.json +++ b/apps/sharebymail/l10n/lt_LT.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Norėdami atverti failą, spustelėkite mygtuką žemiau.", "Open »%s«" : "Atverti »%s«", "%s via %s" : "%s per %s", - "Password to access »%s« shared to you by %s" : "Slaptažodis, skirtas prieigai prie »%s« pasidalintas su jumis per %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s pasidalintas »%s« su Jumis.\nJūs turėjote gauti elektroninį laišką su prieigos nuoroda.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s pasidalintas »%s« su Jumis. Jūs turėjote gauti elektroninį laišką su prieigos nuoroda.", + "Password to access »%s« shared to you by %s" : "Slaptažodis, skirtas prieigai prie »%s« pasidalintas su jumis per %s", "Password to access »%s«" : "Slaptažodis, skirtas prieigai prie »%s«", "It is protected with the following password: %s" : "Apsaugotas slaptažodžiu: %s", - "Password to access »%s« shared with %s" : "Slaptažodis prieigai prie »%s« pasidalintas su %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Jūs ką tik pasidalinote »%s« su %s. Dalinimosi nuoroda buvo išsiųsta adresatui. Pagal saugumo taisykles, kurias nustatė %s administratorius, kiekvienas dalinimasis turi būti apsaugotas slaptažodžiu. Kadangi slaptažodžio negalima tiesiogiai siųsti adresatui, jūs turite jį perduoti gyvai.", + "Password to access »%s« shared with %s" : "Slaptažodis prieigai prie »%s« pasidalintas su %s", "This is the password: %s" : "Štai yra slaptažodis: %s", "You can choose a different password at any time in the share dialog." : "Bendrinimo dialoge bet kuriuo metu galite pasirinkti kitą slaptažodį.", "Could not find share" : "Nepavyko rasti viešinio", diff --git a/apps/sharebymail/l10n/nb.js b/apps/sharebymail/l10n/nb.js index 6770711a972..e02b698f536 100644 --- a/apps/sharebymail/l10n/nb.js +++ b/apps/sharebymail/l10n/nb.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klikk på knappen nedenfor for å åpne den.", "Open »%s«" : "Åpne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Passord for å benytte »%s« tildelt deg av %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delte «%s» med deg.\nDu skal allerede ha mottatt en annen e-post med en lenke til innholdet.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delte «%s» med deg. Du skal allerede ha mottatt en annen e-post med en lenke til innholdet.", + "Password to access »%s« shared to you by %s" : "Passord for å benytte »%s« tildelt deg av %s", "Password to access »%s«" : "Passord for å benytte »%s«", "It is protected with the following password: %s" : "Den er beskyttet med følgende passord: %s", - "Password to access »%s« shared with %s" : "Passord for å benytte »%s« delt med %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du delte akkurat »%s« med %s. Lageret har allerede blitt sendt til mottakeren. På grunn av sikkerhetspraksisen definert av administratoren for %s må hvert lager beskyttes med et passord, og det tillates ikke sendt direkte til mottakeren. Derfor trenger du å sende passordet manuelt til mottakeren.", + "Password to access »%s« shared with %s" : "Passord for å benytte »%s« delt med %s", "This is the password: %s" : "Dette er passordet: %s", "You can choose a different password at any time in the share dialog." : "Du kan velge et annet passord når som helst i delingsdialogvinduet.", "Could not find share" : "Delingen ble ikke funnet", diff --git a/apps/sharebymail/l10n/nb.json b/apps/sharebymail/l10n/nb.json index 80c0b760b66..c6ba8fb4eff 100644 --- a/apps/sharebymail/l10n/nb.json +++ b/apps/sharebymail/l10n/nb.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klikk på knappen nedenfor for å åpne den.", "Open »%s«" : "Åpne »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Passord for å benytte »%s« tildelt deg av %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delte «%s» med deg.\nDu skal allerede ha mottatt en annen e-post med en lenke til innholdet.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delte «%s» med deg. Du skal allerede ha mottatt en annen e-post med en lenke til innholdet.", + "Password to access »%s« shared to you by %s" : "Passord for å benytte »%s« tildelt deg av %s", "Password to access »%s«" : "Passord for å benytte »%s«", "It is protected with the following password: %s" : "Den er beskyttet med følgende passord: %s", - "Password to access »%s« shared with %s" : "Passord for å benytte »%s« delt med %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du delte akkurat »%s« med %s. Lageret har allerede blitt sendt til mottakeren. På grunn av sikkerhetspraksisen definert av administratoren for %s må hvert lager beskyttes med et passord, og det tillates ikke sendt direkte til mottakeren. Derfor trenger du å sende passordet manuelt til mottakeren.", + "Password to access »%s« shared with %s" : "Passord for å benytte »%s« delt med %s", "This is the password: %s" : "Dette er passordet: %s", "You can choose a different password at any time in the share dialog." : "Du kan velge et annet passord når som helst i delingsdialogvinduet.", "Could not find share" : "Delingen ble ikke funnet", diff --git a/apps/sharebymail/l10n/nl.js b/apps/sharebymail/l10n/nl.js index 9bbeeefdf72..fadb4d8e29e 100644 --- a/apps/sharebymail/l10n/nl.js +++ b/apps/sharebymail/l10n/nl.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klik op onderstaande link om te openen.", "Open »%s«" : "Open »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Toegangswachtwoord »%s« gedeeld met je door %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%sdeelde »%s« met jou.\nJe moet al een apart bericht hebben ontvangen met een linkje voor toegang.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s deelde »%s« met jou. Je zou al een apart mailbericht moeten hebben ontvangen met een link om er te komen.", + "Password to access »%s« shared to you by %s" : "Toegangswachtwoord »%s« gedeeld met je door %s", "Password to access »%s«" : "Wachtwoord om binnen te komen »%s«", "It is protected with the following password: %s" : "Het is beveiligd met het volgende wachtwoord: %s", - "Password to access »%s« shared with %s" : "Wachtwoord voor toegang »%s« gedeeld met %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Je deelde »%s« met %s. De link is al gestuurd naar de geadresseerde. Vanwege de beveiligingsinstellingen, zoals ingesteld door de beheerder van %s, moet het delen worden beveiligd met een wachtwoord en is het niet toegestaan het wachtwoord rechtstreeks naar de ontvanger te versturen. Hierdoor moet je het wachtwoord zelf handmatig naar de ontvanger sturen.", + "Password to access »%s« shared with %s" : "Wachtwoord voor toegang »%s« gedeeld met %s", "This is the password: %s" : "Dit is het wachtwoord: %s", "You can choose a different password at any time in the share dialog." : "Je kunt in de Delen-dialoog altijd een ander wachtwoord kiezen.", "Could not find share" : "Kon gedeeld niet vinden", diff --git a/apps/sharebymail/l10n/nl.json b/apps/sharebymail/l10n/nl.json index fbd47e92bbb..b88e61c6210 100644 --- a/apps/sharebymail/l10n/nl.json +++ b/apps/sharebymail/l10n/nl.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klik op onderstaande link om te openen.", "Open »%s«" : "Open »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Toegangswachtwoord »%s« gedeeld met je door %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%sdeelde »%s« met jou.\nJe moet al een apart bericht hebben ontvangen met een linkje voor toegang.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s deelde »%s« met jou. Je zou al een apart mailbericht moeten hebben ontvangen met een link om er te komen.", + "Password to access »%s« shared to you by %s" : "Toegangswachtwoord »%s« gedeeld met je door %s", "Password to access »%s«" : "Wachtwoord om binnen te komen »%s«", "It is protected with the following password: %s" : "Het is beveiligd met het volgende wachtwoord: %s", - "Password to access »%s« shared with %s" : "Wachtwoord voor toegang »%s« gedeeld met %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Je deelde »%s« met %s. De link is al gestuurd naar de geadresseerde. Vanwege de beveiligingsinstellingen, zoals ingesteld door de beheerder van %s, moet het delen worden beveiligd met een wachtwoord en is het niet toegestaan het wachtwoord rechtstreeks naar de ontvanger te versturen. Hierdoor moet je het wachtwoord zelf handmatig naar de ontvanger sturen.", + "Password to access »%s« shared with %s" : "Wachtwoord voor toegang »%s« gedeeld met %s", "This is the password: %s" : "Dit is het wachtwoord: %s", "You can choose a different password at any time in the share dialog." : "Je kunt in de Delen-dialoog altijd een ander wachtwoord kiezen.", "Could not find share" : "Kon gedeeld niet vinden", diff --git a/apps/sharebymail/l10n/pl.js b/apps/sharebymail/l10n/pl.js index 3602b8b23f8..a267d0b8daf 100644 --- a/apps/sharebymail/l10n/pl.js +++ b/apps/sharebymail/l10n/pl.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Kliknij przycisk poniżej, żeby to otworzyć.", "Open »%s«" : "Otwórz »%s«", "%s via %s" : "%s przez %s", - "Password to access »%s« shared to you by %s" : "Hasło dostępu do »%s« jest udostępnione Tobie przez %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s współdzieli z Tobą »%s«.\nPowinieneś już otrzymać osobny e-mail zawierający link dostępowy.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s współdzieli »%s« z Tobą. Powinieneś już otrzymać osobnego e-maila z linkiem do dostępu.", + "Password to access »%s« shared to you by %s" : "Hasło dostępu do »%s« jest udostępnione Tobie przez %s", "Password to access »%s«" : "Hasło do dostępu »%s«", "It is protected with the following password: %s" : "To jest chronione z nstępującym hasłem: %s", - "Password to access »%s« shared with %s" : "Hasło dostępu do »%s« zostało udostępnione %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Właśnie udostępniłeś »%s« użytkownikowi %s. Udostępniony udział został już wysłany do odbiorcy, jednak zgodnie z polityką bezpieczeństwa ustanowioną przez administratora %s każdy udział musi zostać zabezpieczony hasłem. Wysyłanie hasła bezpośrednio do odbiorcy jest zabronione, dlatego też musisz mu je przekazać w klasyczny sposób.", + "Password to access »%s« shared with %s" : "Hasło dostępu do »%s« zostało udostępnione %s", "This is the password: %s" : "To jest hasło: %s", "You can choose a different password at any time in the share dialog." : "Możesz zmienić hasło w okienku współdzielenia w dowolnym momencie.", "Could not find share" : "Nie można odnaleźć współdzielonego obiektu", diff --git a/apps/sharebymail/l10n/pl.json b/apps/sharebymail/l10n/pl.json index 7a04b7c6a6b..f9e72eb5f69 100644 --- a/apps/sharebymail/l10n/pl.json +++ b/apps/sharebymail/l10n/pl.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Kliknij przycisk poniżej, żeby to otworzyć.", "Open »%s«" : "Otwórz »%s«", "%s via %s" : "%s przez %s", - "Password to access »%s« shared to you by %s" : "Hasło dostępu do »%s« jest udostępnione Tobie przez %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s współdzieli z Tobą »%s«.\nPowinieneś już otrzymać osobny e-mail zawierający link dostępowy.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s współdzieli »%s« z Tobą. Powinieneś już otrzymać osobnego e-maila z linkiem do dostępu.", + "Password to access »%s« shared to you by %s" : "Hasło dostępu do »%s« jest udostępnione Tobie przez %s", "Password to access »%s«" : "Hasło do dostępu »%s«", "It is protected with the following password: %s" : "To jest chronione z nstępującym hasłem: %s", - "Password to access »%s« shared with %s" : "Hasło dostępu do »%s« zostało udostępnione %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Właśnie udostępniłeś »%s« użytkownikowi %s. Udostępniony udział został już wysłany do odbiorcy, jednak zgodnie z polityką bezpieczeństwa ustanowioną przez administratora %s każdy udział musi zostać zabezpieczony hasłem. Wysyłanie hasła bezpośrednio do odbiorcy jest zabronione, dlatego też musisz mu je przekazać w klasyczny sposób.", + "Password to access »%s« shared with %s" : "Hasło dostępu do »%s« zostało udostępnione %s", "This is the password: %s" : "To jest hasło: %s", "You can choose a different password at any time in the share dialog." : "Możesz zmienić hasło w okienku współdzielenia w dowolnym momencie.", "Could not find share" : "Nie można odnaleźć współdzielonego obiektu", diff --git a/apps/sharebymail/l10n/pt_BR.js b/apps/sharebymail/l10n/pt_BR.js index 173abe70dc4..d2508731e9e 100644 --- a/apps/sharebymail/l10n/pt_BR.js +++ b/apps/sharebymail/l10n/pt_BR.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Clique no botão abaixo para abrí-lo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Senha para acessar %s compartilhado com você por %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartilhou »%s« com você.\nVocê já deve ter recebido um e-mail com um link para acessá-lo.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartilhou »%s« com você. Você já deve ter recebido um e-mail com um link para acessá-lo.", + "Password to access »%s« shared to you by %s" : "Senha para acessar %s compartilhado com você por %s", "Password to access »%s«" : "Senha para acessar »%s«", "It is protected with the following password: %s" : "Está protegido com a seguinte senha: %s", - "Password to access »%s« shared with %s" : "Senha para acessar »%s« compartilhado com %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Você compartilhou »%s« com %s. O compartilhamento já foi enviado ao destinatário. Devido às políticas de segurança definidas pelo administrador de %s, cada compartilhamento necessita ser protegido por senha e não é permitido enviar a senha diretamente ao destinatário. Portanto você necessita enviar a senha manualmente ao destinatário.", + "Password to access »%s« shared with %s" : "Senha para acessar »%s« compartilhado com %s", "This is the password: %s" : "Essa é a senha: %s", "You can choose a different password at any time in the share dialog." : "Você pode escolher uma senha diferente a qualquer momento no diálogo compartilhamento.", "Could not find share" : "Não foi possível encontrar o compartilhamento", diff --git a/apps/sharebymail/l10n/pt_BR.json b/apps/sharebymail/l10n/pt_BR.json index 8c2964ef257..25c84b332da 100644 --- a/apps/sharebymail/l10n/pt_BR.json +++ b/apps/sharebymail/l10n/pt_BR.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Clique no botão abaixo para abrí-lo.", "Open »%s«" : "Abrir »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Senha para acessar %s compartilhado com você por %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartilhou »%s« com você.\nVocê já deve ter recebido um e-mail com um link para acessá-lo.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartilhou »%s« com você. Você já deve ter recebido um e-mail com um link para acessá-lo.", + "Password to access »%s« shared to you by %s" : "Senha para acessar %s compartilhado com você por %s", "Password to access »%s«" : "Senha para acessar »%s«", "It is protected with the following password: %s" : "Está protegido com a seguinte senha: %s", - "Password to access »%s« shared with %s" : "Senha para acessar »%s« compartilhado com %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Você compartilhou »%s« com %s. O compartilhamento já foi enviado ao destinatário. Devido às políticas de segurança definidas pelo administrador de %s, cada compartilhamento necessita ser protegido por senha e não é permitido enviar a senha diretamente ao destinatário. Portanto você necessita enviar a senha manualmente ao destinatário.", + "Password to access »%s« shared with %s" : "Senha para acessar »%s« compartilhado com %s", "This is the password: %s" : "Essa é a senha: %s", "You can choose a different password at any time in the share dialog." : "Você pode escolher uma senha diferente a qualquer momento no diálogo compartilhamento.", "Could not find share" : "Não foi possível encontrar o compartilhamento", diff --git a/apps/sharebymail/l10n/ru.js b/apps/sharebymail/l10n/ru.js index 5e9db6c57e7..ecbb3381cac 100644 --- a/apps/sharebymail/l10n/ru.js +++ b/apps/sharebymail/l10n/ru.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Для открытия нажмите на кнопку, расположенную ниже.", "Open »%s«" : "Открыть «%s»", "%s via %s" : "%s через %s", - "Password to access »%s« shared to you by %s" : "Пароль для «%s», общий доступ к которому предоставлен Вам пользователем %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s предоставил(а) Вам общий доступ к «%s».\nВы, скорее всего, уже получили отдельное письмо, содержащую ссылку для получения доступа.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s предоставил(а) Вам доступ к «%s». Вы, скорее всего, уже получили отдельное письмо, содержащее ссылку для получения доступа.", + "Password to access »%s« shared to you by %s" : "Пароль для «%s», общий доступ к которому предоставлен Вам пользователем %s", "Password to access »%s«" : "Пароль для доступа «%s»", "It is protected with the following password: %s" : "Доступ защищён следующим паролем: %s", - "Password to access »%s« shared with %s" : "Паролем для доступа к «%s» поделились с %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вы только что предоставили общий доступ к «%s» пользователю %s. Информация о предоставлении доступа была отправлен получателю. В соответствии с политиками безопасности, заданными администратором %s, каждый общий ресурс должен быть защищён паролем, а так же не допускается непосредственное отправление пароля получателю. Поэтому вам потребуется самостоятельно перенаправить пароль получателю.", + "Password to access »%s« shared with %s" : "Паролем для доступа к «%s» поделились с %s", "This is the password: %s" : "Пароль: %s", "You can choose a different password at any time in the share dialog." : "В любой момент можно выбрать другой пароль в диалоге «Общий доступ».", "Could not find share" : "Не удалось найти общий ресурс", diff --git a/apps/sharebymail/l10n/ru.json b/apps/sharebymail/l10n/ru.json index 901e4925866..f5967e67906 100644 --- a/apps/sharebymail/l10n/ru.json +++ b/apps/sharebymail/l10n/ru.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Для открытия нажмите на кнопку, расположенную ниже.", "Open »%s«" : "Открыть «%s»", "%s via %s" : "%s через %s", - "Password to access »%s« shared to you by %s" : "Пароль для «%s», общий доступ к которому предоставлен Вам пользователем %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s предоставил(а) Вам общий доступ к «%s».\nВы, скорее всего, уже получили отдельное письмо, содержащую ссылку для получения доступа.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s предоставил(а) Вам доступ к «%s». Вы, скорее всего, уже получили отдельное письмо, содержащее ссылку для получения доступа.", + "Password to access »%s« shared to you by %s" : "Пароль для «%s», общий доступ к которому предоставлен Вам пользователем %s", "Password to access »%s«" : "Пароль для доступа «%s»", "It is protected with the following password: %s" : "Доступ защищён следующим паролем: %s", - "Password to access »%s« shared with %s" : "Паролем для доступа к «%s» поделились с %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Вы только что предоставили общий доступ к «%s» пользователю %s. Информация о предоставлении доступа была отправлен получателю. В соответствии с политиками безопасности, заданными администратором %s, каждый общий ресурс должен быть защищён паролем, а так же не допускается непосредственное отправление пароля получателю. Поэтому вам потребуется самостоятельно перенаправить пароль получателю.", + "Password to access »%s« shared with %s" : "Паролем для доступа к «%s» поделились с %s", "This is the password: %s" : "Пароль: %s", "You can choose a different password at any time in the share dialog." : "В любой момент можно выбрать другой пароль в диалоге «Общий доступ».", "Could not find share" : "Не удалось найти общий ресурс", diff --git a/apps/sharebymail/l10n/sq.js b/apps/sharebymail/l10n/sq.js index 2d30b819d74..18d251b26a8 100644 --- a/apps/sharebymail/l10n/sq.js +++ b/apps/sharebymail/l10n/sq.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klikoni butonin poshtë për ta hapur.", "Open »%s«" : "Hap »%s«", "%s via %s" : "%s përmes %s", - "Password to access »%s« shared to you by %s" : "Fjalëkalimi për të hyrë »%s« ndarë me ju nda %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%sndau »%s« me ju. \nJu duhet të keni marrë tashmë një mail të veçantë me një lidhje për të aksesuar atë.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s ndau »%s« me ju. Ju duhet të keni marrë tashmë një mail të veçantë me një lidhje për të aksesuar atë.", + "Password to access »%s« shared to you by %s" : "Fjalëkalimi për të hyrë »%s« ndarë me ju nda %s", "Password to access »%s«" : "Fjalëkalimi për akses »%s«", "It is protected with the following password: %s" : "Është i mbrojtur me fjalëkalimin e mëposhtëm: %s", - "Password to access »%s« shared with %s" : "Fjalëkalimi për të hyrë »%s« ndarë me %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Ju sapo ndatë »« me %s%s. Pjesa ishte dërguar tashmë tek marrësi. Për shkak të politikave të sigurisë të përcaktuara nga administratori %s secila ndarje duhet të mbrohet me fjalëkalim dhe nuk lejohet të dërgojë fjalëkalimin drejtpërdrejt te marrësi. Prandaj ju duhet ta kaloni fjalëkalimin manualisht tek marrësi.", + "Password to access »%s« shared with %s" : "Fjalëkalimi për të hyrë »%s« ndarë me %s", "This is the password: %s" : "Ky është fjalëkalimi: %s", "You can choose a different password at any time in the share dialog." : "Ju mund të zgjidhni një fjalëkalim tjetër në çdo kohë në dialogun e ndarjes.", "Could not find share" : "Nuk mund të gjej shpërndarje", diff --git a/apps/sharebymail/l10n/sq.json b/apps/sharebymail/l10n/sq.json index 1027fe6a677..e80fa8819fd 100644 --- a/apps/sharebymail/l10n/sq.json +++ b/apps/sharebymail/l10n/sq.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klikoni butonin poshtë për ta hapur.", "Open »%s«" : "Hap »%s«", "%s via %s" : "%s përmes %s", - "Password to access »%s« shared to you by %s" : "Fjalëkalimi për të hyrë »%s« ndarë me ju nda %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%sndau »%s« me ju. \nJu duhet të keni marrë tashmë një mail të veçantë me një lidhje për të aksesuar atë.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s ndau »%s« me ju. Ju duhet të keni marrë tashmë një mail të veçantë me një lidhje për të aksesuar atë.", + "Password to access »%s« shared to you by %s" : "Fjalëkalimi për të hyrë »%s« ndarë me ju nda %s", "Password to access »%s«" : "Fjalëkalimi për akses »%s«", "It is protected with the following password: %s" : "Është i mbrojtur me fjalëkalimin e mëposhtëm: %s", - "Password to access »%s« shared with %s" : "Fjalëkalimi për të hyrë »%s« ndarë me %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Ju sapo ndatë »« me %s%s. Pjesa ishte dërguar tashmë tek marrësi. Për shkak të politikave të sigurisë të përcaktuara nga administratori %s secila ndarje duhet të mbrohet me fjalëkalim dhe nuk lejohet të dërgojë fjalëkalimin drejtpërdrejt te marrësi. Prandaj ju duhet ta kaloni fjalëkalimin manualisht tek marrësi.", + "Password to access »%s« shared with %s" : "Fjalëkalimi për të hyrë »%s« ndarë me %s", "This is the password: %s" : "Ky është fjalëkalimi: %s", "You can choose a different password at any time in the share dialog." : "Ju mund të zgjidhni një fjalëkalim tjetër në çdo kohë në dialogun e ndarjes.", "Could not find share" : "Nuk mund të gjej shpërndarje", diff --git a/apps/sharebymail/l10n/sv.js b/apps/sharebymail/l10n/sv.js index 0d650e96725..eb3b8451e6b 100644 --- a/apps/sharebymail/l10n/sv.js +++ b/apps/sharebymail/l10n/sv.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Klicka knappen nedan för att öppna det.", "Open »%s«" : "Öppna »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Lösenord för att få tillgång till »%s« delat med dig av %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delade »%s« med dig.\nDu ska redan ha fått ett separat epost med en länk för att nå det.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delade »%s« med dig. Du ska redan ha fått ett separat e-post med en länk för att nå det.", + "Password to access »%s« shared to you by %s" : "Lösenord för att få tillgång till »%s« delat med dig av %s", "Password to access »%s«" : "Lösenord för att nå »%s«", "It is protected with the following password: %s" : "Den är skyddad med följande lösenord: %s", - "Password to access »%s« shared with %s" : "Lösenord för att få tillgång till »%s« delade med %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du delade precis »%s« med %s. Delningen var redan skickat till mottagaren. På grund av säkerhetspolicyn definierad av administratören av %s måste varje delning vara lösenordsskyddad och det är inte tillåtet att skicka lösenordet direkt till mottagaren. Därför behöver du vidarebefordra lösenordet manuellt till mottagaren.", + "Password to access »%s« shared with %s" : "Lösenord för att få tillgång till »%s« delade med %s", "This is the password: %s" : "Detta är lösenordet: %s", "You can choose a different password at any time in the share dialog." : "Du kan välja ett annat lösenord när som helst i delningsdialogen.", "Could not find share" : "Kunde inte hitta delning", diff --git a/apps/sharebymail/l10n/sv.json b/apps/sharebymail/l10n/sv.json index 31a28f427ed..75e3bb9d299 100644 --- a/apps/sharebymail/l10n/sv.json +++ b/apps/sharebymail/l10n/sv.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Klicka knappen nedan för att öppna det.", "Open »%s«" : "Öppna »%s«", "%s via %s" : "%s via %s", - "Password to access »%s« shared to you by %s" : "Lösenord för att få tillgång till »%s« delat med dig av %s", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s delade »%s« med dig.\nDu ska redan ha fått ett separat epost med en länk för att nå det.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s delade »%s« med dig. Du ska redan ha fått ett separat e-post med en länk för att nå det.", + "Password to access »%s« shared to you by %s" : "Lösenord för att få tillgång till »%s« delat med dig av %s", "Password to access »%s«" : "Lösenord för att nå »%s«", "It is protected with the following password: %s" : "Den är skyddad med följande lösenord: %s", - "Password to access »%s« shared with %s" : "Lösenord för att få tillgång till »%s« delade med %s", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Du delade precis »%s« med %s. Delningen var redan skickat till mottagaren. På grund av säkerhetspolicyn definierad av administratören av %s måste varje delning vara lösenordsskyddad och det är inte tillåtet att skicka lösenordet direkt till mottagaren. Därför behöver du vidarebefordra lösenordet manuellt till mottagaren.", + "Password to access »%s« shared with %s" : "Lösenord för att få tillgång till »%s« delade med %s", "This is the password: %s" : "Detta är lösenordet: %s", "You can choose a different password at any time in the share dialog." : "Du kan välja ett annat lösenord när som helst i delningsdialogen.", "Could not find share" : "Kunde inte hitta delning", diff --git a/apps/sharebymail/l10n/tr.js b/apps/sharebymail/l10n/tr.js index e84ac60c1d4..904ab5365ff 100644 --- a/apps/sharebymail/l10n/tr.js +++ b/apps/sharebymail/l10n/tr.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "Açmak için aşağıdaki düğmeye tıklayın.", "Open »%s«" : "»%s« Aç", "%s via %s" : "%s, %s aracılığıyla", - "Password to access »%s« shared to you by %s" : "»%s« için sizin tarafınızdan %s üzerinden paylaşılan erişim parolası", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s sizinle »%s« ögesini paylaştı.\nErişim bağlantısını içeren başka bir e-posta daha almış olmalısınız.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s sizinle »%s« ögesini paylaştı. Erişim bağlantısını içeren başka bir e-posta daha almış olmalısınız.", + "Password to access »%s« shared to you by %s" : "»%s« için sizin tarafınızdan %s üzerinden paylaşılan erişim parolası", "Password to access »%s«" : "»%s« erişim parolası", "It is protected with the following password: %s" : "Öge şu parola ile korunuyor: %s", - "Password to access »%s« shared with %s" : "»%s« için %s üzerinden paylaşılan erişim parolası", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "»%s« ögesini %s ile paylaştınız. Paylaşım alıcıya gönderildi. %s yöneticisi tarafından belirlenmiş güvenlik ilkelerine göre her bir paylaşım için bir parola belirtilmesi ve bu parolanın alıcıya doğrudan gönderilmemesi gerekiyor. Bu nedenle parolayı alıcıya el ile siz iletmelisiniz.", + "Password to access »%s« shared with %s" : "»%s« için %s üzerinden paylaşılan erişim parolası", "This is the password: %s" : "İleteceğiniz parola: %s", "You can choose a different password at any time in the share dialog." : "İstediğiniz zaman paylaşım bölümünden farklı bir parola belirtebilirsiniz.", "Could not find share" : "Paylaşım bulunamadı", diff --git a/apps/sharebymail/l10n/tr.json b/apps/sharebymail/l10n/tr.json index 87c39b3ff3e..657db4036f8 100644 --- a/apps/sharebymail/l10n/tr.json +++ b/apps/sharebymail/l10n/tr.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "Açmak için aşağıdaki düğmeye tıklayın.", "Open »%s«" : "»%s« Aç", "%s via %s" : "%s, %s aracılığıyla", - "Password to access »%s« shared to you by %s" : "»%s« için sizin tarafınızdan %s üzerinden paylaşılan erişim parolası", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s sizinle »%s« ögesini paylaştı.\nErişim bağlantısını içeren başka bir e-posta daha almış olmalısınız.\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s sizinle »%s« ögesini paylaştı. Erişim bağlantısını içeren başka bir e-posta daha almış olmalısınız.", + "Password to access »%s« shared to you by %s" : "»%s« için sizin tarafınızdan %s üzerinden paylaşılan erişim parolası", "Password to access »%s«" : "»%s« erişim parolası", "It is protected with the following password: %s" : "Öge şu parola ile korunuyor: %s", - "Password to access »%s« shared with %s" : "»%s« için %s üzerinden paylaşılan erişim parolası", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "»%s« ögesini %s ile paylaştınız. Paylaşım alıcıya gönderildi. %s yöneticisi tarafından belirlenmiş güvenlik ilkelerine göre her bir paylaşım için bir parola belirtilmesi ve bu parolanın alıcıya doğrudan gönderilmemesi gerekiyor. Bu nedenle parolayı alıcıya el ile siz iletmelisiniz.", + "Password to access »%s« shared with %s" : "»%s« için %s üzerinden paylaşılan erişim parolası", "This is the password: %s" : "İleteceğiniz parola: %s", "You can choose a different password at any time in the share dialog." : "İstediğiniz zaman paylaşım bölümünden farklı bir parola belirtebilirsiniz.", "Could not find share" : "Paylaşım bulunamadı", diff --git a/apps/sharebymail/l10n/zh_CN.js b/apps/sharebymail/l10n/zh_CN.js index 97afec66870..1e21de4d9d2 100644 --- a/apps/sharebymail/l10n/zh_CN.js +++ b/apps/sharebymail/l10n/zh_CN.js @@ -24,13 +24,13 @@ OC.L10N.register( "Click the button below to open it." : "点击下面的按钮打开它。", "Open »%s«" : "打开 »%s«", "%s via %s" : "%s通过%s", - "Password to access »%s« shared to you by %s" : "使用密码访问»%s«由%s分享", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s与您共享了%s\n访问链接已另外以邮件方式发送到您的邮箱\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s与您共享了%s。访问链接已另外以邮件方式发送到您的邮箱。", + "Password to access »%s« shared to you by %s" : "使用密码访问»%s«由%s分享", "Password to access »%s«" : "访问 »%s« 的密码", "It is protected with the following password: %s" : "已被已下密码保护:%s", - "Password to access »%s« shared with %s" : "使用密码访问»%s«与%s分享", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "您与%s共享»%s«已发送给收件人。由于%s管理员定义的安全策略, 每个共享都需要受密码保护, 并且不允许直接向收件人发送密码。因此, 您需要将密码手动转发给收件人。", + "Password to access »%s« shared with %s" : "使用密码访问»%s«与%s分享", "This is the password: %s" : "这是密码: %s", "You can choose a different password at any time in the share dialog." : "您可以随时在共享对话框中选择不同的密码。", "Could not find share" : "没有发现共享", diff --git a/apps/sharebymail/l10n/zh_CN.json b/apps/sharebymail/l10n/zh_CN.json index 339edbcd096..b435c7c2aa1 100644 --- a/apps/sharebymail/l10n/zh_CN.json +++ b/apps/sharebymail/l10n/zh_CN.json @@ -22,13 +22,13 @@ "Click the button below to open it." : "点击下面的按钮打开它。", "Open »%s«" : "打开 »%s«", "%s via %s" : "%s通过%s", - "Password to access »%s« shared to you by %s" : "使用密码访问»%s«由%s分享", "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s与您共享了%s\n访问链接已另外以邮件方式发送到您的邮箱\n", "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s与您共享了%s。访问链接已另外以邮件方式发送到您的邮箱。", + "Password to access »%s« shared to you by %s" : "使用密码访问»%s«由%s分享", "Password to access »%s«" : "访问 »%s« 的密码", "It is protected with the following password: %s" : "已被已下密码保护:%s", - "Password to access »%s« shared with %s" : "使用密码访问»%s«与%s分享", "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "您与%s共享»%s«已发送给收件人。由于%s管理员定义的安全策略, 每个共享都需要受密码保护, 并且不允许直接向收件人发送密码。因此, 您需要将密码手动转发给收件人。", + "Password to access »%s« shared with %s" : "使用密码访问»%s«与%s分享", "This is the password: %s" : "这是密码: %s", "You can choose a different password at any time in the share dialog." : "您可以随时在共享对话框中选择不同的密码。", "Could not find share" : "没有发现共享", diff --git a/apps/sharebymail/lib/ShareByMailProvider.php b/apps/sharebymail/lib/ShareByMailProvider.php index 516e4e243bf..f610a1a5fa9 100644 --- a/apps/sharebymail/lib/ShareByMailProvider.php +++ b/apps/sharebymail/lib/ShareByMailProvider.php @@ -380,8 +380,6 @@ class ShareByMailProvider implements IShareProvider { \DateTime $expiration = null) { $initiatorUser = $this->userManager->get($initiator); $initiatorDisplayName = ($initiatorUser instanceof IUser) ? $initiatorUser->getDisplayName() : $initiator; - $subject = (string)$this->l->t('%s shared »%s« with you', array($initiatorDisplayName, $filename)); - $message = $this->mailer->createMessage(); $emailTemplate = $this->mailer->createEMailTemplate('sharebymail.RecipientNotification', [ @@ -392,6 +390,7 @@ class ShareByMailProvider implements IShareProvider { 'shareWith' => $shareWith, ]); + $emailTemplate->setSubject($this->l->t('%s shared »%s« with you', array($initiatorDisplayName, $filename))); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l->t('%s shared »%s« with you', [$initiatorDisplayName, $filename]), false); $text = $this->l->t('%s shared »%s« with you.', [$initiatorDisplayName, $filename]); @@ -428,9 +427,7 @@ class ShareByMailProvider implements IShareProvider { $emailTemplate->addFooter(); } - $message->setSubject($subject); - $message->setPlainBody($emailTemplate->renderText()); - $message->setHtmlBody($emailTemplate->renderHtml()); + $message->useTemplate($emailTemplate); $this->mailer->send($message); } @@ -455,7 +452,6 @@ class ShareByMailProvider implements IShareProvider { $initiatorDisplayName = ($initiatorUser instanceof IUser) ? $initiatorUser->getDisplayName() : $initiator; $initiatorEmailAddress = ($initiatorUser instanceof IUser) ? $initiatorUser->getEMailAddress() : null; - $subject = (string)$this->l->t('Password to access »%s« shared to you by %s', [$filename, $initiatorDisplayName]); $plainBodyPart = $this->l->t("%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n", [$initiatorDisplayName, $filename]); $htmlBodyPart = $this->l->t('%s shared »%s« with you. You should have already received a separate mail with a link to access it.', [$initiatorDisplayName, $filename]); @@ -468,6 +464,8 @@ class ShareByMailProvider implements IShareProvider { 'initiatorEmail' => $initiatorEmailAddress, 'shareWith' => $shareWith, ]); + + $emailTemplate->setSubject($this->l->t('Password to access »%s« shared to you by %s', [$filename, $initiatorDisplayName])); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l->t('Password to access »%s«', [$filename]), false); $emailTemplate->addBodyText($htmlBodyPart, $plainBodyPart); @@ -491,9 +489,7 @@ class ShareByMailProvider implements IShareProvider { } $message->setTo([$shareWith]); - $message->setSubject($subject); - $message->setBody($emailTemplate->renderText(), 'text/plain'); - $message->setHtmlBody($emailTemplate->renderHtml()); + $message->useTemplate($emailTemplate); $this->mailer->send($message); $this->createPasswordSendActivity($share, $shareWith, false); @@ -524,7 +520,6 @@ class ShareByMailProvider implements IShareProvider { ); } - $subject = (string)$this->l->t('Password to access »%s« shared with %s', [$filename, $shareWith]); $bodyPart = $this->l->t("You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient.", [$filename, $shareWith, $this->defaults->getName()]); $message = $this->mailer->createMessage(); @@ -536,6 +531,7 @@ class ShareByMailProvider implements IShareProvider { 'shareWith' => $shareWith, ]); + $emailTemplate->setSubject($this->l->t('Password to access »%s« shared with %s', [$filename, $shareWith])); $emailTemplate->addHeader(); $emailTemplate->addHeading($this->l->t('Password to access »%s«', [$filename]), false); $emailTemplate->addBodyText($bodyPart); @@ -547,9 +543,7 @@ class ShareByMailProvider implements IShareProvider { $message->setFrom([$initiatorEMailAddress => $initiatorDisplayName]); } $message->setTo([$initiatorEMailAddress => $initiatorDisplayName]); - $message->setSubject($subject); - $message->setBody($emailTemplate->renderText(), 'text/plain'); - $message->setHtmlBody($emailTemplate->renderHtml()); + $message->useTemplate($emailTemplate); $this->mailer->send($message); $this->createPasswordSendActivity($share, $shareWith, true); diff --git a/apps/sharebymail/tests/ShareByMailProviderTest.php b/apps/sharebymail/tests/ShareByMailProviderTest.php index 23e61ee58f1..68a645ec0e6 100644 --- a/apps/sharebymail/tests/ShareByMailProviderTest.php +++ b/apps/sharebymail/tests/ShareByMailProviderTest.php @@ -835,26 +835,14 @@ class ShareByMailProviderTest extends TestCase { ->expects($this->once()) ->method('addFooter') ->with('UnitTestCloud - Testing like 1990'); - $message - ->expects($this->once()) - ->method('setSubject') - ->willReturn('Mrs. Owner User shared »file.txt« with you'); $template ->expects($this->once()) - ->method('renderText') - ->willReturn('Text Render'); - $message - ->expects($this->once()) - ->method('setPlainBody') - ->with('Text Render'); - $template - ->expects($this->once()) - ->method('renderHtml') - ->willReturn('HTML Render'); + ->method('setSubject') + ->with('Mrs. Owner User shared »file.txt« with you'); $message ->expects($this->once()) - ->method('setHtmlBody') - ->with('HTML Render'); + ->method('useTemplate') + ->with($template); $this->mailer ->expects($this->once()) ->method('send') @@ -936,26 +924,14 @@ class ShareByMailProviderTest extends TestCase { ->expects($this->once()) ->method('addFooter') ->with(''); - $message - ->expects($this->once()) - ->method('setSubject') - ->willReturn('Mr. Initiator User shared »file.txt« with you'); $template ->expects($this->once()) - ->method('renderText') - ->willReturn('Text Render'); - $message - ->expects($this->once()) - ->method('setPlainBody') - ->with('Text Render'); - $template - ->expects($this->once()) - ->method('renderHtml') - ->willReturn('HTML Render'); + ->method('setSubject') + ->with('Mr. Initiator User shared »file.txt« with you'); $message ->expects($this->once()) - ->method('setHtmlBody') - ->with('HTML Render'); + ->method('useTemplate') + ->with($template); $this->mailer ->expects($this->once()) ->method('send') diff --git a/apps/systemtags/l10n/hu.js b/apps/systemtags/l10n/hu.js index e2cc831e08c..a8843c60538 100644 --- a/apps/systemtags/l10n/hu.js +++ b/apps/systemtags/l10n/hu.js @@ -42,6 +42,7 @@ OC.L10N.register( "%s (invisible)" : "%s (láthatatlan)", "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszer címkéje</strong> módosítva lett", "Collaborative tags" : "Együttműködési címkék", + "Create and edit collaborative tags. These tags affect all users." : "Kollaboratív címke létrehozása és szerkesztése. Ezek minden felhasználóra érvényesülnek.", "Select tag …" : "Címke választás...", "Name" : "Név", "Delete" : "Törlés", diff --git a/apps/systemtags/l10n/hu.json b/apps/systemtags/l10n/hu.json index 8e1cff657ce..42b0b7df129 100644 --- a/apps/systemtags/l10n/hu.json +++ b/apps/systemtags/l10n/hu.json @@ -40,6 +40,7 @@ "%s (invisible)" : "%s (láthatatlan)", "<strong>System tags</strong> for a file have been modified" : "A fájl <strong>rendszer címkéje</strong> módosítva lett", "Collaborative tags" : "Együttműködési címkék", + "Create and edit collaborative tags. These tags affect all users." : "Kollaboratív címke létrehozása és szerkesztése. Ezek minden felhasználóra érvényesülnek.", "Select tag …" : "Címke választás...", "Name" : "Név", "Delete" : "Törlés", diff --git a/apps/systemtags/l10n/sr.js b/apps/systemtags/l10n/sr.js index 623fdf3bfa4..815e319acc6 100644 --- a/apps/systemtags/l10n/sr.js +++ b/apps/systemtags/l10n/sr.js @@ -2,18 +2,57 @@ OC.L10N.register( "systemtags", { "Tags" : "Ознаке", + "Update" : "Ажурирај", + "Create" : "Направи", + "Select tag…" : "Одабери ознаку…", "Tagged files" : "Означени фајлови", - "<strong>System tags</strong> for a file have been modified" : "<strong>Системске ознаке</strong> за фајл су измењене", - "%1$s assigned system tag %3$s" : "%1$s додели системску ознаку %3$s", - "%1$s created system tag %2$s" : "%1$s направи системску ознаку %2$s", - "%1$s deleted system tag %2$s" : "%1$s обриса системску ознаку %2$s", - "%1$s updated system tag %3$s to %2$s" : "%1$s ажурира системску ознаку %3$s на %2$s", - "%1$s assigned system tag %3$s to %2$s" : "%1$s додели системску ознаку %3$s на %2$s", + "Select tags to filter by" : "Одаберите ознаке по којима да се филтрира", + "No tags found" : "Нису нађене ознаке", + "Please select tags to filter by" : "Одаберите ознаке по којима да се филтрира", + "No files found for the selected tags" : "Ниједан фајл није нађен за одабране ознаке", + "Added system tag %1$s" : "Додата системска ознака %1$s", + "Added system tag {systemtag}" : "Додата системска ознака {systemtag}", + "%1$s added system tag %2$s" : "%1$s је додао системску ознаку %2$s", + "{actor} added system tag {systemtag}" : "{actor} је додао системску ознаку {systemtag}", + "Removed system tag %1$s" : "Уклоњена системска ознака %1$s", + "Removed system tag {systemtag}" : "Уклоњена системска ознака {systemtag}", + "%1$s removed system tag %2$s" : "%1$sуклонио системску ознаку %2$s", + "{actor} removed system tag {systemtag}" : "{actor} уклонио системску ознаку {systemtag}", + "You created system tag %1$s" : "Направили сте системску ознаку %1$s", + "You created system tag {systemtag}" : "Направили сте системску ознаку {systemtag}", + "%1$s created system tag %2$s" : "%1$s направио системску ознаку %2$s", + "{actor} created system tag {systemtag}" : "{actor} направио системску ознаку {systemtag}", + "You deleted system tag %1$s" : "Избрисали сте системску ознаку %1$s", + "You deleted system tag {systemtag}" : "Избрисали сте системску ознаку {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s обрисао системску ознаку %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} обрисао системску ознаку {systemtag}", + "You updated system tag %2$s to %1$s" : "Ажурирали сте системску ознаку %2$s на %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Ажурирали сте системску ознаку {oldsystemtag} на {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s ажурирао системску ознаку %3$s на %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} ажурирао системску ознаку {oldsystemtag} на {newsystemtag}", + "You added system tag %2$s to %1$s" : "Додали сте системску ознаку %2$s на %1$s", + "You added system tag {systemtag} to {file}" : "Додали сте системску ознаку {systemtag} на {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s додао системску ознаку %3$s на %2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} додао системску ознаку {systemtag} на {file}", + "You removed system tag %2$s from %1$s" : "Уклонили сте системску ознаку %2$s са %1$s", + "You removed system tag {systemtag} from {file}" : "Уклонили сте системску ознаку {systemtag} са {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$s уклонио системску ознаку %3$s са %2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} уклонио системску ознаку {systemtag} са {file}", + "%s (restricted)" : "%s (ограничена)", "%s (invisible)" : "%s (невидљива)", + "<strong>System tags</strong> for a file have been modified" : "<strong>Системске ознаке</strong> за фајл су измењене", + "Collaborative tags" : "Тимске ознаке", + "Create and edit collaborative tags. These tags affect all users." : "Правите и мењајте тимске ознаке. Ове ознаке се тичу свих корисника.", + "Select tag …" : "Одаберите ознаку …", + "Name" : "Назив", + "Delete" : "Обриши", + "Public" : "Јавна", + "Restricted" : "Ограничена", + "Invisible" : "Невидљива", + "Reset" : "Ресетуј", "No files in here" : "Овде нема фајлова", "No entries found in this folder" : "Нема ничега у овој фасцикли", - "Name" : "назив", - "Size" : "величина", + "Size" : "Величина", "Modified" : "Измењен" }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/systemtags/l10n/sr.json b/apps/systemtags/l10n/sr.json index 2ea8c679e9e..3a90fe870eb 100644 --- a/apps/systemtags/l10n/sr.json +++ b/apps/systemtags/l10n/sr.json @@ -1,17 +1,56 @@ { "translations": { "Tags" : "Ознаке", + "Update" : "Ажурирај", + "Create" : "Направи", + "Select tag…" : "Одабери ознаку…", "Tagged files" : "Означени фајлови", - "<strong>System tags</strong> for a file have been modified" : "<strong>Системске ознаке</strong> за фајл су измењене", - "%1$s assigned system tag %3$s" : "%1$s додели системску ознаку %3$s", - "%1$s created system tag %2$s" : "%1$s направи системску ознаку %2$s", - "%1$s deleted system tag %2$s" : "%1$s обриса системску ознаку %2$s", - "%1$s updated system tag %3$s to %2$s" : "%1$s ажурира системску ознаку %3$s на %2$s", - "%1$s assigned system tag %3$s to %2$s" : "%1$s додели системску ознаку %3$s на %2$s", + "Select tags to filter by" : "Одаберите ознаке по којима да се филтрира", + "No tags found" : "Нису нађене ознаке", + "Please select tags to filter by" : "Одаберите ознаке по којима да се филтрира", + "No files found for the selected tags" : "Ниједан фајл није нађен за одабране ознаке", + "Added system tag %1$s" : "Додата системска ознака %1$s", + "Added system tag {systemtag}" : "Додата системска ознака {systemtag}", + "%1$s added system tag %2$s" : "%1$s је додао системску ознаку %2$s", + "{actor} added system tag {systemtag}" : "{actor} је додао системску ознаку {systemtag}", + "Removed system tag %1$s" : "Уклоњена системска ознака %1$s", + "Removed system tag {systemtag}" : "Уклоњена системска ознака {systemtag}", + "%1$s removed system tag %2$s" : "%1$sуклонио системску ознаку %2$s", + "{actor} removed system tag {systemtag}" : "{actor} уклонио системску ознаку {systemtag}", + "You created system tag %1$s" : "Направили сте системску ознаку %1$s", + "You created system tag {systemtag}" : "Направили сте системску ознаку {systemtag}", + "%1$s created system tag %2$s" : "%1$s направио системску ознаку %2$s", + "{actor} created system tag {systemtag}" : "{actor} направио системску ознаку {systemtag}", + "You deleted system tag %1$s" : "Избрисали сте системску ознаку %1$s", + "You deleted system tag {systemtag}" : "Избрисали сте системску ознаку {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s обрисао системску ознаку %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} обрисао системску ознаку {systemtag}", + "You updated system tag %2$s to %1$s" : "Ажурирали сте системску ознаку %2$s на %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Ажурирали сте системску ознаку {oldsystemtag} на {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s ажурирао системску ознаку %3$s на %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} ажурирао системску ознаку {oldsystemtag} на {newsystemtag}", + "You added system tag %2$s to %1$s" : "Додали сте системску ознаку %2$s на %1$s", + "You added system tag {systemtag} to {file}" : "Додали сте системску ознаку {systemtag} на {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s додао системску ознаку %3$s на %2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} додао системску ознаку {systemtag} на {file}", + "You removed system tag %2$s from %1$s" : "Уклонили сте системску ознаку %2$s са %1$s", + "You removed system tag {systemtag} from {file}" : "Уклонили сте системску ознаку {systemtag} са {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$s уклонио системску ознаку %3$s са %2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} уклонио системску ознаку {systemtag} са {file}", + "%s (restricted)" : "%s (ограничена)", "%s (invisible)" : "%s (невидљива)", + "<strong>System tags</strong> for a file have been modified" : "<strong>Системске ознаке</strong> за фајл су измењене", + "Collaborative tags" : "Тимске ознаке", + "Create and edit collaborative tags. These tags affect all users." : "Правите и мењајте тимске ознаке. Ове ознаке се тичу свих корисника.", + "Select tag …" : "Одаберите ознаку …", + "Name" : "Назив", + "Delete" : "Обриши", + "Public" : "Јавна", + "Restricted" : "Ограничена", + "Invisible" : "Невидљива", + "Reset" : "Ресетуј", "No files in here" : "Овде нема фајлова", "No entries found in this folder" : "Нема ничега у овој фасцикли", - "Name" : "назив", - "Size" : "величина", + "Size" : "Величина", "Modified" : "Измењен" },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/theming/css/settings-admin.css b/apps/theming/css/settings-admin.css index b32ed189ceb..7270ec59b83 100644 --- a/apps/theming/css/settings-admin.css +++ b/apps/theming/css/settings-admin.css @@ -78,6 +78,7 @@ form.uploadButton { #theming_settings_msg { vertical-align: middle; + border-radius: 3px; } #theming-preview-logo { diff --git a/apps/theming/js/settings-admin.js b/apps/theming/js/settings-admin.js index d9e66284d14..44a799a19b4 100644 --- a/apps/theming/js/settings-admin.js +++ b/apps/theming/js/settings-admin.js @@ -141,6 +141,7 @@ $(document).ready(function () { fail: function (e, response){ OC.msg.finishedError('#theming_settings_msg', response._response.jqXHR.responseJSON.data.message); $('label#uploadlogo').addClass('icon-upload').removeClass('icon-loading-small'); + $('#theming_settings_loading').hide(); } }; var uploadParamsLogin = { @@ -159,6 +160,7 @@ $(document).ready(function () { fail: function (e, response){ $('label#upload-login-background').removeClass('icon-loading-small').addClass('icon-upload'); OC.msg.finishedError('#theming_settings_msg', response._response.jqXHR.responseJSON.data.message); + $('#theming_settings_loading').hide(); } }; diff --git a/apps/theming/l10n/de.js b/apps/theming/l10n/de.js index 52c12d1f093..86226c364b1 100644 --- a/apps/theming/l10n/de.js +++ b/apps/theming/l10n/de.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Die eingegebene Adresse ist zu lang", "The given slogan is too long" : "Der eingegebene Slogan ist zu lang", "The given color is invalid" : "Die gewählte Farbe ist ungültig", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Es wurde keine Datei hochgeladen", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.", + "A PHP extension stopped the file upload." : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt.", "No file uploaded" : "Keine Datei hochgeladen", "Unsupported image type" : "Nicht unterstütztes Bild-Format", "You are already using a custom theme" : "Du benutzt bereits ein eigenes Thema", diff --git a/apps/theming/l10n/de.json b/apps/theming/l10n/de.json index b9684f0a672..dc88a7be984 100644 --- a/apps/theming/l10n/de.json +++ b/apps/theming/l10n/de.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Die eingegebene Adresse ist zu lang", "The given slogan is too long" : "Der eingegebene Slogan ist zu lang", "The given color is invalid" : "Die gewählte Farbe ist ungültig", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Es wurde keine Datei hochgeladen", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.", + "A PHP extension stopped the file upload." : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt.", "No file uploaded" : "Keine Datei hochgeladen", "Unsupported image type" : "Nicht unterstütztes Bild-Format", "You are already using a custom theme" : "Du benutzt bereits ein eigenes Thema", diff --git a/apps/theming/l10n/de_DE.js b/apps/theming/l10n/de_DE.js index 8e9ec2fe8d9..88dab08c44a 100644 --- a/apps/theming/l10n/de_DE.js +++ b/apps/theming/l10n/de_DE.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Die eingegebene Adresse ist zu lang", "The given slogan is too long" : "Der eingegebene Slogan ist zu lang", "The given color is invalid" : "Die gewählte Farbe ist ungültig", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Es wurde keine Datei hochgeladen", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.", + "A PHP extension stopped the file upload." : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt.", "No file uploaded" : "Keine Datei hochgeladen", "Unsupported image type" : "Nicht unterstütztes Bild-Format", "You are already using a custom theme" : "Sie benutzen bereits ein eigenes Thema", diff --git a/apps/theming/l10n/de_DE.json b/apps/theming/l10n/de_DE.json index f4dfa4d6bba..14043ad1fd6 100644 --- a/apps/theming/l10n/de_DE.json +++ b/apps/theming/l10n/de_DE.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Die eingegebene Adresse ist zu lang", "The given slogan is too long" : "Der eingegebene Slogan ist zu lang", "The given color is invalid" : "Die gewählte Farbe ist ungültig", + "There is no error, the file uploaded with success" : "Es ist kein Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die hochgeladene Datei überschreitet die upload_max_filesize-Vorgabe in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die Datei ist größer, als die MAX_FILE_SIZE-Vorgabe erlaubt, die im HTML-Formular spezifiziert ist", + "The uploaded file was only partially uploaded" : "Die Datei konnte nur teilweise übertragen werden", + "No file was uploaded" : "Es wurde keine Datei hochgeladen", + "Missing a temporary folder" : "Kein temporärer Ordner vorhanden", + "Failed to write file to disk." : "Fehler beim Schreiben der Datei auf die Festplatte.", + "A PHP extension stopped the file upload." : "Eine PHP-Erweiterung hat das Hochladen der Datei gestoppt.", "No file uploaded" : "Keine Datei hochgeladen", "Unsupported image type" : "Nicht unterstütztes Bild-Format", "You are already using a custom theme" : "Sie benutzen bereits ein eigenes Thema", diff --git a/apps/theming/l10n/fr.js b/apps/theming/l10n/fr.js index ed5ac6af520..634f4a6f8a2 100644 --- a/apps/theming/l10n/fr.js +++ b/apps/theming/l10n/fr.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "L'adresse web donnée est trop longue", "The given slogan is too long" : "Le slogan donné est trop long", "The given color is invalid" : "La couleur donnée est invalide", + "There is no error, the file uploaded with success" : "Aucune erreur, le fichier a été téléversé avec succès", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Le fichier téléversé dépasse la valeur upload_max_filesize située dans le fichier php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier téléversé dépasse la valeur MAX_FILE_SIZE spécifiée dans le formulaire HTML", + "The uploaded file was only partially uploaded" : "Le fichier n'a été que partiellement téléversé", + "No file was uploaded" : "Aucun fichier téléversé", + "Missing a temporary folder" : "Absence de dossier temporaire", + "Failed to write file to disk." : "Erreur d'écriture du fichier sur le disque.", + "A PHP extension stopped the file upload." : "Une extension PHP a arrêté le téléversement du fichier.", "No file uploaded" : "Aucun fichier téléversé", "Unsupported image type" : "Ce type d'image n'est pas pris en charge", "You are already using a custom theme" : "Vous utilisez déjà un thème personnalisé", diff --git a/apps/theming/l10n/fr.json b/apps/theming/l10n/fr.json index a6d45297e25..aac3b06b6d3 100644 --- a/apps/theming/l10n/fr.json +++ b/apps/theming/l10n/fr.json @@ -7,6 +7,14 @@ "The given web address is too long" : "L'adresse web donnée est trop longue", "The given slogan is too long" : "Le slogan donné est trop long", "The given color is invalid" : "La couleur donnée est invalide", + "There is no error, the file uploaded with success" : "Aucune erreur, le fichier a été téléversé avec succès", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Le fichier téléversé dépasse la valeur upload_max_filesize située dans le fichier php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Le fichier téléversé dépasse la valeur MAX_FILE_SIZE spécifiée dans le formulaire HTML", + "The uploaded file was only partially uploaded" : "Le fichier n'a été que partiellement téléversé", + "No file was uploaded" : "Aucun fichier téléversé", + "Missing a temporary folder" : "Absence de dossier temporaire", + "Failed to write file to disk." : "Erreur d'écriture du fichier sur le disque.", + "A PHP extension stopped the file upload." : "Une extension PHP a arrêté le téléversement du fichier.", "No file uploaded" : "Aucun fichier téléversé", "Unsupported image type" : "Ce type d'image n'est pas pris en charge", "You are already using a custom theme" : "Vous utilisez déjà un thème personnalisé", diff --git a/apps/theming/l10n/it.js b/apps/theming/l10n/it.js index 06747e43aa7..33e18252f2b 100644 --- a/apps/theming/l10n/it.js +++ b/apps/theming/l10n/it.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Questo indirizzo web è troppo lungo", "The given slogan is too long" : "Questo slogan è troppo lungo", "The given color is invalid" : "Questo colore non è valido", + "There is no error, the file uploaded with success" : "Non ci sono errori, il file è stato caricato correttamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Il file caricato supera la direttiva upload_max_filesize in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Il file caricato supera la direttiva MAX_FILE_SIZE specificata nel modulo HTML", + "The uploaded file was only partially uploaded" : "Il file è stato caricato solo parzialmente", + "No file was uploaded" : "Non è stato caricato alcun file", + "Missing a temporary folder" : "Manca una cartella temporanea", + "Failed to write file to disk." : "Scrittura su disco non riuscita", + "A PHP extension stopped the file upload." : "Un'estensione PHP ha fermato il caricamento del file.", "No file uploaded" : "Nessun file caricato", "Unsupported image type" : "Tipo di immagine non supportato", "You are already using a custom theme" : "Stai già usando un tema personalizzato", diff --git a/apps/theming/l10n/it.json b/apps/theming/l10n/it.json index 54517d5ba47..56c1a122765 100644 --- a/apps/theming/l10n/it.json +++ b/apps/theming/l10n/it.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Questo indirizzo web è troppo lungo", "The given slogan is too long" : "Questo slogan è troppo lungo", "The given color is invalid" : "Questo colore non è valido", + "There is no error, the file uploaded with success" : "Non ci sono errori, il file è stato caricato correttamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Il file caricato supera la direttiva upload_max_filesize in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Il file caricato supera la direttiva MAX_FILE_SIZE specificata nel modulo HTML", + "The uploaded file was only partially uploaded" : "Il file è stato caricato solo parzialmente", + "No file was uploaded" : "Non è stato caricato alcun file", + "Missing a temporary folder" : "Manca una cartella temporanea", + "Failed to write file to disk." : "Scrittura su disco non riuscita", + "A PHP extension stopped the file upload." : "Un'estensione PHP ha fermato il caricamento del file.", "No file uploaded" : "Nessun file caricato", "Unsupported image type" : "Tipo di immagine non supportato", "You are already using a custom theme" : "Stai già usando un tema personalizzato", diff --git a/apps/theming/l10n/nb.js b/apps/theming/l10n/nb.js index 9b286698355..f3ae7b15a97 100644 --- a/apps/theming/l10n/nb.js +++ b/apps/theming/l10n/nb.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Nettadressen er for lang", "The given slogan is too long" : "Slagordet er for langt", "The given color is invalid" : "Fargen er ugyldig", + "There is no error, the file uploaded with success" : "Det er ingen feil, opplastingen av filen var vellykket", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Filen er større enn grensen satt i upload_max_filesize i php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Filen du prøvde å laste opp er større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet", + "The uploaded file was only partially uploaded" : "Filen ble bare delvis lastet opp", + "No file was uploaded" : "Ingen filer ble lastet opp", + "Missing a temporary folder" : "Mangler midlertidig mappe", + "Failed to write file to disk." : "Klarte ikke å skrive til disk.", + "A PHP extension stopped the file upload." : "En PHP-utvidelse stoppet filopplastingen.", "No file uploaded" : "Ingen fil lastet opp", "Unsupported image type" : "Filtypen støttes ikke", "You are already using a custom theme" : "Du bruker allerede en egendefinert drakt", diff --git a/apps/theming/l10n/nb.json b/apps/theming/l10n/nb.json index 6557edea2b8..841c215d0d9 100644 --- a/apps/theming/l10n/nb.json +++ b/apps/theming/l10n/nb.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Nettadressen er for lang", "The given slogan is too long" : "Slagordet er for langt", "The given color is invalid" : "Fargen er ugyldig", + "There is no error, the file uploaded with success" : "Det er ingen feil, opplastingen av filen var vellykket", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Filen er større enn grensen satt i upload_max_filesize i php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Filen du prøvde å laste opp er større enn grensen satt i MAX_FILE_SIZE i HTML-skjemaet", + "The uploaded file was only partially uploaded" : "Filen ble bare delvis lastet opp", + "No file was uploaded" : "Ingen filer ble lastet opp", + "Missing a temporary folder" : "Mangler midlertidig mappe", + "Failed to write file to disk." : "Klarte ikke å skrive til disk.", + "A PHP extension stopped the file upload." : "En PHP-utvidelse stoppet filopplastingen.", "No file uploaded" : "Ingen fil lastet opp", "Unsupported image type" : "Filtypen støttes ikke", "You are already using a custom theme" : "Du bruker allerede en egendefinert drakt", diff --git a/apps/theming/l10n/pt_BR.js b/apps/theming/l10n/pt_BR.js index 1f05a513bd4..6ea5b601ae9 100644 --- a/apps/theming/l10n/pt_BR.js +++ b/apps/theming/l10n/pt_BR.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "O endereço web fornecido é muito longo", "The given slogan is too long" : "O slogan dado é muito longo", "The given color is invalid" : "A cor fornecida é inválida", + "There is no error, the file uploaded with success" : "Sem erros. Arquivo enviado com sucesso", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O arquivo enviado excede a diretiva upload_max_filesize do php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O arquivo enviado excede a diretiva MAX_FILE_SIZE especificada no formulário HTML", + "The uploaded file was only partially uploaded" : "O arquivo foi enviado parcialmente", + "No file was uploaded" : "Nenhum arquivo foi enviado", + "Missing a temporary folder" : "Falta uma pasta temporária", + "Failed to write file to disk." : "Falha ao escrever no disco.", + "A PHP extension stopped the file upload." : "Uma extensão PHP parou o envio do arquivo.", "No file uploaded" : "Nenhum arquivo enviado", "Unsupported image type" : "Tipo de imagem não suportado", "You are already using a custom theme" : "Você já está usando um tema personalizado", diff --git a/apps/theming/l10n/pt_BR.json b/apps/theming/l10n/pt_BR.json index 41b06d8316f..a1d07f342f0 100644 --- a/apps/theming/l10n/pt_BR.json +++ b/apps/theming/l10n/pt_BR.json @@ -7,6 +7,14 @@ "The given web address is too long" : "O endereço web fornecido é muito longo", "The given slogan is too long" : "O slogan dado é muito longo", "The given color is invalid" : "A cor fornecida é inválida", + "There is no error, the file uploaded with success" : "Sem erros. Arquivo enviado com sucesso", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "O arquivo enviado excede a diretiva upload_max_filesize do php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "O arquivo enviado excede a diretiva MAX_FILE_SIZE especificada no formulário HTML", + "The uploaded file was only partially uploaded" : "O arquivo foi enviado parcialmente", + "No file was uploaded" : "Nenhum arquivo foi enviado", + "Missing a temporary folder" : "Falta uma pasta temporária", + "Failed to write file to disk." : "Falha ao escrever no disco.", + "A PHP extension stopped the file upload." : "Uma extensão PHP parou o envio do arquivo.", "No file uploaded" : "Nenhum arquivo enviado", "Unsupported image type" : "Tipo de imagem não suportado", "You are already using a custom theme" : "Você já está usando um tema personalizado", diff --git a/apps/theming/l10n/sr.js b/apps/theming/l10n/sr.js index 186d82d74ae..49344ec96ce 100644 --- a/apps/theming/l10n/sr.js +++ b/apps/theming/l10n/sr.js @@ -9,6 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Адреса је предугачка", "The given slogan is too long" : "Слоган је предугачак", "The given color is invalid" : "Задата боја није исправна", + "There is no error, the file uploaded with success" : "Нема грешке, фајл је отпремљен успешно", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Отпремани фајл превазилази смерницу upload_max_filesize у фајлу php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Отпремани фајл превазилази смерницу MAX_FILE_SIZE која је наведена у HTML обрасцу", + "The uploaded file was only partially uploaded" : "Отпремани фајл је само делимично отпремљен", + "No file was uploaded" : "Ниједан фајл није отпремљен", + "Missing a temporary folder" : "Недостаје привремена фасцикла", + "Failed to write file to disk." : "Не могу да пишем фајл на диск", + "A PHP extension stopped the file upload." : "PHP екстензија је зауставила отпремање фајла.", "No file uploaded" : "Ниједан фајл није отпремљен", "Unsupported image type" : "Неподржани тип слике", "You are already using a custom theme" : "Већ користите прилагођену тему", diff --git a/apps/theming/l10n/sr.json b/apps/theming/l10n/sr.json index dac1603b3d9..db82d478ee7 100644 --- a/apps/theming/l10n/sr.json +++ b/apps/theming/l10n/sr.json @@ -7,6 +7,14 @@ "The given web address is too long" : "Адреса је предугачка", "The given slogan is too long" : "Слоган је предугачак", "The given color is invalid" : "Задата боја није исправна", + "There is no error, the file uploaded with success" : "Нема грешке, фајл је отпремљен успешно", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Отпремани фајл превазилази смерницу upload_max_filesize у фајлу php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Отпремани фајл превазилази смерницу MAX_FILE_SIZE која је наведена у HTML обрасцу", + "The uploaded file was only partially uploaded" : "Отпремани фајл је само делимично отпремљен", + "No file was uploaded" : "Ниједан фајл није отпремљен", + "Missing a temporary folder" : "Недостаје привремена фасцикла", + "Failed to write file to disk." : "Не могу да пишем фајл на диск", + "A PHP extension stopped the file upload." : "PHP екстензија је зауставила отпремање фајла.", "No file uploaded" : "Ниједан фајл није отпремљен", "Unsupported image type" : "Неподржани тип слике", "You are already using a custom theme" : "Већ користите прилагођену тему", diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php index 06c2c430b7f..ccc2634ec14 100644 --- a/apps/theming/lib/Controller/ThemingController.php +++ b/apps/theming/lib/Controller/ThemingController.php @@ -207,12 +207,34 @@ class ThemingController extends Controller { } $newLogo = $this->request->getUploadedFile('uploadlogo'); $newBackgroundLogo = $this->request->getUploadedFile('upload-login-background'); + $error = null; + $phpFileUploadErrors = [ + UPLOAD_ERR_OK => $this->l10n->t('There is no error, the file uploaded with success'), + UPLOAD_ERR_INI_SIZE => $this->l10n->t('The uploaded file exceeds the upload_max_filesize directive in php.ini'), + UPLOAD_ERR_FORM_SIZE => $this->l10n->t('The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'), + UPLOAD_ERR_PARTIAL => $this->l10n->t('The uploaded file was only partially uploaded'), + UPLOAD_ERR_NO_FILE => $this->l10n->t('No file was uploaded'), + UPLOAD_ERR_NO_TMP_DIR => $this->l10n->t('Missing a temporary folder'), + UPLOAD_ERR_CANT_WRITE => $this->l10n->t('Failed to write file to disk.'), + UPLOAD_ERR_EXTENSION => $this->l10n->t('A PHP extension stopped the file upload.'), + ]; if (empty($newLogo) && empty($newBackgroundLogo)) { + $error = $this->l10n->t('No file uploaded'); + } + if (!empty($newLogo) && array_key_exists('error', $newLogo) && $newLogo['error'] !== UPLOAD_ERR_OK) { + $error = $phpFileUploadErrors[$newLogo['error']]; + } + if (!empty($newBackgroundLogo) && array_key_exists('error', $newBackgroundLogo) && $newBackgroundLogo['error'] !== UPLOAD_ERR_OK) { + $error = $phpFileUploadErrors[$newBackgroundLogo['error']]; + } + + if ($error !== null) { return new DataResponse( [ 'data' => [ - 'message' => $this->l10n->t('No file uploaded') - ] + 'message' => $error + ], + 'status' => 'failure', ], Http::STATUS_UNPROCESSABLE_ENTITY ); @@ -227,6 +249,18 @@ class ThemingController extends Controller { if (!empty($newLogo)) { $target = $folder->newFile('logo'); + $supportedFormats = ['image/jpeg', 'image/png', 'image/gif', 'image/svg+xml', 'text/svg']; + if (!in_array($newLogo['type'], $supportedFormats)) { + return new DataResponse( + [ + 'data' => [ + 'message' => $this->l10n->t('Unsupported image type'), + ], + 'status' => 'failure', + ], + Http::STATUS_UNPROCESSABLE_ENTITY + ); + } $target->putContent(file_get_contents($newLogo['tmp_name'], 'r')); $this->themingDefaults->set('logoMime', $newLogo['type']); $name = $newLogo['name']; diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php index c03eccb6eef..e964e886e5c 100644 --- a/apps/theming/tests/Controller/ThemingControllerTest.php +++ b/apps/theming/tests/Controller/ThemingControllerTest.php @@ -131,8 +131,9 @@ class ThemingControllerTest extends TestCase { $this->l10n ->expects($this->once()) ->method('t') - ->with($message) - ->willReturn($message); + ->will($this->returnCallback(function($str) { + return $str; + })); $this->scssCacher ->expects($this->once()) ->method('getCachedSCSS') @@ -183,8 +184,9 @@ class ThemingControllerTest extends TestCase { $this->l10n ->expects($this->once()) ->method('t') - ->with($message) - ->willReturn($message); + ->will($this->returnCallback(function($str) { + return $str; + })); $expected = new DataResponse( [ @@ -215,10 +217,11 @@ class ThemingControllerTest extends TestCase { ->with('upload-login-background') ->willReturn(null); $this->l10n - ->expects($this->once()) + ->expects($this->any()) ->method('t') - ->with('No file uploaded') - ->willReturn('No file uploaded'); + ->will($this->returnCallback(function($str) { + return $str; + })); $expected = new DataResponse( [ @@ -226,6 +229,56 @@ class ThemingControllerTest extends TestCase { [ 'message' => 'No file uploaded', ], + 'status' => 'failure', + ], + Http::STATUS_UNPROCESSABLE_ENTITY + ); + + $this->assertEquals($expected, $this->themingController->updateLogo()); + } + + public function testUpdateLogoInvalidMimeType() { + $this->request + ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) + ->method('getUploadedFile') + ->with('uploadlogo') + ->willReturn([ + 'tmp_name' => 'logo.pdf', + 'type' => 'application/pdf', + 'name' => 'logo.pdf', + 'error' => 0, + ]); + $this->request + ->expects($this->at(2)) + ->method('getUploadedFile') + ->with('upload-login-background') + ->willReturn(null); + $this->l10n + ->expects($this->any()) + ->method('t') + ->will($this->returnCallback(function($str) { + return $str; + })); + + $folder = $this->createMock(ISimpleFolder::class); + $this->appData + ->expects($this->once()) + ->method('getFolder') + ->with('images') + ->willReturn($folder); + + $expected = new DataResponse( + [ + 'data' => + [ + 'message' => 'Unsupported image type', + ], + 'status' => 'failure' ], Http::STATUS_UNPROCESSABLE_ENTITY ); @@ -258,13 +311,17 @@ class ThemingControllerTest extends TestCase { public function dataUpdateImages() { return [ - [false], - [true] + ['image/jpeg', false], + ['image/jpeg', true], + ['image/gif'], + ['image/png'], + ['image/svg+xml'], + ['text/svg'], ]; } /** @dataProvider dataUpdateImages */ - public function testUpdateLogoNormalLogoUpload($folderExists) { + public function testUpdateLogoNormalLogoUpload($mimeType, $folderExists=true) { $tmpLogo = \OC::$server->getTempManager()->getTemporaryFolder() . '/logo.svg'; $destination = \OC::$server->getTempManager()->getTemporaryFolder(); @@ -280,8 +337,9 @@ class ThemingControllerTest extends TestCase { ->with('uploadlogo') ->willReturn([ 'tmp_name' => $tmpLogo, - 'type' => 'text/svg', + 'type' => $mimeType, 'name' => 'logo.svg', + 'error' => 0, ]); $this->request ->expects($this->at(2)) @@ -289,10 +347,11 @@ class ThemingControllerTest extends TestCase { ->with('upload-login-background') ->willReturn(null); $this->l10n - ->expects($this->once()) + ->expects($this->any()) ->method('t') - ->with('Saved') - ->willReturn('Saved'); + ->will($this->returnCallback(function($str) { + return $str; + })); $file = $this->createMock(ISimpleFile::class); @@ -357,12 +416,14 @@ class ThemingControllerTest extends TestCase { 'tmp_name' => $tmpLogo, 'type' => 'text/svg', 'name' => 'logo.svg', + 'error' => 0, ]); $this->l10n - ->expects($this->once()) + ->expects($this->any()) ->method('t') - ->with('Saved') - ->willReturn('Saved'); + ->will($this->returnCallback(function($str) { + return $str; + })); $file = $this->createMock(ISimpleFile::class); $folder = $this->createMock(ISimpleFolder::class); @@ -425,12 +486,14 @@ class ThemingControllerTest extends TestCase { 'tmp_name' => $tmpLogo, 'type' => 'text/svg', 'name' => 'logo.svg', + 'error' => 0, ]); $this->l10n - ->expects($this->once()) + ->expects($this->any()) ->method('t') - ->with('Unsupported image type') - ->willReturn('Unsupported image type'); + ->will($this->returnCallback(function($str) { + return $str; + })); $folder = $this->createMock(ISimpleFolder::class); $this->appData @@ -452,6 +515,106 @@ class ThemingControllerTest extends TestCase { $this->assertEquals($expected, $this->themingController->updateLogo()); } + public function dataPhpUploadErrors() { + return [ + [UPLOAD_ERR_INI_SIZE, 'The uploaded file exceeds the upload_max_filesize directive in php.ini'], + [UPLOAD_ERR_FORM_SIZE, 'The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form'], + [UPLOAD_ERR_PARTIAL, 'The uploaded file was only partially uploaded'], + [UPLOAD_ERR_NO_FILE, 'No file was uploaded'], + [UPLOAD_ERR_NO_TMP_DIR, 'Missing a temporary folder'], + [UPLOAD_ERR_CANT_WRITE, 'Failed to write file to disk.'], + [UPLOAD_ERR_EXTENSION, 'A PHP extension stopped the file upload.'], + ]; + } + + /** + * @dataProvider dataPhpUploadErrors + */ + public function testUpdateLogoLoginScreenUploadWithInvalidImageUpload($error, $expectedErrorMessage) { + $this->request + ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) + ->method('getUploadedFile') + ->with('uploadlogo') + ->willReturn(null); + $this->request + ->expects($this->at(2)) + ->method('getUploadedFile') + ->with('upload-login-background') + ->willReturn([ + 'tmp_name' => '', + 'type' => 'text/svg', + 'name' => 'logo.svg', + 'error' => $error, + ]); + $this->l10n + ->expects($this->any()) + ->method('t') + ->will($this->returnCallback(function($str) { + return $str; + })); + + $expected = new DataResponse( + [ + 'data' => + [ + 'message' => $expectedErrorMessage, + ], + 'status' => 'failure' + ], + Http::STATUS_UNPROCESSABLE_ENTITY + ); + $this->assertEquals($expected, $this->themingController->updateLogo()); + } + + /** + * @dataProvider dataPhpUploadErrors + */ + public function testUpdateLogoUploadWithInvalidImageUpload($error, $expectedErrorMessage) { + $this->request + ->expects($this->at(0)) + ->method('getParam') + ->with('backgroundColor') + ->willReturn(false); + $this->request + ->expects($this->at(1)) + ->method('getUploadedFile') + ->with('uploadlogo') + ->willReturn([ + 'tmp_name' => '', + 'type' => 'text/svg', + 'name' => 'logo.svg', + 'error' => $error, + ]); + $this->request + ->expects($this->at(2)) + ->method('getUploadedFile') + ->with('upload-login-background') + ->willReturn(null); + $this->l10n + ->expects($this->any()) + ->method('t') + ->will($this->returnCallback(function($str) { + return $str; + })); + + $expected = new DataResponse( + [ + 'data' => + [ + 'message' => $expectedErrorMessage + ], + 'status' => 'failure' + ], + Http::STATUS_UNPROCESSABLE_ENTITY + ); + $this->assertEquals($expected, $this->themingController->updateLogo()); + } + public function testUndo() { $this->l10n ->expects($this->once()) diff --git a/apps/twofactor_backupcodes/l10n/sr.js b/apps/twofactor_backupcodes/l10n/sr.js new file mode 100644 index 00000000000..41a9ff302c6 --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/sr.js @@ -0,0 +1,18 @@ +OC.L10N.register( + "twofactor_backupcodes", + { + "Generate backup codes" : "Генериши резервне кодове", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Резервни кодови су изгенерисани. {{used}} од {{total}} кодова је искоришћено.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ово су Ваши резервни кодови. Сачувајте их и/или их одштампајте пошто више нећете моћи да их прочитате.", + "Save backup codes" : "Сачувај резервне кодове", + "Print backup codes" : "Одштампај резервне кодове", + "Regenerate backup codes" : "Регенериши резервне кодове", + "If you regenerate backup codes, you automatically invalidate old codes." : "Ако се резервни кодови регенериши, стари аутоматски престају да важе.", + "An error occurred while generating your backup codes" : "Десила се грешка приликом генерисања резервних кодова", + "Nextcloud backup codes" : "Некстклауд резервни кодови", + "You created two-factor backup codes for your account" : "Направили сте двофакторске резервне кодове за Ваш налог", + "Backup code" : "Резервни код", + "Use backup code" : "Искористи резервни код", + "Second-factor backup codes" : "Двофакторски резервни кодови" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/twofactor_backupcodes/l10n/sr.json b/apps/twofactor_backupcodes/l10n/sr.json new file mode 100644 index 00000000000..8b39a42c237 --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/sr.json @@ -0,0 +1,16 @@ +{ "translations": { + "Generate backup codes" : "Генериши резервне кодове", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Резервни кодови су изгенерисани. {{used}} од {{total}} кодова је искоришћено.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Ово су Ваши резервни кодови. Сачувајте их и/или их одштампајте пошто више нећете моћи да их прочитате.", + "Save backup codes" : "Сачувај резервне кодове", + "Print backup codes" : "Одштампај резервне кодове", + "Regenerate backup codes" : "Регенериши резервне кодове", + "If you regenerate backup codes, you automatically invalidate old codes." : "Ако се резервни кодови регенериши, стари аутоматски престају да важе.", + "An error occurred while generating your backup codes" : "Десила се грешка приликом генерисања резервних кодова", + "Nextcloud backup codes" : "Некстклауд резервни кодови", + "You created two-factor backup codes for your account" : "Направили сте двофакторске резервне кодове за Ваш налог", + "Backup code" : "Резервни код", + "Use backup code" : "Искористи резервни код", + "Second-factor backup codes" : "Двофакторски резервни кодови" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +}
\ No newline at end of file diff --git a/apps/updatenotification/l10n/lt_LT.js b/apps/updatenotification/l10n/lt_LT.js index d53d4b00c53..dd29887f985 100644 --- a/apps/updatenotification/l10n/lt_LT.js +++ b/apps/updatenotification/l10n/lt_LT.js @@ -16,6 +16,7 @@ OC.L10N.register( "The update check is not yet finished. Please refresh the page." : "Atnaujinimų patikrinimas dar neužbaigtas. Prašome įkelti puslapį iš naujo.", "Your version is up to date." : "Jūsų versija yra naujausia.", "Checked on %s" : "Tikrinta %s", + "A non-default update server is in use to be checked for updates:" : "Atnaujinimų aptikimui yra naudojamas ne nenumatytasis serveris: ", "Update channel:" : "Atnaujinimo kanalas:", "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Visada galite atnaujinti į naujesnę versiją / eksperimentinį kanalą. Tačiau niekada negalite sendinti versijos ar persijungti į stabilų kanalą.", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Turėkite omenyje, kad po naujos versijos išleidimo, gali praeiti šiek tiek laiko, kol ji čia taps matoma. Mes išleidžiame naujas versijas paskirstytas pagal laiką savo naudotojams ir, kartais, pastebėjus klaidas, praleidžiame versiją.", diff --git a/apps/updatenotification/l10n/lt_LT.json b/apps/updatenotification/l10n/lt_LT.json index 675dfeba3e8..e652fe57b91 100644 --- a/apps/updatenotification/l10n/lt_LT.json +++ b/apps/updatenotification/l10n/lt_LT.json @@ -14,6 +14,7 @@ "The update check is not yet finished. Please refresh the page." : "Atnaujinimų patikrinimas dar neužbaigtas. Prašome įkelti puslapį iš naujo.", "Your version is up to date." : "Jūsų versija yra naujausia.", "Checked on %s" : "Tikrinta %s", + "A non-default update server is in use to be checked for updates:" : "Atnaujinimų aptikimui yra naudojamas ne nenumatytasis serveris: ", "Update channel:" : "Atnaujinimo kanalas:", "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Visada galite atnaujinti į naujesnę versiją / eksperimentinį kanalą. Tačiau niekada negalite sendinti versijos ar persijungti į stabilų kanalą.", "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Turėkite omenyje, kad po naujos versijos išleidimo, gali praeiti šiek tiek laiko, kol ji čia taps matoma. Mes išleidžiame naujas versijas paskirstytas pagal laiką savo naudotojams ir, kartais, pastebėjus klaidas, praleidžiame versiją.", diff --git a/apps/updatenotification/l10n/sr.js b/apps/updatenotification/l10n/sr.js index de9cb470268..e47b86840bb 100644 --- a/apps/updatenotification/l10n/sr.js +++ b/apps/updatenotification/l10n/sr.js @@ -1,14 +1,28 @@ OC.L10N.register( "updatenotification", { + "Update notifications" : "Обавештења о ажурирању", + "Could not start updater, please try the manual update" : "Не могу да покренем програм за ажурирање, покушајте ручно ажурирање", "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате.", - "Updated channel" : "Канал ажуриран", - "Updater" : "Ажурирање", + "Channel updated" : "Канал ажуриран", + "The update server could not be reached since %d days to check for new updates." : "Сервер за ажурирања није доступан пошто је прошло %d дана од последње провере ажурирања.", + "Please check the Nextcloud and server log files for errors." : "Проверите логове од сервера и од Некстклауда за грешке.", + "Update to %1$s is available." : "Доступно је ажурирање на %1$s. ", + "Update for %1$s to version %2$s is available." : "Доступно је ажурирање апликације %1$s на верзију %2$s.", + "Update for {app} to version %s is available." : "Доступно је ажурирање апликације {app} на верзију %s.", "A new version is available: %s" : "Доступна је нова верзија: %s", - "Open updater" : "Отвори ажурирање", + "Open updater" : "Отвори програм за ажурирање", + "Download now" : "Скини сада", + "The update check is not yet finished. Please refresh the page." : "Провера за новим верзијама још није готова. Освежите страну.", "Your version is up to date." : "Ваша верзија је ажурна.", "Checked on %s" : "Проверено %s", + "A non-default update server is in use to be checked for updates:" : "Неподразумевани сервер за ажурирање је коришћен да провери нове верзије:", "Update channel:" : "Канал за ажурирање:", - "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Увек можете да надоградите на новију верзију/експериментални канал. Али не можете се вратити на стабилни канал." + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Увек можете да надоградите на новију верзију/експериментални канал. Али не можете се вратити на стабилни канал.", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "После издавања нове верзије, може да прође неко време пре него што се верзија појави овде. Ми избацујемо нове верзије постепено и можемо некад да прескочимо верзију ако наиђемо на проблеме.", + "Notify members of the following groups about available updates:" : "Обавести чланове следећих група о доступности нових верзија:", + "Only notification for app updates are available." : "Доступна су само обавештења о новим верзијама апликација.", + "The selected update channel makes dedicated notifications for the server obsolete." : "Уз означени канал за ажурирање нема смисла да имате обавештења о новим верзијама.", + "The selected update channel does not support updates of the server." : "Означени канал за ажурирање не подржава обавештења о новим верзијама." }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/updatenotification/l10n/sr.json b/apps/updatenotification/l10n/sr.json index 90ec0169399..70d2143eec5 100644 --- a/apps/updatenotification/l10n/sr.json +++ b/apps/updatenotification/l10n/sr.json @@ -1,12 +1,26 @@ { "translations": { + "Update notifications" : "Обавештења о ажурирању", + "Could not start updater, please try the manual update" : "Не могу да покренем програм за ажурирање, покушајте ручно ажурирање", "{version} is available. Get more information on how to update." : "Верзија {version} је доступна. Сазнајте како да ажурирате.", - "Updated channel" : "Канал ажуриран", - "Updater" : "Ажурирање", + "Channel updated" : "Канал ажуриран", + "The update server could not be reached since %d days to check for new updates." : "Сервер за ажурирања није доступан пошто је прошло %d дана од последње провере ажурирања.", + "Please check the Nextcloud and server log files for errors." : "Проверите логове од сервера и од Некстклауда за грешке.", + "Update to %1$s is available." : "Доступно је ажурирање на %1$s. ", + "Update for %1$s to version %2$s is available." : "Доступно је ажурирање апликације %1$s на верзију %2$s.", + "Update for {app} to version %s is available." : "Доступно је ажурирање апликације {app} на верзију %s.", "A new version is available: %s" : "Доступна је нова верзија: %s", - "Open updater" : "Отвори ажурирање", + "Open updater" : "Отвори програм за ажурирање", + "Download now" : "Скини сада", + "The update check is not yet finished. Please refresh the page." : "Провера за новим верзијама још није готова. Освежите страну.", "Your version is up to date." : "Ваша верзија је ажурна.", "Checked on %s" : "Проверено %s", + "A non-default update server is in use to be checked for updates:" : "Неподразумевани сервер за ажурирање је коришћен да провери нове верзије:", "Update channel:" : "Канал за ажурирање:", - "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Увек можете да надоградите на новију верзију/експериментални канал. Али не можете се вратити на стабилни канал." + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Увек можете да надоградите на новију верзију/експериментални канал. Али не можете се вратити на стабилни канал.", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "После издавања нове верзије, може да прође неко време пре него што се верзија појави овде. Ми избацујемо нове верзије постепено и можемо некад да прескочимо верзију ако наиђемо на проблеме.", + "Notify members of the following groups about available updates:" : "Обавести чланове следећих група о доступности нових верзија:", + "Only notification for app updates are available." : "Доступна су само обавештења о новим верзијама апликација.", + "The selected update channel makes dedicated notifications for the server obsolete." : "Уз означени канал за ажурирање нема смисла да имате обавештења о новим верзијама.", + "The selected update channel does not support updates of the server." : "Означени канал за ажурирање не подржава обавештења о новим верзијама." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/user_ldap/l10n/lt_LT.js b/apps/user_ldap/l10n/lt_LT.js index c8ef3aaea84..fa9bfa8b255 100644 --- a/apps/user_ldap/l10n/lt_LT.js +++ b/apps/user_ldap/l10n/lt_LT.js @@ -150,6 +150,7 @@ OC.L10N.register( "Group Search Attributes" : "Grupės paieškos atributai", "Group-Member association" : "Grupės-Nario sąsaja", "Dynamic Group Member URL" : "Dinaminio grupės nario URL", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "LDAP atributas, kuris grupės objektuose turi LDAP ieškos URL, nustatantį kokie objektai priklauso grupei. (Tuščias parametras išjungia dinaminės grupės narystės funkciją.)", "Nested Groups" : "Įdėtinės grupės", "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Kai įjungta, yra palaikomos grupes turinčios grupės.(Veikia tik, jei grupės nario atributas turi DN.)", "Enable LDAP password changes per user" : "Įjungti LDAP slaptažodžio keitimus kiekvienam naudotojui.", @@ -164,7 +165,9 @@ OC.L10N.register( "Email Field" : "El. pašto laukas", "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Naudotojų el. paštą nustatykite pagal jų LDAP atributą. Palikite tuščią jei norite, kad veiktų pagal numatytuosius parametrus.", "User Home Folder Naming Rule" : "Naudotojo namų aplanko pavadinimo taisyklė", + "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Palikite tuščią naudotojo vardui (numatytoji reikšmė). Kitu atveju, nurodykite LDAP/AD atributą.", "Internal Username" : "Vidinis naudotojo vardas", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Pagal nutylėjimą vidinis naudotojo vardas bus sukurtas iš UUID atributo. Tai užtikrina naudotojo vardo unikalumą ir kad nereikia konvertuoti simbolių. Vidinis naudotojo vardas turi apribojimą, leidžiantį tik šiuos simbolius: [a-zA-Z0-9 _. @ -]. Kiti simboliai pakeičiami ASCII atitikmenimis arba tiesiog praleidžiami. Sutapimų konflikto atveju yra pridedamas/padidinamas skaičius. Vidinis naudotojo vardas naudojamas yra naudojamas identifikuoti naudotoją viduje. Tai kartu yra numatytasis vartotojo aplanko pavadinimas. Taip pat tai nuotolinių URL dalis, pavyzdžiui, visoms *DAV paslaugoms. Naudojant šį nustatymą, numatytoji elgsena gali būti panaikinta. Palikite tuščią, jei norite kad galiotų numatytąjį reikšmė. Pakeitimai įtakoja tik naujai priskirtiems (pridedamiems) LDAP vartotojams.", "Internal Username Attribute:" : "Vidinis naudotojo vardo atributas:", "Override UUID detection" : "Perrašyti UUID aptikimą", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "naudotojo vardasnaudotojo vardasPagal nutylėjimą, UUID atributas yra automatiškai aptinkamas. UUID atributas yra naudojamas identifikuoti LDAP vartotojus ir grupes. Taigi, vidinis naudotojo vardas bus sukurtas remiantis UUID, jei nenurodyta kitaip. Jūs galite pakeisti nustatymus ir perduoti pasirinktus atributus. Turite įsitikinti, kad jūsų pasirinktas atributas gali būti rastas tiek prie vartotojų, tiek prie grupių, ir yra unikalus. Jei norite, kad veiktų pagal numatytuosius parametrus, palikite tuščią. Pakeitimai turės įtakos tik naujai susietiems (pridedamiems) LDAP naudotojams ir grupėms.", diff --git a/apps/user_ldap/l10n/lt_LT.json b/apps/user_ldap/l10n/lt_LT.json index 3376dcb7986..5167464235e 100644 --- a/apps/user_ldap/l10n/lt_LT.json +++ b/apps/user_ldap/l10n/lt_LT.json @@ -148,6 +148,7 @@ "Group Search Attributes" : "Grupės paieškos atributai", "Group-Member association" : "Grupės-Nario sąsaja", "Dynamic Group Member URL" : "Dinaminio grupės nario URL", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "LDAP atributas, kuris grupės objektuose turi LDAP ieškos URL, nustatantį kokie objektai priklauso grupei. (Tuščias parametras išjungia dinaminės grupės narystės funkciją.)", "Nested Groups" : "Įdėtinės grupės", "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Kai įjungta, yra palaikomos grupes turinčios grupės.(Veikia tik, jei grupės nario atributas turi DN.)", "Enable LDAP password changes per user" : "Įjungti LDAP slaptažodžio keitimus kiekvienam naudotojui.", @@ -162,7 +163,9 @@ "Email Field" : "El. pašto laukas", "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Naudotojų el. paštą nustatykite pagal jų LDAP atributą. Palikite tuščią jei norite, kad veiktų pagal numatytuosius parametrus.", "User Home Folder Naming Rule" : "Naudotojo namų aplanko pavadinimo taisyklė", + "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Palikite tuščią naudotojo vardui (numatytoji reikšmė). Kitu atveju, nurodykite LDAP/AD atributą.", "Internal Username" : "Vidinis naudotojo vardas", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Pagal nutylėjimą vidinis naudotojo vardas bus sukurtas iš UUID atributo. Tai užtikrina naudotojo vardo unikalumą ir kad nereikia konvertuoti simbolių. Vidinis naudotojo vardas turi apribojimą, leidžiantį tik šiuos simbolius: [a-zA-Z0-9 _. @ -]. Kiti simboliai pakeičiami ASCII atitikmenimis arba tiesiog praleidžiami. Sutapimų konflikto atveju yra pridedamas/padidinamas skaičius. Vidinis naudotojo vardas naudojamas yra naudojamas identifikuoti naudotoją viduje. Tai kartu yra numatytasis vartotojo aplanko pavadinimas. Taip pat tai nuotolinių URL dalis, pavyzdžiui, visoms *DAV paslaugoms. Naudojant šį nustatymą, numatytoji elgsena gali būti panaikinta. Palikite tuščią, jei norite kad galiotų numatytąjį reikšmė. Pakeitimai įtakoja tik naujai priskirtiems (pridedamiems) LDAP vartotojams.", "Internal Username Attribute:" : "Vidinis naudotojo vardo atributas:", "Override UUID detection" : "Perrašyti UUID aptikimą", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "naudotojo vardasnaudotojo vardasPagal nutylėjimą, UUID atributas yra automatiškai aptinkamas. UUID atributas yra naudojamas identifikuoti LDAP vartotojus ir grupes. Taigi, vidinis naudotojo vardas bus sukurtas remiantis UUID, jei nenurodyta kitaip. Jūs galite pakeisti nustatymus ir perduoti pasirinktus atributus. Turite įsitikinti, kad jūsų pasirinktas atributas gali būti rastas tiek prie vartotojų, tiek prie grupių, ir yra unikalus. Jei norite, kad veiktų pagal numatytuosius parametrus, palikite tuščią. Pakeitimai turės įtakos tik naujai susietiems (pridedamiems) LDAP naudotojams ir grupėms.", diff --git a/apps/user_ldap/l10n/sr.js b/apps/user_ldap/l10n/sr.js index baf33ae64dd..1f47189d31d 100644 --- a/apps/user_ldap/l10n/sr.js +++ b/apps/user_ldap/l10n/sr.js @@ -2,17 +2,25 @@ OC.L10N.register( "user_ldap", { "Failed to clear the mappings." : "Неуспело чишћење мапирања.", - "Failed to delete the server configuration" : "Неуспело брисање поставе сервера", - "The configuration is invalid: anonymous bind is not allowed." : "Неисправна подешавања. Анонимна веза није дозвољена.", - "The configuration is valid and the connection could be established!" : "Конфигурација је исправна и веза може да се успостави!", - "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Конфигурација је важећа, али Bind није успео. Проверите подешавања сервера и акредитиве.", - "The configuration is invalid. Please have a look at the logs for further details." : "Конфигурација је неисправна. Погледајте у дневнику записа за додатне детаље.", + "Failed to delete the server configuration" : "Неуспело брисање конфигурације сервера", + "Invalid configuration: Anonymous binding is not allowed." : "Неисправна конфигурација: Анонимно везивање није дозвољено.", + "Valid configuration, connection established!" : "Исправна конфигурација, веза успостављена!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Исправна конфигурација, али везивање није успело. Проверите поставке сервера и акредитиве.", + "Invalid configuration. Please have a look at the logs for further details." : "Неисправна конфигурација. Погледајте дневник за више детаља.", "No action specified" : "Није наведена радња", "No configuration specified" : "Није наведена постава", "No data specified" : "Нису наведени подаци", " Could not set configuration %s" : "Нисам могао да подесим конфигурацију %s", "Action does not exist" : "Радња не постоји", + "LDAP user and group backend" : "Позадински мотор за LDAP корисника и групу", + "Renewing …" : "Обнављам …", + "Very weak password" : "Веома слаба лозинка", + "Weak password" : "Слаба лозинка", + "So-so password" : "Осредња лозинка", + "Good password" : "Добра лозинка", + "Strong password" : "Јака лозинка", "The Base DN appears to be wrong" : "Базни ДН је изгледа погрешан", + "Testing configuration…" : "Тестирам конфигурацију…", "Configuration incorrect" : "Конфигурација је неисправна", "Configuration incomplete" : "Конфигурација није комплетна", "Configuration OK" : "Конфигурација је у реду", @@ -32,24 +40,32 @@ OC.L10N.register( "Mappings cleared successfully!" : "Мапирања успешно очишћена!", "Error while clearing the mappings." : "Грешка при чишћењу мапирања.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Анонимно везивање није дозвољено. Дајте кориснички ДН и лозинку.", - "LDAP Operations error. Anonymous bind might not be allowed." : "Грешка ЛДАП радње. Анонимна веза можда није дозвољена.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Грешка LDAP радње. Анонимна веза можда није дозвољена.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Упис није успео. Проверите да је база у функцији. Поново учитајте пре настављања.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Пребацивање режима укључиће аутоматске ЛДАП упите. Зависно од ЛДАП величине то може потрајати. Заиста желите да промените режим?", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Пребацивање режима укључиће аутоматске LDAP упите. Зависно од LDAP величине то може потрајати. Заиста желите да промените режим?", "Mode switch" : "Промена режима", "Select attributes" : "Изаберите атрибуте", - "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Корисник није нађен. Проверите пријавне атрибуте и корисничко име. Важећи филтер (за копирај-налепи за оверу командне линије): <br/>", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Корисник није нађен. Проверите атрибуте пријаве и корисничко име. Ефективни филтер (да копирате и налепите за верификацију у конзоли):<br/>", "User found and settings verified." : "Корисник нађен и поставке проверене.", - "An unspecified error occurred. Please check the settings and the log." : "Десила се неодређана грешка. Проверите поставке и записник.", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Размислите и да смањите претрагу, пошто обухвата много корисника, од којих ће само први моћи да се пријави.", + "An unspecified error occurred. Please check log and settings." : "Десила се непозната грешка. Погледајте дневник и подешавања.", "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Филтер претраге је неисправан, вероватно због синтаксе попут неједнаког броја отворених и затворених заграда. Проверите.", - "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Дошло је до грешке ЛДАП / АД везе. Проверите домаћина, порт и акредитиве.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Дошло је до грешке LDAP / AD везе. Проверите домаћина, порт и акредитиве.", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "\"%uid\" резервисано поље недостаје. Биће замењено са корисничким именом када се ради упит над LDAP / AD-ом.", "Please provide a login name to test against" : "Наведите пријавно име за тест са", - "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Поље групе је искључено јер ЛДАП / АД сервер не подржава припадност групи.", - "_%s group found_::_%s groups found_" : ["нађена %s група","нађене %s групе","нађено %s група"], - "_%s user found_::_%s users found_" : ["нађен %s корисник","нађена %s корисника","нађено %s корисника"], - "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Немогу да откријем особину приказивања корисниковог имена. Наведите је у напредним поставкама LDAP-a", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Поље групе је искључено јер LDAP / AD сервер не подржава припадност групи.", + "Password change rejected. Hint: " : "Промена лозинке није прихваћена. Смерница:", + "Please login with the new password" : "Пријавите се са новом лозинком", + "Your password will expire tomorrow." : "Ваша лозинка ће истећи сутра.", + "Your password will expire today." : "Ваша лозинка ће истећи данас.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Ваша лозинка ће истећи за %n дан.","Ваша лозинка ће истећи за %n дана.","Ваша лозинка ће истећи за %n дана."], + "LDAP / AD integration" : "LDAP / AD интеграција", + "_%s group found_::_%s groups found_" : ["нађена %s група","нађене %s групе","Нађено %s група"], + "_%s user found_::_%s users found_" : ["нађен %s корисник","нађена %s корисника","Нађено %s корисника"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "Не могу да пронађем атрибут имена за приказ корисника. Молимо сами га наведите у LDAP напредним подешавањима.", "Could not find the desired feature" : "Не могу да пронађем жељену особину", "Invalid Host" : "Неисправан домаћин", - "Test Configuration" : "Испробај поставу", + "Test Configuration" : "Испробај поставку", "Help" : "Помоћ", "Groups meeting these criteria are available in %s:" : "Групе које испуњавају ове критеријуме су доступне у %s:", "Only these object classes:" : "Само ове класе објеката:", @@ -57,40 +73,54 @@ OC.L10N.register( "Search groups" : "Претражи групе", "Available groups" : "Доступне групе", "Selected groups" : "Изабране групе", - "Edit LDAP Query" : "Уреди ЛДАП упит", - "LDAP Filter:" : "ЛДАП филтер:", + "Edit LDAP Query" : "Уреди LDAP упит", + "LDAP Filter:" : "LDAP филтер:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Филтер прецизира које ће LDAP групе требају имати приступ %s случају.", + "Verify settings and count the groups" : "Верификуј поставке и преброј групе", "When logging in, %s will find the user based on the following attributes:" : "При пријављивању, %s ће пронаћи корисника на основу следећих атрибута:", - "LDAP / AD Username:" : "ЛДАП / АД корисничко име:", - "LDAP / AD Email Address:" : "ЛДАП / АД е-адреса:", - "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Дозволи пријаву уз атрибут е-поште. Mail и mailPrimaryAddress биће дозвољени.", - "Other Attributes:" : "Остали параметри:", - "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Одређује филтер који ће се применити при покушају пријављивања. %%uid замењује корисничко име при пријављивању. Пример: \"uid=%%uid\"", + "LDAP / AD Username:" : "LDAP / AD корисничко име:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Дозволи пријављивање преко LDAP / AD корисничког имена, које је или \"uid\" или \"sAMAccountName\" и биће детектовано.", + "LDAP / AD Email Address:" : "LDAP / AD адреса е-поште:", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Дозволи пријављивање преко атрибута адресе е-поште. \"mail\" и \"mailPrimaryAddress\" су дозвољени.", + "Other Attributes:" : "Остали атрибути:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Дефинише филтер који ће се применити, када се покуша пријава. \"%%uid\" замењује корисничко име у пријави. Example: \"uid=%%uid\"", "Test Loginname" : "Испробај име за пријаву", "Verify settings" : "Провери поставке", "1. Server" : "1. сервер", "%s. Server:" : "%s. Сервер:", + "Add a new configuration" : "Додај нову поставку", "Copy current configuration into new directory binding" : "Копирај тренутну поставу у везивање новог директоријума", "Delete the current configuration" : "Обриши тренутне поставке", "Host" : "Домаћин", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Можете да изоставите протокол, осим ако не захтевате SSL. Ако је потребан, почните са ldaps://", "Port" : "Порт", "Detect Port" : "Откриј порт", "User DN" : "Корисников DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN корисника клијента са којим треба да се успостави веза, нпр. uid=agent,dc=example,dc=com. За анониман приступ, оставите поља DN и лозинка празним.", "Password" : "Лозинка", "For anonymous access, leave DN and Password empty." : "За анониман приступ, оставите поља DN и лозинка празним.", - "One Base DN per line" : "Једна Base DN по линији", + "One Base DN per line" : "Један Base DN по линији", "You can specify Base DN for users and groups in the Advanced tab" : "Можете навести Base DN за кориснике и групе у картици Напредно", - "Detect Base DN" : "Откриј базни ДН", - "Test Base DN" : "Тестирај базни ДН", + "Detect Base DN" : "Откриј Base DN", + "Test Base DN" : "Тестирај Base DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Избегава аутоматске LDAP захтеве. Боље за веће поставке, али тражи мало више познавања LDAP-а.", "Manually enter LDAP filters (recommended for large directories)" : "Унесите ручно LDAP филтере (препоручено за велике директоријуме)", + "Listing and searching for users is constrained by these criteria:" : "Излиставање и претраживање корисника је ограничено следећим условима:", "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Најчешће класе објеката за кориснике су organizationalPerson, person, user и inetOrgPerson. Ако нисте сигурни шта да изаберете, питајте администратора именика.", "The filter specifies which LDAP users shall have access to the %s instance." : "Филтер одређује који ЛДАП корисници ће имати приступ на %s.", "Verify settings and count users" : "Провери поставке и преброј кориснике", "Saving" : "Снимам", "Back" : "Назад", "Continue" : "Настави", + "Please renew your password." : "Молимо обновите Вашу лозинку.", + "An internal error occurred." : "Догодила се интерна грешка.", + "Please try again or contact your administrator." : "Покушајте поново или контактирајте администратора.", + "Current password" : "Тренутна лозинка", + "New password" : "Нова лозинка", + "Renew password" : "Обнови лозинку", + "Wrong password. Reset it?" : "Погрешна лозинка. Желите ли да је ресетујете?", + "Wrong password." : "Лоша лозинка.", + "Cancel" : "Одустани", "LDAP" : "LDAP", "Server" : "Сервер", "Users" : "Корисници", @@ -98,22 +128,24 @@ OC.L10N.register( "Groups" : "Групе", "Expert" : "Стручњак", "Advanced" : "Напредно", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Упозорење:</b> ПХП ЛДАП модул није инсталиран и зачеље неће радити. Питајте систем администратора да га инсталира.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Упозорење:</b> PHP LDAP модул није инсталиран и зачеље неће радити. Питајте систем администратора да га инсталира.", "Connection Settings" : "Поставке везе", "Configuration Active" : "Конфигурација активна", "When unchecked, this configuration will be skipped." : "Када није штриклирано, ова конфигурација ће бити прескочена.", "Backup (Replica) Host" : "Домаћин Резервне копије (Реплике)", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Наведите опционог домаћина за резервне копије. Он мора бити реплика главног ЛДАП/АД сервера.", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Наведите опционог домаћина за резервне копије. Он мора бити реплика главног LDAP/AD сервера.", "Backup (Replica) Port" : "Порт Резервне копије (Реплике)", "Disable Main Server" : "Онемогући главни сервер", "Only connect to the replica server." : "Повезано само на сервер за копирање.", - "Turn off SSL certificate validation." : "Искључите потврду ССЛ сертификата.", + "Turn off SSL certificate validation." : "Искључите потврду SSL сертификата.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Није препоручено, користите само за тестирање! Ако веза ради само са овом опцијом, увезите SSL сертификате LDAP сервера на ваш %s сервер.", "Cache Time-To-Live" : "Трајност кеша", "in seconds. A change empties the cache." : "у секундама. Промена празни кеш меморију.", "Directory Settings" : "Подешавања директоријума", "User Display Name Field" : "Име приказа корисника", - "The LDAP attribute to use to generate the user's display name." : "LDAP особина за стварање имена за приказ корисника.", + "The LDAP attribute to use to generate the user's display name." : "LDAP атрибут за стварање имена за приказ корисника.", + "2nd User Display Name Field" : "2. поље за приказ имена корисника", + "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Опционо. LDAP атрибут који се додаје на име у заградама. Коначно име за приказ ће бити нешто попут »Петар Петровић (pera@example.org)«.", "Base User Tree" : "Основно стабло корисника", "One User Base DN per line" : "Један Корисников јединствени назив DN по линији", "User Search Attributes" : "Параметри претраге корисника", @@ -124,17 +156,28 @@ OC.L10N.register( "One Group Base DN per line" : "Један Групни јединствени назив DN по линији", "Group Search Attributes" : "Параметри претраге група", "Group-Member association" : "Придруживање чланова у групу", + "Dynamic Group Member URL" : "Динамична адреса члана групе", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "LDAP атрибут који на групном објекту садржи адресу LDAP претраге којом се одређује да ли објекат припада групи. (празно подешавање искључује могућност динамичких припадности групама.) ", "Nested Groups" : "Угнеждене групе", "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Када је укључено, подржане су групе унутар групе. (Ради само ако особина члана групе садржи DN-ове.)", "Paging chunksize" : "Величина делића странице", "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Величина делића се користи за страничење ЛДАП претрага које могу вратити гомилу резултата попут набрајања корисника или група. (постављање на 0 у таквим ситуацијама искључује приказ претраге по страницама)", + "Enable LDAP password changes per user" : "Укључи промену LDAP лозинке по кориснику", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Дозволи LDAP корисницима да мењају своју лозинку и дозволи супер администраторима и администраторима група да мењају лозинке њихових LDAP корисника. Ради само када је контрола права приступа подешена према LDAP серверу. Пошто се лозинке шаљу као обичан тест ка LDAP серверу, мора се користити протокол са шифровањем, као и укључивање хеширања на LDAP серверу.", + "(New password is sent as plain text to LDAP)" : "(нова лозинка се шаље као обичан текст на LDAP)", + "Default password policy DN" : "Подразумевана политика промене DN лозинки", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Подразумевана политика промене лозинки ће се користити када лозинка истиче. Може се користити само када се укључи промена лозинке по кориснику и подржава је само OpenLDAP. Оставите празно да искључите шта се дешава када лозинка истиче.", "Special Attributes" : "Посебни параметри", "Quota Field" : "Поље квоте", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Оставите празно за подразумевану квоту корисника. У супротном, ставите LDAP/AD атрибут.", "Quota Default" : "Подразумевана квота", - "Email Field" : "Поље е-поште", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Редефинише подразумевану квоту за LDAP кориснике који немају постављену квоту у Quota пољу.", + "Email Field" : "Поље адресе е-поште", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Поставља адресу е-поште корисника из LDAP атрибута. Оставите празно за подразумевано понашање.", "User Home Folder Naming Rule" : "Правило именовања корисничке фасцикле", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Оставите празно за корисничко име (подразумевано). У супротном, наведите особину LDAP/AD.", "Internal Username" : "Интерно корисничко име:", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Подразумевано се интерно корисничко име креира од UUID атрибута. Тиме се гарантује да се корисничко име јединствено и да карактери не морају да се конвертују. Интерно корисничко име има ограничења да су дозвољени само следећи карактери: [ a-zA-Z0-9_.@- ]. Остали карактери ће или бити замењени ASCII еквивалентима или ће бити прескочени. Ако се деси поклапање са постојећим корисничким именом, додаће се број на крај имена. Интерно корисничко име се користи да идентификује корисника интерно. Такође се користи и као подразумевано име за име корисничку фасцикле, а и део је удаљених адреса, нпр. свих *DAV сервиса. Уз помоћ овог подешавања, може да се промени подразумевано понашање. Оставите га празним за подразумевано понашање. Промене ће се тицати само новомапираних (додатих) LDAP корисника.", "Internal Username Attribute:" : "Интерни параметри корисничког имена:", "Override UUID detection" : "Прескочи UUID откривање", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Подразумевано, атрибут UUID се аутоматски детектује. Атрибут UUID се користи за сигурну идентификацију LDAP корисника и група. Такође, локално корисничко име ће бити креирано на основу UUID-a, ако није другачије назначено. Можете заобићи поставке и проследити други атрибут по вашем избору. Морате бити сигурни да је изабрани атрибут јединствен и да га корисници и групе могу преносити. Оставите празно за подразумевано понашање. Промене ће имати дејство само на новомапираним (доданим) LDAP корисницима и групама.", @@ -146,7 +189,6 @@ OC.L10N.register( "Clear Groupname-LDAP Group Mapping" : "Очисти Groupname-LDAP мапирање група", "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Недостаје %uid местодржач. Биће замењен са пријавним именом при ЛДАП / АД упиту.", "Verify settings and count groups" : "Провери поставке и преброј групе", - "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Дозволи пријаву уз ЛДАП / АД корисичко име које је или uid или samaccountname и биће откривено.", "Add a new and blank configuration" : "Додај нову празну поставу", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Можете да изоставите протокол, осим ако захтевате ССЛ. У том случају почните са ldaps://", "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Упозорење:</b> Апликације user_ldap и user_webdavauth нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих.", diff --git a/apps/user_ldap/l10n/sr.json b/apps/user_ldap/l10n/sr.json index a9ad3314d7a..c3787ce0909 100644 --- a/apps/user_ldap/l10n/sr.json +++ b/apps/user_ldap/l10n/sr.json @@ -1,16 +1,24 @@ { "translations": { "Failed to clear the mappings." : "Неуспело чишћење мапирања.", - "Failed to delete the server configuration" : "Неуспело брисање поставе сервера", - "The configuration is invalid: anonymous bind is not allowed." : "Неисправна подешавања. Анонимна веза није дозвољена.", - "The configuration is valid and the connection could be established!" : "Конфигурација је исправна и веза може да се успостави!", - "The configuration is valid, but the Bind failed. Please check the server settings and credentials." : "Конфигурација је важећа, али Bind није успео. Проверите подешавања сервера и акредитиве.", - "The configuration is invalid. Please have a look at the logs for further details." : "Конфигурација је неисправна. Погледајте у дневнику записа за додатне детаље.", + "Failed to delete the server configuration" : "Неуспело брисање конфигурације сервера", + "Invalid configuration: Anonymous binding is not allowed." : "Неисправна конфигурација: Анонимно везивање није дозвољено.", + "Valid configuration, connection established!" : "Исправна конфигурација, веза успостављена!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Исправна конфигурација, али везивање није успело. Проверите поставке сервера и акредитиве.", + "Invalid configuration. Please have a look at the logs for further details." : "Неисправна конфигурација. Погледајте дневник за више детаља.", "No action specified" : "Није наведена радња", "No configuration specified" : "Није наведена постава", "No data specified" : "Нису наведени подаци", " Could not set configuration %s" : "Нисам могао да подесим конфигурацију %s", "Action does not exist" : "Радња не постоји", + "LDAP user and group backend" : "Позадински мотор за LDAP корисника и групу", + "Renewing …" : "Обнављам …", + "Very weak password" : "Веома слаба лозинка", + "Weak password" : "Слаба лозинка", + "So-so password" : "Осредња лозинка", + "Good password" : "Добра лозинка", + "Strong password" : "Јака лозинка", "The Base DN appears to be wrong" : "Базни ДН је изгледа погрешан", + "Testing configuration…" : "Тестирам конфигурацију…", "Configuration incorrect" : "Конфигурација је неисправна", "Configuration incomplete" : "Конфигурација није комплетна", "Configuration OK" : "Конфигурација је у реду", @@ -30,24 +38,32 @@ "Mappings cleared successfully!" : "Мапирања успешно очишћена!", "Error while clearing the mappings." : "Грешка при чишћењу мапирања.", "Anonymous bind is not allowed. Please provide a User DN and Password." : "Анонимно везивање није дозвољено. Дајте кориснички ДН и лозинку.", - "LDAP Operations error. Anonymous bind might not be allowed." : "Грешка ЛДАП радње. Анонимна веза можда није дозвољена.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Грешка LDAP радње. Анонимна веза можда није дозвољена.", "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Упис није успео. Проверите да је база у функцији. Поново учитајте пре настављања.", - "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Пребацивање режима укључиће аутоматске ЛДАП упите. Зависно од ЛДАП величине то може потрајати. Заиста желите да промените режим?", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Пребацивање режима укључиће аутоматске LDAP упите. Зависно од LDAP величине то може потрајати. Заиста желите да промените режим?", "Mode switch" : "Промена режима", "Select attributes" : "Изаберите атрибуте", - "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command line validation): <br/>" : "Корисник није нађен. Проверите пријавне атрибуте и корисничко име. Важећи филтер (за копирај-налепи за оверу командне линије): <br/>", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Корисник није нађен. Проверите атрибуте пријаве и корисничко име. Ефективни филтер (да копирате и налепите за верификацију у конзоли):<br/>", "User found and settings verified." : "Корисник нађен и поставке проверене.", - "An unspecified error occurred. Please check the settings and the log." : "Десила се неодређана грешка. Проверите поставке и записник.", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Размислите и да смањите претрагу, пошто обухвата много корисника, од којих ће само први моћи да се пријави.", + "An unspecified error occurred. Please check log and settings." : "Десила се непозната грешка. Погледајте дневник и подешавања.", "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "Филтер претраге је неисправан, вероватно због синтаксе попут неједнаког броја отворених и затворених заграда. Проверите.", - "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Дошло је до грешке ЛДАП / АД везе. Проверите домаћина, порт и акредитиве.", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Дошло је до грешке LDAP / AD везе. Проверите домаћина, порт и акредитиве.", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "\"%uid\" резервисано поље недостаје. Биће замењено са корисничким именом када се ради упит над LDAP / AD-ом.", "Please provide a login name to test against" : "Наведите пријавно име за тест са", - "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Поље групе је искључено јер ЛДАП / АД сервер не подржава припадност групи.", - "_%s group found_::_%s groups found_" : ["нађена %s група","нађене %s групе","нађено %s група"], - "_%s user found_::_%s users found_" : ["нађен %s корисник","нађена %s корисника","нађено %s корисника"], - "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Немогу да откријем особину приказивања корисниковог имена. Наведите је у напредним поставкама LDAP-a", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Поље групе је искључено јер LDAP / AD сервер не подржава припадност групи.", + "Password change rejected. Hint: " : "Промена лозинке није прихваћена. Смерница:", + "Please login with the new password" : "Пријавите се са новом лозинком", + "Your password will expire tomorrow." : "Ваша лозинка ће истећи сутра.", + "Your password will expire today." : "Ваша лозинка ће истећи данас.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Ваша лозинка ће истећи за %n дан.","Ваша лозинка ће истећи за %n дана.","Ваша лозинка ће истећи за %n дана."], + "LDAP / AD integration" : "LDAP / AD интеграција", + "_%s group found_::_%s groups found_" : ["нађена %s група","нађене %s групе","Нађено %s група"], + "_%s user found_::_%s users found_" : ["нађен %s корисник","нађена %s корисника","Нађено %s корисника"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "Не могу да пронађем атрибут имена за приказ корисника. Молимо сами га наведите у LDAP напредним подешавањима.", "Could not find the desired feature" : "Не могу да пронађем жељену особину", "Invalid Host" : "Неисправан домаћин", - "Test Configuration" : "Испробај поставу", + "Test Configuration" : "Испробај поставку", "Help" : "Помоћ", "Groups meeting these criteria are available in %s:" : "Групе које испуњавају ове критеријуме су доступне у %s:", "Only these object classes:" : "Само ове класе објеката:", @@ -55,40 +71,54 @@ "Search groups" : "Претражи групе", "Available groups" : "Доступне групе", "Selected groups" : "Изабране групе", - "Edit LDAP Query" : "Уреди ЛДАП упит", - "LDAP Filter:" : "ЛДАП филтер:", + "Edit LDAP Query" : "Уреди LDAP упит", + "LDAP Filter:" : "LDAP филтер:", "The filter specifies which LDAP groups shall have access to the %s instance." : "Филтер прецизира које ће LDAP групе требају имати приступ %s случају.", + "Verify settings and count the groups" : "Верификуј поставке и преброј групе", "When logging in, %s will find the user based on the following attributes:" : "При пријављивању, %s ће пронаћи корисника на основу следећих атрибута:", - "LDAP / AD Username:" : "ЛДАП / АД корисничко име:", - "LDAP / AD Email Address:" : "ЛДАП / АД е-адреса:", - "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Дозволи пријаву уз атрибут е-поште. Mail и mailPrimaryAddress биће дозвољени.", - "Other Attributes:" : "Остали параметри:", - "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Одређује филтер који ће се применити при покушају пријављивања. %%uid замењује корисничко име при пријављивању. Пример: \"uid=%%uid\"", + "LDAP / AD Username:" : "LDAP / AD корисничко име:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Дозволи пријављивање преко LDAP / AD корисничког имена, које је или \"uid\" или \"sAMAccountName\" и биће детектовано.", + "LDAP / AD Email Address:" : "LDAP / AD адреса е-поште:", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Дозволи пријављивање преко атрибута адресе е-поште. \"mail\" и \"mailPrimaryAddress\" су дозвољени.", + "Other Attributes:" : "Остали атрибути:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Дефинише филтер који ће се применити, када се покуша пријава. \"%%uid\" замењује корисничко име у пријави. Example: \"uid=%%uid\"", "Test Loginname" : "Испробај име за пријаву", "Verify settings" : "Провери поставке", "1. Server" : "1. сервер", "%s. Server:" : "%s. Сервер:", + "Add a new configuration" : "Додај нову поставку", "Copy current configuration into new directory binding" : "Копирај тренутну поставу у везивање новог директоријума", "Delete the current configuration" : "Обриши тренутне поставке", "Host" : "Домаћин", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Можете да изоставите протокол, осим ако не захтевате SSL. Ако је потребан, почните са ldaps://", "Port" : "Порт", "Detect Port" : "Откриј порт", "User DN" : "Корисников DN", "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "DN корисника клијента са којим треба да се успостави веза, нпр. uid=agent,dc=example,dc=com. За анониман приступ, оставите поља DN и лозинка празним.", "Password" : "Лозинка", "For anonymous access, leave DN and Password empty." : "За анониман приступ, оставите поља DN и лозинка празним.", - "One Base DN per line" : "Једна Base DN по линији", + "One Base DN per line" : "Један Base DN по линији", "You can specify Base DN for users and groups in the Advanced tab" : "Можете навести Base DN за кориснике и групе у картици Напредно", - "Detect Base DN" : "Откриј базни ДН", - "Test Base DN" : "Тестирај базни ДН", + "Detect Base DN" : "Откриј Base DN", + "Test Base DN" : "Тестирај Base DN", "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Избегава аутоматске LDAP захтеве. Боље за веће поставке, али тражи мало више познавања LDAP-а.", "Manually enter LDAP filters (recommended for large directories)" : "Унесите ручно LDAP филтере (препоручено за велике директоријуме)", + "Listing and searching for users is constrained by these criteria:" : "Излиставање и претраживање корисника је ограничено следећим условима:", "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Најчешће класе објеката за кориснике су organizationalPerson, person, user и inetOrgPerson. Ако нисте сигурни шта да изаберете, питајте администратора именика.", "The filter specifies which LDAP users shall have access to the %s instance." : "Филтер одређује који ЛДАП корисници ће имати приступ на %s.", "Verify settings and count users" : "Провери поставке и преброј кориснике", "Saving" : "Снимам", "Back" : "Назад", "Continue" : "Настави", + "Please renew your password." : "Молимо обновите Вашу лозинку.", + "An internal error occurred." : "Догодила се интерна грешка.", + "Please try again or contact your administrator." : "Покушајте поново или контактирајте администратора.", + "Current password" : "Тренутна лозинка", + "New password" : "Нова лозинка", + "Renew password" : "Обнови лозинку", + "Wrong password. Reset it?" : "Погрешна лозинка. Желите ли да је ресетујете?", + "Wrong password." : "Лоша лозинка.", + "Cancel" : "Одустани", "LDAP" : "LDAP", "Server" : "Сервер", "Users" : "Корисници", @@ -96,22 +126,24 @@ "Groups" : "Групе", "Expert" : "Стручњак", "Advanced" : "Напредно", - "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Упозорење:</b> ПХП ЛДАП модул није инсталиран и зачеље неће радити. Питајте систем администратора да га инсталира.", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Упозорење:</b> PHP LDAP модул није инсталиран и зачеље неће радити. Питајте систем администратора да га инсталира.", "Connection Settings" : "Поставке везе", "Configuration Active" : "Конфигурација активна", "When unchecked, this configuration will be skipped." : "Када није штриклирано, ова конфигурација ће бити прескочена.", "Backup (Replica) Host" : "Домаћин Резервне копије (Реплике)", - "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Наведите опционог домаћина за резервне копије. Он мора бити реплика главног ЛДАП/АД сервера.", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Наведите опционог домаћина за резервне копије. Он мора бити реплика главног LDAP/AD сервера.", "Backup (Replica) Port" : "Порт Резервне копије (Реплике)", "Disable Main Server" : "Онемогући главни сервер", "Only connect to the replica server." : "Повезано само на сервер за копирање.", - "Turn off SSL certificate validation." : "Искључите потврду ССЛ сертификата.", + "Turn off SSL certificate validation." : "Искључите потврду SSL сертификата.", "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "Није препоручено, користите само за тестирање! Ако веза ради само са овом опцијом, увезите SSL сертификате LDAP сервера на ваш %s сервер.", "Cache Time-To-Live" : "Трајност кеша", "in seconds. A change empties the cache." : "у секундама. Промена празни кеш меморију.", "Directory Settings" : "Подешавања директоријума", "User Display Name Field" : "Име приказа корисника", - "The LDAP attribute to use to generate the user's display name." : "LDAP особина за стварање имена за приказ корисника.", + "The LDAP attribute to use to generate the user's display name." : "LDAP атрибут за стварање имена за приказ корисника.", + "2nd User Display Name Field" : "2. поље за приказ имена корисника", + "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Опционо. LDAP атрибут који се додаје на име у заградама. Коначно име за приказ ће бити нешто попут »Петар Петровић (pera@example.org)«.", "Base User Tree" : "Основно стабло корисника", "One User Base DN per line" : "Један Корисников јединствени назив DN по линији", "User Search Attributes" : "Параметри претраге корисника", @@ -122,17 +154,28 @@ "One Group Base DN per line" : "Један Групни јединствени назив DN по линији", "Group Search Attributes" : "Параметри претраге група", "Group-Member association" : "Придруживање чланова у групу", + "Dynamic Group Member URL" : "Динамична адреса члана групе", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "LDAP атрибут који на групном објекту садржи адресу LDAP претраге којом се одређује да ли објекат припада групи. (празно подешавање искључује могућност динамичких припадности групама.) ", "Nested Groups" : "Угнеждене групе", "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Када је укључено, подржане су групе унутар групе. (Ради само ако особина члана групе садржи DN-ове.)", "Paging chunksize" : "Величина делића странице", "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "Величина делића се користи за страничење ЛДАП претрага које могу вратити гомилу резултата попут набрајања корисника или група. (постављање на 0 у таквим ситуацијама искључује приказ претраге по страницама)", + "Enable LDAP password changes per user" : "Укључи промену LDAP лозинке по кориснику", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Дозволи LDAP корисницима да мењају своју лозинку и дозволи супер администраторима и администраторима група да мењају лозинке њихових LDAP корисника. Ради само када је контрола права приступа подешена према LDAP серверу. Пошто се лозинке шаљу као обичан тест ка LDAP серверу, мора се користити протокол са шифровањем, као и укључивање хеширања на LDAP серверу.", + "(New password is sent as plain text to LDAP)" : "(нова лозинка се шаље као обичан текст на LDAP)", + "Default password policy DN" : "Подразумевана политика промене DN лозинки", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "Подразумевана политика промене лозинки ће се користити када лозинка истиче. Може се користити само када се укључи промена лозинке по кориснику и подржава је само OpenLDAP. Оставите празно да искључите шта се дешава када лозинка истиче.", "Special Attributes" : "Посебни параметри", "Quota Field" : "Поље квоте", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Оставите празно за подразумевану квоту корисника. У супротном, ставите LDAP/AD атрибут.", "Quota Default" : "Подразумевана квота", - "Email Field" : "Поље е-поште", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Редефинише подразумевану квоту за LDAP кориснике који немају постављену квоту у Quota пољу.", + "Email Field" : "Поље адресе е-поште", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Поставља адресу е-поште корисника из LDAP атрибута. Оставите празно за подразумевано понашање.", "User Home Folder Naming Rule" : "Правило именовања корисничке фасцикле", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Оставите празно за корисничко име (подразумевано). У супротном, наведите особину LDAP/AD.", "Internal Username" : "Интерно корисничко име:", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Подразумевано се интерно корисничко име креира од UUID атрибута. Тиме се гарантује да се корисничко име јединствено и да карактери не морају да се конвертују. Интерно корисничко име има ограничења да су дозвољени само следећи карактери: [ a-zA-Z0-9_.@- ]. Остали карактери ће или бити замењени ASCII еквивалентима или ће бити прескочени. Ако се деси поклапање са постојећим корисничким именом, додаће се број на крај имена. Интерно корисничко име се користи да идентификује корисника интерно. Такође се користи и као подразумевано име за име корисничку фасцикле, а и део је удаљених адреса, нпр. свих *DAV сервиса. Уз помоћ овог подешавања, може да се промени подразумевано понашање. Оставите га празним за подразумевано понашање. Промене ће се тицати само новомапираних (додатих) LDAP корисника.", "Internal Username Attribute:" : "Интерни параметри корисничког имена:", "Override UUID detection" : "Прескочи UUID откривање", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Подразумевано, атрибут UUID се аутоматски детектује. Атрибут UUID се користи за сигурну идентификацију LDAP корисника и група. Такође, локално корисничко име ће бити креирано на основу UUID-a, ако није другачије назначено. Можете заобићи поставке и проследити други атрибут по вашем избору. Морате бити сигурни да је изабрани атрибут јединствен и да га корисници и групе могу преносити. Оставите празно за подразумевано понашање. Промене ће имати дејство само на новомапираним (доданим) LDAP корисницима и групама.", @@ -144,7 +187,6 @@ "Clear Groupname-LDAP Group Mapping" : "Очисти Groupname-LDAP мапирање група", "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Недостаје %uid местодржач. Биће замењен са пријавним именом при ЛДАП / АД упиту.", "Verify settings and count groups" : "Провери поставке и преброј групе", - "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Дозволи пријаву уз ЛДАП / АД корисичко име које је или uid или samaccountname и биће откривено.", "Add a new and blank configuration" : "Додај нову празну поставу", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Можете да изоставите протокол, осим ако захтевате ССЛ. У том случају почните са ldaps://", "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Упозорење:</b> Апликације user_ldap и user_webdavauth нису компатибилне. Можете имати проблема. Питајте систем администратора да искључи једну од њих.", diff --git a/apps/user_ldap/lib/Connection.php b/apps/user_ldap/lib/Connection.php index 440f5d2444e..3350dd6a5cd 100644 --- a/apps/user_ldap/lib/Connection.php +++ b/apps/user_ldap/lib/Connection.php @@ -436,8 +436,8 @@ class Connection extends LDAPUtility { || ($agent !== '' && $pwd === '') ) { \OCP\Util::writeLog('user_ldap', - $errorStr.'either no password is given for the'. - 'user agent or a password is given, but not an'. + $errorStr.'either no password is given for the '. + 'user agent or a password is given, but not an '. 'LDAP agent.', \OCP\Util::WARN); $configurationOK = false; diff --git a/apps/user_ldap/lib/User/User.php b/apps/user_ldap/lib/User/User.php index 5017f35ed0a..a46b0053b40 100644 --- a/apps/user_ldap/lib/User/User.php +++ b/apps/user_ldap/lib/User/User.php @@ -529,7 +529,6 @@ class User { $targetUser->setQuota($quota); } else { $this->log->log('not suitable default quota found for user ' . $this->uid . ': [' . $defaultQuota . ']', \OCP\Util::WARN); - $targetUser->setQuota('default'); } } else { $this->log->log('trying to set a quota for user ' . $this->uid . ' but the user is missing', \OCP\Util::ERROR); diff --git a/apps/user_ldap/tests/User/UserTest.php b/apps/user_ldap/tests/User/UserTest.php index 637842d9ac7..5f6148b1332 100644 --- a/apps/user_ldap/tests/User/UserTest.php +++ b/apps/user_ldap/tests/User/UserTest.php @@ -453,9 +453,8 @@ class UserTest extends \Test\TestCase { ->will($this->returnValue(false)); $user = $this->createMock('\OCP\IUser'); - $user->expects($this->once()) - ->method('setQuota') - ->with('default'); + $user->expects($this->never()) + ->method('setQuota'); $userMgr->expects($this->once()) ->method('get') @@ -495,9 +494,8 @@ class UserTest extends \Test\TestCase { ->method('__get'); $user = $this->createMock('\OCP\IUser'); - $user->expects($this->once()) - ->method('setQuota') - ->with('default'); + $user->expects($this->never()) + ->method('setQuota'); $userMgr->expects($this->once()) ->method('get') @@ -633,9 +631,8 @@ class UserTest extends \Test\TestCase { ->will($this->returnValue(false)); $user = $this->createMock('\OCP\IUser'); - $user->expects($this->once()) - ->method('setQuota') - ->with('default'); + $user->expects($this->never()) + ->method('setQuota'); $userMgr->expects($this->once()) ->method('get') @@ -681,9 +678,8 @@ class UserTest extends \Test\TestCase { ->will($this->returnValue(array('23 flush'))); $user = $this->createMock('\OCP\IUser'); - $user->expects($this->once()) - ->method('setQuota') - ->with('default'); + $user->expects($this->never()) + ->method('setQuota'); $userMgr->expects($this->once()) ->method('get') @@ -726,9 +722,8 @@ class UserTest extends \Test\TestCase { ->method('readAttribute'); $user = $this->createMock('\OCP\IUser'); - $user->expects($this->once()) - ->method('setQuota') - ->with('default'); + $user->expects($this->never()) + ->method('setQuota'); $userMgr->expects($this->once()) ->method('get') diff --git a/apps/workflowengine/l10n/sr.js b/apps/workflowengine/l10n/sr.js new file mode 100644 index 00000000000..2a0c0118e16 --- /dev/null +++ b/apps/workflowengine/l10n/sr.js @@ -0,0 +1,73 @@ +OC.L10N.register( + "workflowengine", + { + "Saved" : "Снимљено", + "Saving failed:" : "Снимање није успело:", + "File MIME type" : "MIME тип фајла", + "is" : "је", + "is not" : "није", + "matches" : "се поклапа са", + "does not match" : "се не поклапа са", + "Example: {placeholder}" : "Пример: {placeholder}", + "File size (upload)" : "Величина фајла (отпремање)", + "less" : "је мања од", + "less or equals" : "мања или једнака од", + "greater or equals" : "већа или једнака од", + "greater" : "већа од", + "File system tag" : "Системска ознака фајла", + "is tagged with" : "је означен са", + "is not tagged with" : "није означен са", + "Select tag…" : "Одаберите ознаку…", + "Request remote address" : "Захтевај удаљену адресу", + "matches IPv4" : "поклапа се са IPv4 адресом", + "does not match IPv4" : "не поклапа се са IPv4 адресом", + "matches IPv6" : "поклапа се са IPv6 адресом", + "does not match IPv6" : "не поклапа се са IPv6 адресом", + "Request time" : "Време захтева", + "between" : "између", + "not between" : "није између", + "Start" : "Почетак", + "End" : "Крај", + "Select timezone…" : "Одаберите временску зону…", + "Request URL" : "Адреса захтева", + "Predefined URLs" : "Предефинисане адресе", + "Files WebDAV" : "WebDAV фајлови", + "Request user agent" : "Кориснички агент захтева", + "Sync clients" : "Синхронизовани клијенти", + "Android client" : "Андроид клијент", + "iOS client" : "iOS клијент", + "Desktop client" : "Десктоп клијент", + "User group membership" : "Припадност групи", + "is member of" : "је члан групе", + "is not member of" : "није члан групе", + "The given operator is invalid" : "Дати оператор није исправан", + "The given regular expression is invalid" : "Дати регуларни израз није исправан", + "The given file size is invalid" : "Дата величина фајла није исправна", + "The given tag id is invalid" : "Дати ИД ознаке није исправан", + "The given IP range is invalid" : "Дати опсег ИП адреса није исправан", + "The given IP range is not valid for IPv4" : "Дати опсег ИП адреса није исправан за IPv4", + "The given IP range is not valid for IPv6" : "Дати опсег ИП адреса није исправан за IPv6", + "The given time span is invalid" : "Дати временски оквир није исправан", + "The given start time is invalid" : "Дато време почетка није исправно", + "The given end time is invalid" : "Дато време краја није исправно", + "The given group does not exist" : "Дата група не постоји", + "Check %s is invalid or does not exist" : "Проверите да ли је %s неисправно или не постоји", + "Operation #%s does not exist" : "Операција #%s не постоји", + "Operation %s does not exist" : "Операција %s не постоји", + "Operation %s is invalid" : "Операција %s није исправна", + "Check %s does not exist" : "Проверите да ли %s постоји", + "Check %s is invalid" : "Проверите да ли је %s исправно", + "Check #%s does not exist" : "Проверите да ли #%s постоји", + "Workflow" : "Процес рада", + "Open documentation" : "Отвори документацију", + "Add rule group" : "Додај групу правила", + "Short rule description" : "Кратки опис правила", + "Add rule" : "Додај правило", + "Reset" : "Ресетуј", + "Save" : "Сачувај", + "Saving…" : "Чувам…", + "Loading…" : "Учитавање…", + "Successfully saved" : "Успешно сачувано", + "File mime type" : "MIME тип фајла" +}, +"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/workflowengine/l10n/sr.json b/apps/workflowengine/l10n/sr.json new file mode 100644 index 00000000000..ea34207a608 --- /dev/null +++ b/apps/workflowengine/l10n/sr.json @@ -0,0 +1,71 @@ +{ "translations": { + "Saved" : "Снимљено", + "Saving failed:" : "Снимање није успело:", + "File MIME type" : "MIME тип фајла", + "is" : "је", + "is not" : "није", + "matches" : "се поклапа са", + "does not match" : "се не поклапа са", + "Example: {placeholder}" : "Пример: {placeholder}", + "File size (upload)" : "Величина фајла (отпремање)", + "less" : "је мања од", + "less or equals" : "мања или једнака од", + "greater or equals" : "већа или једнака од", + "greater" : "већа од", + "File system tag" : "Системска ознака фајла", + "is tagged with" : "је означен са", + "is not tagged with" : "није означен са", + "Select tag…" : "Одаберите ознаку…", + "Request remote address" : "Захтевај удаљену адресу", + "matches IPv4" : "поклапа се са IPv4 адресом", + "does not match IPv4" : "не поклапа се са IPv4 адресом", + "matches IPv6" : "поклапа се са IPv6 адресом", + "does not match IPv6" : "не поклапа се са IPv6 адресом", + "Request time" : "Време захтева", + "between" : "између", + "not between" : "није између", + "Start" : "Почетак", + "End" : "Крај", + "Select timezone…" : "Одаберите временску зону…", + "Request URL" : "Адреса захтева", + "Predefined URLs" : "Предефинисане адресе", + "Files WebDAV" : "WebDAV фајлови", + "Request user agent" : "Кориснички агент захтева", + "Sync clients" : "Синхронизовани клијенти", + "Android client" : "Андроид клијент", + "iOS client" : "iOS клијент", + "Desktop client" : "Десктоп клијент", + "User group membership" : "Припадност групи", + "is member of" : "је члан групе", + "is not member of" : "није члан групе", + "The given operator is invalid" : "Дати оператор није исправан", + "The given regular expression is invalid" : "Дати регуларни израз није исправан", + "The given file size is invalid" : "Дата величина фајла није исправна", + "The given tag id is invalid" : "Дати ИД ознаке није исправан", + "The given IP range is invalid" : "Дати опсег ИП адреса није исправан", + "The given IP range is not valid for IPv4" : "Дати опсег ИП адреса није исправан за IPv4", + "The given IP range is not valid for IPv6" : "Дати опсег ИП адреса није исправан за IPv6", + "The given time span is invalid" : "Дати временски оквир није исправан", + "The given start time is invalid" : "Дато време почетка није исправно", + "The given end time is invalid" : "Дато време краја није исправно", + "The given group does not exist" : "Дата група не постоји", + "Check %s is invalid or does not exist" : "Проверите да ли је %s неисправно или не постоји", + "Operation #%s does not exist" : "Операција #%s не постоји", + "Operation %s does not exist" : "Операција %s не постоји", + "Operation %s is invalid" : "Операција %s није исправна", + "Check %s does not exist" : "Проверите да ли %s постоји", + "Check %s is invalid" : "Проверите да ли је %s исправно", + "Check #%s does not exist" : "Проверите да ли #%s постоји", + "Workflow" : "Процес рада", + "Open documentation" : "Отвори документацију", + "Add rule group" : "Додај групу правила", + "Short rule description" : "Кратки опис правила", + "Add rule" : "Додај правило", + "Reset" : "Ресетуј", + "Save" : "Сачувај", + "Saving…" : "Чувам…", + "Loading…" : "Учитавање…", + "Successfully saved" : "Успешно сачувано", + "File mime type" : "MIME тип фајла" +},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" +}
\ No newline at end of file |