aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/dav/lib/AppInfo/Application.php1
-rw-r--r--apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php1
-rw-r--r--apps/dav/lib/CalDAV/Schedule/IMipPlugin.php1
-rw-r--r--apps/dav/lib/CardDAV/Xml/Groups.php1
-rw-r--r--apps/dav/lib/Command/CreateAddressBook.php5
-rw-r--r--apps/dav/lib/Command/SyncSystemAddressBook.php2
-rw-r--r--apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/ChecksumList.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/DavAclPlugin.php6
-rw-r--r--apps/dav/lib/Connector/Sabre/FilesPlugin.php3
-rw-r--r--apps/dav/lib/Connector/Sabre/LockPlugin.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/SharesPlugin.php2
-rw-r--r--apps/dav/lib/DAV/Sharing/Plugin.php1
-rw-r--r--apps/dav/lib/HookManager.php1
-rw-r--r--apps/dav/lib/SystemTag/SystemTagPlugin.php3
-rw-r--r--apps/dav/lib/SystemTag/SystemTagsByIdCollection.php2
-rw-r--r--apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php1
-rw-r--r--apps/dav/lib/SystemTag/SystemTagsObjectTypeCollection.php1
-rw-r--r--apps/dav/lib/Upload/FutureFile.php1
-rw-r--r--apps/dav/tests/unit/CardDAV/ConverterTest.php1
-rw-r--r--apps/dav/tests/unit/Comments/CommentsNodeTest.php1
-rw-r--r--apps/dav/tests/unit/Comments/CommentsPluginTest.php1
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php1
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php1
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php2
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php2
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php3
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTest.php4
-rw-r--r--apps/dav/tests/unit/DAV/HookManagerTest.php3
-rw-r--r--apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php1
-rw-r--r--apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php1
-rw-r--r--apps/federatedfilesharing/lib/Controller/RequestHandlerController.php1
-rw-r--r--apps/federatedfilesharing/tests/js/externalSpec.js6
-rw-r--r--apps/federation/lib/AppInfo/Application.php4
-rw-r--r--apps/federation/lib/Command/SyncFederationAddressBooks.php1
-rw-r--r--apps/files/l10n/es_MX.js1
-rw-r--r--apps/files/l10n/es_MX.json1
-rw-r--r--apps/files/lib/Command/DeleteOrphanedFiles.php2
-rw-r--r--apps/files/lib/Command/ScanAppData.php2
-rw-r--r--apps/files/lib/Controller/ViewController.php1
-rw-r--r--apps/files/tests/Controller/ApiControllerTest.php2
-rw-r--r--apps/files/tests/js/filelistSpec.js2
-rw-r--r--apps/files_external/lib/Lib/Backend/SFTP.php3
-rw-r--r--apps/files_external/lib/Lib/Storage/SFTP.php1
-rw-r--r--apps/files_external/lib/Lib/Storage/SMB.php3
-rw-r--r--apps/files_external/tests/js/settingsSpec.js2
-rw-r--r--apps/files_sharing/css/sharetabview.scss5
-rw-r--r--apps/files_sharing/l10n/pt_BR.js2
-rw-r--r--apps/files_sharing/l10n/pt_BR.json2
-rw-r--r--apps/files_sharing/lib/AppInfo/Application.php1
-rw-r--r--apps/files_sharing/lib/Cache.php1
-rw-r--r--apps/files_sharing/lib/External/Manager.php1
-rw-r--r--apps/files_sharing/lib/External/Storage.php1
-rw-r--r--apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php1
-rw-r--r--apps/files_versions/l10n/el.js1
-rw-r--r--apps/files_versions/l10n/el.json1
-rw-r--r--apps/provisioning_api/lib/Controller/AppsController.php1
-rw-r--r--apps/provisioning_api/lib/Controller/UsersController.php41
-rw-r--r--apps/provisioning_api/tests/Controller/UsersControllerTest.php135
-rw-r--r--apps/sharebymail/l10n/es_MX.js3
-rw-r--r--apps/sharebymail/l10n/es_MX.json3
-rw-r--r--apps/systemtags/l10n/pt_BR.js2
-rw-r--r--apps/systemtags/l10n/pt_BR.json2
-rw-r--r--apps/testing/locking/provisioning.php1
-rw-r--r--apps/theming/l10n/pt_BR.js2
-rw-r--r--apps/theming/l10n/pt_BR.json2
-rw-r--r--apps/twofactor_backupcodes/l10n/pt_BR.js2
-rw-r--r--apps/twofactor_backupcodes/l10n/pt_BR.json2
-rw-r--r--apps/updatenotification/l10n/pt_BR.js12
-rw-r--r--apps/updatenotification/l10n/pt_BR.json12
-rw-r--r--apps/user_ldap/ajax/wizard.php3
-rw-r--r--apps/user_ldap/appinfo/app.php19
-rw-r--r--apps/user_ldap/appinfo/register_command.php3
-rw-r--r--apps/user_ldap/appinfo/routes.php10
-rw-r--r--apps/user_ldap/css/renewPassword.css20
-rw-r--r--apps/user_ldap/js/renewPassword.js50
-rw-r--r--apps/user_ldap/js/wizard/wizardTabAdvanced.js15
-rw-r--r--apps/user_ldap/lib/Access.php2
-rw-r--r--apps/user_ldap/lib/AppInfo/Application.php52
-rw-r--r--apps/user_ldap/lib/Command/Search.php2
-rw-r--r--apps/user_ldap/lib/Configuration.php3
-rw-r--r--apps/user_ldap/lib/Controller/RenewPasswordController.php180
-rw-r--r--apps/user_ldap/lib/Exceptions/ConstraintViolationException.php2
-rw-r--r--apps/user_ldap/lib/Helper.php3
-rw-r--r--apps/user_ldap/lib/Jobs/CleanUp.php3
-rw-r--r--apps/user_ldap/lib/Jobs/UpdateGroups.php3
-rw-r--r--apps/user_ldap/lib/Migration/UUIDFixGroup.php3
-rw-r--r--apps/user_ldap/lib/Notification/Notifier.php71
-rw-r--r--apps/user_ldap/lib/Proxy.php5
-rw-r--r--apps/user_ldap/lib/User/Manager.php34
-rw-r--r--apps/user_ldap/lib/User/User.php129
-rw-r--r--apps/user_ldap/lib/User_LDAP.php23
-rw-r--r--apps/user_ldap/lib/User_Proxy.php6
-rw-r--r--apps/user_ldap/templates/renewpassword.php73
-rw-r--r--apps/user_ldap/templates/settings.php1
-rw-r--r--apps/user_ldap/tests/AccessTest.php4
-rw-r--r--apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php2
-rw-r--r--apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php2
-rw-r--r--apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php2
-rw-r--r--apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php5
-rw-r--r--apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php2
-rw-r--r--apps/user_ldap/tests/User/ManagerTest.php36
-rw-r--r--apps/user_ldap/tests/User/UserTest.php278
-rw-r--r--apps/user_ldap/tests/User_LDAPTest.php96
-rw-r--r--apps/user_ldap/tests/User_ProxyTest.php5
-rw-r--r--core/Command/Maintenance/Repair.php1
-rw-r--r--core/Controller/LoginController.php3
-rw-r--r--core/Controller/LostController.php1
-rw-r--r--core/js/sharedialoglinkshareview.js4
-rw-r--r--core/js/sharedialogview.js81
-rw-r--r--core/js/shareitemmodel.js2
-rw-r--r--core/js/tests/specs/jquery.avatarSpec.js2
-rw-r--r--core/js/tests/specs/sharedialogviewSpec.js4
-rw-r--r--core/l10n/bg.js18
-rw-r--r--core/l10n/bg.json18
-rw-r--r--core/l10n/ca.js242
-rw-r--r--core/l10n/ca.json240
-rw-r--r--core/l10n/cs.js18
-rw-r--r--core/l10n/cs.json18
-rw-r--r--core/l10n/da.js18
-rw-r--r--core/l10n/da.json18
-rw-r--r--core/l10n/de.js18
-rw-r--r--core/l10n/de.json18
-rw-r--r--core/l10n/de_DE.js18
-rw-r--r--core/l10n/de_DE.json18
-rw-r--r--core/l10n/el.js18
-rw-r--r--core/l10n/el.json18
-rw-r--r--core/l10n/es.js18
-rw-r--r--core/l10n/es.json18
-rw-r--r--core/l10n/es_MX.js18
-rw-r--r--core/l10n/es_MX.json18
-rw-r--r--core/l10n/eu.js18
-rw-r--r--core/l10n/eu.json18
-rw-r--r--core/l10n/fi.js18
-rw-r--r--core/l10n/fi.json18
-rw-r--r--core/l10n/fr.js18
-rw-r--r--core/l10n/fr.json18
-rw-r--r--core/l10n/he.js241
-rw-r--r--core/l10n/he.json239
-rw-r--r--core/l10n/hu.js18
-rw-r--r--core/l10n/hu.json18
-rw-r--r--core/l10n/id.js18
-rw-r--r--core/l10n/id.json18
-rw-r--r--core/l10n/is.js18
-rw-r--r--core/l10n/is.json18
-rw-r--r--core/l10n/it.js18
-rw-r--r--core/l10n/it.json18
-rw-r--r--core/l10n/ja.js18
-rw-r--r--core/l10n/ja.json18
-rw-r--r--core/l10n/nb.js18
-rw-r--r--core/l10n/nb.json18
-rw-r--r--core/l10n/nl.js18
-rw-r--r--core/l10n/nl.json18
-rw-r--r--core/l10n/pl.js18
-rw-r--r--core/l10n/pl.json18
-rw-r--r--core/l10n/pt_BR.js18
-rw-r--r--core/l10n/pt_BR.json18
-rw-r--r--core/l10n/pt_PT.js18
-rw-r--r--core/l10n/pt_PT.json18
-rw-r--r--core/l10n/ro.js18
-rw-r--r--core/l10n/ro.json18
-rw-r--r--core/l10n/ru.js18
-rw-r--r--core/l10n/ru.json18
-rw-r--r--core/l10n/sk.js16
-rw-r--r--core/l10n/sk.json16
-rw-r--r--core/l10n/sq.js18
-rw-r--r--core/l10n/sq.json18
-rw-r--r--core/l10n/sv.js39
-rw-r--r--core/l10n/sv.json39
-rw-r--r--core/l10n/tr.js18
-rw-r--r--core/l10n/tr.json18
-rw-r--r--core/l10n/zh_CN.js18
-rw-r--r--core/l10n/zh_CN.json18
-rw-r--r--lib/private/App/CodeChecker/CodeChecker.php2
-rw-r--r--lib/private/App/Platform.php1
-rw-r--r--lib/private/AppFramework/App.php1
-rw-r--r--lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php1
-rw-r--r--lib/private/Comments/Manager.php1
-rw-r--r--lib/private/Console/Application.php1
-rw-r--r--lib/private/DB/MDB2SchemaReader.php2
-rw-r--r--lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php6
-rw-r--r--lib/private/Encryption/Util.php1
-rw-r--r--lib/private/Files/Cache/Scanner.php1
-rw-r--r--lib/private/Files/Cache/StorageGlobal.php1
-rw-r--r--lib/private/Files/Config/LazyStorageMountInfo.php3
-rw-r--r--lib/private/Files/Config/UserMountCache.php3
-rw-r--r--lib/private/Files/FileInfo.php2
-rw-r--r--lib/private/Files/Filesystem.php1
-rw-r--r--lib/private/Files/Node/LazyRoot.php2
-rw-r--r--lib/private/Files/ObjectStore/Swift.php1
-rw-r--r--lib/private/Files/Storage/DAV.php2
-rw-r--r--lib/private/Files/Type/Loader.php1
-rw-r--r--lib/private/Files/View.php2
-rw-r--r--lib/private/Installer.php1
-rw-r--r--lib/private/Lockdown/Filesystem/NullCache.php1
-rw-r--r--lib/private/Log.php1
-rw-r--r--lib/private/Repair/RepairInvalidShares.php1
-rw-r--r--lib/private/Security/CredentialsManager.php1
-rw-r--r--lib/private/Security/SecureRandom.php2
-rw-r--r--lib/private/Settings/Admin/Additional.php8
-rw-r--r--lib/private/Settings/Admin/ServerDevNotice.php9
-rw-r--r--lib/private/Setup/AbstractDatabase.php1
-rw-r--r--lib/private/Share/Share.php1
-rw-r--r--lib/private/Share20/DefaultShareProvider.php1
-rw-r--r--lib/private/Share20/Manager.php2
-rw-r--r--lib/private/Share20/ProviderFactory.php1
-rw-r--r--lib/private/SystemTag/SystemTagManager.php1
-rw-r--r--lib/private/Template/SCSSCacher.php1
-rw-r--r--lib/private/Updater/VersionCheck.php2
-rw-r--r--lib/private/legacy/app.php1
-rw-r--r--lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php2
-rw-r--r--lib/public/AppFramework/Http/NotFoundResponse.php1
-rw-r--r--lib/public/AppFramework/Http/RedirectResponse.php1
-rw-r--r--lib/public/AppFramework/IAppContainer.php1
-rw-r--r--lib/public/AppFramework/Middleware.php1
-rw-r--r--lib/public/AppFramework/OCSController.php1
-rw-r--r--lib/public/Files/Cache/ICache.php1
-rw-r--r--lib/public/Files/Config/IMountProviderCollection.php1
-rw-r--r--lib/public/SystemTag/ISystemTagManager.php1
-rw-r--r--settings/js/admin.js4
-rw-r--r--settings/js/users/users.js1
-rw-r--r--settings/l10n/el.js2
-rw-r--r--settings/l10n/el.json2
-rw-r--r--settings/l10n/fi.js4
-rw-r--r--settings/l10n/fi.json4
-rw-r--r--settings/l10n/pt_BR.js12
-rw-r--r--settings/l10n/pt_BR.json12
-rw-r--r--tests/Core/Controller/LoginControllerTest.php10
-rwxr-xr-xtests/acceptance/run.sh59
-rw-r--r--tests/bootstrap.php2
-rw-r--r--tests/lib/Files/Config/UserMountCacheTest.php24
231 files changed, 1780 insertions, 2013 deletions
diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php
index 669c52d1489..b4f16f3cadf 100644
--- a/apps/dav/lib/AppInfo/Application.php
+++ b/apps/dav/lib/AppInfo/Application.php
@@ -25,7 +25,6 @@
namespace OCA\DAV\AppInfo;
use OCA\DAV\CalDAV\Activity\Backend;
-use OCA\DAV\CalDAV\Activity\Extension;
use OCA\DAV\CalDAV\Activity\Provider\Event;
use OCA\DAV\CalDAV\BirthdayService;
use OCA\DAV\Capabilities;
diff --git a/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php b/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php
index 1fdba22e9e0..5adbe71c433 100644
--- a/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php
+++ b/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php
@@ -20,7 +20,6 @@
*/
namespace OCA\DAV\CalDAV\Publishing\Xml;
-use OCA\DAV\CalDAV\Publishing\PublishPlugin as Plugin;
use Sabre\Xml\Writer;
use Sabre\Xml\XmlSerializable;
diff --git a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
index 843da65ce25..c21edb45848 100644
--- a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
+++ b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php
@@ -23,7 +23,6 @@ namespace OCA\DAV\CalDAV\Schedule;
use OCP\ILogger;
use OCP\Mail\IMailer;
-use Sabre\DAV;
use Sabre\VObject\ITip;
use Sabre\CalDAV\Schedule\IMipPlugin as SabreIMipPlugin;
/**
diff --git a/apps/dav/lib/CardDAV/Xml/Groups.php b/apps/dav/lib/CardDAV/Xml/Groups.php
index 1b439b6b821..9240b90a1eb 100644
--- a/apps/dav/lib/CardDAV/Xml/Groups.php
+++ b/apps/dav/lib/CardDAV/Xml/Groups.php
@@ -22,7 +22,6 @@
namespace OCA\DAV\CardDAV\Xml;
use Sabre\Xml\XmlSerializable;
-use Sabre\Xml\Element;
use Sabre\Xml\Writer;
class Groups implements XmlSerializable {
diff --git a/apps/dav/lib/Command/CreateAddressBook.php b/apps/dav/lib/Command/CreateAddressBook.php
index a0416966f05..96ad350121c 100644
--- a/apps/dav/lib/Command/CreateAddressBook.php
+++ b/apps/dav/lib/Command/CreateAddressBook.php
@@ -23,11 +23,6 @@
namespace OCA\DAV\Command;
use OCA\DAV\CardDAV\CardDavBackend;
-use OCA\DAV\Connector\Sabre\Principal;
-use OCP\IConfig;
-use OCP\IDBConnection;
-use OCP\IGroupManager;
-use OCP\ILogger;
use OCP\IUserManager;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputArgument;
diff --git a/apps/dav/lib/Command/SyncSystemAddressBook.php b/apps/dav/lib/Command/SyncSystemAddressBook.php
index e642d9af5aa..e91ab38593d 100644
--- a/apps/dav/lib/Command/SyncSystemAddressBook.php
+++ b/apps/dav/lib/Command/SyncSystemAddressBook.php
@@ -22,10 +22,8 @@
namespace OCA\DAV\Command;
use OCA\DAV\CardDAV\SyncService;
-use OCP\IUserManager;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\ProgressBar;
-use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
diff --git a/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php b/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php
index 616816d3496..0a70d44395b 100644
--- a/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/BlockLegacyClientPlugin.php
@@ -26,7 +26,6 @@ namespace OCA\DAV\Connector\Sabre;
use OCP\IConfig;
use Sabre\HTTP\RequestInterface;
use Sabre\DAV\ServerPlugin;
-use Sabre\DAV\Exception;
/**
* Class BlockLegacyClientPlugin is used to detect old legacy sync clients and
diff --git a/apps/dav/lib/Connector/Sabre/ChecksumList.php b/apps/dav/lib/Connector/Sabre/ChecksumList.php
index 17e04a4c7a8..1bc38f75fb9 100644
--- a/apps/dav/lib/Connector/Sabre/ChecksumList.php
+++ b/apps/dav/lib/Connector/Sabre/ChecksumList.php
@@ -22,7 +22,6 @@
namespace OCA\DAV\Connector\Sabre;
use Sabre\Xml\XmlSerializable;
-use Sabre\Xml\Element;
use Sabre\Xml\Writer;
/**
diff --git a/apps/dav/lib/Connector/Sabre/DavAclPlugin.php b/apps/dav/lib/Connector/Sabre/DavAclPlugin.php
index 427a3756019..e77edd48651 100644
--- a/apps/dav/lib/Connector/Sabre/DavAclPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/DavAclPlugin.php
@@ -25,14 +25,8 @@ namespace OCA\DAV\Connector\Sabre;
use Sabre\CalDAV\Principal\User;
use Sabre\DAV\Exception\NotFound;
-use Sabre\DAV\IFile;
use Sabre\DAV\INode;
use \Sabre\DAV\PropFind;
-use \Sabre\DAV\PropPatch;
-use Sabre\DAVACL\Exception\NeedPrivileges;
-use \Sabre\HTTP\RequestInterface;
-use \Sabre\HTTP\ResponseInterface;
-use Sabre\HTTP\URLUtil;
/**
* Class DavAclPlugin is a wrapper around \Sabre\DAVACL\Plugin that returns 404
diff --git a/apps/dav/lib/Connector/Sabre/FilesPlugin.php b/apps/dav/lib/Connector/Sabre/FilesPlugin.php
index 2f86ce5bf41..5a08e37a153 100644
--- a/apps/dav/lib/Connector/Sabre/FilesPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/FilesPlugin.php
@@ -31,7 +31,6 @@
namespace OCA\DAV\Connector\Sabre;
use OC\Files\View;
-use OCA\DAV\Upload\FutureFile;
use OCP\Files\ForbiddenException;
use OCP\IPreview;
use Sabre\DAV\Exception\Forbidden;
@@ -46,8 +45,6 @@ use \Sabre\HTTP\ResponseInterface;
use OCP\Files\StorageNotAvailableException;
use OCP\IConfig;
use OCP\IRequest;
-use Sabre\DAV\Exception\BadRequest;
-use OCA\DAV\Connector\Sabre\Directory;
class FilesPlugin extends ServerPlugin {
diff --git a/apps/dav/lib/Connector/Sabre/LockPlugin.php b/apps/dav/lib/Connector/Sabre/LockPlugin.php
index de0aaed4c69..9731bc15f86 100644
--- a/apps/dav/lib/Connector/Sabre/LockPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/LockPlugin.php
@@ -26,7 +26,6 @@
namespace OCA\DAV\Connector\Sabre;
use OCA\DAV\Connector\Sabre\Exception\FileLocked;
-use OCA\DAV\Connector\Sabre\Node;
use OCP\Lock\ILockingProvider;
use OCP\Lock\LockedException;
use Sabre\DAV\Exception\NotFound;
diff --git a/apps/dav/lib/Connector/Sabre/SharesPlugin.php b/apps/dav/lib/Connector/Sabre/SharesPlugin.php
index 2b640d74fd4..9b06ef07810 100644
--- a/apps/dav/lib/Connector/Sabre/SharesPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/SharesPlugin.php
@@ -22,10 +22,8 @@
namespace OCA\DAV\Connector\Sabre;
use \Sabre\DAV\PropFind;
-use \Sabre\DAV\PropPatch;
use OCP\IUserSession;
use OCP\Share\IShare;
-use OCA\DAV\Connector\Sabre\ShareTypeList;
/**
* Sabre Plugin to provide share-related properties
diff --git a/apps/dav/lib/DAV/Sharing/Plugin.php b/apps/dav/lib/DAV/Sharing/Plugin.php
index 6f52721ac1e..a1f034d54b5 100644
--- a/apps/dav/lib/DAV/Sharing/Plugin.php
+++ b/apps/dav/lib/DAV/Sharing/Plugin.php
@@ -25,7 +25,6 @@ namespace OCA\DAV\DAV\Sharing;
use OCA\DAV\Connector\Sabre\Auth;
use OCA\DAV\DAV\Sharing\Xml\Invite;
use OCP\IRequest;
-use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\INode;
use Sabre\DAV\PropFind;
diff --git a/apps/dav/lib/HookManager.php b/apps/dav/lib/HookManager.php
index 8148df2d37b..624e45dc55f 100644
--- a/apps/dav/lib/HookManager.php
+++ b/apps/dav/lib/HookManager.php
@@ -28,7 +28,6 @@ use OCP\IUser;
use OCP\IUserManager;
use OCP\Util;
use Symfony\Component\EventDispatcher\EventDispatcher;
-use Symfony\Component\EventDispatcher\GenericEvent;
class HookManager {
diff --git a/apps/dav/lib/SystemTag/SystemTagPlugin.php b/apps/dav/lib/SystemTag/SystemTagPlugin.php
index 87aebe51bee..d76bf2e689b 100644
--- a/apps/dav/lib/SystemTag/SystemTagPlugin.php
+++ b/apps/dav/lib/SystemTag/SystemTagPlugin.php
@@ -30,15 +30,12 @@ use Sabre\DAV\PropPatch;
use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\Exception\Conflict;
use Sabre\DAV\Exception\Forbidden;
-use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\Exception\UnsupportedMediaType;
-
use OCP\SystemTag\ISystemTag;
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\TagAlreadyExistsException;
use Sabre\HTTP\RequestInterface;
use Sabre\HTTP\ResponseInterface;
-use OCA\DAV\SystemTag\SystemTagMappingNode;
/**
* Sabre plugin to handle system tags:
diff --git a/apps/dav/lib/SystemTag/SystemTagsByIdCollection.php b/apps/dav/lib/SystemTag/SystemTagsByIdCollection.php
index 176a130774d..ca423739de4 100644
--- a/apps/dav/lib/SystemTag/SystemTagsByIdCollection.php
+++ b/apps/dav/lib/SystemTag/SystemTagsByIdCollection.php
@@ -27,13 +27,11 @@ use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\ICollection;
-
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTag;
use OCP\SystemTag\TagNotFoundException;
use OCP\IGroupManager;
use OCP\IUserSession;
-use OC\User\NoUserException;
class SystemTagsByIdCollection implements ICollection {
diff --git a/apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php b/apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php
index 124ed6184c1..5d54a7f4430 100644
--- a/apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php
+++ b/apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php
@@ -27,7 +27,6 @@ use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\Exception\BadRequest;
use Sabre\DAV\Exception\PreconditionFailed;
use Sabre\DAV\ICollection;
-
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\SystemTag\ISystemTag;
diff --git a/apps/dav/lib/SystemTag/SystemTagsObjectTypeCollection.php b/apps/dav/lib/SystemTag/SystemTagsObjectTypeCollection.php
index 608a781cd77..0ed246faa5a 100644
--- a/apps/dav/lib/SystemTag/SystemTagsObjectTypeCollection.php
+++ b/apps/dav/lib/SystemTag/SystemTagsObjectTypeCollection.php
@@ -28,7 +28,6 @@ use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\Exception\MethodNotAllowed;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\ICollection;
-
use OCP\SystemTag\ISystemTagManager;
use OCP\SystemTag\ISystemTagObjectMapper;
use OCP\IUserSession;
diff --git a/apps/dav/lib/Upload/FutureFile.php b/apps/dav/lib/Upload/FutureFile.php
index 5dac34b4d6f..d86603fd8c2 100644
--- a/apps/dav/lib/Upload/FutureFile.php
+++ b/apps/dav/lib/Upload/FutureFile.php
@@ -23,7 +23,6 @@
namespace OCA\DAV\Upload;
use OCA\DAV\Connector\Sabre\Directory;
-use OCA\DAV\Upload\AssemblyStream;
use Sabre\DAV\Exception\Forbidden;
use Sabre\DAV\IFile;
diff --git a/apps/dav/tests/unit/CardDAV/ConverterTest.php b/apps/dav/tests/unit/CardDAV/ConverterTest.php
index 448d80f3070..39853cfd5c8 100644
--- a/apps/dav/tests/unit/CardDAV/ConverterTest.php
+++ b/apps/dav/tests/unit/CardDAV/ConverterTest.php
@@ -29,7 +29,6 @@ use OCA\DAV\CardDAV\Converter;
use OCP\IDBConnection;
use OCP\IImage;
use OCP\IUser;
-use OpenCloud\ObjectStore\Resource\Account;
use PHPUnit_Framework_MockObject_MockObject;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Test\TestCase;
diff --git a/apps/dav/tests/unit/Comments/CommentsNodeTest.php b/apps/dav/tests/unit/Comments/CommentsNodeTest.php
index 94eaea01d56..226aa57598c 100644
--- a/apps/dav/tests/unit/Comments/CommentsNodeTest.php
+++ b/apps/dav/tests/unit/Comments/CommentsNodeTest.php
@@ -26,7 +26,6 @@
namespace OCA\DAV\Tests\unit\Comments;
use OCA\DAV\Comments\CommentNode;
-use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
use OCP\Comments\MessageTooLongException;
diff --git a/apps/dav/tests/unit/Comments/CommentsPluginTest.php b/apps/dav/tests/unit/Comments/CommentsPluginTest.php
index bb512465a89..265afad96c3 100644
--- a/apps/dav/tests/unit/Comments/CommentsPluginTest.php
+++ b/apps/dav/tests/unit/Comments/CommentsPluginTest.php
@@ -28,7 +28,6 @@ namespace OCA\DAV\Tests\unit\Comments;
use OC\Comments\Comment;
use OCA\DAV\Comments\CommentsPlugin as CommentsPluginImplementation;
use OCP\Comments\IComment;
-use Sabre\DAV\Exception\NotFound;
class CommentsPluginTest extends \Test\TestCase {
/** @var \Sabre\DAV\Server */
diff --git a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
index 225955beb07..8088ee6dc4d 100644
--- a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php
@@ -26,7 +26,6 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre;
use OCA\DAV\Connector\Sabre\Exception\InvalidPath;
use OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin as PluginToTest;
use OC\Log;
-use OCP\ILogger;
use PHPUnit_Framework_MockObject_MockObject;
use Sabre\DAV\Exception\NotFound;
use Sabre\DAV\Server;
diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
index 54e5283c7c1..4d8a87b093f 100644
--- a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php
@@ -28,7 +28,6 @@ use OCA\DAV\Connector\Sabre\FilesReportPlugin as FilesReportPluginImplementation
use OCP\IPreview;
use OCP\ITagManager;
use OCP\IUserSession;
-use Sabre\DAV\Exception\NotFound;
use OCP\SystemTag\ISystemTagObjectMapper;
use OC\Files\View;
use OCP\Files\Folder;
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php
index 240a51d01f2..7468e981020 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php
@@ -22,9 +22,7 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre\RequestTest;
-use OC\Connector\Sabre\Exception\FileLocked;
use OCP\AppFramework\Http;
-use OCP\Lock\ILockingProvider;
/**
* Class DeleteTest
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php
index 0be2bc5ef79..16cd6ab9c2d 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/ExceptionPlugin.php
@@ -24,8 +24,6 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre\RequestTest;
-use Sabre\DAV\Exception;
-
class ExceptionPlugin extends \OCA\DAV\Connector\Sabre\ExceptionLoggerPlugin {
/**
* @var \Exception[]
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php
index 00e012197d9..3f3bf16a422 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php
@@ -24,9 +24,6 @@
namespace OCA\DAV\Tests\unit\Connector\Sabre\RequestTest;
-use OC\Files\View;
-use Test\Traits\EncryptionTrait;
-
/**
* Class PartFileInRootUploadTest
*
diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTest.php
index 10cd73baf63..63bd3cf19cc 100644
--- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTest.php
@@ -28,11 +28,7 @@ namespace OCA\DAV\Tests\unit\Connector\Sabre\RequestTest;
use OCA\DAV\Connector\Sabre\Server;
use OCA\DAV\Connector\Sabre\ServerFactory;
-use OC\Files\Mount\MountPoint;
-use OC\Files\Storage\StorageFactory;
-use OC\Files\Storage\Temporary;
use OC\Files\View;
-use OCP\IUser;
use Sabre\HTTP\Request;
use Test\TestCase;
use Test\Traits\MountProviderTrait;
diff --git a/apps/dav/tests/unit/DAV/HookManagerTest.php b/apps/dav/tests/unit/DAV/HookManagerTest.php
index 375bda9f3c2..a78ffea5af4 100644
--- a/apps/dav/tests/unit/DAV/HookManagerTest.php
+++ b/apps/dav/tests/unit/DAV/HookManagerTest.php
@@ -23,7 +23,6 @@
namespace OCA\DAV\Tests\unit\DAV;
-use OCA\DAV\CalDAV\BirthdayService;
use OCA\DAV\CalDAV\CalDavBackend;
use OCA\DAV\CardDAV\CardDavBackend;
use OCA\DAV\CardDAV\SyncService;
@@ -31,7 +30,7 @@ use OCA\DAV\HookManager;
use OCP\IL10N;
use OCP\IUser;
use OCP\IUserManager;
-use Symfony\Component\EventDispatcher\EventDispatcherInterface;
+use Symfony\Component\EventDispatcher\EventDispatcher;
use Test\TestCase;
class HookManagerTest extends TestCase {
diff --git a/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php
index c52b8fb1cf3..1831210546d 100644
--- a/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php
+++ b/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php
@@ -24,7 +24,6 @@
namespace OCA\DAV\Tests\unit\SystemTag;
-use Sabre\DAV\Exception\NotFound;
use OC\SystemTag\SystemTag;
use OCP\SystemTag\TagNotFoundException;
use OCP\SystemTag\ISystemTag;
diff --git a/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php b/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php
index 5cdba0cfffd..89fdbc64d9a 100644
--- a/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php
+++ b/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php
@@ -29,7 +29,6 @@ use OC\Files\Filesystem;
use OC\HintException;
use OC\Share\Helper;
use OCA\FederatedFileSharing\AddressHandler;
-use OCA\FederatedFileSharing\DiscoveryManager;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCA\Files_Sharing\External\Manager;
use OCP\AppFramework\Controller;
diff --git a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php
index 2b643810fb4..8a7a1188c28 100644
--- a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php
+++ b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php
@@ -26,7 +26,6 @@
namespace OCA\FederatedFileSharing\Controller;
-use OCA\FederatedFileSharing\DiscoveryManager;
use OCA\Files_Sharing\Activity\Providers\RemoteShares;
use OCA\FederatedFileSharing\AddressHandler;
use OCA\FederatedFileSharing\FederatedShareProvider;
diff --git a/apps/federatedfilesharing/tests/js/externalSpec.js b/apps/federatedfilesharing/tests/js/externalSpec.js
index 362df49252b..596c0ae60ac 100644
--- a/apps/federatedfilesharing/tests/js/externalSpec.js
+++ b/apps/federatedfilesharing/tests/js/externalSpec.js
@@ -8,6 +8,8 @@
*
*/
+/* global sinon */
+
describe('OCA.Sharing external tests', function() {
var plugin;
var urlQueryStub;
@@ -24,8 +26,8 @@ describe('OCA.Sharing external tests', function() {
plugin = OCA.Sharing.ExternalShareDialogPlugin;
urlQueryStub = sinon.stub(OC.Util.History, 'parseUrlQuery');
- confirmDialogStub = sinon.stub(OC.dialogs, 'confirm', dummyShowDialog);
- promptDialogStub = sinon.stub(OC.dialogs, 'prompt', dummyShowDialog);
+ confirmDialogStub = sinon.stub(OC.dialogs, 'confirm').callsFake(dummyShowDialog);
+ promptDialogStub = sinon.stub(OC.dialogs, 'prompt').callsFake(dummyShowDialog);
plugin.filesApp = {
fileList: {
diff --git a/apps/federation/lib/AppInfo/Application.php b/apps/federation/lib/AppInfo/Application.php
index 3166316b108..55647622915 100644
--- a/apps/federation/lib/AppInfo/Application.php
+++ b/apps/federation/lib/AppInfo/Application.php
@@ -24,17 +24,13 @@
namespace OCA\Federation\AppInfo;
-use OCA\Federation\API\OCSAuthAPI;
use OCA\Federation\Controller\SettingsController;
use OCA\Federation\DAV\FedAuth;
use OCA\Federation\DbHandler;
use OCA\Federation\Hooks;
use OCA\Federation\Middleware\AddServerMiddleware;
use OCA\Federation\SyncFederationAddressBooks;
-use OCA\Federation\SyncJob;
use OCA\Federation\TrustedServers;
-use OCP\API;
-use OCP\App;
use OCP\AppFramework\IAppContainer;
use OCP\SabrePluginEvent;
use OCP\Util;
diff --git a/apps/federation/lib/Command/SyncFederationAddressBooks.php b/apps/federation/lib/Command/SyncFederationAddressBooks.php
index bea75cc83a1..fb3a2749ff8 100644
--- a/apps/federation/lib/Command/SyncFederationAddressBooks.php
+++ b/apps/federation/lib/Command/SyncFederationAddressBooks.php
@@ -23,7 +23,6 @@
*/
namespace OCA\Federation\Command;
-use OCA\Federation\DbHandler;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Input\InputInterface;
diff --git a/apps/files/l10n/es_MX.js b/apps/files/l10n/es_MX.js
index 2ec453db7ec..718f1fba0f9 100644
--- a/apps/files/l10n/es_MX.js
+++ b/apps/files/l10n/es_MX.js
@@ -121,6 +121,7 @@ OC.L10N.register(
"Select all" : "Seleccionar todo",
"Upload too large" : "La carga es demasido grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que está intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
+ "No favorites yet" : "Aún no hay favoritos",
"Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marque como favortios se mostrarán aquí. ",
"Shared with you" : "Compartido con usted",
"Shared with others" : "Compartido con otros",
diff --git a/apps/files/l10n/es_MX.json b/apps/files/l10n/es_MX.json
index 628181c6556..9245d75fdd4 100644
--- a/apps/files/l10n/es_MX.json
+++ b/apps/files/l10n/es_MX.json
@@ -119,6 +119,7 @@
"Select all" : "Seleccionar todo",
"Upload too large" : "La carga es demasido grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que está intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.",
+ "No favorites yet" : "Aún no hay favoritos",
"Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marque como favortios se mostrarán aquí. ",
"Shared with you" : "Compartido con usted",
"Shared with others" : "Compartido con otros",
diff --git a/apps/files/lib/Command/DeleteOrphanedFiles.php b/apps/files/lib/Command/DeleteOrphanedFiles.php
index 77a22945a9a..2e5893cfd1f 100644
--- a/apps/files/lib/Command/DeleteOrphanedFiles.php
+++ b/apps/files/lib/Command/DeleteOrphanedFiles.php
@@ -23,8 +23,6 @@
namespace OCA\Files\Command;
-use Doctrine\DBAL\Platforms\PostgreSqlPlatform;
-use Doctrine\DBAL\Platforms\SqlitePlatform;
use OCP\IDBConnection;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
diff --git a/apps/files/lib/Command/ScanAppData.php b/apps/files/lib/Command/ScanAppData.php
index 6ad83d9a182..7212717ee40 100644
--- a/apps/files/lib/Command/ScanAppData.php
+++ b/apps/files/lib/Command/ScanAppData.php
@@ -12,8 +12,6 @@ use OCP\Files\NotFoundException;
use OCP\Files\StorageNotAvailableException;
use OCP\IConfig;
use OCP\IDBConnection;
-use OCP\IUserManager;
-use Symfony\Component\Console\Input\InputArgument;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php
index 499961ca2dc..f7a4318e595 100644
--- a/apps/files/lib/Controller/ViewController.php
+++ b/apps/files/lib/Controller/ViewController.php
@@ -35,7 +35,6 @@ use OCP\Files\IRootFolder;
use OCP\Files\NotFoundException;
use OCP\IConfig;
use OCP\IL10N;
-use OCP\INavigationManager;
use OCP\IRequest;
use OCP\IURLGenerator;
use OCP\IUserSession;
diff --git a/apps/files/tests/Controller/ApiControllerTest.php b/apps/files/tests/Controller/ApiControllerTest.php
index 56d0f6c8dee..eba87289300 100644
--- a/apps/files/tests/Controller/ApiControllerTest.php
+++ b/apps/files/tests/Controller/ApiControllerTest.php
@@ -26,7 +26,6 @@
namespace OCA\Files\Controller;
-use OC\Files\FileInfo;
use OCP\AppFramework\Http;
use OCP\Files\File;
use OCP\Files\Folder;
@@ -42,7 +41,6 @@ use OCP\IRequest;
use OCA\Files\Service\TagService;
use OCP\AppFramework\Http\DataResponse;
use OCP\IPreview;
-use OCP\Image;
/**
* Class ApiController
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index 865aa35ac6a..ee73914f166 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -2273,7 +2273,7 @@ describe('OCA.Files.FileList tests', function() {
var actionStub = sinon.stub();
var readyHandler = sinon.stub();
var clock = sinon.useFakeTimers();
- var debounceStub = sinon.stub(_, 'debounce', function(callback) {
+ var debounceStub = sinon.stub(_, 'debounce').callsFake(function(callback) {
return function() {
// defer instead of debounce, to make it work with clock
_.defer(callback);
diff --git a/apps/files_external/lib/Lib/Backend/SFTP.php b/apps/files_external/lib/Lib/Backend/SFTP.php
index cc3c72d2832..c9b31272999 100644
--- a/apps/files_external/lib/Lib/Backend/SFTP.php
+++ b/apps/files_external/lib/Lib/Backend/SFTP.php
@@ -23,11 +23,8 @@
namespace OCA\Files_External\Lib\Backend;
use \OCP\IL10N;
-use \OCA\Files_External\Lib\Backend\Backend;
use \OCA\Files_External\Lib\DefinitionParameter;
use \OCA\Files_External\Lib\Auth\AuthMechanism;
-use \OCA\Files_External\Service\BackendService;
-
use \OCA\Files_External\Lib\Auth\Password\Password;
class SFTP extends Backend {
diff --git a/apps/files_external/lib/Lib/Storage/SFTP.php b/apps/files_external/lib/Lib/Storage/SFTP.php
index 1d9affa8d68..a4dfea94bf7 100644
--- a/apps/files_external/lib/Lib/Storage/SFTP.php
+++ b/apps/files_external/lib/Lib/Storage/SFTP.php
@@ -33,7 +33,6 @@
*/
namespace OCA\Files_External\Lib\Storage;
use Icewind\Streams\IteratorDirectory;
-
use Icewind\Streams\RetryWrapper;
use phpseclib\Net\SFTP\Stream;
diff --git a/apps/files_external/lib/Lib/Storage/SMB.php b/apps/files_external/lib/Lib/Storage/SMB.php
index 690f8e2a334..cc4cd641ce5 100644
--- a/apps/files_external/lib/Lib/Storage/SMB.php
+++ b/apps/files_external/lib/Lib/Storage/SMB.php
@@ -31,14 +31,11 @@
namespace OCA\Files_External\Lib\Storage;
-use Icewind\SMB\Change;
use Icewind\SMB\Exception\ConnectException;
use Icewind\SMB\Exception\Exception;
use Icewind\SMB\Exception\ForbiddenException;
use Icewind\SMB\Exception\NotFoundException;
-use Icewind\SMB\INotifyHandler;
use Icewind\SMB\IFileInfo;
-use Icewind\SMB\IShare;
use Icewind\SMB\NativeServer;
use Icewind\SMB\Server;
use Icewind\Streams\CallbackWrapper;
diff --git a/apps/files_external/tests/js/settingsSpec.js b/apps/files_external/tests/js/settingsSpec.js
index 2639f634b26..d6b96a47189 100644
--- a/apps/files_external/tests/js/settingsSpec.js
+++ b/apps/files_external/tests/js/settingsSpec.js
@@ -15,7 +15,7 @@ describe('OCA.External.Settings tests', function() {
beforeEach(function() {
clock = sinon.useFakeTimers();
- select2Stub = sinon.stub($.fn, 'select2', function(args) {
+ select2Stub = sinon.stub($.fn, 'select2').callsFake(function(args) {
if (args === 'val') {
return select2ApplicableUsers;
}
diff --git a/apps/files_sharing/css/sharetabview.scss b/apps/files_sharing/css/sharetabview.scss
index 82f0ffa5822..cb2bb463352 100644
--- a/apps/files_sharing/css/sharetabview.scss
+++ b/apps/files_sharing/css/sharetabview.scss
@@ -14,7 +14,8 @@
}
.shareTabView .shareWithRemoteInfo,
-.shareTabView .clipboardButton {
+.shareTabView .clipboardButton,
+.shareTabView .linkPass .icon-loading-small {
position: absolute;
right: -7px;
top: -4px;
@@ -152,7 +153,7 @@
}
.shareTabView .linkPass .icon-loading-small {
- margin-top: 9px;
+ margin-right: 0px;
}
.shareTabView .icon {
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index e364715c958..c562b175b25 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -19,7 +19,7 @@ OC.L10N.register(
"Shared by" : "Compartilhado por",
"Sharing" : "Compartilhando",
"File shares" : "Compartilhamentos de arquivos",
- "Downloaded via public link" : "Baixar via link público",
+ "Downloaded via public link" : "Baixado via link público",
"Downloaded by {email}" : "Baixado por {email}",
"{file} downloaded via public link" : "{file} baixado via link público",
"{email} downloaded {file}" : "{email} baixou {file}",
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index ca5d96e886a..3d3d0ab784b 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -17,7 +17,7 @@
"Shared by" : "Compartilhado por",
"Sharing" : "Compartilhando",
"File shares" : "Compartilhamentos de arquivos",
- "Downloaded via public link" : "Baixar via link público",
+ "Downloaded via public link" : "Baixado via link público",
"Downloaded by {email}" : "Baixado por {email}",
"{file} downloaded via public link" : "{file} baixado via link público",
"{email} downloaded {file}" : "{email} baixou {file}",
diff --git a/apps/files_sharing/lib/AppInfo/Application.php b/apps/files_sharing/lib/AppInfo/Application.php
index f502d905fe8..db2175c3445 100644
--- a/apps/files_sharing/lib/AppInfo/Application.php
+++ b/apps/files_sharing/lib/AppInfo/Application.php
@@ -27,7 +27,6 @@
namespace OCA\Files_Sharing\AppInfo;
-use OCA\FederatedFileSharing\DiscoveryManager;
use OCA\Files_Sharing\Middleware\OCSShareAPIMiddleware;
use OCA\Files_Sharing\MountProvider;
use OCP\AppFramework\App;
diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php
index d7dcb426d85..d9cf5d80b80 100644
--- a/apps/files_sharing/lib/Cache.php
+++ b/apps/files_sharing/lib/Cache.php
@@ -29,7 +29,6 @@ namespace OCA\Files_Sharing;
use OC\Files\Cache\Wrapper\CacheJail;
use OCP\Files\Cache\ICacheEntry;
-use OCP\Files\Storage\IStorage;
/**
* Metadata cache for shared files
diff --git a/apps/files_sharing/lib/External/Manager.php b/apps/files_sharing/lib/External/Manager.php
index 2c348907384..2adcc7cf5cb 100644
--- a/apps/files_sharing/lib/External/Manager.php
+++ b/apps/files_sharing/lib/External/Manager.php
@@ -30,7 +30,6 @@
namespace OCA\Files_Sharing\External;
use OC\Files\Filesystem;
-use OCA\FederatedFileSharing\DiscoveryManager;
use OCP\Files;
use OCP\Files\Storage\IStorageFactory;
use OCP\Http\Client\IClientService;
diff --git a/apps/files_sharing/lib/External/Storage.php b/apps/files_sharing/lib/External/Storage.php
index b84ba5d96ab..95f45dc3691 100644
--- a/apps/files_sharing/lib/External/Storage.php
+++ b/apps/files_sharing/lib/External/Storage.php
@@ -32,7 +32,6 @@ use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Exception\ConnectException;
use OC\Files\Storage\DAV;
use OC\ForbiddenException;
-use OCA\FederatedFileSharing\DiscoveryManager;
use OCA\Files_Sharing\ISharedStorage;
use OCP\AppFramework\Http;
use OCP\Federation\ICloudId;
diff --git a/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php b/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php
index d366a401e2f..cd662b1fb5e 100644
--- a/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php
+++ b/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php
@@ -24,7 +24,6 @@
namespace OCA\Files_Trashbin\BackgroundJob;
-use OCP\IConfig;
use OCP\IUser;
use OCP\IUserManager;
use OCA\Files_Trashbin\AppInfo\Application;
diff --git a/apps/files_versions/l10n/el.js b/apps/files_versions/l10n/el.js
index 8b30d0a2127..4992bd7e29e 100644
--- a/apps/files_versions/l10n/el.js
+++ b/apps/files_versions/l10n/el.js
@@ -6,6 +6,7 @@ OC.L10N.register(
"Failed to revert {file} to revision {timestamp}." : "Αποτυχία επαναφοράς του {file} στην αναθεώρηση {timestamp}.",
"_%n byte_::_%n bytes_" : ["%n bytes","%n bytes"],
"Restore" : "Επαναφορά",
+ "No earlier versions available" : "Δεν είναι διαθέριμες νεότερες εκδόσεις",
"More versions …" : "Περισσότερες εκδόσεις ...",
"No versions available" : "Δεν υπάρχουν εκδόσεις διαθέσιμες",
"More versions..." : "Περισσότερες εκδόσεις..."
diff --git a/apps/files_versions/l10n/el.json b/apps/files_versions/l10n/el.json
index 64d072142e8..a687a3a18a8 100644
--- a/apps/files_versions/l10n/el.json
+++ b/apps/files_versions/l10n/el.json
@@ -4,6 +4,7 @@
"Failed to revert {file} to revision {timestamp}." : "Αποτυχία επαναφοράς του {file} στην αναθεώρηση {timestamp}.",
"_%n byte_::_%n bytes_" : ["%n bytes","%n bytes"],
"Restore" : "Επαναφορά",
+ "No earlier versions available" : "Δεν είναι διαθέριμες νεότερες εκδόσεις",
"More versions …" : "Περισσότερες εκδόσεις ...",
"No versions available" : "Δεν υπάρχουν εκδόσεις διαθέσιμες",
"More versions..." : "Περισσότερες εκδόσεις..."
diff --git a/apps/provisioning_api/lib/Controller/AppsController.php b/apps/provisioning_api/lib/Controller/AppsController.php
index 1165c7b8564..70316875762 100644
--- a/apps/provisioning_api/lib/Controller/AppsController.php
+++ b/apps/provisioning_api/lib/Controller/AppsController.php
@@ -28,7 +28,6 @@ namespace OCA\Provisioning_API\Controller;
use \OC_App;
use OCP\App\AppPathNotFoundException;
use OCP\App\IAppManager;
-use OCP\AppFramework\Http;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCSController;
diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php
index b1a1cf1c6b7..6e34fe53eb3 100644
--- a/apps/provisioning_api/lib/Controller/UsersController.php
+++ b/apps/provisioning_api/lib/Controller/UsersController.php
@@ -31,23 +31,20 @@ namespace OCA\Provisioning_API\Controller;
use OC\Accounts\AccountManager;
use OC\Settings\Mailer\NewUserMailHelper;
-use \OC_Helper;
+use OC_Helper;
use OCP\AppFramework\Http\DataResponse;
use OCP\AppFramework\OCS\OCSException;
use OCP\AppFramework\OCS\OCSForbiddenException;
use OCP\AppFramework\OCSController;
-use OCP\Defaults;
use OCP\Files\NotFoundException;
use OCP\IConfig;
use OCP\IGroup;
use OCP\IGroupManager;
use OCP\ILogger;
use OCP\IRequest;
-use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\IUserSession;
use OCP\L10N\IFactory;
-use OCP\Mail\IMailer;
class UsersController extends OCSController {
@@ -63,14 +60,6 @@ class UsersController extends OCSController {
private $accountManager;
/** @var ILogger */
private $logger;
- /** @var string */
- private $fromMailAddress;
- /** @var IURLGenerator */
- private $urlGenerator;
- /** @var IMailer */
- private $mailer;
- /** @var Defaults */
- private $defaults;
/** @var IFactory */
private $l10nFactory;
/** @var NewUserMailHelper */
@@ -85,10 +74,6 @@ class UsersController extends OCSController {
* @param IUserSession $userSession
* @param AccountManager $accountManager
* @param ILogger $logger
- * @param string $fromMailAddress
- * @param IURLGenerator $urlGenerator
- * @param IMailer $mailer
- * @param Defaults $defaults
* @param IFactory $l10nFactory
* @param NewUserMailHelper $newUserMailHelper
*/
@@ -100,10 +85,6 @@ class UsersController extends OCSController {
IUserSession $userSession,
AccountManager $accountManager,
ILogger $logger,
- $fromMailAddress,
- IURLGenerator $urlGenerator,
- IMailer $mailer,
- Defaults $defaults,
IFactory $l10nFactory,
NewUserMailHelper $newUserMailHelper) {
parent::__construct($appName, $request);
@@ -114,10 +95,6 @@ class UsersController extends OCSController {
$this->userSession = $userSession;
$this->accountManager = $accountManager;
$this->logger = $logger;
- $this->fromMailAddress = $fromMailAddress;
- $this->urlGenerator = $urlGenerator;
- $this->mailer = $mailer;
- $this->defaults = $defaults;
$this->l10nFactory = $l10nFactory;
$this->newUserMailHelper = $newUserMailHelper;
}
@@ -278,10 +255,10 @@ class UsersController extends OCSController {
// Admin? Or SubAdmin?
if($this->groupManager->isAdmin($currentLoggedInUser->getUID())
|| $this->groupManager->getSubAdmin()->isUserAccessible($currentLoggedInUser, $targetUserObject)) {
- $data['enabled'] = $this->config->getUserValue($userId, 'core', 'enabled', 'true');
+ $data['enabled'] = $this->config->getUserValue($targetUserObject->getUID(), 'core', 'enabled', 'true');
} else {
// Check they are looking up themselves
- if($currentLoggedInUser->getUID() !== $userId) {
+ if($currentLoggedInUser->getUID() !== $targetUserObject->getUID()) {
throw new OCSException('', \OCP\API::RESPOND_UNAUTHORISED);
}
}
@@ -295,7 +272,7 @@ class UsersController extends OCSController {
// Find the data
$data['id'] = $targetUserObject->getUID();
- $data['quota'] = $this->fillStorageInfo($userId);
+ $data['quota'] = $this->fillStorageInfo($targetUserObject->getUID());
$data[AccountManager::PROPERTY_EMAIL] = $targetUserObject->getEMailAddress();
$data[AccountManager::PROPERTY_DISPLAYNAME] = $targetUserObject->getDisplayName();
$data[AccountManager::PROPERTY_PHONE] = $userAccount[AccountManager::PROPERTY_PHONE]['value'];
@@ -330,7 +307,7 @@ class UsersController extends OCSController {
}
$permittedFields = [];
- if($userId === $currentLoggedInUser->getUID()) {
+ if($targetUser->getUID() === $currentLoggedInUser->getUID()) {
// Editing self (display, email)
$permittedFields[] = 'display';
$permittedFields[] = AccountManager::PROPERTY_DISPLAYNAME;
@@ -618,7 +595,7 @@ class UsersController extends OCSController {
}
// Check they aren't removing themselves from 'admin' or their 'subadmin; group
- if ($userId === $loggedInUser->getUID()) {
+ if ($targetUser->getUID() === $loggedInUser->getUID()) {
if ($this->groupManager->isAdmin($loggedInUser->getUID())) {
if ($group->getGID() === 'admin') {
throw new OCSException('Cannot remove yourself from the admin group', 105);
@@ -668,10 +645,10 @@ class UsersController extends OCSController {
}
// Check if group exists
if($group === null) {
- throw new OCSException('Group:'.$groupid.' does not exist', 102);
+ throw new OCSException('Group does not exist', 102);
}
// Check if trying to make subadmin of admin group
- if(strtolower($groupid) === 'admin') {
+ if($group->getGID() === 'admin') {
throw new OCSException('Cannot create subadmins for admin group', 103);
}
@@ -713,7 +690,7 @@ class UsersController extends OCSController {
throw new OCSException('Group does not exist', 101);
}
// Check if they are a subadmin of this said group
- if(!$subAdminManager->isSubAdminofGroup($user, $group)) {
+ if(!$subAdminManager->isSubAdminOfGroup($user, $group)) {
throw new OCSException('User is not a subadmin of this group', 102);
}
diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
index 2eb3853d333..57e1d2eac66 100644
--- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php
+++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php
@@ -70,12 +70,6 @@ class UsersControllerTest extends TestCase {
protected $accountManager;
/** @var IRequest|PHPUnit_Framework_MockObject_MockObject */
protected $request;
- /** @var IURLGenerator|PHPUnit_Framework_MockObject_MockObject */
- private $urlGenerator;
- /** @var IMailer|PHPUnit_Framework_MockObject_MockObject */
- private $mailer;
- /** @var Defaults|PHPUnit_Framework_MockObject_MockObject */
- private $defaults;
/** @var IFactory|PHPUnit_Framework_MockObject_MockObject */
private $l10nFactory;
/** @var NewUserMailHelper|PHPUnit_Framework_MockObject_MockObject */
@@ -91,9 +85,6 @@ class UsersControllerTest extends TestCase {
$this->logger = $this->createMock(ILogger::class);
$this->request = $this->createMock(IRequest::class);
$this->accountManager = $this->createMock(AccountManager::class);
- $this->urlGenerator = $this->createMock(IURLGenerator::class);
- $this->mailer = $this->createMock(IMailer::class);
- $this->defaults = $this->createMock(Defaults::class);
$this->l10nFactory = $this->createMock(IFactory::class);
$this->newUserMailHelper = $this->createMock(NewUserMailHelper::class);
@@ -107,10 +98,6 @@ class UsersControllerTest extends TestCase {
$this->userSession,
$this->accountManager,
$this->logger,
- 'test@example.org',
- $this->urlGenerator,
- $this->mailer,
- $this->defaults,
$this->l10nFactory,
$this->newUserMailHelper
])
@@ -705,19 +692,19 @@ class UsersControllerTest extends TestCase {
$this->config
->expects($this->at(0))
->method('getUserValue')
- ->with('UserToGet', 'core', 'enabled', 'true')
+ ->with('UID', 'core', 'enabled', 'true')
->will($this->returnValue('true'));
$this->api
->expects($this->once())
->method('fillStorageInfo')
- ->with('UserToGet')
+ ->with('UID')
->will($this->returnValue(['DummyValue']));
$targetUser
->expects($this->once())
->method('getDisplayName')
->will($this->returnValue('Demo User'));
$targetUser
- ->expects($this->once())
+ ->expects($this->exactly(3))
->method('getUID')
->will($this->returnValue('UID'));
@@ -784,19 +771,19 @@ class UsersControllerTest extends TestCase {
$this->config
->expects($this->at(0))
->method('getUserValue')
- ->with('UserToGet', 'core', 'enabled', 'true')
+ ->with('UID', 'core', 'enabled', 'true')
->will($this->returnValue('true'));
$this->api
->expects($this->once())
->method('fillStorageInfo')
- ->with('UserToGet')
+ ->with('UID')
->will($this->returnValue(['DummyValue']));
$targetUser
->expects($this->once())
->method('getDisplayName')
->will($this->returnValue('Demo User'));
$targetUser
- ->expects($this->once())
+ ->expects($this->exactly(3))
->method('getUID')
->will($this->returnValue('UID'));
$this->accountManager->expects($this->any())->method('getUser')
@@ -878,7 +865,7 @@ class UsersControllerTest extends TestCase {
$loggedInUser
->expects($this->exactly(2))
->method('getUID')
- ->will($this->returnValue('subadmin'));
+ ->will($this->returnValue('UID'));
$targetUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
->getMock();
@@ -894,7 +881,7 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->once())
->method('isAdmin')
- ->with('subadmin')
+ ->with('UID')
->will($this->returnValue(false));
$subAdminManager = $this->getMockBuilder('OC\SubAdmin')
->disableOriginalConstructor()
@@ -915,7 +902,7 @@ class UsersControllerTest extends TestCase {
$this->api
->expects($this->once())
->method('fillStorageInfo')
- ->with('subadmin')
+ ->with('UID')
->will($this->returnValue(['DummyValue']));
$targetUser
->expects($this->once())
@@ -926,7 +913,7 @@ class UsersControllerTest extends TestCase {
->method('getEMailAddress')
->will($this->returnValue('subadmin@owncloud.org'));
$targetUser
- ->expects($this->once())
+ ->expects($this->exactly(3))
->method('getUID')
->will($this->returnValue('UID'));
$this->accountManager->expects($this->any())->method('getUser')
@@ -961,7 +948,7 @@ class UsersControllerTest extends TestCase {
$loggedInUser
->expects($this->any())
->method('getUID')
- ->will($this->returnValue('UserToEdit'));
+ ->will($this->returnValue('UID'));
$targetUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
->getMock();
@@ -978,6 +965,10 @@ class UsersControllerTest extends TestCase {
->expects($this->once())
->method('setDisplayName')
->with('NewDisplayName');
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$this->assertEquals([], $this->api->editUser('UserToEdit', 'display', 'NewDisplayName')->getData());
}
@@ -989,7 +980,7 @@ class UsersControllerTest extends TestCase {
$loggedInUser
->expects($this->any())
->method('getUID')
- ->will($this->returnValue('UserToEdit'));
+ ->will($this->returnValue('UID'));
$targetUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
->getMock();
@@ -1006,6 +997,10 @@ class UsersControllerTest extends TestCase {
->expects($this->once())
->method('setEMailAddress')
->with('demo@owncloud.org');
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$this->assertEquals([], $this->api->editUser('UserToEdit', 'email', 'demo@owncloud.org')->getData());
}
@@ -1022,7 +1017,7 @@ class UsersControllerTest extends TestCase {
$loggedInUser
->expects($this->any())
->method('getUID')
- ->will($this->returnValue('UserToEdit'));
+ ->will($this->returnValue('UID'));
$targetUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
->getMock();
@@ -1035,6 +1030,10 @@ class UsersControllerTest extends TestCase {
->method('get')
->with('UserToEdit')
->will($this->returnValue($targetUser));
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$this->api->editUser('UserToEdit', 'email', 'demo.org');
}
@@ -1046,7 +1045,7 @@ class UsersControllerTest extends TestCase {
$loggedInUser
->expects($this->any())
->method('getUID')
- ->will($this->returnValue('UserToEdit'));
+ ->will($this->returnValue('UID'));
$targetUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
->getMock();
@@ -1063,6 +1062,10 @@ class UsersControllerTest extends TestCase {
->expects($this->once())
->method('setPassword')
->with('NewPassword');
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$this->assertEquals([], $this->api->editUser('UserToEdit', 'password', 'NewPassword')->getData());
}
@@ -1079,7 +1082,7 @@ class UsersControllerTest extends TestCase {
$loggedInUser
->expects($this->any())
->method('getUID')
- ->will($this->returnValue('UserToEdit'));
+ ->will($this->returnValue('UID'));
$targetUser = $this->getMockBuilder(IUser::class)
->disableOriginalConstructor()
->getMock();
@@ -1092,6 +1095,10 @@ class UsersControllerTest extends TestCase {
->method('get')
->with('UserToEdit')
->will($this->returnValue($targetUser));
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$this->api->editUser('UserToEdit', 'quota', 'NewQuota');
}
@@ -1101,7 +1108,7 @@ class UsersControllerTest extends TestCase {
$loggedInUser
->expects($this->any())
->method('getUID')
- ->will($this->returnValue('UserToEdit'));
+ ->will($this->returnValue('UID'));
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$targetUser->expects($this->once())
->method('setQuota')
@@ -1118,8 +1125,12 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->once())
->method('isAdmin')
- ->with('UserToEdit')
+ ->with('UID')
->will($this->returnValue(true));
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$this->assertEquals([], $this->api->editUser('UserToEdit', 'quota', '3042824')->getData());
}
@@ -1135,7 +1146,7 @@ class UsersControllerTest extends TestCase {
$loggedInUser
->expects($this->any())
->method('getUID')
- ->will($this->returnValue('UserToEdit'));
+ ->will($this->returnValue('UID'));
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$this->userSession
->expects($this->once())
@@ -1149,8 +1160,12 @@ class UsersControllerTest extends TestCase {
$this->groupManager
->expects($this->once())
->method('isAdmin')
- ->with('UserToEdit')
+ ->with('UID')
->will($this->returnValue(true));
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$this->api->editUser('UserToEdit', 'quota', 'ABC');
}
@@ -1186,6 +1201,10 @@ class UsersControllerTest extends TestCase {
->expects($this->once())
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$this->assertEquals([], $this->api->editUser('UserToEdit', 'quota', '3042824')->getData());
}
@@ -1221,6 +1240,10 @@ class UsersControllerTest extends TestCase {
->expects($this->once())
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$this->assertEquals([], $this->api->editUser('UserToEdit', 'quota', '3042824')->getData());
}
@@ -1257,6 +1280,10 @@ class UsersControllerTest extends TestCase {
->expects($this->once())
->method('getSubAdmin')
->will($this->returnValue($subAdminManager));
+ $targetUser
+ ->expects($this->any())
+ ->method('getUID')
+ ->will($this->returnValue('UID'));
$this->api->editUser('UserToEdit', 'quota', 'value');
}
@@ -1293,12 +1320,12 @@ class UsersControllerTest extends TestCase {
$loggedInUser
->expects($this->any())
->method('getUID')
- ->will($this->returnValue('UserToDelete'));
+ ->will($this->returnValue('UID'));
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$targetUser
->expects($this->once())
->method('getUID')
- ->will($this->returnValue('UserToDelete'));
+ ->will($this->returnValue('UID'));
$this->userSession
->expects($this->once())
->method('getUser')
@@ -1322,7 +1349,7 @@ class UsersControllerTest extends TestCase {
$targetUser
->expects($this->once())
->method('getUID')
- ->will($this->returnValue('UserToDelete'));
+ ->will($this->returnValue('UID'));
$this->userSession
->expects($this->once())
->method('getUser')
@@ -1359,7 +1386,7 @@ class UsersControllerTest extends TestCase {
$targetUser
->expects($this->once())
->method('getUID')
- ->will($this->returnValue('UserToDelete'));
+ ->will($this->returnValue('UID'));
$this->userSession
->expects($this->once())
->method('getUser')
@@ -1392,7 +1419,7 @@ class UsersControllerTest extends TestCase {
$targetUser
->expects($this->once())
->method('getUID')
- ->will($this->returnValue('UserToDelete'));
+ ->will($this->returnValue('UID'));
$this->userSession
->expects($this->once())
->method('getUser')
@@ -1440,7 +1467,7 @@ class UsersControllerTest extends TestCase {
$targetUser
->expects($this->once())
->method('getUID')
- ->will($this->returnValue('UserToDelete'));
+ ->will($this->returnValue('UID'));
$this->userSession
->expects($this->once())
->method('getUser')
@@ -1488,7 +1515,7 @@ class UsersControllerTest extends TestCase {
$targetUser
->expects($this->once())
->method('getUID')
- ->will($this->returnValue('UserToDelete'));
+ ->will($this->returnValue('UID'));
$this->userSession
->expects($this->once())
->method('getUser')
@@ -1984,6 +2011,10 @@ class UsersControllerTest extends TestCase {
->method('getUID')
->will($this->returnValue('admin'));
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
+ $targetUser
+ ->expects($this->once())
+ ->method('getUID')
+ ->will($this->returnValue('admin'));
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
$targetGroup
->expects($this->once())
@@ -2001,7 +2032,7 @@ class UsersControllerTest extends TestCase {
$this->userManager
->expects($this->once())
->method('get')
- ->with('admin')
+ ->with('Admin')
->will($this->returnValue($targetUser));
$subAdminManager = $this->getMockBuilder('OC\SubAdmin')
->disableOriginalConstructor()->getMock();
@@ -2015,7 +2046,7 @@ class UsersControllerTest extends TestCase {
->with('admin')
->will($this->returnValue(true));
- $this->api->removeFromGroup('admin', 'admin');
+ $this->api->removeFromGroup('Admin', 'admin');
}
/**
@@ -2030,6 +2061,10 @@ class UsersControllerTest extends TestCase {
->method('getUID')
->will($this->returnValue('subadmin'));
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
+ $targetUser
+ ->expects($this->once())
+ ->method('getUID')
+ ->will($this->returnValue('subadmin'));
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
$targetGroup
->expects($this->any())
@@ -2047,7 +2082,7 @@ class UsersControllerTest extends TestCase {
$this->userManager
->expects($this->once())
->method('get')
- ->with('subadmin')
+ ->with('SubAdmin')
->will($this->returnValue($targetUser));
$subAdminManager = $this->getMockBuilder('OC\SubAdmin')
->disableOriginalConstructor()->getMock();
@@ -2066,7 +2101,7 @@ class UsersControllerTest extends TestCase {
->with('subadmin')
->will($this->returnValue(false));
- $this->api->removeFromGroup('subadmin', 'subadmin');
+ $this->api->removeFromGroup('SubAdmin', 'subadmin');
}
/**
@@ -2190,7 +2225,7 @@ class UsersControllerTest extends TestCase {
/**
* @expectedException \OCP\AppFramework\OCS\OCSException
* @expectedExceptionCode 102
- * @expectedExceptionMessage Group:NotExistingGroup does not exist
+ * @expectedExceptionMessage Group does not exist
*/
public function testAddSubAdminWithNotExistingTargetGroup() {
@@ -2217,6 +2252,10 @@ class UsersControllerTest extends TestCase {
public function testAddSubAdminToAdminGroup() {
$targetUser = $this->getMockBuilder('\OCP\IUser')->disableOriginalConstructor()->getMock();
$targetGroup = $this->getMockBuilder('\OCP\IGroup')->disableOriginalConstructor()->getMock();
+ $targetGroup
+ ->expects($this->once())
+ ->method('getGID')
+ ->will($this->returnValue('admin'));
$this->userManager
->expects($this->once())
->method('get')
@@ -2612,10 +2651,6 @@ class UsersControllerTest extends TestCase {
$this->userSession,
$this->accountManager,
$this->logger,
- '',
- $this->urlGenerator,
- $this->mailer,
- $this->defaults,
$this->l10nFactory,
$this->newUserMailHelper
])
@@ -2676,10 +2711,6 @@ class UsersControllerTest extends TestCase {
$this->userSession,
$this->accountManager,
$this->logger,
- '',
- $this->urlGenerator,
- $this->mailer,
- $this->defaults,
$this->l10nFactory,
$this->newUserMailHelper
])
diff --git a/apps/sharebymail/l10n/es_MX.js b/apps/sharebymail/l10n/es_MX.js
index 3ff6f435e7f..6af9a6b8881 100644
--- a/apps/sharebymail/l10n/es_MX.js
+++ b/apps/sharebymail/l10n/es_MX.js
@@ -5,6 +5,9 @@ OC.L10N.register(
"Shared with {email}" : "Compartido con {email}",
"Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
"Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
+ "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
+ "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
+ "Password for mail share sent to you" : "La contraseña para el elemento compartido se le ha sido enviada",
"You shared %1$s with %2$s by mail" : "Usted ha compartido %1$s con %2$s por correo",
"You shared {file} with {email} by mail" : "Usted ha compartido {file} con {email} por correo",
"%3$s shared %1$s with %2$s by mail" : "%3$s ha compartido %1$s con %2$s por correo ",
diff --git a/apps/sharebymail/l10n/es_MX.json b/apps/sharebymail/l10n/es_MX.json
index 11700d40611..cb6f605aaba 100644
--- a/apps/sharebymail/l10n/es_MX.json
+++ b/apps/sharebymail/l10n/es_MX.json
@@ -3,6 +3,9 @@
"Shared with {email}" : "Compartido con {email}",
"Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s",
"Shared with {email} by {actor}" : "Compartido con {email} por {actor}",
+ "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s",
+ "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}",
+ "Password for mail share sent to you" : "La contraseña para el elemento compartido se le ha sido enviada",
"You shared %1$s with %2$s by mail" : "Usted ha compartido %1$s con %2$s por correo",
"You shared {file} with {email} by mail" : "Usted ha compartido {file} con {email} por correo",
"%3$s shared %1$s with %2$s by mail" : "%3$s ha compartido %1$s con %2$s por correo ",
diff --git a/apps/systemtags/l10n/pt_BR.js b/apps/systemtags/l10n/pt_BR.js
index 6b0e0b107af..c7a53c0c458 100644
--- a/apps/systemtags/l10n/pt_BR.js
+++ b/apps/systemtags/l10n/pt_BR.js
@@ -8,7 +8,7 @@ OC.L10N.register(
"Tagged files" : "Arquivos etiquetados",
"Select tags to filter by" : "Selecionar etiquetas para filtrar por",
"No tags found" : "Nenhuma etiqueta encontrada",
- "Please select tags to filter by" : "Por favor selecione etiquetas para filtrar por",
+ "Please select tags to filter by" : "Por favor selecione etiquetas a filtrar",
"No files found for the selected tags" : "Nenhum arquivo encontrado para as etiquetas selecionadas",
"Added system tag %1$s" : "Adicionada a etiqueta de sistema %1$s",
"Added system tag {systemtag}" : "Adicionada a etiqueta de sistema {systemtag}",
diff --git a/apps/systemtags/l10n/pt_BR.json b/apps/systemtags/l10n/pt_BR.json
index 24241ff436d..82398c2a8ea 100644
--- a/apps/systemtags/l10n/pt_BR.json
+++ b/apps/systemtags/l10n/pt_BR.json
@@ -6,7 +6,7 @@
"Tagged files" : "Arquivos etiquetados",
"Select tags to filter by" : "Selecionar etiquetas para filtrar por",
"No tags found" : "Nenhuma etiqueta encontrada",
- "Please select tags to filter by" : "Por favor selecione etiquetas para filtrar por",
+ "Please select tags to filter by" : "Por favor selecione etiquetas a filtrar",
"No files found for the selected tags" : "Nenhum arquivo encontrado para as etiquetas selecionadas",
"Added system tag %1$s" : "Adicionada a etiqueta de sistema %1$s",
"Added system tag {systemtag}" : "Adicionada a etiqueta de sistema {systemtag}",
diff --git a/apps/testing/locking/provisioning.php b/apps/testing/locking/provisioning.php
index 84587fa9a62..7e3256ec605 100644
--- a/apps/testing/locking/provisioning.php
+++ b/apps/testing/locking/provisioning.php
@@ -23,7 +23,6 @@
namespace OCA\Testing\Locking;
use OC\Lock\DBLockingProvider;
-use OC\Lock\MemcacheLockingProvider;
use OC\User\NoUserException;
use OCP\AppFramework\Http;
use OCP\Files\NotFoundException;
diff --git a/apps/theming/l10n/pt_BR.js b/apps/theming/l10n/pt_BR.js
index 820431eff78..e789208c47e 100644
--- a/apps/theming/l10n/pt_BR.js
+++ b/apps/theming/l10n/pt_BR.js
@@ -11,7 +11,7 @@ OC.L10N.register(
"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",
- "Theming" : "Personalizando",
+ "Theming" : "Personalização",
"Name" : "Nome",
"reset to default" : "restaurar ao padrão",
"Web address" : "Endereço da Web",
diff --git a/apps/theming/l10n/pt_BR.json b/apps/theming/l10n/pt_BR.json
index aed1252868e..95bfcea2bc0 100644
--- a/apps/theming/l10n/pt_BR.json
+++ b/apps/theming/l10n/pt_BR.json
@@ -9,7 +9,7 @@
"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",
- "Theming" : "Personalizando",
+ "Theming" : "Personalização",
"Name" : "Nome",
"reset to default" : "restaurar ao padrão",
"Web address" : "Endereço da Web",
diff --git a/apps/twofactor_backupcodes/l10n/pt_BR.js b/apps/twofactor_backupcodes/l10n/pt_BR.js
index b70d80ffcef..e120d7a3163 100644
--- a/apps/twofactor_backupcodes/l10n/pt_BR.js
+++ b/apps/twofactor_backupcodes/l10n/pt_BR.js
@@ -16,6 +16,6 @@ OC.L10N.register(
"You created two-factor backup codes for your account" : "Você criou os códigos de backup de dois fatores para sua conta.",
"Backup code" : "Código de backup",
"Use backup code" : "Usar o código de backup",
- "Second-factor backup codes" : "Códigos de backup de segundo fator"
+ "Second-factor backup codes" : "Códigos de backup da autenticação"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/twofactor_backupcodes/l10n/pt_BR.json b/apps/twofactor_backupcodes/l10n/pt_BR.json
index 862c2978722..f451511bc4c 100644
--- a/apps/twofactor_backupcodes/l10n/pt_BR.json
+++ b/apps/twofactor_backupcodes/l10n/pt_BR.json
@@ -14,6 +14,6 @@
"You created two-factor backup codes for your account" : "Você criou os códigos de backup de dois fatores para sua conta.",
"Backup code" : "Código de backup",
"Use backup code" : "Usar o código de backup",
- "Second-factor backup codes" : "Códigos de backup de segundo fator"
+ "Second-factor backup codes" : "Códigos de backup da autenticação"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/pt_BR.js b/apps/updatenotification/l10n/pt_BR.js
index 06b32bca82f..486e885f60c 100644
--- a/apps/updatenotification/l10n/pt_BR.js
+++ b/apps/updatenotification/l10n/pt_BR.js
@@ -4,7 +4,7 @@ OC.L10N.register(
"Update notifications" : "Notificações de atualização",
"Could not start updater, please try the manual update" : "Não foi possível iniciar o atualizador, tente a atualização manual",
"{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informações sobre como atualizar.",
- "Channel updated" : "Canal atualizado",
+ "Channel updated" : "Versão atualizada",
"The update server could not be reached since %d days to check for new updates." : "O servidor de atualização não foi encontrado já há %d dias para verificar por novas atualizações.",
"Please check the Nextcloud and server log files for errors." : "Verifique se há erros nos arquivos de log do servidor e do Nextcloud ",
"Update to %1$s is available." : "Atualização para %1$s está disponível.",
@@ -15,11 +15,11 @@ OC.L10N.register(
"Download now" : "Baixar agora",
"Your version is up to date." : "Sua versão está atualizada.",
"Checked on %s" : "Verificada em %s",
- "Update channel:" : "Atualizar canal:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Você pode sempre atualizar o canal para uma versão mais nova ou experimental. Mas você nunca pode voltar para um canal mais estável.",
- "Notify members of the following groups about available updates:" : "Notificar membros dos seguintes grupos sobre atualizações disponíveis.",
+ "Update channel:" : "Atualizar para:",
+ "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Você pode atualizar para a versão mais nova ou experimental. No entanto, nunca pode voltar para a versão estável.",
+ "Notify members of the following groups about available updates:" : "Notificar membros dos seguintes grupos sobre atualizações disponíveis:",
"Only notification for app updates are available." : "Só está disponível notificação para atualizações de aplicativos.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "O canal de atualização selecionado fornece notificações dedicadas para o servidor desatualizado.",
- "The selected update channel does not support updates of the server." : "O canal de atualização selecionado não fornece suporte a atualizações do servidor."
+ "The selected update channel makes dedicated notifications for the server obsolete." : "A atualização selecionada fornece notificações dedicadas para o servidor desatualizado.",
+ "The selected update channel does not support updates of the server." : "A atualização selecionada não fornece suporte a atualizações do servidor."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/updatenotification/l10n/pt_BR.json b/apps/updatenotification/l10n/pt_BR.json
index 3d37f10404e..69a85ac7ee3 100644
--- a/apps/updatenotification/l10n/pt_BR.json
+++ b/apps/updatenotification/l10n/pt_BR.json
@@ -2,7 +2,7 @@
"Update notifications" : "Notificações de atualização",
"Could not start updater, please try the manual update" : "Não foi possível iniciar o atualizador, tente a atualização manual",
"{version} is available. Get more information on how to update." : "{version} está disponível. Obtenha mais informações sobre como atualizar.",
- "Channel updated" : "Canal atualizado",
+ "Channel updated" : "Versão atualizada",
"The update server could not be reached since %d days to check for new updates." : "O servidor de atualização não foi encontrado já há %d dias para verificar por novas atualizações.",
"Please check the Nextcloud and server log files for errors." : "Verifique se há erros nos arquivos de log do servidor e do Nextcloud ",
"Update to %1$s is available." : "Atualização para %1$s está disponível.",
@@ -13,11 +13,11 @@
"Download now" : "Baixar agora",
"Your version is up to date." : "Sua versão está atualizada.",
"Checked on %s" : "Verificada em %s",
- "Update channel:" : "Atualizar canal:",
- "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Você pode sempre atualizar o canal para uma versão mais nova ou experimental. Mas você nunca pode voltar para um canal mais estável.",
- "Notify members of the following groups about available updates:" : "Notificar membros dos seguintes grupos sobre atualizações disponíveis.",
+ "Update channel:" : "Atualizar para:",
+ "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Você pode atualizar para a versão mais nova ou experimental. No entanto, nunca pode voltar para a versão estável.",
+ "Notify members of the following groups about available updates:" : "Notificar membros dos seguintes grupos sobre atualizações disponíveis:",
"Only notification for app updates are available." : "Só está disponível notificação para atualizações de aplicativos.",
- "The selected update channel makes dedicated notifications for the server obsolete." : "O canal de atualização selecionado fornece notificações dedicadas para o servidor desatualizado.",
- "The selected update channel does not support updates of the server." : "O canal de atualização selecionado não fornece suporte a atualizações do servidor."
+ "The selected update channel makes dedicated notifications for the server obsolete." : "A atualização selecionada fornece notificações dedicadas para o servidor desatualizado.",
+ "The selected update channel does not support updates of the server." : "A atualização selecionada não fornece suporte a atualizações do servidor."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/ajax/wizard.php b/apps/user_ldap/ajax/wizard.php
index 5d994f40dcb..60102c72b40 100644
--- a/apps/user_ldap/ajax/wizard.php
+++ b/apps/user_ldap/ajax/wizard.php
@@ -58,7 +58,8 @@ $userManager = new \OCA\User_LDAP\User\Manager(
\OC::$server->getAvatarManager(),
new \OCP\Image(),
\OC::$server->getDatabaseConnection(),
- \OC::$server->getUserManager());
+ \OC::$server->getUserManager(),
+ \OC::$server->getNotificationManager());
$access = new \OCA\User_LDAP\Access($con, $ldapWrapper, $userManager, new \OCA\User_LDAP\Helper(
\OC::$server->getConfig()
diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php
index 6f930ea39f0..cbdcafc58d6 100644
--- a/apps/user_ldap/appinfo/app.php
+++ b/apps/user_ldap/appinfo/app.php
@@ -31,6 +31,18 @@ $helper = new \OCA\User_LDAP\Helper(\OC::$server->getConfig());
$configPrefixes = $helper->getServerConfigurationPrefixes(true);
$ldapWrapper = new OCA\User_LDAP\LDAP();
$ocConfig = \OC::$server->getConfig();
+$notificationManager = \OC::$server->getNotificationManager();
+$notificationManager->registerNotifier(function() {
+ return new \OCA\User_LDAP\Notification\Notifier(
+ \OC::$server->getL10NFactory()
+ );
+}, function() {
+ $l = \OC::$server->getL10N('user_ldap');
+ return [
+ 'id' => 'user_ldap',
+ 'name' => $l->t('LDAP user and group backend'),
+ ];
+});
if(count($configPrefixes) === 1) {
$dbc = \OC::$server->getDatabaseConnection();
$userManager = new OCA\User_LDAP\User\Manager($ocConfig,
@@ -39,18 +51,19 @@ if(count($configPrefixes) === 1) {
\OC::$server->getAvatarManager(),
new \OCP\Image(),
$dbc,
- \OC::$server->getUserManager()
+ \OC::$server->getUserManager(),
+ $notificationManager
);
$connector = new OCA\User_LDAP\Connection($ldapWrapper, $configPrefixes[0]);
$ldapAccess = new OCA\User_LDAP\Access($connector, $ldapWrapper, $userManager, $helper);
$ldapAccess->setUserMapper(new OCA\User_LDAP\Mapping\UserMapping($dbc));
$ldapAccess->setGroupMapper(new OCA\User_LDAP\Mapping\GroupMapping($dbc));
- $userBackend = new OCA\User_LDAP\User_LDAP($ldapAccess, $ocConfig);
+ $userBackend = new OCA\User_LDAP\User_LDAP($ldapAccess, $ocConfig, $notificationManager);
$groupBackend = new \OCA\User_LDAP\Group_LDAP($ldapAccess);
} else if(count($configPrefixes) > 1) {
$userBackend = new OCA\User_LDAP\User_Proxy(
- $configPrefixes, $ldapWrapper, $ocConfig
+ $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager
);
$groupBackend = new OCA\User_LDAP\Group_Proxy($configPrefixes, $ldapWrapper);
}
diff --git a/apps/user_ldap/appinfo/register_command.php b/apps/user_ldap/appinfo/register_command.php
index 41083f8d12a..3ae8bdbfc13 100644
--- a/apps/user_ldap/appinfo/register_command.php
+++ b/apps/user_ldap/appinfo/register_command.php
@@ -35,7 +35,8 @@ $ocConfig = \OC::$server->getConfig();
$uBackend = new User_Proxy(
$helper->getServerConfigurationPrefixes(true),
new LDAP(),
- $ocConfig
+ $ocConfig,
+ \OC::$server->getNotificationManager()
);
$deletedUsersIndex = new DeletedUsersIndex(
$ocConfig, $dbConnection, $userMapping
diff --git a/apps/user_ldap/appinfo/routes.php b/apps/user_ldap/appinfo/routes.php
index 45b43c21409..39964838d48 100644
--- a/apps/user_ldap/appinfo/routes.php
+++ b/apps/user_ldap/appinfo/routes.php
@@ -46,3 +46,13 @@ $application->registerRoutes($this, [
['name' => 'ConfigAPI#delete', 'url' => '/api/v1/config/{configID}', 'verb' => 'DELETE'],
]
]);
+
+$application = new OCA\User_LDAP\AppInfo\Application();
+$application->registerRoutes($this, [
+ 'routes' => [
+ ['name' => 'renewPassword#tryRenewPassword', 'url' => '/renewpassword', 'verb' => 'POST'],
+ ['name' => 'renewPassword#showRenewPasswordForm', 'url' => '/renewpassword/{user}', 'verb' => 'GET'],
+ ['name' => 'renewPassword#cancel', 'url' => '/renewpassword/cancel', 'verb' => 'GET'],
+ ['name' => 'renewPassword#showLoginFormInvalidPassword', 'url' => '/renewpassword/invalidlogin/{user}', 'verb' => 'GET'],
+ ]
+]);
diff --git a/apps/user_ldap/css/renewPassword.css b/apps/user_ldap/css/renewPassword.css
new file mode 100644
index 00000000000..a06a101efe5
--- /dev/null
+++ b/apps/user_ldap/css/renewPassword.css
@@ -0,0 +1,20 @@
+#personal-show + label {
+ left: 222px !important;
+ margin-top: 3px !important;
+}
+
+#renewpassword .strengthify-wrapper {
+ left: 10px;
+ margin-top: 65px;
+ position: absolute;
+ width: 219px;
+}
+
+#cancel-container p.info {
+ margin-top: 10px;
+ text-align: center;
+}
+
+#renewpassword .title {
+ background-color: transparent;
+}
diff --git a/apps/user_ldap/js/renewPassword.js b/apps/user_ldap/js/renewPassword.js
new file mode 100644
index 00000000000..bea2c0409f7
--- /dev/null
+++ b/apps/user_ldap/js/renewPassword.js
@@ -0,0 +1,50 @@
+/**
+ *
+ * @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de)
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+OCA = OCA || {};
+OCA.LDAP = _.extend(OC.LDAP || {}, {
+ onRenewPassword: function () {
+ $('#submit')
+ .removeClass('icon-confirm-white')
+ .addClass('icon-loading-small')
+ .attr('value', t('core', 'Renewing …'));
+ return true;
+ },
+});
+
+$(document).ready(function() {
+ $('form[name=renewpassword]').submit(OCA.LDAP.onRenewPassword);
+
+ if($('#newPassword').length) {
+ $('#newPassword').showPassword().keyup();
+ }
+ $('#newPassword').strengthify({
+ zxcvbn: OC.linkTo('core','vendor/zxcvbn/dist/zxcvbn.js'),
+ titles: [
+ t('core', 'Very weak password'),
+ t('core', 'Weak password'),
+ t('core', 'So-so password'),
+ t('core', 'Good password'),
+ t('core', 'Strong password')
+ ],
+ drawTitles: true,
+ });
+});
diff --git a/apps/user_ldap/js/wizard/wizardTabAdvanced.js b/apps/user_ldap/js/wizard/wizardTabAdvanced.js
index 7d8d0b70269..9302104b1f6 100644
--- a/apps/user_ldap/js/wizard/wizardTabAdvanced.js
+++ b/apps/user_ldap/js/wizard/wizardTabAdvanced.js
@@ -99,6 +99,10 @@ OCA = OCA || {};
$element: $('#ldap_turn_on_pwd_change'),
setMethod: 'setPasswordChangeEnabled'
},
+ ldap_default_ppolicy_dn: {
+ $element: $('#ldap_default_ppolicy_dn'),
+ setMethod: 'setDefaultPPolicyDN'
+ },
//Special Attributes
ldap_quota_attr: {
@@ -292,7 +296,7 @@ OCA = OCA || {};
setPagingSize: function(size) {
this.setElementValue(this.managedItems.ldap_paging_size.$element, size);
},
-
+
/**
* sets whether the password changes per user should be enabled
*
@@ -305,6 +309,15 @@ OCA = OCA || {};
},
/**
+ * sets the default ppolicy attribute
+ *
+ * @param {string} attribute
+ */
+ setDefaultPPolicyDN: function(attribute) {
+ this.setElementValue(this.managedItems.ldap_default_ppolicy_dn.$element, attribute);
+ },
+
+ /**
* sets the email attribute
*
* @param {string} attribute
diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php
index 959a8dd2b8e..973b23e81cc 100644
--- a/apps/user_ldap/lib/Access.php
+++ b/apps/user_ldap/lib/Access.php
@@ -1096,7 +1096,7 @@ class Access extends LDAPUtility implements IUserTools {
* @param bool $skipHandling
* @return array with the search result
*/
- private function search($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) {
+ public function search($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) {
if($limit <= 0) {
//otherwise search will fail
$limit = null;
diff --git a/apps/user_ldap/lib/AppInfo/Application.php b/apps/user_ldap/lib/AppInfo/Application.php
new file mode 100644
index 00000000000..c3fa1ce9f94
--- /dev/null
+++ b/apps/user_ldap/lib/AppInfo/Application.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * @copyright Copyright (c) 2017 Roger Szabo <roger.szabo@web.de>
+ *
+ * @author Roger Szabo <roger.szabo@web.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\User_LDAP\AppInfo;
+
+use OCA\User_LDAP\Controller\RenewPasswordController;
+use OCP\AppFramework\App;
+use OCP\AppFramework\IAppContainer;
+
+class Application extends App {
+ public function __construct () {
+ parent::__construct('user_ldap');
+ $container = $this->getContainer();
+
+ /**
+ * Controller
+ */
+ $container->registerService('RenewPasswordController', function(IAppContainer $c) {
+ /** @var \OC\Server $server */
+ $server = $c->query('ServerContainer');
+
+ return new RenewPasswordController(
+ $c->getAppName(),
+ $server->getRequest(),
+ $c->query('UserManager'),
+ $server->getConfig(),
+ $c->query('OCP\IL10N'),
+ $server->getURLGenerator()
+ );
+ });
+ }
+}
diff --git a/apps/user_ldap/lib/Command/Search.php b/apps/user_ldap/lib/Command/Search.php
index 57970b1ac5d..463ad2eaeb4 100644
--- a/apps/user_ldap/lib/Command/Search.php
+++ b/apps/user_ldap/lib/Command/Search.php
@@ -120,7 +120,7 @@ class Search extends Command {
$limit = null;
}
} else {
- $proxy = new User_Proxy($configPrefixes, $ldapWrapper, $this->ocConfig);
+ $proxy = new User_Proxy($configPrefixes, $ldapWrapper, $this->ocConfig, \OC::$server->getNotificationManager());
$getMethod = 'getDisplayNames';
$printID = true;
}
diff --git a/apps/user_ldap/lib/Configuration.php b/apps/user_ldap/lib/Configuration.php
index 65ee9c70807..654a63cdc73 100644
--- a/apps/user_ldap/lib/Configuration.php
+++ b/apps/user_ldap/lib/Configuration.php
@@ -93,6 +93,7 @@ class Configuration {
'ldapPagingSize' => null,
'turnOnPasswordChange' => false,
'ldapDynamicGroupMemberURL' => null,
+ 'ldapDefaultPPolicyDN' => null,
);
/**
@@ -457,6 +458,7 @@ class Configuration {
'ldap_turn_on_pwd_change' => 0,
'ldap_experienced_admin' => 0,
'ldap_dynamic_group_member_url' => '',
+ 'ldap_default_ppolicy_dn' => '',
);
}
@@ -514,6 +516,7 @@ class Configuration {
'ldap_turn_on_pwd_change' => 'turnOnPasswordChange',
'ldap_experienced_admin' => 'ldapExperiencedAdmin',
'ldap_dynamic_group_member_url' => 'ldapDynamicGroupMemberURL',
+ 'ldap_default_ppolicy_dn' => 'ldapDefaultPPolicyDN',
);
return $array;
}
diff --git a/apps/user_ldap/lib/Controller/RenewPasswordController.php b/apps/user_ldap/lib/Controller/RenewPasswordController.php
new file mode 100644
index 00000000000..4714c0646cd
--- /dev/null
+++ b/apps/user_ldap/lib/Controller/RenewPasswordController.php
@@ -0,0 +1,180 @@
+<?php
+/**
+ * @copyright Copyright (c) 2017 Roger Szabo <roger.szabo@web.de>
+ *
+ * @author Roger Szabo <roger.szabo@web.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\User_LDAP\Controller;
+
+use OC\HintException;
+use OC_Util;
+use OCP\AppFramework\Controller;
+use OCP\AppFramework\Http\RedirectResponse;
+use OCP\AppFramework\Http\TemplateResponse;
+use OCP\IConfig;
+use OCP\IL10N;
+use OCP\IRequest;
+use OCP\ISession;
+use OCP\IURLGenerator;
+use OCP\IUser;
+use OCP\IUserManager;
+
+class RenewPasswordController extends Controller {
+ /** @var IUserManager */
+ private $userManager;
+ /** @var IConfig */
+ private $config;
+ /** @var IL10N */
+ protected $l10n;
+ /** @var ISession */
+ private $session;
+ /** @var IURLGenerator */
+ private $urlGenerator;
+
+ /**
+ * @param string $appName
+ * @param IRequest $request
+ * @param IUserManager $userManager
+ * @param IConfig $config
+ * @param IURLGenerator $urlGenerator
+ */
+ function __construct($appName, IRequest $request, IUserManager $userManager,
+ IConfig $config, IL10N $l10n, ISession $session, IURLGenerator $urlGenerator) {
+ parent::__construct($appName, $request);
+ $this->userManager = $userManager;
+ $this->config = $config;
+ $this->l10n = $l10n;
+ $this->session = $session;
+ $this->urlGenerator = $urlGenerator;
+ }
+
+ /**
+ * @PublicPage
+ * @NoCSRFRequired
+ *
+ * @return RedirectResponse
+ */
+ public function cancel() {
+ return new RedirectResponse($this->urlGenerator->linkToRouteAbsolute('core.login.showLoginForm'));
+ }
+
+ /**
+ * @PublicPage
+ * @NoCSRFRequired
+ * @UseSession
+ *
+ * @param string $user
+ *
+ * @return TemplateResponse|RedirectResponse
+ */
+ public function showRenewPasswordForm($user) {
+ if($this->config->getUserValue($user, 'user_ldap', 'needsPasswordReset') !== 'true') {
+ return new RedirectResponse($this->urlGenerator->linkToRouteAbsolute('core.login.showLoginForm'));
+ }
+ $parameters = [];
+ $renewPasswordMessages = $this->session->get('renewPasswordMessages');
+ $errors = [];
+ $messages = [];
+ if (is_array($renewPasswordMessages)) {
+ list($errors, $messages) = $renewPasswordMessages;
+ }
+ $this->session->remove('renewPasswordMessages');
+ foreach ($errors as $value) {
+ $parameters[$value] = true;
+ }
+
+ $parameters['messages'] = $messages;
+ $parameters['user'] = $user;
+
+ $parameters['canResetPassword'] = true;
+ $parameters['resetPasswordLink'] = $this->config->getSystemValue('lost_password_link', '');
+ if (!$parameters['resetPasswordLink']) {
+ $userObj = $this->userManager->get($user);
+ if ($userObj instanceof IUser) {
+ $parameters['canResetPassword'] = $userObj->canChangePassword();
+ }
+ }
+ $parameters['cancelLink'] = $this->urlGenerator->linkToRouteAbsolute('core.login.showLoginForm');
+
+ return new TemplateResponse(
+ $this->appName, 'renewpassword', $parameters, 'guest'
+ );
+ }
+
+ /**
+ * @PublicPage
+ * @UseSession
+ *
+ * @param string $user
+ * @param string $oldPassword
+ * @param string $newPassword
+ *
+ * @return RedirectResponse
+ */
+ public function tryRenewPassword($user, $oldPassword, $newPassword) {
+ if($this->config->getUserValue($user, 'user_ldap', 'needsPasswordReset') !== 'true') {
+ return new RedirectResponse($this->urlGenerator->linkToRouteAbsolute('core.login.showLoginForm'));
+ }
+ $args = !is_null($user) ? ['user' => $user] : [];
+ $loginResult = $this->userManager->checkPassword($user, $oldPassword);
+ if ($loginResult === false) {
+ $this->session->set('renewPasswordMessages', [
+ ['invalidpassword'], []
+ ]);
+ return new RedirectResponse($this->urlGenerator->linkToRoute('user_ldap.renewPassword.showRenewPasswordForm', $args));
+ }
+
+ try {
+ if (!is_null($newPassword) && \OC_User::setPassword($user, $newPassword)) {
+ $this->session->set('loginMessages', [
+ [], [$this->l10n->t("Please login with the new password")]
+ ]);
+ $this->session->remove('needPasswordRenewal');
+ return new RedirectResponse($this->urlGenerator->linkToRoute('core.login.showLoginForm', $args));
+ } else {
+ $this->session->set('renewPasswordMessages', [
+ ['internalexception'], []
+ ]);
+ }
+ } catch (HintException $e) {
+ $this->session->set('renewPasswordMessages', [
+ [], [$e->getHint()]
+ ]);
+ }
+
+ return new RedirectResponse($this->urlGenerator->linkToRoute('user_ldap.renewPassword.showRenewPasswordForm', $args));
+ }
+
+ /**
+ * @PublicPage
+ * @NoCSRFRequired
+ * @UseSession
+ *
+ * @return RedirectResponse
+ */
+ public function showLoginFormInvalidPassword($user) {
+ $args = !is_null($user) ? ['user' => $user] : [];
+ $this->session->set('loginMessages', [
+ ['invalidpassword'], []
+ ]);
+ return new RedirectResponse($this->urlGenerator->linkToRoute('core.login.showLoginForm', $args));
+ }
+
+}
diff --git a/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php b/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php
index 997b01b2d4e..586a80b9ebe 100644
--- a/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php
+++ b/apps/user_ldap/lib/Exceptions/ConstraintViolationException.php
@@ -1,6 +1,6 @@
<?php
/**
- * @copyright Copyright (c) 2016 Roger Szabo <roger.szabo@web.de>
+ * @copyright Copyright (c) 2017 Roger Szabo <roger.szabo@web.de>
*
* @author Roger Szabo <roger.szabo@web.de>
*
diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php
index f1186ffa310..83b2f05f1d2 100644
--- a/apps/user_ldap/lib/Helper.php
+++ b/apps/user_ldap/lib/Helper.php
@@ -293,9 +293,10 @@ class Helper {
$configPrefixes = $helper->getServerConfigurationPrefixes(true);
$ldapWrapper = new LDAP();
$ocConfig = \OC::$server->getConfig();
+ $notificationManager = \OC::$server->getNotificationManager();
$userBackend = new User_Proxy(
- $configPrefixes, $ldapWrapper, $ocConfig
+ $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager
);
$uid = $userBackend->loginName2UserName($param['uid'] );
if($uid !== false) {
diff --git a/apps/user_ldap/lib/Jobs/CleanUp.php b/apps/user_ldap/lib/Jobs/CleanUp.php
index e69d24dfd06..a4dd4ba32ad 100644
--- a/apps/user_ldap/lib/Jobs/CleanUp.php
+++ b/apps/user_ldap/lib/Jobs/CleanUp.php
@@ -98,7 +98,8 @@ class CleanUp extends TimedJob {
$this->userBackend = new User_Proxy(
$this->ldapHelper->getServerConfigurationPrefixes(true),
new LDAP(),
- $this->ocConfig
+ $this->ocConfig,
+ \OC::$server->getNotificationManager()
);
}
diff --git a/apps/user_ldap/lib/Jobs/UpdateGroups.php b/apps/user_ldap/lib/Jobs/UpdateGroups.php
index b4259425fcc..4c9a06a5f68 100644
--- a/apps/user_ldap/lib/Jobs/UpdateGroups.php
+++ b/apps/user_ldap/lib/Jobs/UpdateGroups.php
@@ -185,7 +185,8 @@ class UpdateGroups extends \OC\BackgroundJob\TimedJob {
\OC::$server->getAvatarManager(),
new \OCP\Image(),
$dbc,
- \OC::$server->getUserManager());
+ \OC::$server->getUserManager(),
+ \OC::$server->getNotificationManager());
$connector = new Connection($ldapWrapper, $configPrefixes[0]);
$ldapAccess = new Access($connector, $ldapWrapper, $userManager, $helper);
$groupMapper = new GroupMapping($dbc);
diff --git a/apps/user_ldap/lib/Migration/UUIDFixGroup.php b/apps/user_ldap/lib/Migration/UUIDFixGroup.php
index cbc38366984..6aacb37257e 100644
--- a/apps/user_ldap/lib/Migration/UUIDFixGroup.php
+++ b/apps/user_ldap/lib/Migration/UUIDFixGroup.php
@@ -32,6 +32,7 @@ use OCP\IConfig;
class UUIDFixGroup extends UUIDFix {
public function __construct(GroupMapping $mapper, LDAP $ldap, IConfig $config, Helper $helper) {
$this->mapper = $mapper;
- $this->proxy = new User_Proxy($helper->getServerConfigurationPrefixes(true), $ldap, $config);
+ $this->proxy = new User_Proxy($helper->getServerConfigurationPrefixes(true), $ldap, $config,
+ \OC::$server->getNotificationManager());
}
}
diff --git a/apps/user_ldap/lib/Notification/Notifier.php b/apps/user_ldap/lib/Notification/Notifier.php
new file mode 100644
index 00000000000..a6053cfcb19
--- /dev/null
+++ b/apps/user_ldap/lib/Notification/Notifier.php
@@ -0,0 +1,71 @@
+<?php
+/**
+ * @copyright Copyright (c) 2017 Roger Szabo <roger.szabo@web.de>
+ *
+ * @author Roger Szabo <roger.szabo@web.de>
+ *
+ * @license GNU AGPL version 3 or any later version
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * 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
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+namespace OCA\User_LDAP\Notification;
+
+
+use OCP\IUser;
+use OCP\IUserManager;
+use OCP\L10N\IFactory;
+use OCP\Notification\INotification;
+use OCP\Notification\INotifier;
+
+class Notifier implements INotifier {
+
+ /** @var IFactory */
+ protected $l10nFactory;
+
+ /**
+ * @param IFactory $l10nFactory
+ */
+ public function __construct(\OCP\L10N\IFactory $l10nFactory) {
+ $this->l10nFactory = $l10nFactory;
+ }
+
+ /**
+ * @param INotification $notification
+ * @param string $languageCode The code of the language that should be used to prepare the notification
+ * @return INotification
+ * @throws \InvalidArgumentException When the notification was not prepared by a notifier
+ */
+ public function prepare(INotification $notification, $languageCode) {
+ if ($notification->getApp() !== 'user_ldap') {
+ // Not my app => throw
+ throw new \InvalidArgumentException();
+ }
+
+ // Read the language from the notification
+ $l = $this->l10nFactory->get('user_ldap', $languageCode);
+
+ switch ($notification->getSubject()) {
+ // Deal with known subjects
+ case 'pwd_exp_warn_days':
+ $notification->setParsedSubject($l->t('Your password will expire within %s day(s).', $notification->getSubjectParameters()));
+ return $notification;
+
+ default:
+ // Unknown subject => Unknown notification => throw
+ throw new \InvalidArgumentException();
+ }
+ }
+}
diff --git a/apps/user_ldap/lib/Proxy.php b/apps/user_ldap/lib/Proxy.php
index 7f998314e20..96bb670b789 100644
--- a/apps/user_ldap/lib/Proxy.php
+++ b/apps/user_ldap/lib/Proxy.php
@@ -64,6 +64,7 @@ abstract class Proxy {
static $groupMap;
static $db;
static $coreUserManager;
+ static $coreNotificationManager;
if(is_null($fs)) {
$ocConfig = \OC::$server->getConfig();
$fs = new FilesystemHelper();
@@ -73,9 +74,11 @@ abstract class Proxy {
$userMap = new UserMapping($db);
$groupMap = new GroupMapping($db);
$coreUserManager = \OC::$server->getUserManager();
+ $coreNotificationManager = \OC::$server->getNotificationManager();
}
$userManager =
- new Manager($ocConfig, $fs, $log, $avatarM, new \OCP\Image(), $db, $coreUserManager);
+ new Manager($ocConfig, $fs, $log, $avatarM, new \OCP\Image(), $db,
+ $coreUserManager, $coreNotificationManager);
$connector = new Connection($this->ldap, $configPrefix);
$access = new Access($connector, $this->ldap, $userManager, new Helper(\OC::$server->getConfig()));
$access->setUserMapper($userMap);
diff --git a/apps/user_ldap/lib/User/Manager.php b/apps/user_ldap/lib/User/Manager.php
index 18430a90cc7..ea4d071b646 100644
--- a/apps/user_ldap/lib/User/Manager.php
+++ b/apps/user_ldap/lib/User/Manager.php
@@ -34,6 +34,7 @@ use OCP\IConfig;
use OCP\IDBConnection;
use OCP\Image;
use OCP\IUserManager;
+use OCP\Notification\IManager as INotificationManager;
/**
* Manager
@@ -51,6 +52,12 @@ class Manager {
/** @var IDBConnection */
protected $db;
+ /** @var IUserManager */
+ protected $userManager;
+
+ /** @var INotificationManager */
+ protected $notificationManager;
+
/** @var FilesystemHelper */
protected $ocFilesystem;
@@ -85,17 +92,19 @@ class Manager {
public function __construct(IConfig $ocConfig,
FilesystemHelper $ocFilesystem, LogWrapper $ocLog,
IAvatarManager $avatarManager, Image $image,
- IDBConnection $db, IUserManager $userManager) {
-
- $this->ocConfig = $ocConfig;
- $this->ocFilesystem = $ocFilesystem;
- $this->ocLog = $ocLog;
- $this->avatarManager = $avatarManager;
- $this->image = $image;
- $this->db = $db;
- $this->userManager = $userManager;
- $this->usersByDN = new CappedMemoryCache();
- $this->usersByUid = new CappedMemoryCache();
+ IDBConnection $db, IUserManager $userManager,
+ INotificationManager $notificationManager) {
+
+ $this->ocConfig = $ocConfig;
+ $this->ocFilesystem = $ocFilesystem;
+ $this->ocLog = $ocLog;
+ $this->avatarManager = $avatarManager;
+ $this->image = $image;
+ $this->db = $db;
+ $this->userManager = $userManager;
+ $this->notificationManager = $notificationManager;
+ $this->usersByDN = new CappedMemoryCache();
+ $this->usersByUid = new CappedMemoryCache();
}
/**
@@ -118,7 +127,8 @@ class Manager {
$this->checkAccess();
$user = new User($uid, $dn, $this->access, $this->ocConfig,
$this->ocFilesystem, clone $this->image, $this->ocLog,
- $this->avatarManager, $this->userManager);
+ $this->avatarManager, $this->userManager,
+ $this->notificationManager);
$this->usersByDN[$dn] = $user;
$this->usersByUid[$uid] = $user;
return $user;
diff --git a/apps/user_ldap/lib/User/User.php b/apps/user_ldap/lib/User/User.php
index 4419c4983d4..a9e7eb6cc0c 100644
--- a/apps/user_ldap/lib/User/User.php
+++ b/apps/user_ldap/lib/User/User.php
@@ -7,6 +7,7 @@
* @author Morris Jobke <hey@morrisjobke.de>
* @author Thomas Müller <thomas.mueller@tmit.eu>
* @author Jörn Friedrich Dreyer <jfd@butonic.de>
+ * @author Roger Szabo <roger.szabo@web.de>
*
* @license AGPL-3.0
*
@@ -34,6 +35,7 @@ use OCP\IConfig;
use OCP\Image;
use OCP\IUserManager;
use OCP\Util;
+use OCP\Notification\IManager as INotificationManager;
/**
* User
@@ -74,6 +76,10 @@ class User {
*/
protected $userManager;
/**
+ * @var INotificationManager
+ */
+ protected $notificationManager;
+ /**
* @var string
*/
protected $dn;
@@ -108,11 +114,13 @@ class User {
* @param LogWrapper $log
* @param IAvatarManager $avatarManager
* @param IUserManager $userManager
+ * @param INotificationManager $notificationManager
*/
public function __construct($username, $dn, IUserTools $access,
IConfig $config, FilesystemHelper $fs, Image $image,
- LogWrapper $log, IAvatarManager $avatarManager, IUserManager $userManager) {
-
+ LogWrapper $log, IAvatarManager $avatarManager, IUserManager $userManager,
+ INotificationManager $notificationManager) {
+
if ($username === null) {
$log->log("uid for '$dn' must not be null!", Util::ERROR);
throw new \InvalidArgumentException('uid must not be null!');
@@ -121,16 +129,19 @@ class User {
throw new \InvalidArgumentException('uid must not be an empty string!');
}
- $this->access = $access;
- $this->connection = $access->getConnection();
- $this->config = $config;
- $this->fs = $fs;
- $this->dn = $dn;
- $this->uid = $username;
- $this->image = $image;
- $this->log = $log;
- $this->avatarManager = $avatarManager;
- $this->userManager = $userManager;
+ $this->access = $access;
+ $this->connection = $access->getConnection();
+ $this->config = $config;
+ $this->fs = $fs;
+ $this->dn = $dn;
+ $this->uid = $username;
+ $this->image = $image;
+ $this->log = $log;
+ $this->avatarManager = $avatarManager;
+ $this->userManager = $userManager;
+ $this->notificationManager = $notificationManager;
+
+ \OCP\Util::connectHook('OC_User', 'post_login', $this, 'handlePasswordExpiry');
}
/**
@@ -587,4 +598,98 @@ class User {
}
}
+ /**
+ * called by a post_login hook to handle password expiry
+ *
+ * @param array $params
+ */
+ public function handlePasswordExpiry($params) {
+ $ppolicyDN = $this->connection->ldapDefaultPPolicyDN;
+ if (empty($ppolicyDN) || (intval($this->connection->turnOnPasswordChange) !== 1)) {
+ return;//password expiry handling disabled
+ }
+ $uid = $params['uid'];
+ if(isset($uid) && $uid === $this->getUsername()) {
+ //retrieve relevant user attributes
+ $result = $this->access->search('objectclass=*', $this->dn, ['pwdpolicysubentry', 'pwdgraceusetime', 'pwdreset', 'pwdchangedtime']);
+
+ if(array_key_exists('pwdpolicysubentry', $result[0])) {
+ $pwdPolicySubentry = $result[0]['pwdpolicysubentry'];
+ if($pwdPolicySubentry && (count($pwdPolicySubentry) > 0)){
+ $ppolicyDN = $pwdPolicySubentry[0];//custom ppolicy DN
+ }
+ }
+
+ $pwdGraceUseTime = array_key_exists('pwdgraceusetime', $result[0]) ? $result[0]['pwdgraceusetime'] : null;
+ $pwdReset = array_key_exists('pwdreset', $result[0]) ? $result[0]['pwdreset'] : null;
+ $pwdChangedTime = array_key_exists('pwdchangedtime', $result[0]) ? $result[0]['pwdchangedtime'] : null;
+
+ //retrieve relevant password policy attributes
+ $cacheKey = 'ppolicyAttributes' . $ppolicyDN;
+ $result = $this->connection->getFromCache($cacheKey);
+ if(is_null($result)) {
+ $result = $this->access->search('objectclass=*', $ppolicyDN, ['pwdgraceauthnlimit', 'pwdmaxage', 'pwdexpirewarning']);
+ $this->connection->writeToCache($cacheKey, $result);
+ }
+
+ $pwdGraceAuthNLimit = array_key_exists('pwdgraceauthnlimit', $result[0]) ? $result[0]['pwdgraceauthnlimit'] : null;
+ $pwdMaxAge = array_key_exists('pwdmaxage', $result[0]) ? $result[0]['pwdmaxage'] : null;
+ $pwdExpireWarning = array_key_exists('pwdexpirewarning', $result[0]) ? $result[0]['pwdexpirewarning'] : null;
+
+ //handle grace login
+ $pwdGraceUseTimeCount = count($pwdGraceUseTime);
+ if($pwdGraceUseTime && $pwdGraceUseTimeCount > 0) { //was this a grace login?
+ if($pwdGraceAuthNLimit
+ && (count($pwdGraceAuthNLimit) > 0)
+ &&($pwdGraceUseTimeCount < intval($pwdGraceAuthNLimit[0]))) { //at least one more grace login available?
+ $this->config->setUserValue($uid, 'user_ldap', 'needsPasswordReset', 'true');
+ header('Location: '.\OC::$server->getURLGenerator()->linkToRouteAbsolute(
+ 'user_ldap.renewPassword.showRenewPasswordForm', array('user' => $uid)));
+ } else { //no more grace login available
+ header('Location: '.\OC::$server->getURLGenerator()->linkToRouteAbsolute(
+ 'user_ldap.renewPassword.showLoginFormInvalidPassword', array('user' => $uid)));
+ }
+ exit();
+ }
+ //handle pwdReset attribute
+ if($pwdReset && (count($pwdReset) > 0) && $pwdReset[0] === 'TRUE') { //user must change his password
+ $this->config->setUserValue($uid, 'user_ldap', 'needsPasswordReset', 'true');
+ header('Location: '.\OC::$server->getURLGenerator()->linkToRouteAbsolute(
+ 'user_ldap.renewPassword.showRenewPasswordForm', array('user' => $uid)));
+ exit();
+ }
+ //handle password expiry warning
+ if($pwdChangedTime && (count($pwdChangedTime) > 0)) {
+ if($pwdMaxAge && (count($pwdMaxAge) > 0)
+ && $pwdExpireWarning && (count($pwdExpireWarning) > 0)) {
+ $pwdMaxAgeInt = intval($pwdMaxAge[0]);
+ $pwdExpireWarningInt = intval($pwdExpireWarning[0]);
+ if($pwdMaxAgeInt > 0 && $pwdExpireWarningInt > 0){
+ $pwdChangedTimeDt = \DateTime::createFromFormat('YmdHisZ', $pwdChangedTime[0]);
+ $pwdChangedTimeDt->add(new \DateInterval('PT'.$pwdMaxAgeInt.'S'));
+ $currentDateTime = new \DateTime();
+ $secondsToExpiry = $pwdChangedTimeDt->getTimestamp() - $currentDateTime->getTimestamp();
+ if($secondsToExpiry <= $pwdExpireWarningInt) {
+ //remove last password expiry warning if any
+ $notification = $this->notificationManager->createNotification();
+ $notification->setApp('user_ldap')
+ ->setUser($uid)
+ ->setObject('pwd_exp_warn', $uid)
+ ;
+ $this->notificationManager->markProcessed($notification);
+ //create new password expiry warning
+ $notification = $this->notificationManager->createNotification();
+ $notification->setApp('user_ldap')
+ ->setUser($uid)
+ ->setDateTime($currentDateTime)
+ ->setObject('pwd_exp_warn', $uid)
+ ->setSubject('pwd_exp_warn_days', [strval(ceil($secondsToExpiry / 60 / 60 / 24))])
+ ;
+ $this->notificationManager->notify($notification);
+ }
+ }
+ }
+ }
+ }
+ }
}
diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php
index fa959fd9a81..75cdb3951ca 100644
--- a/apps/user_ldap/lib/User_LDAP.php
+++ b/apps/user_ldap/lib/User_LDAP.php
@@ -41,6 +41,7 @@ use OCA\User_LDAP\Exceptions\NotOnLDAP;
use OCA\User_LDAP\User\OfflineUser;
use OCA\User_LDAP\User\User;
use OCP\IConfig;
+use OCP\Notification\IManager as INotificationManager;
use OCP\Util;
class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserInterface, IUserLDAP {
@@ -50,13 +51,18 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
/** @var \OCP\IConfig */
protected $ocConfig;
+ /** @var INotificationManager */
+ protected $notificationManager;
+
/**
* @param Access $access
* @param \OCP\IConfig $ocConfig
+ * @param \OCP\Notification\IManager $notificationManager
*/
- public function __construct(Access $access, IConfig $ocConfig) {
+ public function __construct(Access $access, IConfig $ocConfig, INotificationManager $notificationManager) {
parent::__construct($access);
$this->ocConfig = $ocConfig;
+ $this->notificationManager = $notificationManager;
}
/**
@@ -190,8 +196,19 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn
throw new \Exception('LDAP setPassword: Could not get user object for uid ' . $uid .
'. Maybe the LDAP entry has no set display name attribute?');
}
- if($user->getUsername() !== false) {
- return $this->access->setPassword($user->getDN(), $password);
+ if($user->getUsername() !== false && $this->access->setPassword($user->getDN(), $password)) {
+ $ldapDefaultPPolicyDN = $this->access->connection->ldapDefaultPPolicyDN;
+ $turnOnPasswordChange = $this->access->connection->turnOnPasswordChange;
+ if (!empty($ldapDefaultPPolicyDN) && (intval($turnOnPasswordChange) === 1)) {
+ //remove last password expiry warning if any
+ $notification = $this->notificationManager->createNotification();
+ $notification->setApp('user_ldap')
+ ->setUser($uid)
+ ->setObject('pwd_exp_warn', $uid)
+ ;
+ $this->notificationManager->markProcessed($notification);
+ }
+ return true;
}
return false;
diff --git a/apps/user_ldap/lib/User_Proxy.php b/apps/user_ldap/lib/User_Proxy.php
index 6417841f245..8e81b10f7b3 100644
--- a/apps/user_ldap/lib/User_Proxy.php
+++ b/apps/user_ldap/lib/User_Proxy.php
@@ -31,6 +31,7 @@ namespace OCA\User_LDAP;
use OCA\User_LDAP\User\User;
use OCP\IConfig;
+use OCP\Notification\IManager as INotificationManager;
class User_Proxy extends Proxy implements \OCP\IUserBackend, \OCP\UserInterface, IUserLDAP {
private $backends = array();
@@ -40,11 +41,12 @@ class User_Proxy extends Proxy implements \OCP\IUserBackend, \OCP\UserInterface,
* Constructor
* @param array $serverConfigPrefixes array containing the config Prefixes
*/
- public function __construct(array $serverConfigPrefixes, ILDAPWrapper $ldap, IConfig $ocConfig) {
+ public function __construct(array $serverConfigPrefixes, ILDAPWrapper $ldap, IConfig $ocConfig,
+ INotificationManager $notificationManager) {
parent::__construct($ldap);
foreach($serverConfigPrefixes as $configPrefix) {
$this->backends[$configPrefix] =
- new User_LDAP($this->getAccess($configPrefix), $ocConfig);
+ new User_LDAP($this->getAccess($configPrefix), $ocConfig, $notificationManager);
if(is_null($this->refBackend)) {
$this->refBackend = &$this->backends[$configPrefix];
}
diff --git a/apps/user_ldap/templates/renewpassword.php b/apps/user_ldap/templates/renewpassword.php
new file mode 100644
index 00000000000..7b1df75e06b
--- /dev/null
+++ b/apps/user_ldap/templates/renewpassword.php
@@ -0,0 +1,73 @@
+<?php /** @var $l OC_L10N */ ?>
+<?php
+script('core', [
+ 'jquery-showpassword',
+]);
+script('user_ldap', [
+ 'renewPassword',
+]);
+style('user_ldap', 'renewPassword');
+\OC_Util::addVendorScript('strengthify/jquery.strengthify');
+\OC_Util::addVendorStyle('strengthify/strengthify');
+
+?>
+
+<!--[if IE 8]><style>input[type="checkbox"]{padding:0;}</style><![endif]-->
+<form method="post" name="renewpassword" id="renewpassword" action="<?php p(\OC::$server->getURLGenerator()->linkToRoute('user_ldap.renewPassword.tryRenewPassword')); ?>">
+ <fieldset>
+ <div class="warning title">
+ <?php p($l->t('Please renew your password.')); ?><br>
+ </div>
+ <?php foreach($_['messages'] as $message): ?>
+ <div class="warning">
+ <?php p($message); ?><br>
+ </div>
+ <?php endforeach; ?>
+ <?php if (isset($_['internalexception']) && ($_['internalexception'])): ?>
+ <div class="warning">
+ <?php p($l->t('An internal error occurred.')); ?><br>
+ <small><?php p($l->t('Please try again or contact your administrator.')); ?></small>
+ </div>
+ <?php endif; ?>
+ <div id="message" class="hidden">
+ <img class="float-spinner" alt=""
+ src="<?php p(image_path('core', 'loading-dark.gif'));?>">
+ <span id="messageText"></span>
+ <!-- the following div ensures that the spinner is always inside the #message div -->
+ <div style="clear: both;"></div>
+ </div>
+ <p class="grouptop">
+ <input type="password" id="oldPassword" name="oldPassword"
+ placeholder="<?php echo $l->t('Current password');?>"
+ autofocus autocomplete="off" autocapitalize="off" autocorrect="off" required/>
+ <label for="oldPassword" class="infield"><?php p($l->t('Current password')); ?></label>
+ </p>
+
+ <p class="groupbottom">
+ <input type="checkbox" id="personal-show" name="show" /><label for="personal-show"></label>
+ <label id="newPassword-label" for="newPassword" class="infield"><?php p($l->t('New password')); ?></label>
+ <input type="password" id="newPassword" name="newPassword"
+ placeholder="<?php echo $l->t('New password');?>"
+ data-typetoggle="#personal-show" autofocus autocomplete="off" autocapitalize="off" autocorrect="off" required/>
+ </p>
+
+ <input type="submit" id="submit" class="login primary icon-confirm-white" title="" value="<?php p($l->t('Renew password')); ?>"/>
+
+ <?php if (!empty($_['invalidpassword']) && !empty($_['canResetPassword'])) { ?>
+ <a id="lost-password" class="warning" href="<?php p($_['resetPasswordLink']); ?>">
+ <?php p($l->t('Wrong password. Reset it?')); ?>
+ </a>
+ <?php } else if (!empty($_['invalidpassword'])) { ?>
+ <p class="warning">
+ <?php p($l->t('Wrong password.')); ?>
+ </p>
+ <?php } ?>
+ <p id="cancel-container" class="info">
+ <a id="cancel" href="<?php p($_['cancelLink']); ?>">
+ <?php p($l->t('Cancel')); ?>
+ </a>
+ </p>
+ <input type="hidden" name="user" id="user" value="<?php p($_['user']) ?>">
+ <input type="hidden" name="requesttoken" value="<?php p($_['requesttoken']) ?>">
+ </fieldset>
+</form>
diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php
index 6942b2eb2b1..0d4ca804dd3 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -103,6 +103,7 @@ style('user_ldap', 'settings');
<p><label for="ldap_paging_size"><?php p($l->t('Paging chunksize'));?></label><input type="number" id="ldap_paging_size" name="ldap_paging_size" title="<?php p($l->t('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.)'));?>" data-default="<?php p($_['ldap_paging_size_default']); ?>" /></p>
<p><label for="ldap_turn_on_pwd_change"><?php p($l->t('Enable LDAP password changes per user'));?></label><span class="inlinetable"><span class="tablerow left"><input type="checkbox" id="ldap_turn_on_pwd_change" name="ldap_turn_on_pwd_change" value="1" data-default="<?php p($_['ldap_turn_on_pwd_change_default']); ?>" title="<?php p($l->t('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.'));?>" /><span class="tablecell"><?php p($l->t('(New password is sent as plain text to LDAP)'));?></span></span>
</span><br/></p>
+ <p><label for="ldap_default_ppolicy_dn"><?php p($l->t('Default password policy DN'));?></label><input type="text" id="ldap_default_ppolicy_dn" name="ldap_default_ppolicy_dn" title="<?php p($l->t('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.'));?>" data-default="<?php p($_['ldap_default_ppolicy_dn_default']); ?>" /></p>
</div>
<h3><?php p($l->t('Special Attributes'));?></h3>
<div>
diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php
index 271e8eb605b..85f0516dec2 100644
--- a/apps/user_ldap/tests/AccessTest.php
+++ b/apps/user_ldap/tests/AccessTest.php
@@ -42,6 +42,7 @@ use OCP\IConfig;
use OCP\IDBConnection;
use OCP\Image;
use OCP\IUserManager;
+use OCP\Notification\IManager as INotificationManager;
/**
* Class AccessTest
@@ -89,7 +90,8 @@ class AccessTest extends \Test\TestCase {
$this->createMock(IAvatarManager::class),
$this->createMock(Image::class),
$this->createMock(IDBConnection::class),
- $this->createMock(IUserManager::class)])
+ $this->createMock(IUserManager::class),
+ $this->createMock(INotificationManager::class)])
->getMock();
$helper = new Helper(\OC::$server->getConfig());
diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php
index 32fc2151a7c..25b7cf83f99 100644
--- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php
+++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php
@@ -47,7 +47,7 @@ class IntegrationTestFetchUsersByLoginName extends AbstractIntegrationTest {
$this->mapping = new UserMapping(\OC::$server->getDatabaseConnection());
$this->mapping->clear();
$this->access->setUserMapper($this->mapping);
- $this->backend = new \OCA\User_LDAP\User_LDAP($this->access, \OC::$server->getConfig());
+ $this->backend = new \OCA\User_LDAP\User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager());
}
/**
diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php
index 3826cbdae51..2f14b0d1c1b 100644
--- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php
+++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php
@@ -44,7 +44,7 @@ class IntegrationTestPaging extends AbstractIntegrationTest {
require(__DIR__ . '/../setup-scripts/createExplicitUsers.php');
parent::init();
- $this->backend = new \OCA\User_LDAP\User_LDAP($this->access, \OC::$server->getConfig());
+ $this->backend = new \OCA\User_LDAP\User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager());
}
/**
diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php
index 9db4cafea41..57c48fa18e0 100644
--- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php
+++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php
@@ -48,7 +48,7 @@ class IntegrationTestUserHome extends AbstractIntegrationTest {
$this->mapping = new UserMapping(\OC::$server->getDatabaseConnection());
$this->mapping->clear();
$this->access->setUserMapper($this->mapping);
- $this->backend = new \OCA\User_LDAP\User_LDAP($this->access, \OC::$server->getConfig());
+ $this->backend = new \OCA\User_LDAP\User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager());
}
/**
diff --git a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php
index 7c8f9475b41..3fb5a67591b 100644
--- a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php
+++ b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php
@@ -45,7 +45,7 @@ class IntegrationTestUserAvatar extends AbstractIntegrationTest {
$this->mapping = new UserMapping(\OC::$server->getDatabaseConnection());
$this->mapping->clear();
$this->access->setUserMapper($this->mapping);
- $userBackend = new \OCA\User_LDAP\User_LDAP($this->access, \OC::$server->getConfig());
+ $userBackend = new \OCA\User_LDAP\User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager());
\OC_User::useBackend($userBackend);
}
@@ -130,7 +130,8 @@ class IntegrationTestUserAvatar extends AbstractIntegrationTest {
\OC::$server->getAvatarManager(),
new \OCP\Image(),
\OC::$server->getDatabaseConnection(),
- \OC::$server->getUserManager()
+ \OC::$server->getUserManager(),
+ \OC::$server->getNotificationManager()
);
}
diff --git a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php
index d0444daca5f..616bf410e04 100644
--- a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php
+++ b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php
@@ -43,7 +43,7 @@ class IntegrationTestUserDisplayName extends AbstractIntegrationTest {
$this->mapping = new UserMapping(\OC::$server->getDatabaseConnection());
$this->mapping->clear();
$this->access->setUserMapper($this->mapping);
- $userBackend = new User_LDAP($this->access, \OC::$server->getConfig());
+ $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager());
\OC_User::useBackend($userBackend);
}
diff --git a/apps/user_ldap/tests/User/ManagerTest.php b/apps/user_ldap/tests/User/ManagerTest.php
index 16d6a3d9d6e..823081f1da2 100644
--- a/apps/user_ldap/tests/User/ManagerTest.php
+++ b/apps/user_ldap/tests/User/ManagerTest.php
@@ -36,6 +36,7 @@ use OCP\IConfig;
use OCP\IDBConnection;
use OCP\Image;
use OCP\IUserManager;
+use OCP\Notification\IManager as INotificationManager;
/**
* Class Test_User_Manager
@@ -55,6 +56,7 @@ class ManagerTest extends \Test\TestCase {
$image = $this->createMock(Image::class);
$dbc = $this->createMock(IDBConnection::class);
$userMgr = $this->createMock(IUserManager::class);
+ $notiMgr = $this->createMock(INotificationManager::class);
$connection = new \OCA\User_LDAP\Connection(
$lw = $this->createMock(ILDAPWrapper::class),
@@ -66,11 +68,11 @@ class ManagerTest extends \Test\TestCase {
->method('getConnection')
->will($this->returnValue($connection));
- return array($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr);
+ return array($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr);
}
public function testGetByDNExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
$inputDN = 'cn=foo,dc=foobar,dc=bar';
@@ -89,7 +91,7 @@ class ManagerTest extends \Test\TestCase {
$access->expects($this->never())
->method('username2dn');
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr, $notiMgr);
$manager->setLdapAccess($access);
$user = $manager->get($inputDN);
@@ -101,7 +103,7 @@ class ManagerTest extends \Test\TestCase {
}
public function testGetByEDirectoryDN() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
$inputDN = 'uid=foo,o=foobar,c=bar';
@@ -120,7 +122,7 @@ class ManagerTest extends \Test\TestCase {
$access->expects($this->never())
->method('username2dn');
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr, $notiMgr);
$manager->setLdapAccess($access);
$user = $manager->get($inputDN);
@@ -128,7 +130,7 @@ class ManagerTest extends \Test\TestCase {
}
public function testGetByExoticDN() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
$inputDN = 'ab=cde,f=ghei,mno=pq';
@@ -147,7 +149,7 @@ class ManagerTest extends \Test\TestCase {
$access->expects($this->never())
->method('username2dn');
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr, $notiMgr);
$manager->setLdapAccess($access);
$user = $manager->get($inputDN);
@@ -155,7 +157,7 @@ class ManagerTest extends \Test\TestCase {
}
public function testGetByDNNotExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
$inputDN = 'cn=gone,dc=foobar,dc=bar';
@@ -175,7 +177,7 @@ class ManagerTest extends \Test\TestCase {
->with($this->equalTo($inputDN))
->will($this->returnValue(false));
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr, $notiMgr);
$manager->setLdapAccess($access);
$user = $manager->get($inputDN);
@@ -183,7 +185,7 @@ class ManagerTest extends \Test\TestCase {
}
public function testGetByUidExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
$dn = 'cn=foo,dc=foobar,dc=bar';
@@ -202,7 +204,7 @@ class ManagerTest extends \Test\TestCase {
->with($this->equalTo($uid))
->will($this->returnValue(false));
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr, $notiMgr);
$manager->setLdapAccess($access);
$user = $manager->get($uid);
@@ -214,7 +216,7 @@ class ManagerTest extends \Test\TestCase {
}
public function testGetByUidNotExisting() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
$uid = 'gone';
@@ -227,7 +229,7 @@ class ManagerTest extends \Test\TestCase {
->with($this->equalTo($uid))
->will($this->returnValue(false));
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr, $notiMgr);
$manager->setLdapAccess($access);
$user = $manager->get($uid);
@@ -235,10 +237,10 @@ class ManagerTest extends \Test\TestCase {
}
public function testGetAttributesAll() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr, $notiMgr);
$manager->setLdapAccess($access);
$connection = $access->getConnection();
@@ -253,10 +255,10 @@ class ManagerTest extends \Test\TestCase {
}
public function testGetAttributesMinimal() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
- $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr);
+ $manager = new Manager($config, $filesys, $log, $avaMgr, $image, $dbc, $userMgr, $notiMgr);
$manager->setLdapAccess($access);
$attributes = $manager->getAttributes(true);
diff --git a/apps/user_ldap/tests/User/UserTest.php b/apps/user_ldap/tests/User/UserTest.php
index 6961e39d9f0..0437051b134 100644
--- a/apps/user_ldap/tests/User/UserTest.php
+++ b/apps/user_ldap/tests/User/UserTest.php
@@ -37,6 +37,7 @@ use OCP\IDBConnection;
use OCP\Image;
use OCP\IUser;
use OCP\IUserManager;
+use OCP\Notification\IManager as INotificationManager;
/**
* Class UserTest
@@ -56,11 +57,12 @@ class UserTest extends \Test\TestCase {
$image = $this->createMock(Image::class);
$dbc = $this->createMock(IDBConnection::class);
$userMgr = $this->createMock(IUserManager::class);
+ $notiMgr = $this->createMock(INotificationManager::class);
- return array($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr);
+ return array($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr);
}
- private function getAdvancedMocks($cfMock, $fsMock, $logMock, $avaMgr, $dbc, $userMgr = null) {
+ private function getAdvancedMocks($cfMock, $fsMock, $logMock, $avaMgr, $dbc, $userMgr = null, $notiMgr = null) {
static $conMethods;
static $accMethods;
static $umMethods;
@@ -77,9 +79,12 @@ class UserTest extends \Test\TestCase {
if (is_null($userMgr)) {
$userMgr = $this->createMock(IUserManager::class);
}
+ if (is_null($notiMgr)) {
+ $notiMgr = $this->createMock(INotificationManager::class);
+ }
$um = $this->getMockBuilder('\OCA\User_LDAP\User\Manager')
->setMethods($umMethods)
- ->setConstructorArgs([$cfMock, $fsMock, $logMock, $avaMgr, $im, $dbc, $userMgr])
+ ->setConstructorArgs([$cfMock, $fsMock, $logMock, $avaMgr, $im, $dbc, $userMgr, $notiMgr])
->getMock();
$helper = new \OCA\User_LDAP\Helper(\OC::$server->getConfig());
$connector = $this->getMockBuilder('\OCA\User_LDAP\Connection')
@@ -95,25 +100,25 @@ class UserTest extends \Test\TestCase {
}
public function testGetDNandUsername() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $db, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $db, $userMgr, $notiMgr) =
$this->getTestInstances();
$uid = 'alice';
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$this->assertSame($dn, $user->getDN());
$this->assertSame($uid, $user->getUsername());
}
public function testUpdateEmailProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
- $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc, $userMgr);
+ $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc, $userMgr, $notiMgr);
$connection->expects($this->once())
->method('__get')
@@ -140,13 +145,13 @@ class UserTest extends \Test\TestCase {
->method('get')
->willReturn($uuser);
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateEmail();
}
public function testUpdateEmailNotProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -170,13 +175,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateEmail();
}
public function testUpdateEmailNotConfigured() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -197,13 +202,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateEmail();
}
public function testUpdateQuotaAllProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -244,13 +249,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
public function testUpdateQuotaToDefaultAllProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -284,13 +289,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
public function testUpdateQuotaToNoneAllProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -324,13 +329,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
public function testUpdateQuotaDefaultProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -369,13 +374,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
public function testUpdateQuotaIndividualProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -416,13 +421,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
public function testUpdateQuotaNoneProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -464,13 +469,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
public function testUpdateQuotaNoneConfigured() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -510,13 +515,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
public function testUpdateQuotaFromValue() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -545,7 +550,7 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota($readQuota);
}
@@ -554,7 +559,7 @@ class UserTest extends \Test\TestCase {
* Unparseable quota will fallback to use the LDAP default
*/
public function testUpdateWrongQuotaAllProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -593,7 +598,7 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
@@ -602,7 +607,7 @@ class UserTest extends \Test\TestCase {
* No user quota and wrong default will set 'default' as quota
*/
public function testUpdateWrongDefaultQuotaProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -641,7 +646,7 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
@@ -650,7 +655,7 @@ class UserTest extends \Test\TestCase {
* Wrong user quota and wrong default will set 'default' as quota
*/
public function testUpdateWrongQuotaAndDefaultAllProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -689,7 +694,7 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
@@ -698,7 +703,7 @@ class UserTest extends \Test\TestCase {
* No quota attribute set and wrong default will set 'default' as quota
*/
public function testUpdateWrongDefaultQuotaNotProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -734,14 +739,14 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateQuota();
}
//the testUpdateAvatar series also implicitely tests getAvatarImage
public function testUpdateAvatarJpegPhotoProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -784,13 +789,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateAvatar();
}
public function testUpdateAvatarThumbnailPhotoProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -842,13 +847,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateAvatar();
}
public function testUpdateAvatarNotProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -888,13 +893,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->updateAvatar();
}
public function testUpdateBeforeFirstLogin() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -924,13 +929,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->update();
}
public function testUpdateAfterFirstLogin() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -964,13 +969,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->update();
}
public function testUpdateNoRefresh() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -1000,13 +1005,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->update();
}
public function testMarkLogin() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $db, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $db, $userMgr, $notiMgr) =
$this->getTestInstances();
$config->expects($this->once())
@@ -1021,13 +1026,13 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->markLogin();
}
public function testGetAvatarImageProvided() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $db, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $db, $userMgr, $notiMgr) =
$this->getTestInstances();
$access->expects($this->once())
@@ -1040,7 +1045,7 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$photo = $user->getAvatarImage();
$this->assertSame('this is a photo', $photo);
@@ -1050,7 +1055,7 @@ class UserTest extends \Test\TestCase {
}
public function testProcessAttributes() {
- list(, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list(, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -1070,7 +1075,7 @@ class UserTest extends \Test\TestCase {
);
$userMock = $this->getMockBuilder('OCA\User_LDAP\User\User')
- ->setConstructorArgs(array($uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr))
+ ->setConstructorArgs(array($uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr))
->setMethods($requiredMethods)
->getMock();
@@ -1102,7 +1107,7 @@ class UserTest extends \Test\TestCase {
$userMock->expects($this->once())
->method($method);
}
-
+ \OC_Hook::clear();//disconnect irrelevant hooks
$userMock->processAttributes($record);
\OC_Hook::emit('OC_User', 'post_login', array('uid' => $uid));
}
@@ -1118,7 +1123,7 @@ class UserTest extends \Test\TestCase {
* @dataProvider emptyHomeFolderAttributeValueProvider
*/
public function testGetHomePathNotConfigured($attributeValue) {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -1139,14 +1144,14 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$path = $user->getHomePath();
$this->assertSame($path, false);
}
public function testGetHomePathConfiguredNotAvailableAllowed() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
@@ -1170,7 +1175,7 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$path = $user->getHomePath();
@@ -1181,11 +1186,11 @@ class UserTest extends \Test\TestCase {
* @expectedException \Exception
*/
public function testGetHomePathConfiguredNotAvailableNotAllowed() {
- list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
$this->getTestInstances();
list($access, $connection) =
- $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc, $userMgr);
+ $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc, $userMgr, $notiMgr);
$connection->expects($this->any())
->method('__get')
@@ -1205,7 +1210,7 @@ class UserTest extends \Test\TestCase {
$dn = 'uid=alice,dc=foo,dc=bar';
$user = new User(
- $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$user->getHomePath();
}
@@ -1222,16 +1227,161 @@ class UserTest extends \Test\TestCase {
* @dataProvider displayNameProvider
*/
public function testComposeAndStoreDisplayName($part1, $part2, $expected) {
- list($access, $config, $filesys, $image, $log, $avaMgr, , $userMgr) =
+ list($access, $config, $filesys, $image, $log, $avaMgr, , $userMgr, $notiMgr) =
$this->getTestInstances();
$config->expects($this->once())
->method('setUserValue');
$user = new User(
- 'user', 'cn=user', $access, $config, $filesys, $image, $log, $avaMgr, $userMgr);
+ 'user', 'cn=user', $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
$displayName = $user->composeAndStoreDisplayName($part1, $part2);
$this->assertSame($expected, $displayName);
}
+
+ public function testHandlePasswordExpiryWarningDefaultPolicy() {
+ list(, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
+ $this->getTestInstances();
+
+ list($access, $connection) =
+ $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc);
+
+ $uid = 'alice';
+ $dn = 'uid=alice';
+
+ $connection->expects($this->any())
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+ if($name === 'ldapDefaultPPolicyDN') {
+ return 'cn=default,ou=policies,dc=foo,dc=bar';
+ }
+ if($name === 'turnOnPasswordChange') {
+ return '1';
+ }
+ return $name;
+ }));
+
+ $access->expects($this->any())
+ ->method('search')
+ ->will($this->returnCallback(function($filter, $base) {
+ if($base === 'uid=alice') {
+ return array(
+ array(
+ 'pwdchangedtime' => array((new \DateTime())->sub(new \DateInterval('P28D'))->format('Ymdhis').'Z'),
+ ),
+ );
+ }
+ if($base === 'cn=default,ou=policies,dc=foo,dc=bar') {
+ return array(
+ array(
+ 'pwdmaxage' => array('2592000'),
+ 'pwdexpirewarning' => array('2591999'),
+ ),
+ );
+ }
+ return array();
+ }));
+
+ $notification = $this->getMockBuilder('OCP\Notification\INotification')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $notification->expects($this->any())
+ ->method('setApp')
+ ->will($this->returnValue($notification));
+ $notification->expects($this->any())
+ ->method('setUser')
+ ->will($this->returnValue($notification));
+ $notification->expects($this->any())
+ ->method('setObject')
+ ->will($this->returnValue($notification));
+ $notification->expects($this->any())
+ ->method('setDateTime')
+ ->will($this->returnValue($notification));
+ $notiMgr->expects($this->exactly(2))
+ ->method('createNotification')
+ ->will($this->returnValue($notification));
+ $notiMgr->expects($this->exactly(1))
+ ->method('notify');
+
+ $user = new User(
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
+
+ \OC_Hook::clear();//disconnect irrelevant hooks
+ \OCP\Util::connectHook('OC_User', 'post_login', $user, 'handlePasswordExpiry');
+ \OC_Hook::emit('OC_User', 'post_login', array('uid' => $uid));
+ }
+
+ public function testHandlePasswordExpiryWarningCustomPolicy() {
+ list(, $config, $filesys, $image, $log, $avaMgr, $dbc, $userMgr, $notiMgr) =
+ $this->getTestInstances();
+
+ list($access, $connection) =
+ $this->getAdvancedMocks($config, $filesys, $log, $avaMgr, $dbc);
+
+ $uid = 'alice';
+ $dn = 'uid=alice';
+
+ $connection->expects($this->any())
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+ if($name === 'ldapDefaultPPolicyDN') {
+ return 'cn=default,ou=policies,dc=foo,dc=bar';
+ }
+ if($name === 'turnOnPasswordChange') {
+ return '1';
+ }
+ return $name;
+ }));
+
+ $access->expects($this->any())
+ ->method('search')
+ ->will($this->returnCallback(function($filter, $base) {
+ if($base === 'uid=alice') {
+ return array(
+ array(
+ 'pwdpolicysubentry' => array('cn=custom,ou=policies,dc=foo,dc=bar'),
+ 'pwdchangedtime' => array((new \DateTime())->sub(new \DateInterval('P28D'))->format('Ymdhis').'Z'),
+ )
+ );
+ }
+ if($base === 'cn=custom,ou=policies,dc=foo,dc=bar') {
+ return array(
+ array(
+ 'pwdmaxage' => array('2592000'),
+ 'pwdexpirewarning' => array('2591999'),
+ )
+ );
+ }
+ return array();
+ }));
+
+ $notification = $this->getMockBuilder('OCP\Notification\INotification')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $notification->expects($this->any())
+ ->method('setApp')
+ ->will($this->returnValue($notification));
+ $notification->expects($this->any())
+ ->method('setUser')
+ ->will($this->returnValue($notification));
+ $notification->expects($this->any())
+ ->method('setObject')
+ ->will($this->returnValue($notification));
+ $notification->expects($this->any())
+ ->method('setDateTime')
+ ->will($this->returnValue($notification));
+ $notiMgr->expects($this->exactly(2))
+ ->method('createNotification')
+ ->will($this->returnValue($notification));
+ $notiMgr->expects($this->exactly(1))
+ ->method('notify');
+
+ $user = new User(
+ $uid, $dn, $access, $config, $filesys, $image, $log, $avaMgr, $userMgr, $notiMgr);
+
+ \OC_Hook::clear();//disconnect irrelevant hooks
+ \OCP\Util::connectHook('OC_User', 'post_login', $user, 'handlePasswordExpiry');
+ \OC_Hook::emit('OC_User', 'post_login', array('uid' => $uid));
+ }
}
diff --git a/apps/user_ldap/tests/User_LDAPTest.php b/apps/user_ldap/tests/User_LDAPTest.php
index 1b1f9fdec78..aaf67ebcab6 100644
--- a/apps/user_ldap/tests/User_LDAPTest.php
+++ b/apps/user_ldap/tests/User_LDAPTest.php
@@ -47,6 +47,7 @@ use OCP\IDBConnection;
use OCP\Image;
use OCP\IUserManager;
use Test\TestCase;
+use OCP\Notification\IManager as INotificationManager;
/**
* Class Test_User_Ldap_Direct
@@ -92,7 +93,8 @@ class User_LDAPTest extends TestCase {
$this->createMock(IAvatarManager::class),
$this->createMock(Image::class),
$this->createMock(IDBConnection::class),
- $this->createMock(IUserManager::class)
+ $this->createMock(IUserManager::class),
+ $this->createMock(INotificationManager::class)
])
->getMock();
@@ -197,7 +199,7 @@ class User_LDAPTest extends TestCase {
$access = $this->getAccessMock();
$this->prepareAccessForCheckPassword($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = $backend->checkPassword('roland', 'dt19');
@@ -208,7 +210,7 @@ class User_LDAPTest extends TestCase {
$access = $this->getAccessMock();
$this->prepareAccessForCheckPassword($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = $backend->checkPassword('roland', 'wrong');
@@ -219,7 +221,7 @@ class User_LDAPTest extends TestCase {
$access = $this->getAccessMock();
$this->prepareAccessForCheckPassword($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = $backend->checkPassword('mallory', 'evil');
@@ -234,7 +236,7 @@ class User_LDAPTest extends TestCase {
->method('username2dn')
->will($this->returnValue(false));
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = $backend->checkPassword('roland', 'dt19');
@@ -244,7 +246,7 @@ class User_LDAPTest extends TestCase {
public function testCheckPasswordPublicAPI() {
$access = $this->getAccessMock();
$this->prepareAccessForCheckPassword($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = \OCP\User::checkPassword('roland', 'dt19');
@@ -254,7 +256,7 @@ class User_LDAPTest extends TestCase {
public function testCheckPasswordPublicAPIWrongPassword() {
$access = $this->getAccessMock();
$this->prepareAccessForCheckPassword($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = \OCP\User::checkPassword('roland', 'wrong');
@@ -264,7 +266,7 @@ class User_LDAPTest extends TestCase {
public function testCheckPasswordPublicAPIWrongUser() {
$access = $this->getAccessMock();
$this->prepareAccessForCheckPassword($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = \OCP\User::checkPassword('mallory', 'evil');
@@ -273,7 +275,7 @@ class User_LDAPTest extends TestCase {
public function testDeleteUserCancel() {
$access = $this->getAccessMock();
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$result = $backend->deleteUser('notme');
$this->assertFalse($result);
}
@@ -295,7 +297,7 @@ class User_LDAPTest extends TestCase {
->method('getUserValue')
->will($this->onConsecutiveCalls('1', '/var/vhome/jdings/'));
- $backend = new UserLDAP($access, $config);
+ $backend = new UserLDAP($access, $config, $this->createMock(INotificationManager::class));
$result = $backend->deleteUser('jeremy');
$this->assertTrue($result);
@@ -356,7 +358,7 @@ class User_LDAPTest extends TestCase {
public function testGetUsersNoParam() {
$access = $this->getAccessMock();
$this->prepareAccessForGetUsers($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$result = $backend->getUsers();
$this->assertEquals(3, count($result));
@@ -365,7 +367,7 @@ class User_LDAPTest extends TestCase {
public function testGetUsersLimitOffset() {
$access = $this->getAccessMock();
$this->prepareAccessForGetUsers($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$result = $backend->getUsers('', 1, 2);
$this->assertEquals(1, count($result));
@@ -374,7 +376,7 @@ class User_LDAPTest extends TestCase {
public function testGetUsersLimitOffset2() {
$access = $this->getAccessMock();
$this->prepareAccessForGetUsers($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$result = $backend->getUsers('', 2, 1);
$this->assertEquals(2, count($result));
@@ -383,7 +385,7 @@ class User_LDAPTest extends TestCase {
public function testGetUsersSearchWithResult() {
$access = $this->getAccessMock();
$this->prepareAccessForGetUsers($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$result = $backend->getUsers('yo');
$this->assertEquals(2, count($result));
@@ -392,7 +394,7 @@ class User_LDAPTest extends TestCase {
public function testGetUsersSearchEmptyResult() {
$access = $this->getAccessMock();
$this->prepareAccessForGetUsers($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$result = $backend->getUsers('nix');
$this->assertEquals(0, count($result));
@@ -401,7 +403,7 @@ class User_LDAPTest extends TestCase {
public function testGetUsersViaAPINoParam() {
$access = $this->getAccessMock();
$this->prepareAccessForGetUsers($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = \OCP\User::getUsers();
@@ -411,7 +413,7 @@ class User_LDAPTest extends TestCase {
public function testGetUsersViaAPILimitOffset() {
$access = $this->getAccessMock();
$this->prepareAccessForGetUsers($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = \OCP\User::getUsers('', 1, 2);
@@ -421,7 +423,7 @@ class User_LDAPTest extends TestCase {
public function testGetUsersViaAPILimitOffset2() {
$access = $this->getAccessMock();
$this->prepareAccessForGetUsers($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = \OCP\User::getUsers('', 2, 1);
@@ -431,7 +433,7 @@ class User_LDAPTest extends TestCase {
public function testGetUsersViaAPISearchWithResult() {
$access = $this->getAccessMock();
$this->prepareAccessForGetUsers($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = \OCP\User::getUsers('yo');
@@ -441,7 +443,7 @@ class User_LDAPTest extends TestCase {
public function testGetUsersViaAPISearchEmptyResult() {
$access = $this->getAccessMock();
$this->prepareAccessForGetUsers($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$result = \OCP\User::getUsers('nix');
@@ -450,7 +452,7 @@ class User_LDAPTest extends TestCase {
public function testUserExists() {
$access = $this->getAccessMock();
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$this->prepareMockForUserExists($access);
$access->expects($this->any())
@@ -472,7 +474,7 @@ class User_LDAPTest extends TestCase {
*/
public function testUserExistsForDeleted() {
$access = $this->getAccessMock();
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$this->prepareMockForUserExists($access);
$access->expects($this->any())
@@ -490,7 +492,7 @@ class User_LDAPTest extends TestCase {
public function testUserExistsForNeverExisting() {
$access = $this->getAccessMock();
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$this->prepareMockForUserExists($access);
$access->expects($this->any())
@@ -509,7 +511,7 @@ class User_LDAPTest extends TestCase {
public function testUserExistsPublicAPI() {
$access = $this->getAccessMock();
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$this->prepareMockForUserExists($access);
\OC_User::useBackend($backend);
@@ -532,7 +534,7 @@ class User_LDAPTest extends TestCase {
*/
public function testUserExistsPublicAPIForDeleted() {
$access = $this->getAccessMock();
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$this->prepareMockForUserExists($access);
\OC_User::useBackend($backend);
@@ -551,7 +553,7 @@ class User_LDAPTest extends TestCase {
public function testUserExistsPublicAPIForNeverExisting() {
$access = $this->getAccessMock();
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$this->prepareMockForUserExists($access);
\OC_User::useBackend($backend);
@@ -571,7 +573,7 @@ class User_LDAPTest extends TestCase {
public function testDeleteUser() {
$access = $this->getAccessMock();
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
//we do not support deleting users at all
$result = $backend->deleteUser('gunslinger');
@@ -581,7 +583,8 @@ class User_LDAPTest extends TestCase {
public function testGetHomeAbsolutePath() {
$access = $this->getAccessMock();
$config = $this->createMock(IConfig::class);
- $backend = new UserLDAP($access, $config);
+ $noti = $this->createMock(INotificationManager::class);
+ $backend = new UserLDAP($access, $config, $noti);
$this->prepareMockForUserExists($access);
$access->connection->expects($this->any())
@@ -616,7 +619,8 @@ class User_LDAPTest extends TestCase {
public function testGetHomeRelative() {
$access = $this->getAccessMock();
$config = $this->createMock(IConfig::class);
- $backend = new UserLDAP($access, $config);
+ $noti = $this->createMock(INotificationManager::class);
+ $backend = new UserLDAP($access, $config, $noti);
$this->prepareMockForUserExists($access);
$dataDir = \OC::$server->getConfig()->getSystemValue(
@@ -659,7 +663,7 @@ class User_LDAPTest extends TestCase {
*/
public function testGetHomeNoPath() {
$access = $this->getAccessMock();
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$this->prepareMockForUserExists($access);
$access->connection->expects($this->any())
@@ -690,7 +694,7 @@ class User_LDAPTest extends TestCase {
*/
public function testGetHomeDeletedUser() {
$access = $this->getAccessMock();
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$this->prepareMockForUserExists($access);
$access->connection->expects($this->any())
@@ -761,7 +765,7 @@ class User_LDAPTest extends TestCase {
public function testGetDisplayName() {
$access = $this->getAccessMock();
$this->prepareAccessForGetDisplayName($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$this->prepareMockForUserExists($access);
$access->connection->expects($this->any())
@@ -802,7 +806,7 @@ class User_LDAPTest extends TestCase {
}
}));
$this->prepareAccessForGetDisplayName($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$this->prepareMockForUserExists($access);
$access->connection->expects($this->any())
@@ -832,7 +836,7 @@ class User_LDAPTest extends TestCase {
->method('countUsers')
->will($this->returnValue(5));
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$result = $backend->countUsers();
$this->assertEquals(5, $result);
@@ -845,7 +849,7 @@ class User_LDAPTest extends TestCase {
->method('countUsers')
->will($this->returnValue(false));
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$result = $backend->countUsers();
$this->assertFalse($result);
@@ -878,7 +882,7 @@ class User_LDAPTest extends TestCase {
->method('writeToCache')
->with($this->equalTo('loginName2UserName-'.$loginName), $this->equalTo($username));
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$name = $backend->loginName2UserName($loginName);
$this->assertSame($username, $name);
@@ -907,7 +911,7 @@ class User_LDAPTest extends TestCase {
->method('writeToCache')
->with($this->equalTo('loginName2UserName-'.$loginName), false);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$name = $backend->loginName2UserName($loginName);
$this->assertSame(false, $name);
@@ -954,7 +958,7 @@ class User_LDAPTest extends TestCase {
->method('getUserValue')
->willReturn(1);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
$name = $backend->loginName2UserName($loginName);
$this->assertSame(false, $name);
@@ -1035,7 +1039,7 @@ class User_LDAPTest extends TestCase {
$access = $this->getAccessMock();
$this->prepareAccessForSetPassword($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$this->assertTrue(\OC_User::setPassword('roland', 'dt'));
@@ -1045,17 +1049,17 @@ class User_LDAPTest extends TestCase {
$access = $this->getAccessMock();
$this->prepareAccessForSetPassword($access);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$this->assertTrue(\OC_User::setPassword('roland', 'dt12234$'));
}
-
+
public function testSetPasswordValidDisabled() {
$access = $this->getAccessMock();
$this->prepareAccessForSetPassword($access, false);
- $backend = new UserLDAP($access, $this->createMock(IConfig::class));
+ $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class));
\OC_User::useBackend($backend);
$this->assertFalse(\OC_User::setPassword('roland', 'dt12234$'));
@@ -1074,9 +1078,11 @@ class User_LDAPTest extends TestCase {
->with('NotExistingUser')
->willReturn(null);
$config = $this->createMock(IConfig::class);
+ $noti = $this->createMock(INotificationManager::class);
$ldap = new User_LDAP(
$access,
- $config
+ $config,
+ $noti
);
$ldap->setPassword('NotExistingUser', 'Password');
}
@@ -1095,9 +1101,11 @@ class User_LDAPTest extends TestCase {
->with('NotExistingUser')
->willReturn($user);
$config = $this->createMock(IConfig::class);
+ $noti = $this->createMock(INotificationManager::class);
$ldap = new User_LDAP(
$access,
- $config
+ $config,
+ $noti
);
$this->assertFalse($ldap->setPassword('NotExistingUser', 'Password'));
}
diff --git a/apps/user_ldap/tests/User_ProxyTest.php b/apps/user_ldap/tests/User_ProxyTest.php
index 6d779d758e4..df021a6de3d 100644
--- a/apps/user_ldap/tests/User_ProxyTest.php
+++ b/apps/user_ldap/tests/User_ProxyTest.php
@@ -24,6 +24,7 @@ namespace OCA\User_LDAP\Tests;
use OCA\User_LDAP\ILDAPWrapper;
use OCA\User_LDAP\User_Proxy;
use OCP\IConfig;
+use OCP\Notification\IManager as INotificationManager;
use Test\TestCase;
class User_ProxyTest extends TestCase {
@@ -31,6 +32,8 @@ class User_ProxyTest extends TestCase {
private $ldapWrapper;
/** @var IConfig|\PHPUnit_Framework_MockObject_MockObject */
private $config;
+ /** @var IManager|\PHPUnit_Framework_MockObject_MockObject */
+ private $notificationManager;
/** @var User_Proxy|\PHPUnit_Framework_MockObject_MockObject */
private $proxy;
@@ -39,11 +42,13 @@ class User_ProxyTest extends TestCase {
$this->ldapWrapper = $this->createMock(ILDAPWrapper::class);
$this->config = $this->createMock(IConfig::class);
+ $this->notificationManager = $this->createMock(INotificationManager::class);
$this->proxy = $this->getMockBuilder(User_Proxy::class)
->setConstructorArgs([
[],
$this->ldapWrapper,
$this->config,
+ $this->notificationManager,
])
->setMethods(['handleRequest'])
->getMock();
diff --git a/core/Command/Maintenance/Repair.php b/core/Command/Maintenance/Repair.php
index 236326b4e32..299554fe190 100644
--- a/core/Command/Maintenance/Repair.php
+++ b/core/Command/Maintenance/Repair.php
@@ -33,7 +33,6 @@ use Symfony\Component\Console\Helper\ProgressBar;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
use Symfony\Component\EventDispatcher\GenericEvent;
diff --git a/core/Controller/LoginController.php b/core/Controller/LoginController.php
index 9f8b2b75fd0..691d74cdc60 100644
--- a/core/Controller/LoginController.php
+++ b/core/Controller/LoginController.php
@@ -240,6 +240,9 @@ class LoginController extends Controller {
if ($loginResult === false) {
// Read current user and append if possible - we need to return the unmodified user otherwise we will leak the login name
$args = !is_null($user) ? ['user' => $originalUser] : [];
+ if (!is_null($redirect_url)) {
+ $args['redirect_url'] = $redirect_url;
+ }
$response = new RedirectResponse($this->urlGenerator->linkToRoute('core.login.showLoginForm', $args));
$response->throttle();
$this->session->set('loginMessages', [
diff --git a/core/Controller/LostController.php b/core/Controller/LostController.php
index 27491b88235..3f9ef172365 100644
--- a/core/Controller/LostController.php
+++ b/core/Controller/LostController.php
@@ -30,7 +30,6 @@
namespace OC\Core\Controller;
-use OCA\Encryption\Exceptions\PrivateKeyMissingException;
use \OCP\AppFramework\Controller;
use OCP\AppFramework\Http\JSONResponse;
use \OCP\AppFramework\Http\TemplateResponse;
diff --git a/core/js/sharedialoglinkshareview.js b/core/js/sharedialoglinkshareview.js
index 0e317d8c921..9368982d916 100644
--- a/core/js/sharedialoglinkshareview.js
+++ b/core/js/sharedialoglinkshareview.js
@@ -60,14 +60,14 @@
'<input type="checkbox" name="showPassword" id="showPassword-{{cid}}" class="checkbox showPasswordCheckbox" {{#if isPasswordSet}}checked="checked"{{/if}} value="1" />' +
'<label for="showPassword-{{cid}}">{{enablePasswordLabel}}</label>' +
' {{/if}}' +
- '<div id="linkPass" class="linkPass {{#unless isPasswordSet}}hidden{{/unless}}">' +
+ '<div id="linkPass" class="oneline linkPass {{#unless isPasswordSet}}hidden{{/unless}}">' +
' <label for="linkPassText-{{cid}}" class="hidden-visually">{{passwordLabel}}</label>' +
' {{#if showPasswordCheckBox}}' +
' <input id="linkPassText-{{cid}}" class="linkPassText" type="password" placeholder="{{passwordPlaceholder}}" />' +
' {{else}}' +
' <input id="linkPassText-{{cid}}" class="linkPassText" type="password" placeholder="{{passwordPlaceholderInitial}}" />' +
' {{/if}}' +
- ' <span class="icon-loading-small hidden"></span>' +
+ ' <span class="icon icon-loading-small hidden"></span>' +
'</div>' +
'{{else}}' +
// FIXME: this doesn't belong in this view
diff --git a/core/js/sharedialogview.js b/core/js/sharedialogview.js
index 16a2be0c4a9..3b09d13a7e2 100644
--- a/core/js/sharedialogview.js
+++ b/core/js/sharedialogview.js
@@ -22,7 +22,7 @@
'<div class="oneline">' +
' <input id="shareWith-{{cid}}" class="shareWithField" type="text" placeholder="{{sharePlaceholder}}" />' +
' <span class="shareWithLoading icon-loading-small hidden"></span>'+
- '{{{remoteShareInfo}}}' +
+ '{{{shareInfo}}}' +
'</div>' +
'{{/if}}' +
'<div class="shareeListView subView"></div>' +
@@ -30,9 +30,9 @@
'<div class="expirationView subView"></div>' +
'<div class="loading hidden" style="height: 50px"></div>';
- var TEMPLATE_REMOTE_SHARE_INFO =
- '<a target="_blank" class="icon icon-info shareWithRemoteInfo hasTooltip" href="{{docLink}}" ' +
- 'title="{{tooltip}}"></a>';
+ var TEMPLATE_SHARE_INFO =
+ '<span class="icon icon-info shareWithRemoteInfo hasTooltip" ' +
+ 'title="{{tooltip}}"></span>';
/**
* @class OCA.Share.ShareDialogView
@@ -135,7 +135,7 @@
var $shareWithField = $('.shareWithField'),
view = this,
$loading = this.$el.find('.shareWithLoading'),
- $remoteShareInfo = this.$el.find('.shareWithRemoteInfo');
+ $shareInfo = this.$el.find('.shareWithRemoteInfo');
var count = oc_config['sharing.minSearchStringLength'];
if (search.term.trim().length < count) {
@@ -160,7 +160,7 @@
$loading.removeClass('hidden');
$loading.addClass('inlineblock');
- $remoteShareInfo.addClass('hidden');
+ $shareInfo.addClass('hidden');
$shareWithField.removeClass('error')
.tooltip('hide');
@@ -177,7 +177,7 @@
function (result) {
$loading.addClass('hidden');
$loading.removeClass('inlineblock');
- $remoteShareInfo.removeClass('hidden');
+ $shareInfo.removeClass('hidden');
if (result.ocs.meta.statuscode === 100) {
var users = result.ocs.data.exact.users.concat(result.ocs.data.users);
var groups = result.ocs.data.exact.groups.concat(result.ocs.data.groups);
@@ -314,7 +314,7 @@
).fail(function() {
$loading.addClass('hidden');
$loading.removeClass('inlineblock');
- $remoteShareInfo.removeClass('hidden');
+ $shareInfo.removeClass('hidden');
OC.Notification.show(t('core', 'An error occurred. Please try again'));
window.setTimeout(OC.Notification.hide, 5000);
});
@@ -359,22 +359,22 @@
var $loading = this.$el.find('.shareWithLoading');
$loading.removeClass('hidden')
.addClass('inlineblock');
- var $remoteShareInfo = this.$el.find('.shareWithRemoteInfo');
- $remoteShareInfo.addClass('hidden');
+ var $shareInfo = this.$el.find('.shareWithRemoteInfo');
+ $shareInfo.addClass('hidden');
this.model.addShare(s.item.value, {success: function() {
$(e.target).val('')
.attr('disabled', false);
$loading.addClass('hidden')
.removeClass('inlineblock');
- $remoteShareInfo.removeClass('hidden');
+ $shareInfo.removeClass('hidden');
}, error: function(obj, msg) {
OC.Notification.showTemporary(msg);
$(e.target).attr('disabled', false)
.autocomplete('search', $(e.target).val());
$loading.addClass('hidden')
.removeClass('inlineblock');
- $remoteShareInfo.removeClass('hidden');
+ $shareInfo.removeClass('hidden');
}});
},
@@ -412,7 +412,7 @@
cid: this.cid,
shareLabel: t('core', 'Share'),
sharePlaceholder: this._renderSharePlaceholderPart(),
- remoteShareInfo: this._renderRemoteShareInfoPart(),
+ shareInfo: this._renderShareInfoPart(),
isSharingAllowed: this.model.sharePermissionPossible()
}));
@@ -457,47 +457,42 @@
this.linkShareView.showLink = this._showLink;
},
- _renderRemoteShareInfoPart: function() {
- var remoteShareInfo = '';
- if(this.configModel.get('isRemoteShareAllowed')) {
- var infoTemplate = this._getRemoteShareInfoTemplate();
- remoteShareInfo = infoTemplate({
- docLink: this.configModel.getFederatedShareDocLink(),
- tooltip: t('core', 'Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud')
+ _renderShareInfoPart: function() {
+ var shareInfo = '';
+ var infoTemplate = this._getShareInfoTemplate();
+
+ if(this.configModel.get('isMailShareAllowed') && this.configModel.get('isRemoteShareAllowed')) {
+ shareInfo = infoTemplate({
+ tooltip: t('core', 'Share with other people by entering a user or group, a federated cloud ID or an email address.')
+ });
+ } else if(this.configModel.get('isRemoteShareAllowed')) {
+ shareInfo = infoTemplate({
+ tooltip: t('core', 'Share with other people by entering a user or group or a federated cloud ID.')
+ });
+ } else if(this.configModel.get('isMailShareAllowed')) {
+ shareInfo = infoTemplate({
+ tooltip: t('core', 'Share with other people by entering a user or group or an email address.')
});
}
- return remoteShareInfo;
+ return shareInfo;
},
_renderSharePlaceholderPart: function () {
- var allowGroupSharing = this.configModel.get('allowGroupSharing');
var allowRemoteSharing = this.configModel.get('isRemoteShareAllowed');
var allowMailSharing = this.configModel.get('isMailShareAllowed');
- if (!allowGroupSharing && !allowRemoteSharing && allowMailSharing) {
- return t('core', 'Share with users or by mail...');
- }
- if (!allowGroupSharing && allowRemoteSharing && !allowMailSharing) {
- return t('core', 'Share with users or remote users...');
- }
- if (!allowGroupSharing && allowRemoteSharing && allowMailSharing) {
- return t('core', 'Share with users, remote users or by mail...');
- }
- if (allowGroupSharing && !allowRemoteSharing && !allowMailSharing) {
- return t('core', 'Share with users or groups...');
- }
- if (allowGroupSharing && !allowRemoteSharing && allowMailSharing) {
- return t('core', 'Share with users, groups or by mail...');
+ if (!allowRemoteSharing && allowMailSharing) {
+ return t('core', 'Name or email address...');
}
- if (allowGroupSharing && allowRemoteSharing && !allowMailSharing) {
- return t('core', 'Share with users, groups or remote users...');
+ if (allowRemoteSharing && !allowMailSharing) {
+ return t('core', 'Name or federated cloud ID...');
}
- if (allowGroupSharing && allowRemoteSharing && allowMailSharing) {
- return t('core', 'Share with users, groups, remote users or by mail...');
+ if (allowRemoteSharing && allowMailSharing) {
+ return t('core', 'Name, federated cloud ID or email address...');
}
- return t('core', 'Share with users...');
+ return t('core', 'Name...');
},
/**
@@ -520,8 +515,8 @@
* @returns {Function}
* @private
*/
- _getRemoteShareInfoTemplate: function() {
- return this._getTemplate('remoteShareInfo', TEMPLATE_REMOTE_SHARE_INFO);
+ _getShareInfoTemplate: function() {
+ return this._getTemplate('shareInfo', TEMPLATE_SHARE_INFO);
}
});
diff --git a/core/js/shareitemmodel.js b/core/js/shareitemmodel.js
index 8144d8faa21..41f9eb5e0aa 100644
--- a/core/js/shareitemmodel.js
+++ b/core/js/shareitemmodel.js
@@ -798,7 +798,7 @@
isLinkShare: true,
id: share.id,
token: share.token,
- password: share.password,
+ password: share.share_with,
link: link,
permissions: share.permissions,
// currently expiration is only effective for link shares.
diff --git a/core/js/tests/specs/jquery.avatarSpec.js b/core/js/tests/specs/jquery.avatarSpec.js
index 9bb10c41be7..dab78500d0b 100644
--- a/core/js/tests/specs/jquery.avatarSpec.js
+++ b/core/js/tests/specs/jquery.avatarSpec.js
@@ -186,7 +186,7 @@ describe('jquery.avatar tests', function() {
});
it('with ie8 fix', function() {
- sinon.stub(Math, 'random', function() {
+ sinon.stub(Math, 'random').callsFake(function() {
return 0.5;
});
diff --git a/core/js/tests/specs/sharedialogviewSpec.js b/core/js/tests/specs/sharedialogviewSpec.js
index 307adea85ff..95349bc4875 100644
--- a/core/js/tests/specs/sharedialogviewSpec.js
+++ b/core/js/tests/specs/sharedialogviewSpec.js
@@ -19,7 +19,7 @@
*
*/
-/* global oc_appconfig */
+/* global oc_appconfig, sinon */
describe('OC.Share.ShareDialogView', function() {
var $container;
var oldAppConfig;
@@ -90,7 +90,7 @@ describe('OC.Share.ShareDialogView', function() {
linkShare: {isLinkShare: false}
});
- autocompleteStub = sinon.stub($.fn, 'autocomplete', function() {
+ autocompleteStub = sinon.stub($.fn, 'autocomplete').callsFake(function() {
// dummy container with the expected attributes
if (!$(this).length) {
// simulate the real autocomplete that returns
diff --git a/core/l10n/bg.js b/core/l10n/bg.js
index 22d2bb60803..db205a420bc 100644
--- a/core/l10n/bg.js
+++ b/core/l10n/bg.js
@@ -138,15 +138,6 @@ OC.L10N.register(
"{sharee} (remote)" : "{sharee} (отдалечен)",
"{sharee} (email)" : "{sharee} (email)",
"Share" : "Споделяне",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Сподели с хора на други сървъри, използващи тяхните Федерални Cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Споделяне с потребители или чрез имейл...",
- "Share with users or remote users..." : "Споделяне с потребители или с отдалечени потребители...",
- "Share with users, remote users or by mail..." : "Споделяне с потребители, отдалечени потребители или с имейл...",
- "Share with users or groups..." : "Споделяне с потребители или групи...",
- "Share with users, groups or by mail..." : "Споделяне с потребители, групи или чрез имейл...",
- "Share with users, groups or remote users..." : "Споделяне с потребители, групи или отдалечени потребители...",
- "Share with users, groups, remote users or by mail..." : "Споделяне с потребители, групи, отдалечени потребители или чрез имейл...",
- "Share with users..." : "Споделяне с потребители...",
"Error removing share" : "Грешка при махане на споделяне",
"Non-existing tag #{tag}" : "Не-съществуващ етикет #{tag}",
"restricted" : "ограничен",
@@ -280,6 +271,15 @@ OC.L10N.register(
"can change" : "може да ",
"can delete" : "може да изтрива",
"access control" : "контрол на достъпа",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Сподели с хора на други сървъри, използващи тяхните Федерални Cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Споделяне с потребители или чрез имейл...",
+ "Share with users or remote users..." : "Споделяне с потребители или с отдалечени потребители...",
+ "Share with users, remote users or by mail..." : "Споделяне с потребители, отдалечени потребители или с имейл...",
+ "Share with users or groups..." : "Споделяне с потребители или групи...",
+ "Share with users, groups or by mail..." : "Споделяне с потребители, групи или чрез имейл...",
+ "Share with users, groups or remote users..." : "Споделяне с потребители, групи или отдалечени потребители...",
+ "Share with users, groups, remote users or by mail..." : "Споделяне с потребители, групи, отдалечени потребители или чрез имейл...",
+ "Share with users..." : "Споделяне с потребители...",
"The update was successful. Redirecting you to Nextcloud now." : "Обновяването беше успешно. Сега те пренасочваме към Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Здравейте,\n\nсамо да ви уведомяваме, че %s сподели %s с вас.\nРазгледай го: %s\n\n",
"The share will expire on %s." : "Споделянето ще изтече на %s.",
diff --git a/core/l10n/bg.json b/core/l10n/bg.json
index 830e9a8b726..a4fb6f94d28 100644
--- a/core/l10n/bg.json
+++ b/core/l10n/bg.json
@@ -136,15 +136,6 @@
"{sharee} (remote)" : "{sharee} (отдалечен)",
"{sharee} (email)" : "{sharee} (email)",
"Share" : "Споделяне",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Сподели с хора на други сървъри, използващи тяхните Федерални Cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Споделяне с потребители или чрез имейл...",
- "Share with users or remote users..." : "Споделяне с потребители или с отдалечени потребители...",
- "Share with users, remote users or by mail..." : "Споделяне с потребители, отдалечени потребители или с имейл...",
- "Share with users or groups..." : "Споделяне с потребители или групи...",
- "Share with users, groups or by mail..." : "Споделяне с потребители, групи или чрез имейл...",
- "Share with users, groups or remote users..." : "Споделяне с потребители, групи или отдалечени потребители...",
- "Share with users, groups, remote users or by mail..." : "Споделяне с потребители, групи, отдалечени потребители или чрез имейл...",
- "Share with users..." : "Споделяне с потребители...",
"Error removing share" : "Грешка при махане на споделяне",
"Non-existing tag #{tag}" : "Не-съществуващ етикет #{tag}",
"restricted" : "ограничен",
@@ -278,6 +269,15 @@
"can change" : "може да ",
"can delete" : "може да изтрива",
"access control" : "контрол на достъпа",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Сподели с хора на други сървъри, използващи тяхните Федерални Cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Споделяне с потребители или чрез имейл...",
+ "Share with users or remote users..." : "Споделяне с потребители или с отдалечени потребители...",
+ "Share with users, remote users or by mail..." : "Споделяне с потребители, отдалечени потребители или с имейл...",
+ "Share with users or groups..." : "Споделяне с потребители или групи...",
+ "Share with users, groups or by mail..." : "Споделяне с потребители, групи или чрез имейл...",
+ "Share with users, groups or remote users..." : "Споделяне с потребители, групи или отдалечени потребители...",
+ "Share with users, groups, remote users or by mail..." : "Споделяне с потребители, групи, отдалечени потребители или чрез имейл...",
+ "Share with users..." : "Споделяне с потребители...",
"The update was successful. Redirecting you to Nextcloud now." : "Обновяването беше успешно. Сега те пренасочваме към Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Здравейте,\n\nсамо да ви уведомяваме, че %s сподели %s с вас.\nРазгледай го: %s\n\n",
"The share will expire on %s." : "Споделянето ще изтече на %s.",
diff --git a/core/l10n/ca.js b/core/l10n/ca.js
deleted file mode 100644
index 6b40d513b45..00000000000
--- a/core/l10n/ca.js
+++ /dev/null
@@ -1,242 +0,0 @@
-OC.L10N.register(
- "core",
- {
- "Please select a file." : "Seleccioneu un fitxer.",
- "File is too big" : "El fitxer és massa gran",
- "The selected file is not an image." : "El fitxer seleccionat no és una imatge",
- "The selected file cannot be read." : "El fitxer seleccionat no es pot llegir.",
- "Invalid file provided" : "El fitxer proporcionat no és vàlid",
- "No image or file provided" : "No s'han proporcionat imatges o fitxers",
- "Unknown filetype" : "Tipus de fitxer desconegut",
- "Invalid image" : "Imatge no vàlida",
- "An error occurred. Please contact your admin." : "Hi ha hagut un error. Contacteu amb l'administrador.",
- "No temporary profile picture available, try again" : "No hi ha imatge temporal de perfil disponible, torneu a intentar-ho",
- "No crop data provided" : "No heu proporcionat dades del retall",
- "No valid crop data provided" : "Les dades del retall proporcionades no són vàlides",
- "Crop is not square" : "El retall no és quadrat",
- "Couldn't reset password because the token is invalid" : "No es pot restablir la contrasenya perquè el testimoni no és vàlid",
- "Couldn't reset password because the token is expired" : "No es pot restablir la contrasenya perquè el testimoni ha vençut",
- "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No s'ha pogut enviar correu de restabliment. No hi ha correu per aquest compte. Contacteu amb l'administrador.",
- "%s password reset" : "restableix la contrasenya %s",
- "Couldn't send reset email. Please contact your administrator." : "No s'ha pogut restablir el correu. Contacteu amb l'administrador.",
- "Couldn't send reset email. Please make sure your username is correct." : "No s'ha pogut enviar el correu de restabliment. Assegureu-vos que el vostre nom d'usuari és correcte.",
- "Preparing update" : "Preparant l'actualització",
- "[%d / %d]: %s" : "[%d / %d]: %s",
- "Repair warning: " : "Advertiment de reparació:",
- "Repair error: " : "Error de reparació:",
- "[%d / %d]: Checking table %s" : "[%d / %d]: Revisant la taula %s",
- "Turned on maintenance mode" : "Activat el mode de manteniment",
- "Turned off maintenance mode" : "Desactivat el mode de manteniment",
- "Maintenance mode is kept active" : "El mode de manteniment es manté activat",
- "Updating database schema" : "Actualitzant l'esquema de la base de dades",
- "Updated database" : "Actualitzada la base de dades",
- "Checked database schema update" : "S'ha comprobat l'actualització de l'esquema de la base de dades",
- "Checked database schema update for apps" : "S'ha comprobat l'actualització de l'esquema de la base de dades per les apps",
- "Updated \"%s\" to %s" : "Actualitzat \"%s\" a %s",
- "Reset log level" : "Reinicia el nivell de registre",
- "Starting code integrity check" : "Inicia el test d'integrigtat del codi",
- "%s (3rdparty)" : "%s (de tercers)",
- "%s (incompatible)" : "%s (incompatible)",
- "Following apps have been disabled: %s" : "Les aplicacions següents s'han deshabilitat: %s",
- "Already up to date" : "Ja actualitzat",
- "Settings" : "Configuració",
- "Connection to server lost" : "S'ha perdut la connexió amb el servidor",
- "Saving..." : "Desant...",
- "Dismiss" : "Rebutja",
- "This action requires you to confirm your password" : "Aquesta acció requereix que confirmis la teva contrasenya",
- "Authentication required" : "Es requereix autenticació",
- "Password" : "Contrasenya",
- "Cancel" : "Cancel·la",
- "Confirm" : "Confirma",
- "seconds ago" : "segons enrere",
- "Logging in …" : "Accedint a...",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "L'enllaç per reiniciar la vostra contrasenya s'ha enviat al vostre correu. Si no el rebeu en un temps raonable comproveu les carpetes de spam. <br>Si no és allà, pregunteu a l'administrador local.",
- "I know what I'm doing" : "Sé el que faig",
- "Password can not be changed. Please contact your administrator." : "La contrasenya no es pot canviar. Contacteu amb l'administrador.",
- "No" : "No",
- "Yes" : "Sí",
- "No files in here" : "No hi ha arxius aquí",
- "Choose" : "Escull",
- "Error loading file picker template: {error}" : "Error en carregar la plantilla de càrrega de fitxers: {error}",
- "Error loading message template: {error}" : "Error en carregar la plantilla de missatge: {error}",
- "read-only" : "Només de lectura",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicte de fitxer","{count} conflictes de fitxer"],
- "One file conflict" : "Un fitxer en conflicte",
- "New Files" : "Fitxers nous",
- "Already existing files" : "Fitxers que ja existeixen",
- "Which files do you want to keep?" : "Quin fitxer voleu conservar?",
- "If you select both versions, the copied file will have a number added to its name." : "Si seleccioneu les dues versions, el fitxer copiat tindrà un número afegit al seu nom.",
- "Continue" : "Continua",
- "(all selected)" : "(selecciona-ho tot)",
- "({count} selected)" : "({count} seleccionats)",
- "Error loading file exists template" : "Error en carregar la plantilla de fitxer existent",
- "Pending" : "Pendent",
- "Very weak password" : "Contrasenya massa feble",
- "Weak password" : "Contrasenya feble",
- "So-so password" : "Contrasenya passable",
- "Good password" : "Contrasenya bona",
- "Strong password" : "Contrasenya forta",
- "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "El servidor web no està configurat correctament per permetre la sincronització de fitxers perquè la interfície WebDAV sembla no funcionar correctament.",
- "Error occurred while checking server setup" : "Hi ha hagut un error en comprovar la configuració del servidor",
- "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Esteu accedint aquesta web a través de HTTP. Us recomanem que configureu el servidor per requerir HTTPS tal i com es descriu als <a href=\"{docUrl}\">consells de seguretat</a>",
- "Shared" : "Compartit",
- "Shared with {recipients}" : "Compartit amb {recipients}",
- "Error" : "Error",
- "Error while sharing" : "Error en compartir",
- "Error while unsharing" : "Error en deixar de compartir",
- "Error setting expiration date" : "Error en establir la data de venciment",
- "The public link will expire no later than {days} days after it is created" : "L'enllaç públic tindrà venciment abans de {days} dies després de crear-lo",
- "Set expiration date" : "Estableix la data de venciment",
- "Expiration" : "Expiració",
- "Expiration date" : "Data de venciment",
- "Choose a password for the public link" : "Escolliu una contrasenya per l'enllaç públic",
- "Copied!" : "Copiat!",
- "Copy" : "Copia",
- "Not supported!" : "No soportat!",
- "Press ⌘-C to copy." : "Prem ⌘-C per copiar.",
- "Press Ctrl-C to copy." : "Prem Ctrl-C per copiar.",
- "Resharing is not allowed" : "No es permet compartir de nou",
- "Share link" : "Enllaç de compartició",
- "Link" : "Enllaç",
- "Password protect" : "Protegir amb contrasenya",
- "Allow upload and editing" : "Permet afegir i editar",
- "Allow editing" : "Permetre edició",
- "Email link to person" : "Enllaç per correu electrónic amb la persona",
- "Send" : "Envia",
- "Shared with you and the group {group} by {owner}" : "Compartit amb vos i amb el grup {group} per {owner}",
- "Shared with you by {owner}" : "Compartit amb vos per {owner}",
- "group" : "grup",
- "remote" : "remot",
- "email" : "email",
- "Unshare" : "Deixa de compartir",
- "Could not unshare" : "No pot descompartir",
- "No users found for {search}" : "No s'han trobat usuaris per {search}",
- "An error occurred. Please try again" : "S'ha produït un error. Si us plau, torni a intentar-ho.",
- "{sharee} (group)" : "{sharee} (grup)",
- "{sharee} (remote)" : "{sharee} (remot)",
- "Share" : "Comparteix",
- "Share with users..." : "Comparteix amb usuaris...",
- "Error removing share" : "Error al treure compartició",
- "invisible" : "invisible",
- "({scope})" : "({scope})",
- "Delete" : "Esborra",
- "Rename" : "Reanomena",
- "Collaborative tags" : "Etiquetes col·laboratives",
- "No tags found" : "No s'han trobat etiquetes",
- "The object type is not specified." : "No s'ha especificat el tipus d'objecte.",
- "Enter new" : "Escriu nou",
- "Add" : "Afegeix",
- "Edit tags" : "Edita etiquetes",
- "Error loading dialog template: {error}" : "Error en carregar la plantilla de diàleg: {error}",
- "No tags selected for deletion." : "No heu seleccionat les etiquetes a eliminar.",
- "unknown text" : "text desconegut",
- "Hello world!" : "Hola món!",
- "sunny" : "asolellat",
- "Hello {name}, the weather is {weather}" : "Hola {name}, el temps és {weather}",
- "Hello {name}" : "Hola {name}",
- "new" : "Nou",
- "_download %n file_::_download %n files_" : ["descarregar l'arxiu %n","descarregar arxius %n "],
- "Update to {version}" : "Actualitza a {version}",
- "An error occurred." : "S'ha produït un error",
- "Please reload the page." : "Carregueu la pàgina de nou.",
- "Continue to Nextcloud" : "Continua a Nextcloud",
- "Searching other places" : "Buscant altres ubicacions",
- "Personal" : "Personal",
- "Users" : "Usuaris",
- "Apps" : "Aplicacions",
- "Admin" : "Administració",
- "Help" : "Ajuda",
- "Access forbidden" : "Accés prohibit",
- "File not found" : "No s'ha trobat l'arxiu",
- "The specified document has not been found on the server." : "El document especificat no s'ha trobat al servidor.",
- "You can click here to return to %s." : "Pots clicar aquí per tornar a %s.",
- "Internal Server Error" : "Error Intern del Servidor",
- "The server encountered an internal error and was unable to complete your request." : "El servidor ha trobat un error intern i no pot finalitzar la teva petició.",
- "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Per favor, posi's en contacte amb l'administrador del servidor si aquest error torna a aparèixer diverses vegades, per favor inclogui els detalls tècnics de baix en el seu informe.",
- "More details can be found in the server log." : "Pots trobar més detalls al llistat del servidor.",
- "Technical details" : "Detalls tècnics",
- "Remote Address: %s" : "Adreça remota: %s",
- "Request ID: %s" : "Sol·licitud ID: %s ",
- "Type: %s" : "Tipus: %s",
- "Code: %s" : "Codi: %s",
- "Message: %s" : "Missatge: %s",
- "File: %s" : "Fitxer: %s",
- "Line: %s" : "Línia: %s",
- "Trace" : "Traça",
- "Security warning" : "Advertiment de seguretat",
- "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "La carpeta de dades i els seus fitxers probablement són accessibles des d'internet perquè el fitxer .htaccess no funciona.",
- "Create an <strong>admin account</strong>" : "Crea un <strong>compte d'administrador</strong>",
- "Username" : "Nom d'usuari",
- "Storage & database" : "Emmagatzematge i base de dades",
- "Data folder" : "Carpeta de dades",
- "Configure the database" : "Configura la base de dades",
- "Only %s is available." : "Només hi ha disponible %s",
- "Install and activate additional PHP modules to choose other database types." : "Instal·la i activa mòduls PHP addicionals per seleccionar altres tipus de bases de dades.",
- "For more details check out the documentation." : "Per més detalls consulteu la documentació.",
- "Database user" : "Usuari de la base de dades",
- "Database password" : "Contrasenya de la base de dades",
- "Database name" : "Nom de la base de dades",
- "Database tablespace" : "Espai de taula de la base de dades",
- "Database host" : "Ordinador central de la base de dades",
- "Performance warning" : "Alerta de rendiment",
- "SQLite will be used as database." : "SQLite s'utilitzarà com a base de dades.",
- "For larger installations we recommend to choose a different database backend." : "Per a instal·lacions més grans es recomana triar una base de dades diferent.",
- "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'ús de SQLite està desaconsellat especialment quan s'usa el client d'escriptori per sincronitzar els fitxers.",
- "Finish setup" : "Acaba la configuració",
- "Finishing …" : "Acabant...",
- "Need help?" : "Necessites ajuda?",
- "See the documentation" : "Consulti la documentació",
- "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aquesta aplicació requereix Javascript per al seu correcte funcionament . Per favor, {linkstart}habiliti Javascript{linkend} i torni a carregar la pàgina.",
- "Search" : "Cerca",
- "Confirm your password" : "Confirma la teva contrasenya",
- "Server side authentication failed!" : "L'autenticació del servidor ha fallat!",
- "Please contact your administrator." : "Contacteu amb l'administrador.",
- "Please try again or contact your administrator." : "Intenti-ho de nou o posi's en contacte amb el seu administrador.",
- "Username or email" : "Nom d'usuari o correu electrònic",
- "Wrong password. Reset it?" : "Contrasenya incorrecta. Voleu restablir-la?",
- "Wrong password." : "Contrasenya incorrecta.",
- "Log in" : "Inici de sessió",
- "Stay logged in" : "Mantén la sessió connectada",
- "Alternative Logins" : "Acreditacions alternatives",
- "New password" : "Contrasenya nova",
- "New Password" : "Contrasenya nova",
- "Reset password" : "Reinicialitza la contrasenya",
- "This Nextcloud instance is currently in single user mode." : "La instància Nextcloud està en mode d'usuari únic.",
- "This means only administrators can use the instance." : "Això significa que només els administradors poden usar la instància.",
- "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacteu amb l'administrador del sistema si aquest missatge persisteix o apareix inesperadament.",
- "Thank you for your patience." : "Gràcies per la paciència.",
- "Log out" : "Surt",
- "Two-factor authentication" : "Segon factor d'autenticació",
- "Cancel log in" : "Cancel·la l'accés a",
- "Use backup code" : "Utilitza un codi de copia de seguretat",
- "You are accessing the server from an untrusted domain." : "Esteu accedint al servidor des d'un domini no fiable",
- "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "En funció de la teva configuració, com a administrador podries utilitzar el botó d'abaix per confiar en aquest domini.",
- "Add \"%s\" as trusted domain" : "Afegeix \"%s\" com a domini de confiança",
- "App update required" : "Cal que actualitzeu la aplicació",
- "%s will be updated to version %s" : "%s s'actualitzarà a la versió %s",
- "These apps will be updated:" : "Aquestes aplicacions s'actualitzaran:",
- "These incompatible apps will be disabled:" : "Aquestes aplicacions incompatibles es desactivaran:",
- "The theme %s has been disabled." : "S'ha desactivat el tema %s",
- "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Assegureu-vos que heu fet una còpia de seguretat de la base de dades, del fitxer de configuració i de la carpeta de dades abans de continuar.",
- "Start update" : "Inicia l'actualització",
- "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Per evitar que s'esgoti el temps d'espera en instalacions grans, pots en el seu lloc fer córrer la següent comanda en el directori d'instalació. ",
- "Update needed" : "Actualització necessaria",
- "This %s instance is currently in maintenance mode, which may take a while." : "Aquesta instància %s està actualment en manteniment i podria trigar una estona.",
- "This page will refresh itself when the %s instance is available again." : "Aquesta pàgina s'actualitzarà automàticament quan la instància %s estigui disponible de nou.",
- "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Els vostres fitxers estan encriptats. Si no heu habilitat la clau de recuperació no hi haurà manera de recuperar les dades després que reestabliu la contrasenya. <br />Si sabeu què fer, contacteu amb l'administrador abans de continuar.<br />Voleu continuar?",
- "Ok" : "D'acord",
- "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "La carpeta de dades i els vostres fitxers probablement són accessibles des d'Internet. El fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.",
- "File drop (upload only)" : "Arrossega fitxers (només càrrega)",
- "can reshare" : "pot recompartir",
- "can edit" : "pot editar",
- "can create" : "pot crear",
- "can change" : "pot canviar",
- "can delete" : "Pot esborrar",
- "access control" : "control d'accés",
- "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Ei,\n\nnomés fer-te saber que %s ha compartit %s amb tu.\nMira-ho a: %s\n\n",
- "The share will expire on %s." : "La compartició venç el %s.",
- "Cheers!" : "Salut!",
- "Use the following link to reset your password: {link}" : "Useu l'enllaç següent per restablir la contrasenya: {link}",
- "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Ei, <br><br>només fer-vos saber que %s us ha comparti <strong>%s</strong>. <br><a href=\"%s\">Mireu-ho!</a>"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/core/l10n/ca.json b/core/l10n/ca.json
deleted file mode 100644
index 850e1477718..00000000000
--- a/core/l10n/ca.json
+++ /dev/null
@@ -1,240 +0,0 @@
-{ "translations": {
- "Please select a file." : "Seleccioneu un fitxer.",
- "File is too big" : "El fitxer és massa gran",
- "The selected file is not an image." : "El fitxer seleccionat no és una imatge",
- "The selected file cannot be read." : "El fitxer seleccionat no es pot llegir.",
- "Invalid file provided" : "El fitxer proporcionat no és vàlid",
- "No image or file provided" : "No s'han proporcionat imatges o fitxers",
- "Unknown filetype" : "Tipus de fitxer desconegut",
- "Invalid image" : "Imatge no vàlida",
- "An error occurred. Please contact your admin." : "Hi ha hagut un error. Contacteu amb l'administrador.",
- "No temporary profile picture available, try again" : "No hi ha imatge temporal de perfil disponible, torneu a intentar-ho",
- "No crop data provided" : "No heu proporcionat dades del retall",
- "No valid crop data provided" : "Les dades del retall proporcionades no són vàlides",
- "Crop is not square" : "El retall no és quadrat",
- "Couldn't reset password because the token is invalid" : "No es pot restablir la contrasenya perquè el testimoni no és vàlid",
- "Couldn't reset password because the token is expired" : "No es pot restablir la contrasenya perquè el testimoni ha vençut",
- "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No s'ha pogut enviar correu de restabliment. No hi ha correu per aquest compte. Contacteu amb l'administrador.",
- "%s password reset" : "restableix la contrasenya %s",
- "Couldn't send reset email. Please contact your administrator." : "No s'ha pogut restablir el correu. Contacteu amb l'administrador.",
- "Couldn't send reset email. Please make sure your username is correct." : "No s'ha pogut enviar el correu de restabliment. Assegureu-vos que el vostre nom d'usuari és correcte.",
- "Preparing update" : "Preparant l'actualització",
- "[%d / %d]: %s" : "[%d / %d]: %s",
- "Repair warning: " : "Advertiment de reparació:",
- "Repair error: " : "Error de reparació:",
- "[%d / %d]: Checking table %s" : "[%d / %d]: Revisant la taula %s",
- "Turned on maintenance mode" : "Activat el mode de manteniment",
- "Turned off maintenance mode" : "Desactivat el mode de manteniment",
- "Maintenance mode is kept active" : "El mode de manteniment es manté activat",
- "Updating database schema" : "Actualitzant l'esquema de la base de dades",
- "Updated database" : "Actualitzada la base de dades",
- "Checked database schema update" : "S'ha comprobat l'actualització de l'esquema de la base de dades",
- "Checked database schema update for apps" : "S'ha comprobat l'actualització de l'esquema de la base de dades per les apps",
- "Updated \"%s\" to %s" : "Actualitzat \"%s\" a %s",
- "Reset log level" : "Reinicia el nivell de registre",
- "Starting code integrity check" : "Inicia el test d'integrigtat del codi",
- "%s (3rdparty)" : "%s (de tercers)",
- "%s (incompatible)" : "%s (incompatible)",
- "Following apps have been disabled: %s" : "Les aplicacions següents s'han deshabilitat: %s",
- "Already up to date" : "Ja actualitzat",
- "Settings" : "Configuració",
- "Connection to server lost" : "S'ha perdut la connexió amb el servidor",
- "Saving..." : "Desant...",
- "Dismiss" : "Rebutja",
- "This action requires you to confirm your password" : "Aquesta acció requereix que confirmis la teva contrasenya",
- "Authentication required" : "Es requereix autenticació",
- "Password" : "Contrasenya",
- "Cancel" : "Cancel·la",
- "Confirm" : "Confirma",
- "seconds ago" : "segons enrere",
- "Logging in …" : "Accedint a...",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "L'enllaç per reiniciar la vostra contrasenya s'ha enviat al vostre correu. Si no el rebeu en un temps raonable comproveu les carpetes de spam. <br>Si no és allà, pregunteu a l'administrador local.",
- "I know what I'm doing" : "Sé el que faig",
- "Password can not be changed. Please contact your administrator." : "La contrasenya no es pot canviar. Contacteu amb l'administrador.",
- "No" : "No",
- "Yes" : "Sí",
- "No files in here" : "No hi ha arxius aquí",
- "Choose" : "Escull",
- "Error loading file picker template: {error}" : "Error en carregar la plantilla de càrrega de fitxers: {error}",
- "Error loading message template: {error}" : "Error en carregar la plantilla de missatge: {error}",
- "read-only" : "Només de lectura",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicte de fitxer","{count} conflictes de fitxer"],
- "One file conflict" : "Un fitxer en conflicte",
- "New Files" : "Fitxers nous",
- "Already existing files" : "Fitxers que ja existeixen",
- "Which files do you want to keep?" : "Quin fitxer voleu conservar?",
- "If you select both versions, the copied file will have a number added to its name." : "Si seleccioneu les dues versions, el fitxer copiat tindrà un número afegit al seu nom.",
- "Continue" : "Continua",
- "(all selected)" : "(selecciona-ho tot)",
- "({count} selected)" : "({count} seleccionats)",
- "Error loading file exists template" : "Error en carregar la plantilla de fitxer existent",
- "Pending" : "Pendent",
- "Very weak password" : "Contrasenya massa feble",
- "Weak password" : "Contrasenya feble",
- "So-so password" : "Contrasenya passable",
- "Good password" : "Contrasenya bona",
- "Strong password" : "Contrasenya forta",
- "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "El servidor web no està configurat correctament per permetre la sincronització de fitxers perquè la interfície WebDAV sembla no funcionar correctament.",
- "Error occurred while checking server setup" : "Hi ha hagut un error en comprovar la configuració del servidor",
- "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Esteu accedint aquesta web a través de HTTP. Us recomanem que configureu el servidor per requerir HTTPS tal i com es descriu als <a href=\"{docUrl}\">consells de seguretat</a>",
- "Shared" : "Compartit",
- "Shared with {recipients}" : "Compartit amb {recipients}",
- "Error" : "Error",
- "Error while sharing" : "Error en compartir",
- "Error while unsharing" : "Error en deixar de compartir",
- "Error setting expiration date" : "Error en establir la data de venciment",
- "The public link will expire no later than {days} days after it is created" : "L'enllaç públic tindrà venciment abans de {days} dies després de crear-lo",
- "Set expiration date" : "Estableix la data de venciment",
- "Expiration" : "Expiració",
- "Expiration date" : "Data de venciment",
- "Choose a password for the public link" : "Escolliu una contrasenya per l'enllaç públic",
- "Copied!" : "Copiat!",
- "Copy" : "Copia",
- "Not supported!" : "No soportat!",
- "Press ⌘-C to copy." : "Prem ⌘-C per copiar.",
- "Press Ctrl-C to copy." : "Prem Ctrl-C per copiar.",
- "Resharing is not allowed" : "No es permet compartir de nou",
- "Share link" : "Enllaç de compartició",
- "Link" : "Enllaç",
- "Password protect" : "Protegir amb contrasenya",
- "Allow upload and editing" : "Permet afegir i editar",
- "Allow editing" : "Permetre edició",
- "Email link to person" : "Enllaç per correu electrónic amb la persona",
- "Send" : "Envia",
- "Shared with you and the group {group} by {owner}" : "Compartit amb vos i amb el grup {group} per {owner}",
- "Shared with you by {owner}" : "Compartit amb vos per {owner}",
- "group" : "grup",
- "remote" : "remot",
- "email" : "email",
- "Unshare" : "Deixa de compartir",
- "Could not unshare" : "No pot descompartir",
- "No users found for {search}" : "No s'han trobat usuaris per {search}",
- "An error occurred. Please try again" : "S'ha produït un error. Si us plau, torni a intentar-ho.",
- "{sharee} (group)" : "{sharee} (grup)",
- "{sharee} (remote)" : "{sharee} (remot)",
- "Share" : "Comparteix",
- "Share with users..." : "Comparteix amb usuaris...",
- "Error removing share" : "Error al treure compartició",
- "invisible" : "invisible",
- "({scope})" : "({scope})",
- "Delete" : "Esborra",
- "Rename" : "Reanomena",
- "Collaborative tags" : "Etiquetes col·laboratives",
- "No tags found" : "No s'han trobat etiquetes",
- "The object type is not specified." : "No s'ha especificat el tipus d'objecte.",
- "Enter new" : "Escriu nou",
- "Add" : "Afegeix",
- "Edit tags" : "Edita etiquetes",
- "Error loading dialog template: {error}" : "Error en carregar la plantilla de diàleg: {error}",
- "No tags selected for deletion." : "No heu seleccionat les etiquetes a eliminar.",
- "unknown text" : "text desconegut",
- "Hello world!" : "Hola món!",
- "sunny" : "asolellat",
- "Hello {name}, the weather is {weather}" : "Hola {name}, el temps és {weather}",
- "Hello {name}" : "Hola {name}",
- "new" : "Nou",
- "_download %n file_::_download %n files_" : ["descarregar l'arxiu %n","descarregar arxius %n "],
- "Update to {version}" : "Actualitza a {version}",
- "An error occurred." : "S'ha produït un error",
- "Please reload the page." : "Carregueu la pàgina de nou.",
- "Continue to Nextcloud" : "Continua a Nextcloud",
- "Searching other places" : "Buscant altres ubicacions",
- "Personal" : "Personal",
- "Users" : "Usuaris",
- "Apps" : "Aplicacions",
- "Admin" : "Administració",
- "Help" : "Ajuda",
- "Access forbidden" : "Accés prohibit",
- "File not found" : "No s'ha trobat l'arxiu",
- "The specified document has not been found on the server." : "El document especificat no s'ha trobat al servidor.",
- "You can click here to return to %s." : "Pots clicar aquí per tornar a %s.",
- "Internal Server Error" : "Error Intern del Servidor",
- "The server encountered an internal error and was unable to complete your request." : "El servidor ha trobat un error intern i no pot finalitzar la teva petició.",
- "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Per favor, posi's en contacte amb l'administrador del servidor si aquest error torna a aparèixer diverses vegades, per favor inclogui els detalls tècnics de baix en el seu informe.",
- "More details can be found in the server log." : "Pots trobar més detalls al llistat del servidor.",
- "Technical details" : "Detalls tècnics",
- "Remote Address: %s" : "Adreça remota: %s",
- "Request ID: %s" : "Sol·licitud ID: %s ",
- "Type: %s" : "Tipus: %s",
- "Code: %s" : "Codi: %s",
- "Message: %s" : "Missatge: %s",
- "File: %s" : "Fitxer: %s",
- "Line: %s" : "Línia: %s",
- "Trace" : "Traça",
- "Security warning" : "Advertiment de seguretat",
- "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "La carpeta de dades i els seus fitxers probablement són accessibles des d'internet perquè el fitxer .htaccess no funciona.",
- "Create an <strong>admin account</strong>" : "Crea un <strong>compte d'administrador</strong>",
- "Username" : "Nom d'usuari",
- "Storage & database" : "Emmagatzematge i base de dades",
- "Data folder" : "Carpeta de dades",
- "Configure the database" : "Configura la base de dades",
- "Only %s is available." : "Només hi ha disponible %s",
- "Install and activate additional PHP modules to choose other database types." : "Instal·la i activa mòduls PHP addicionals per seleccionar altres tipus de bases de dades.",
- "For more details check out the documentation." : "Per més detalls consulteu la documentació.",
- "Database user" : "Usuari de la base de dades",
- "Database password" : "Contrasenya de la base de dades",
- "Database name" : "Nom de la base de dades",
- "Database tablespace" : "Espai de taula de la base de dades",
- "Database host" : "Ordinador central de la base de dades",
- "Performance warning" : "Alerta de rendiment",
- "SQLite will be used as database." : "SQLite s'utilitzarà com a base de dades.",
- "For larger installations we recommend to choose a different database backend." : "Per a instal·lacions més grans es recomana triar una base de dades diferent.",
- "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "L'ús de SQLite està desaconsellat especialment quan s'usa el client d'escriptori per sincronitzar els fitxers.",
- "Finish setup" : "Acaba la configuració",
- "Finishing …" : "Acabant...",
- "Need help?" : "Necessites ajuda?",
- "See the documentation" : "Consulti la documentació",
- "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Aquesta aplicació requereix Javascript per al seu correcte funcionament . Per favor, {linkstart}habiliti Javascript{linkend} i torni a carregar la pàgina.",
- "Search" : "Cerca",
- "Confirm your password" : "Confirma la teva contrasenya",
- "Server side authentication failed!" : "L'autenticació del servidor ha fallat!",
- "Please contact your administrator." : "Contacteu amb l'administrador.",
- "Please try again or contact your administrator." : "Intenti-ho de nou o posi's en contacte amb el seu administrador.",
- "Username or email" : "Nom d'usuari o correu electrònic",
- "Wrong password. Reset it?" : "Contrasenya incorrecta. Voleu restablir-la?",
- "Wrong password." : "Contrasenya incorrecta.",
- "Log in" : "Inici de sessió",
- "Stay logged in" : "Mantén la sessió connectada",
- "Alternative Logins" : "Acreditacions alternatives",
- "New password" : "Contrasenya nova",
- "New Password" : "Contrasenya nova",
- "Reset password" : "Reinicialitza la contrasenya",
- "This Nextcloud instance is currently in single user mode." : "La instància Nextcloud està en mode d'usuari únic.",
- "This means only administrators can use the instance." : "Això significa que només els administradors poden usar la instància.",
- "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacteu amb l'administrador del sistema si aquest missatge persisteix o apareix inesperadament.",
- "Thank you for your patience." : "Gràcies per la paciència.",
- "Log out" : "Surt",
- "Two-factor authentication" : "Segon factor d'autenticació",
- "Cancel log in" : "Cancel·la l'accés a",
- "Use backup code" : "Utilitza un codi de copia de seguretat",
- "You are accessing the server from an untrusted domain." : "Esteu accedint al servidor des d'un domini no fiable",
- "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "En funció de la teva configuració, com a administrador podries utilitzar el botó d'abaix per confiar en aquest domini.",
- "Add \"%s\" as trusted domain" : "Afegeix \"%s\" com a domini de confiança",
- "App update required" : "Cal que actualitzeu la aplicació",
- "%s will be updated to version %s" : "%s s'actualitzarà a la versió %s",
- "These apps will be updated:" : "Aquestes aplicacions s'actualitzaran:",
- "These incompatible apps will be disabled:" : "Aquestes aplicacions incompatibles es desactivaran:",
- "The theme %s has been disabled." : "S'ha desactivat el tema %s",
- "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Assegureu-vos que heu fet una còpia de seguretat de la base de dades, del fitxer de configuració i de la carpeta de dades abans de continuar.",
- "Start update" : "Inicia l'actualització",
- "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Per evitar que s'esgoti el temps d'espera en instalacions grans, pots en el seu lloc fer córrer la següent comanda en el directori d'instalació. ",
- "Update needed" : "Actualització necessaria",
- "This %s instance is currently in maintenance mode, which may take a while." : "Aquesta instància %s està actualment en manteniment i podria trigar una estona.",
- "This page will refresh itself when the %s instance is available again." : "Aquesta pàgina s'actualitzarà automàticament quan la instància %s estigui disponible de nou.",
- "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Els vostres fitxers estan encriptats. Si no heu habilitat la clau de recuperació no hi haurà manera de recuperar les dades després que reestabliu la contrasenya. <br />Si sabeu què fer, contacteu amb l'administrador abans de continuar.<br />Voleu continuar?",
- "Ok" : "D'acord",
- "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "La carpeta de dades i els vostres fitxers probablement són accessibles des d'Internet. El fitxer .htaccess no funciona. Us recomanem que configureu el servidor web de tal manera que la carpeta de dades no sigui accessible o que moveu la carpeta de dades fora de l'arrel de documents del servidor web.",
- "File drop (upload only)" : "Arrossega fitxers (només càrrega)",
- "can reshare" : "pot recompartir",
- "can edit" : "pot editar",
- "can create" : "pot crear",
- "can change" : "pot canviar",
- "can delete" : "Pot esborrar",
- "access control" : "control d'accés",
- "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Ei,\n\nnomés fer-te saber que %s ha compartit %s amb tu.\nMira-ho a: %s\n\n",
- "The share will expire on %s." : "La compartició venç el %s.",
- "Cheers!" : "Salut!",
- "Use the following link to reset your password: {link}" : "Useu l'enllaç següent per restablir la contrasenya: {link}",
- "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Ei, <br><br>només fer-vos saber que %s us ha comparti <strong>%s</strong>. <br><a href=\"%s\">Mireu-ho!</a>"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/core/l10n/cs.js b/core/l10n/cs.js
index 5b7ea65c87f..e3d02c34271 100644
--- a/core/l10n/cs.js
+++ b/core/l10n/cs.js
@@ -145,15 +145,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Sdílet",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Sdílet s uživateli na jiných serverech za použití jejich sdílených cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Sdílejte s uživateli, nebo emailem...",
- "Share with users or remote users..." : "Sdílet s uživateli nebo vzdálenými uživateli...",
- "Share with users, remote users or by mail..." : "Sdílet s uživateli, vzdálenými uživateli, nebo emailem...",
- "Share with users or groups..." : "Sdílet s uživateli nebo skupinami...",
- "Share with users, groups or by mail..." : "Sdílejte s uživateli, skupinami, nebo emailem...",
- "Share with users, groups or remote users..." : "Sdílet s uživateli, skupinami nebo vzdálenými uživateli...",
- "Share with users, groups, remote users or by mail..." : "Sdílejte s uživateli, skupinami, vzdálenými uživateli, nebo emailem...",
- "Share with users..." : "Sdílet s uživateli...",
"Error removing share" : "Chyba při odstraňování sdílení",
"Non-existing tag #{tag}" : "Neexistující tag #{tag}",
"restricted" : "omezeno",
@@ -292,6 +283,15 @@ OC.L10N.register(
"can change" : "může měnit",
"can delete" : "může smazat",
"access control" : "řízení přístupu",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Sdílet s uživateli na jiných serverech za použití jejich sdílených cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Sdílejte s uživateli, nebo emailem...",
+ "Share with users or remote users..." : "Sdílet s uživateli nebo vzdálenými uživateli...",
+ "Share with users, remote users or by mail..." : "Sdílet s uživateli, vzdálenými uživateli, nebo emailem...",
+ "Share with users or groups..." : "Sdílet s uživateli nebo skupinami...",
+ "Share with users, groups or by mail..." : "Sdílejte s uživateli, skupinami, nebo emailem...",
+ "Share with users, groups or remote users..." : "Sdílet s uživateli, skupinami nebo vzdálenými uživateli...",
+ "Share with users, groups, remote users or by mail..." : "Sdílejte s uživateli, skupinami, vzdálenými uživateli, nebo emailem...",
+ "Share with users..." : "Sdílet s uživateli...",
"The update was successful. Redirecting you to Nextcloud now." : "Aktualizace byla úspěšná. Probíhá přesměrování na Nexcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej ty tam,\n\njen ti chci dát vědět, že %s sdílel %s s tebou.\nZobraz si to: %s\n\n",
"The share will expire on %s." : "Sdílení vyprší %s.",
diff --git a/core/l10n/cs.json b/core/l10n/cs.json
index 2d77736ed76..4a8fabaf948 100644
--- a/core/l10n/cs.json
+++ b/core/l10n/cs.json
@@ -143,15 +143,6 @@
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Sdílet",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Sdílet s uživateli na jiných serverech za použití jejich sdílených cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Sdílejte s uživateli, nebo emailem...",
- "Share with users or remote users..." : "Sdílet s uživateli nebo vzdálenými uživateli...",
- "Share with users, remote users or by mail..." : "Sdílet s uživateli, vzdálenými uživateli, nebo emailem...",
- "Share with users or groups..." : "Sdílet s uživateli nebo skupinami...",
- "Share with users, groups or by mail..." : "Sdílejte s uživateli, skupinami, nebo emailem...",
- "Share with users, groups or remote users..." : "Sdílet s uživateli, skupinami nebo vzdálenými uživateli...",
- "Share with users, groups, remote users or by mail..." : "Sdílejte s uživateli, skupinami, vzdálenými uživateli, nebo emailem...",
- "Share with users..." : "Sdílet s uživateli...",
"Error removing share" : "Chyba při odstraňování sdílení",
"Non-existing tag #{tag}" : "Neexistující tag #{tag}",
"restricted" : "omezeno",
@@ -290,6 +281,15 @@
"can change" : "může měnit",
"can delete" : "může smazat",
"access control" : "řízení přístupu",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Sdílet s uživateli na jiných serverech za použití jejich sdílených cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Sdílejte s uživateli, nebo emailem...",
+ "Share with users or remote users..." : "Sdílet s uživateli nebo vzdálenými uživateli...",
+ "Share with users, remote users or by mail..." : "Sdílet s uživateli, vzdálenými uživateli, nebo emailem...",
+ "Share with users or groups..." : "Sdílet s uživateli nebo skupinami...",
+ "Share with users, groups or by mail..." : "Sdílejte s uživateli, skupinami, nebo emailem...",
+ "Share with users, groups or remote users..." : "Sdílet s uživateli, skupinami nebo vzdálenými uživateli...",
+ "Share with users, groups, remote users or by mail..." : "Sdílejte s uživateli, skupinami, vzdálenými uživateli, nebo emailem...",
+ "Share with users..." : "Sdílet s uživateli...",
"The update was successful. Redirecting you to Nextcloud now." : "Aktualizace byla úspěšná. Probíhá přesměrování na Nexcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej ty tam,\n\njen ti chci dát vědět, že %s sdílel %s s tebou.\nZobraz si to: %s\n\n",
"The share will expire on %s." : "Sdílení vyprší %s.",
diff --git a/core/l10n/da.js b/core/l10n/da.js
index b3d63ab1c81..baf63e07278 100644
--- a/core/l10n/da.js
+++ b/core/l10n/da.js
@@ -145,15 +145,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (e-mail)",
"{sharee} ({type}, {owner})" : "{share} ({type}, {owner})",
"Share" : "Del",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Del med andre på en anden server ved hjælp af deres Federated Cloud id username@example.com/cloud ",
- "Share with users or by mail..." : "Del med andre brugere eller via e-mail...",
- "Share with users or remote users..." : "Del med brugere eller med eksterne brugere...",
- "Share with users, remote users or by mail..." : "Del med brugere, eksterne brugere eller via e-mail...",
- "Share with users or groups..." : "Del med brugere eller grupper...",
- "Share with users, groups or by mail..." : "Del med brugere, grupper eller via e-mail...",
- "Share with users, groups or remote users..." : "Del med brugere, brupper eller eksterne brugere...",
- "Share with users, groups, remote users or by mail..." : "Del med brugere, grupper, eksterne brugere eller via e-mail...",
- "Share with users..." : "Del med brugere...",
"Error removing share" : "Fejl ved fjernelse af deling",
"Non-existing tag #{tag}" : "Ikke-eksisterende mærke #{tag}",
"restricted" : "begrænset",
@@ -279,6 +270,15 @@ OC.L10N.register(
"can change" : "kan ændre",
"can delete" : "kan slette",
"access control" : "Adgangskontrol",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Del med andre på en anden server ved hjælp af deres Federated Cloud id username@example.com/cloud ",
+ "Share with users or by mail..." : "Del med andre brugere eller via e-mail...",
+ "Share with users or remote users..." : "Del med brugere eller med eksterne brugere...",
+ "Share with users, remote users or by mail..." : "Del med brugere, eksterne brugere eller via e-mail...",
+ "Share with users or groups..." : "Del med brugere eller grupper...",
+ "Share with users, groups or by mail..." : "Del med brugere, grupper eller via e-mail...",
+ "Share with users, groups or remote users..." : "Del med brugere, brupper eller eksterne brugere...",
+ "Share with users, groups, remote users or by mail..." : "Del med brugere, grupper, eksterne brugere eller via e-mail...",
+ "Share with users..." : "Del med brugere...",
"The update was successful. Redirecting you to Nextcloud now." : "Opdateringen blev udført korrekt. Du bliver nu viderestillet til Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej\n\nDette blot for at lade dig vide, at %s har delt %s med dig.\n\nSe det her: %s\n\n",
"The share will expire on %s." : "Delingen vil udløbe om %s.",
diff --git a/core/l10n/da.json b/core/l10n/da.json
index 5ff34322810..6ff9fb53d28 100644
--- a/core/l10n/da.json
+++ b/core/l10n/da.json
@@ -143,15 +143,6 @@
"{sharee} (email)" : "{sharee} (e-mail)",
"{sharee} ({type}, {owner})" : "{share} ({type}, {owner})",
"Share" : "Del",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Del med andre på en anden server ved hjælp af deres Federated Cloud id username@example.com/cloud ",
- "Share with users or by mail..." : "Del med andre brugere eller via e-mail...",
- "Share with users or remote users..." : "Del med brugere eller med eksterne brugere...",
- "Share with users, remote users or by mail..." : "Del med brugere, eksterne brugere eller via e-mail...",
- "Share with users or groups..." : "Del med brugere eller grupper...",
- "Share with users, groups or by mail..." : "Del med brugere, grupper eller via e-mail...",
- "Share with users, groups or remote users..." : "Del med brugere, brupper eller eksterne brugere...",
- "Share with users, groups, remote users or by mail..." : "Del med brugere, grupper, eksterne brugere eller via e-mail...",
- "Share with users..." : "Del med brugere...",
"Error removing share" : "Fejl ved fjernelse af deling",
"Non-existing tag #{tag}" : "Ikke-eksisterende mærke #{tag}",
"restricted" : "begrænset",
@@ -277,6 +268,15 @@
"can change" : "kan ændre",
"can delete" : "kan slette",
"access control" : "Adgangskontrol",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Del med andre på en anden server ved hjælp af deres Federated Cloud id username@example.com/cloud ",
+ "Share with users or by mail..." : "Del med andre brugere eller via e-mail...",
+ "Share with users or remote users..." : "Del med brugere eller med eksterne brugere...",
+ "Share with users, remote users or by mail..." : "Del med brugere, eksterne brugere eller via e-mail...",
+ "Share with users or groups..." : "Del med brugere eller grupper...",
+ "Share with users, groups or by mail..." : "Del med brugere, grupper eller via e-mail...",
+ "Share with users, groups or remote users..." : "Del med brugere, brupper eller eksterne brugere...",
+ "Share with users, groups, remote users or by mail..." : "Del med brugere, grupper, eksterne brugere eller via e-mail...",
+ "Share with users..." : "Del med brugere...",
"The update was successful. Redirecting you to Nextcloud now." : "Opdateringen blev udført korrekt. Du bliver nu viderestillet til Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej\n\nDette blot for at lade dig vide, at %s har delt %s med dig.\n\nSe det her: %s\n\n",
"The share will expire on %s." : "Delingen vil udløbe om %s.",
diff --git a/core/l10n/de.js b/core/l10n/de.js
index 30a517b1520..487068e41ac 100644
--- a/core/l10n/de.js
+++ b/core/l10n/de.js
@@ -162,15 +162,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (E-Mail)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Teilen",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Teile mit Menschen auf anderen Servern unter Verwendung ihrer Federated Cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Mit Benutzern oder per E-Mail teilen…",
- "Share with users or remote users..." : "Mit Benutzern oder externen Benutzern teilen…",
- "Share with users, remote users or by mail..." : "Mit Benutzern, externen Benutzern oder per E-Mail teilen…",
- "Share with users or groups..." : "Mit Benutzern oder Gruppen teilen...",
- "Share with users, groups or by mail..." : "Mit Benutzern, Gruppen oder per E-Mail teilen…",
- "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…",
- "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…",
- "Share with users..." : "Mit Benutzern teilen…",
"Error removing share" : "Fehler beim Entfernen der Freigabe",
"Non-existing tag #{tag}" : "Nicht vorhandener Tag #{tag}",
"restricted" : "Eingeschränkt",
@@ -309,6 +300,15 @@ OC.L10N.register(
"can change" : "kann ändern",
"can delete" : "kann löschen",
"access control" : "Zugriffskontrolle",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Teile mit Menschen auf anderen Servern unter Verwendung ihrer Federated Cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Mit Benutzern oder per E-Mail teilen…",
+ "Share with users or remote users..." : "Mit Benutzern oder externen Benutzern teilen…",
+ "Share with users, remote users or by mail..." : "Mit Benutzern, externen Benutzern oder per E-Mail teilen…",
+ "Share with users or groups..." : "Mit Benutzern oder Gruppen teilen...",
+ "Share with users, groups or by mail..." : "Mit Benutzern, Gruppen oder per E-Mail teilen…",
+ "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…",
+ "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…",
+ "Share with users..." : "Mit Benutzern teilen…",
"The update was successful. Redirecting you to Nextcloud now." : "Das Update war erfolgreich. Weiterleitung zu Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass %s %s mit Dir geteilt hat.\nZum Anzeigen: %s\n\n",
"The share will expire on %s." : "Die Freigabe wird am %s ablaufen.",
diff --git a/core/l10n/de.json b/core/l10n/de.json
index 07b5ad82433..76bf62101b7 100644
--- a/core/l10n/de.json
+++ b/core/l10n/de.json
@@ -160,15 +160,6 @@
"{sharee} (email)" : "{sharee} (E-Mail)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Teilen",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Teile mit Menschen auf anderen Servern unter Verwendung ihrer Federated Cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Mit Benutzern oder per E-Mail teilen…",
- "Share with users or remote users..." : "Mit Benutzern oder externen Benutzern teilen…",
- "Share with users, remote users or by mail..." : "Mit Benutzern, externen Benutzern oder per E-Mail teilen…",
- "Share with users or groups..." : "Mit Benutzern oder Gruppen teilen...",
- "Share with users, groups or by mail..." : "Mit Benutzern, Gruppen oder per E-Mail teilen…",
- "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…",
- "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…",
- "Share with users..." : "Mit Benutzern teilen…",
"Error removing share" : "Fehler beim Entfernen der Freigabe",
"Non-existing tag #{tag}" : "Nicht vorhandener Tag #{tag}",
"restricted" : "Eingeschränkt",
@@ -307,6 +298,15 @@
"can change" : "kann ändern",
"can delete" : "kann löschen",
"access control" : "Zugriffskontrolle",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Teile mit Menschen auf anderen Servern unter Verwendung ihrer Federated Cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Mit Benutzern oder per E-Mail teilen…",
+ "Share with users or remote users..." : "Mit Benutzern oder externen Benutzern teilen…",
+ "Share with users, remote users or by mail..." : "Mit Benutzern, externen Benutzern oder per E-Mail teilen…",
+ "Share with users or groups..." : "Mit Benutzern oder Gruppen teilen...",
+ "Share with users, groups or by mail..." : "Mit Benutzern, Gruppen oder per E-Mail teilen…",
+ "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…",
+ "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…",
+ "Share with users..." : "Mit Benutzern teilen…",
"The update was successful. Redirecting you to Nextcloud now." : "Das Update war erfolgreich. Weiterleitung zu Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass %s %s mit Dir geteilt hat.\nZum Anzeigen: %s\n\n",
"The share will expire on %s." : "Die Freigabe wird am %s ablaufen.",
diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js
index 7dbe02c1818..526989ecec6 100644
--- a/core/l10n/de_DE.js
+++ b/core/l10n/de_DE.js
@@ -162,15 +162,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (E-Mail)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Teilen",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Teile mit Menschen auf anderen Servern unter Verwendung ihrer Federated Cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Mit Benutzern oder per E-Mail teilen…",
- "Share with users or remote users..." : "Mit Benutzern oder externen Benutzern teilen…",
- "Share with users, remote users or by mail..." : "Mit Benutzern, externen Benutzern oder per E-Mail teilen…",
- "Share with users or groups..." : "Mit Benutzern oder Gruppen teilen...",
- "Share with users, groups or by mail..." : "Mit Benutzern, Gruppen oder per E-Mail teilen…",
- "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…",
- "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…",
- "Share with users..." : "Mit Benutzern teilen…",
"Error removing share" : "Fehler beim Entfernen der Freigabe",
"Non-existing tag #{tag}" : "Nicht existierender Tag #{tag}",
"restricted" : "Eingeschränkt",
@@ -309,6 +300,15 @@ OC.L10N.register(
"can change" : "kann ändern",
"can delete" : "kann löschen",
"access control" : "Zugriffskontrolle",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Teile mit Menschen auf anderen Servern unter Verwendung ihrer Federated Cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Mit Benutzern oder per E-Mail teilen…",
+ "Share with users or remote users..." : "Mit Benutzern oder externen Benutzern teilen…",
+ "Share with users, remote users or by mail..." : "Mit Benutzern, externen Benutzern oder per E-Mail teilen…",
+ "Share with users or groups..." : "Mit Benutzern oder Gruppen teilen...",
+ "Share with users, groups or by mail..." : "Mit Benutzern, Gruppen oder per E-Mail teilen…",
+ "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…",
+ "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…",
+ "Share with users..." : "Mit Benutzern teilen…",
"The update was successful. Redirecting you to Nextcloud now." : "Das Update war erfolgreich. Sie werden nun zu Nextcloud weitergeleitet.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass %s %s mit Ihnen geteilt hat.\nZum Anzeigen: %s\n\n",
"The share will expire on %s." : "Die Freigabe wird am %s ablaufen.",
diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json
index 072bd72f63a..8ba5d9918fd 100644
--- a/core/l10n/de_DE.json
+++ b/core/l10n/de_DE.json
@@ -160,15 +160,6 @@
"{sharee} (email)" : "{sharee} (E-Mail)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Teilen",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Teile mit Menschen auf anderen Servern unter Verwendung ihrer Federated Cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Mit Benutzern oder per E-Mail teilen…",
- "Share with users or remote users..." : "Mit Benutzern oder externen Benutzern teilen…",
- "Share with users, remote users or by mail..." : "Mit Benutzern, externen Benutzern oder per E-Mail teilen…",
- "Share with users or groups..." : "Mit Benutzern oder Gruppen teilen...",
- "Share with users, groups or by mail..." : "Mit Benutzern, Gruppen oder per E-Mail teilen…",
- "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…",
- "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…",
- "Share with users..." : "Mit Benutzern teilen…",
"Error removing share" : "Fehler beim Entfernen der Freigabe",
"Non-existing tag #{tag}" : "Nicht existierender Tag #{tag}",
"restricted" : "Eingeschränkt",
@@ -307,6 +298,15 @@
"can change" : "kann ändern",
"can delete" : "kann löschen",
"access control" : "Zugriffskontrolle",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Teile mit Menschen auf anderen Servern unter Verwendung ihrer Federated Cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Mit Benutzern oder per E-Mail teilen…",
+ "Share with users or remote users..." : "Mit Benutzern oder externen Benutzern teilen…",
+ "Share with users, remote users or by mail..." : "Mit Benutzern, externen Benutzern oder per E-Mail teilen…",
+ "Share with users or groups..." : "Mit Benutzern oder Gruppen teilen...",
+ "Share with users, groups or by mail..." : "Mit Benutzern, Gruppen oder per E-Mail teilen…",
+ "Share with users, groups or remote users..." : "Mit Benutzern, Gruppen oder externen Benutzern teilen…",
+ "Share with users, groups, remote users or by mail..." : "Mit Benutzern, Gruppen, externen Benutzern oder per E-Mail teilen…",
+ "Share with users..." : "Mit Benutzern teilen…",
"The update was successful. Redirecting you to Nextcloud now." : "Das Update war erfolgreich. Sie werden nun zu Nextcloud weitergeleitet.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo,\n\nhier nur kurz die Mitteilung, dass %s %s mit Ihnen geteilt hat.\nZum Anzeigen: %s\n\n",
"The share will expire on %s." : "Die Freigabe wird am %s ablaufen.",
diff --git a/core/l10n/el.js b/core/l10n/el.js
index 5e0f32ae1a2..aec29a060cf 100644
--- a/core/l10n/el.js
+++ b/core/l10n/el.js
@@ -162,15 +162,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Διαμοιρασμός",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Διαμοιρασμός με άτομα σε άλλους διακομιστές με χρήση της ταυτότητας Federated Cloud username@example.com/nextcloud",
- "Share with users or by mail..." : "Διαμοιρασμός με χρήστες ή με mail...",
- "Share with users or remote users..." : "Διαμοιρασμός με χρήστες ή απομακρυσμένους χρήστες...",
- "Share with users, remote users or by mail..." : "Διαμοιρασμός με χρήστες, απομακρυσμένους χρήστες ή με mail...",
- "Share with users or groups..." : "Διαμοιρασμός με χρήστες ή ομάδες...",
- "Share with users, groups or by mail..." : "Διαμοιρασμός με χρήστες, ομάδες ή με mail...",
- "Share with users, groups or remote users..." : "Διαμοιρασμός με χρήστες, ομάδες ή απομακρυσμένους χρήστες...",
- "Share with users, groups, remote users or by mail..." : "Διαμοιρασμός με χρήστες, ομάδες, απομακρυσμένους χρήστες ή με mail...",
- "Share with users..." : "Διαμοιρασμός με χρήστες...",
"Error removing share" : "Σφάλμα αφαίρεσης κοινόχρηστου",
"Non-existing tag #{tag}" : "Μη υπάρχουσα ετικέτα #{tag}",
"restricted" : "περιορισμένο",
@@ -309,6 +300,15 @@ OC.L10N.register(
"can change" : "δυνατότητα αλλαγής",
"can delete" : "δυνατότητα διαγραφής",
"access control" : "έλεγχος πρόσβασης",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Διαμοιρασμός με άτομα σε άλλους διακομιστές με χρήση της ταυτότητας Federated Cloud username@example.com/nextcloud",
+ "Share with users or by mail..." : "Διαμοιρασμός με χρήστες ή με mail...",
+ "Share with users or remote users..." : "Διαμοιρασμός με χρήστες ή απομακρυσμένους χρήστες...",
+ "Share with users, remote users or by mail..." : "Διαμοιρασμός με χρήστες, απομακρυσμένους χρήστες ή με mail...",
+ "Share with users or groups..." : "Διαμοιρασμός με χρήστες ή ομάδες...",
+ "Share with users, groups or by mail..." : "Διαμοιρασμός με χρήστες, ομάδες ή με mail...",
+ "Share with users, groups or remote users..." : "Διαμοιρασμός με χρήστες, ομάδες ή απομακρυσμένους χρήστες...",
+ "Share with users, groups, remote users or by mail..." : "Διαμοιρασμός με χρήστες, ομάδες, απομακρυσμένους χρήστες ή με mail...",
+ "Share with users..." : "Διαμοιρασμός με χρήστες...",
"The update was successful. Redirecting you to Nextcloud now." : "Η ενημέρωση ήταν επιτυχής. Θα γίνει ανακατεύθυνση στο Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Γεια χαρά,\n\nαπλά σας ενημερώνω πως ο %s μοιράστηκε το %s με εσάς.\nΔείτε το: %s\n\n",
"The share will expire on %s." : "Ο διαμοιρασμός θα λήξει σε %s.",
diff --git a/core/l10n/el.json b/core/l10n/el.json
index 4943cd8e37e..e1ad583e64a 100644
--- a/core/l10n/el.json
+++ b/core/l10n/el.json
@@ -160,15 +160,6 @@
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Διαμοιρασμός",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Διαμοιρασμός με άτομα σε άλλους διακομιστές με χρήση της ταυτότητας Federated Cloud username@example.com/nextcloud",
- "Share with users or by mail..." : "Διαμοιρασμός με χρήστες ή με mail...",
- "Share with users or remote users..." : "Διαμοιρασμός με χρήστες ή απομακρυσμένους χρήστες...",
- "Share with users, remote users or by mail..." : "Διαμοιρασμός με χρήστες, απομακρυσμένους χρήστες ή με mail...",
- "Share with users or groups..." : "Διαμοιρασμός με χρήστες ή ομάδες...",
- "Share with users, groups or by mail..." : "Διαμοιρασμός με χρήστες, ομάδες ή με mail...",
- "Share with users, groups or remote users..." : "Διαμοιρασμός με χρήστες, ομάδες ή απομακρυσμένους χρήστες...",
- "Share with users, groups, remote users or by mail..." : "Διαμοιρασμός με χρήστες, ομάδες, απομακρυσμένους χρήστες ή με mail...",
- "Share with users..." : "Διαμοιρασμός με χρήστες...",
"Error removing share" : "Σφάλμα αφαίρεσης κοινόχρηστου",
"Non-existing tag #{tag}" : "Μη υπάρχουσα ετικέτα #{tag}",
"restricted" : "περιορισμένο",
@@ -307,6 +298,15 @@
"can change" : "δυνατότητα αλλαγής",
"can delete" : "δυνατότητα διαγραφής",
"access control" : "έλεγχος πρόσβασης",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Διαμοιρασμός με άτομα σε άλλους διακομιστές με χρήση της ταυτότητας Federated Cloud username@example.com/nextcloud",
+ "Share with users or by mail..." : "Διαμοιρασμός με χρήστες ή με mail...",
+ "Share with users or remote users..." : "Διαμοιρασμός με χρήστες ή απομακρυσμένους χρήστες...",
+ "Share with users, remote users or by mail..." : "Διαμοιρασμός με χρήστες, απομακρυσμένους χρήστες ή με mail...",
+ "Share with users or groups..." : "Διαμοιρασμός με χρήστες ή ομάδες...",
+ "Share with users, groups or by mail..." : "Διαμοιρασμός με χρήστες, ομάδες ή με mail...",
+ "Share with users, groups or remote users..." : "Διαμοιρασμός με χρήστες, ομάδες ή απομακρυσμένους χρήστες...",
+ "Share with users, groups, remote users or by mail..." : "Διαμοιρασμός με χρήστες, ομάδες, απομακρυσμένους χρήστες ή με mail...",
+ "Share with users..." : "Διαμοιρασμός με χρήστες...",
"The update was successful. Redirecting you to Nextcloud now." : "Η ενημέρωση ήταν επιτυχής. Θα γίνει ανακατεύθυνση στο Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Γεια χαρά,\n\nαπλά σας ενημερώνω πως ο %s μοιράστηκε το %s με εσάς.\nΔείτε το: %s\n\n",
"The share will expire on %s." : "Ο διαμοιρασμός θα λήξει σε %s.",
diff --git a/core/l10n/es.js b/core/l10n/es.js
index 06ccc654e4a..1c49d90124e 100644
--- a/core/l10n/es.js
+++ b/core/l10n/es.js
@@ -161,15 +161,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Compartir",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Compartir con personas en otros servidores usando su ID de Nube Federada username@example.com/nextcloud",
- "Share with users or by mail..." : "Compartir con usuarios o vía email...",
- "Share with users or remote users..." : "Compartir con usuarios o usuarios remotos...",
- "Share with users, remote users or by mail..." : "Compartir con usuarios, usuarios remotos o por correo...",
- "Share with users or groups..." : "Compartir con usuarios o grupos...",
- "Share with users, groups or by mail..." : "Compartir con usuarios, grupos o por correo...",
- "Share with users, groups or remote users..." : "Compartir con usuarios, grupos o usuarios remotos...",
- "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios remotos o por correo...",
- "Share with users..." : "Compartir con usuarios...",
"Error removing share" : "Error quitando el comparto",
"Non-existing tag #{tag}" : "Categoría #{tag} no existente",
"restricted" : "Restringido",
@@ -308,6 +299,15 @@ OC.L10N.register(
"can change" : "puede cambiar",
"can delete" : "puede eliminar",
"access control" : "control de acceso",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Compartir con personas en otros servidores usando su ID de Nube Federada username@example.com/nextcloud",
+ "Share with users or by mail..." : "Compartir con usuarios o vía email...",
+ "Share with users or remote users..." : "Compartir con usuarios o usuarios remotos...",
+ "Share with users, remote users or by mail..." : "Compartir con usuarios, usuarios remotos o por correo...",
+ "Share with users or groups..." : "Compartir con usuarios o grupos...",
+ "Share with users, groups or by mail..." : "Compartir con usuarios, grupos o por correo...",
+ "Share with users, groups or remote users..." : "Compartir con usuarios, grupos o usuarios remotos...",
+ "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios remotos o por correo...",
+ "Share with users..." : "Compartir con usuarios...",
"The update was successful. Redirecting you to Nextcloud now." : "Actualización completada con éxito. Redirigiendo a Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola:\n\nTan solo queremos informarte que %s compartió %s contigo.\nMíralo aquí: %s\n\n",
"The share will expire on %s." : "El objeto dejará de ser compartido el %s.",
diff --git a/core/l10n/es.json b/core/l10n/es.json
index dcf4bf1d83a..af3904bf56a 100644
--- a/core/l10n/es.json
+++ b/core/l10n/es.json
@@ -159,15 +159,6 @@
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Compartir",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Compartir con personas en otros servidores usando su ID de Nube Federada username@example.com/nextcloud",
- "Share with users or by mail..." : "Compartir con usuarios o vía email...",
- "Share with users or remote users..." : "Compartir con usuarios o usuarios remotos...",
- "Share with users, remote users or by mail..." : "Compartir con usuarios, usuarios remotos o por correo...",
- "Share with users or groups..." : "Compartir con usuarios o grupos...",
- "Share with users, groups or by mail..." : "Compartir con usuarios, grupos o por correo...",
- "Share with users, groups or remote users..." : "Compartir con usuarios, grupos o usuarios remotos...",
- "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios remotos o por correo...",
- "Share with users..." : "Compartir con usuarios...",
"Error removing share" : "Error quitando el comparto",
"Non-existing tag #{tag}" : "Categoría #{tag} no existente",
"restricted" : "Restringido",
@@ -306,6 +297,15 @@
"can change" : "puede cambiar",
"can delete" : "puede eliminar",
"access control" : "control de acceso",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Compartir con personas en otros servidores usando su ID de Nube Federada username@example.com/nextcloud",
+ "Share with users or by mail..." : "Compartir con usuarios o vía email...",
+ "Share with users or remote users..." : "Compartir con usuarios o usuarios remotos...",
+ "Share with users, remote users or by mail..." : "Compartir con usuarios, usuarios remotos o por correo...",
+ "Share with users or groups..." : "Compartir con usuarios o grupos...",
+ "Share with users, groups or by mail..." : "Compartir con usuarios, grupos o por correo...",
+ "Share with users, groups or remote users..." : "Compartir con usuarios, grupos o usuarios remotos...",
+ "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios remotos o por correo...",
+ "Share with users..." : "Compartir con usuarios...",
"The update was successful. Redirecting you to Nextcloud now." : "Actualización completada con éxito. Redirigiendo a Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola:\n\nTan solo queremos informarte que %s compartió %s contigo.\nMíralo aquí: %s\n\n",
"The share will expire on %s." : "El objeto dejará de ser compartido el %s.",
diff --git a/core/l10n/es_MX.js b/core/l10n/es_MX.js
index 2911011cb56..f133333401e 100644
--- a/core/l10n/es_MX.js
+++ b/core/l10n/es_MX.js
@@ -162,15 +162,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (correo electrónico)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Compartir",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Comparta con personas en otros servidores usando sus IDs de Nube Federados username@example.com/nextcloud",
- "Share with users or by mail..." : "Compartir con otros usuarios o por correo electrónico...",
- "Share with users or remote users..." : "Compartir con otros usuarios o con otros usuarios remotos...",
- "Share with users, remote users or by mail..." : "Compartir con otros usuarios, otros usuarios remotos o por correo electrónico...",
- "Share with users or groups..." : "Compartir con otros usuarios o grupos...",
- "Share with users, groups or by mail..." : "Compartir con otros usuarios, grupos o por correo electrónico...",
- "Share with users, groups or remote users..." : "Compartir con otros usuarios, otros usuarios remotos o grupos...",
- "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios rempotos o por correo...",
- "Share with users..." : "Compartir con otros usuarios...",
"Error removing share" : "Se presentó un error al dejar de compartir",
"Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente",
"restricted" : "restringido",
@@ -309,6 +300,15 @@ OC.L10N.register(
"can change" : "puede modificar",
"can delete" : "puede borrar",
"access control" : "control de acceso",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Comparta con personas en otros servidores usando sus IDs de Nube Federados username@example.com/nextcloud",
+ "Share with users or by mail..." : "Compartir con otros usuarios o por correo electrónico...",
+ "Share with users or remote users..." : "Compartir con otros usuarios o con otros usuarios remotos...",
+ "Share with users, remote users or by mail..." : "Compartir con otros usuarios, otros usuarios remotos o por correo electrónico...",
+ "Share with users or groups..." : "Compartir con otros usuarios o grupos...",
+ "Share with users, groups or by mail..." : "Compartir con otros usuarios, grupos o por correo electrónico...",
+ "Share with users, groups or remote users..." : "Compartir con otros usuarios, otros usuarios remotos o grupos...",
+ "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios rempotos o por correo...",
+ "Share with users..." : "Compartir con otros usuarios...",
"The update was successful. Redirecting you to Nextcloud now." : "La actualización fue exitosa. Redirigiendolo a su Nextcloud ahora. ",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola,\n\nsólo queremos informarle que %s ha compartido %s con usted.\n\nConsúltelo aquí: %s\n\n",
"The share will expire on %s." : "El recurso dejará de ser compartido el %s.",
diff --git a/core/l10n/es_MX.json b/core/l10n/es_MX.json
index b2cd085b60f..604387ab510 100644
--- a/core/l10n/es_MX.json
+++ b/core/l10n/es_MX.json
@@ -160,15 +160,6 @@
"{sharee} (email)" : "{sharee} (correo electrónico)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Compartir",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Comparta con personas en otros servidores usando sus IDs de Nube Federados username@example.com/nextcloud",
- "Share with users or by mail..." : "Compartir con otros usuarios o por correo electrónico...",
- "Share with users or remote users..." : "Compartir con otros usuarios o con otros usuarios remotos...",
- "Share with users, remote users or by mail..." : "Compartir con otros usuarios, otros usuarios remotos o por correo electrónico...",
- "Share with users or groups..." : "Compartir con otros usuarios o grupos...",
- "Share with users, groups or by mail..." : "Compartir con otros usuarios, grupos o por correo electrónico...",
- "Share with users, groups or remote users..." : "Compartir con otros usuarios, otros usuarios remotos o grupos...",
- "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios rempotos o por correo...",
- "Share with users..." : "Compartir con otros usuarios...",
"Error removing share" : "Se presentó un error al dejar de compartir",
"Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente",
"restricted" : "restringido",
@@ -307,6 +298,15 @@
"can change" : "puede modificar",
"can delete" : "puede borrar",
"access control" : "control de acceso",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Comparta con personas en otros servidores usando sus IDs de Nube Federados username@example.com/nextcloud",
+ "Share with users or by mail..." : "Compartir con otros usuarios o por correo electrónico...",
+ "Share with users or remote users..." : "Compartir con otros usuarios o con otros usuarios remotos...",
+ "Share with users, remote users or by mail..." : "Compartir con otros usuarios, otros usuarios remotos o por correo electrónico...",
+ "Share with users or groups..." : "Compartir con otros usuarios o grupos...",
+ "Share with users, groups or by mail..." : "Compartir con otros usuarios, grupos o por correo electrónico...",
+ "Share with users, groups or remote users..." : "Compartir con otros usuarios, otros usuarios remotos o grupos...",
+ "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios rempotos o por correo...",
+ "Share with users..." : "Compartir con otros usuarios...",
"The update was successful. Redirecting you to Nextcloud now." : "La actualización fue exitosa. Redirigiendolo a su Nextcloud ahora. ",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola,\n\nsólo queremos informarle que %s ha compartido %s con usted.\n\nConsúltelo aquí: %s\n\n",
"The share will expire on %s." : "El recurso dejará de ser compartido el %s.",
diff --git a/core/l10n/eu.js b/core/l10n/eu.js
index b7f212243c8..86933487ecb 100644
--- a/core/l10n/eu.js
+++ b/core/l10n/eu.js
@@ -139,15 +139,6 @@ OC.L10N.register(
"{sharee} (remote)" : "{sharee} (remote)",
"{sharee} (email)" : "{sharee} (email)",
"Share" : "Elkarbanatu",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partekatu beste zerbitzarietan dagoen jendearekin, beraien Federated Cloud ID erabiliz username@example.com/nextcloud",
- "Share with users or by mail..." : "Erabiltzaileekin edo postaz elkarbanatu...",
- "Share with users or remote users..." : "Erabiltzaile edo urruneko erabiltzaile batzuekin elkarbanatu...",
- "Share with users, remote users or by mail..." : "Erabiltzaile, urruneko erabiltzaile edo postaz elkarbanatu...",
- "Share with users or groups..." : "Erabiltzaile edo talde batekin elkarbanatu...",
- "Share with users, groups or by mail..." : "Erabiltzaile, talde edo posta elektroniko bidez elkarbanatu...",
- "Share with users, groups or remote users..." : "erabiltzaile, talde edo urruneko erabiltzaile batzuekin Elkarbanatu ...",
- "Share with users, groups, remote users or by mail..." : "Erabiltzaile, talde, urruneko erabiltzaile edo postaz elkarbanatu...",
- "Share with users..." : "Erabiltzaileekin elkarbanatu...",
"Error removing share" : " Akatsa kuota kentzerakoan",
"Non-existing tag #{tag}" : "#{tag} ez da existitzen",
"restricted" : "mugatua",
@@ -282,6 +273,15 @@ OC.L10N.register(
"can change" : "aldatu dezake",
"can delete" : "ezabatu dezake",
"access control" : "sarrera kontrola",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partekatu beste zerbitzarietan dagoen jendearekin, beraien Federated Cloud ID erabiliz username@example.com/nextcloud",
+ "Share with users or by mail..." : "Erabiltzaileekin edo postaz elkarbanatu...",
+ "Share with users or remote users..." : "Erabiltzaile edo urruneko erabiltzaile batzuekin elkarbanatu...",
+ "Share with users, remote users or by mail..." : "Erabiltzaile, urruneko erabiltzaile edo postaz elkarbanatu...",
+ "Share with users or groups..." : "Erabiltzaile edo talde batekin elkarbanatu...",
+ "Share with users, groups or by mail..." : "Erabiltzaile, talde edo posta elektroniko bidez elkarbanatu...",
+ "Share with users, groups or remote users..." : "erabiltzaile, talde edo urruneko erabiltzaile batzuekin Elkarbanatu ...",
+ "Share with users, groups, remote users or by mail..." : "Erabiltzaile, talde, urruneko erabiltzaile edo postaz elkarbanatu...",
+ "Share with users..." : "Erabiltzaileekin elkarbanatu...",
"The update was successful. Redirecting you to Nextcloud now." : "The update was successful. Redirecting you to Nextcloud now.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Kaixo\n\n%s-ek %s zurekin partekatu duela jakin dezazun.\nIkusi ezazu: %s\n\n",
"The share will expire on %s." : "Elkarbanaketa %s-n iraungiko da.",
diff --git a/core/l10n/eu.json b/core/l10n/eu.json
index bd577cc29d1..32adcf0ff4a 100644
--- a/core/l10n/eu.json
+++ b/core/l10n/eu.json
@@ -137,15 +137,6 @@
"{sharee} (remote)" : "{sharee} (remote)",
"{sharee} (email)" : "{sharee} (email)",
"Share" : "Elkarbanatu",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partekatu beste zerbitzarietan dagoen jendearekin, beraien Federated Cloud ID erabiliz username@example.com/nextcloud",
- "Share with users or by mail..." : "Erabiltzaileekin edo postaz elkarbanatu...",
- "Share with users or remote users..." : "Erabiltzaile edo urruneko erabiltzaile batzuekin elkarbanatu...",
- "Share with users, remote users or by mail..." : "Erabiltzaile, urruneko erabiltzaile edo postaz elkarbanatu...",
- "Share with users or groups..." : "Erabiltzaile edo talde batekin elkarbanatu...",
- "Share with users, groups or by mail..." : "Erabiltzaile, talde edo posta elektroniko bidez elkarbanatu...",
- "Share with users, groups or remote users..." : "erabiltzaile, talde edo urruneko erabiltzaile batzuekin Elkarbanatu ...",
- "Share with users, groups, remote users or by mail..." : "Erabiltzaile, talde, urruneko erabiltzaile edo postaz elkarbanatu...",
- "Share with users..." : "Erabiltzaileekin elkarbanatu...",
"Error removing share" : " Akatsa kuota kentzerakoan",
"Non-existing tag #{tag}" : "#{tag} ez da existitzen",
"restricted" : "mugatua",
@@ -280,6 +271,15 @@
"can change" : "aldatu dezake",
"can delete" : "ezabatu dezake",
"access control" : "sarrera kontrola",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partekatu beste zerbitzarietan dagoen jendearekin, beraien Federated Cloud ID erabiliz username@example.com/nextcloud",
+ "Share with users or by mail..." : "Erabiltzaileekin edo postaz elkarbanatu...",
+ "Share with users or remote users..." : "Erabiltzaile edo urruneko erabiltzaile batzuekin elkarbanatu...",
+ "Share with users, remote users or by mail..." : "Erabiltzaile, urruneko erabiltzaile edo postaz elkarbanatu...",
+ "Share with users or groups..." : "Erabiltzaile edo talde batekin elkarbanatu...",
+ "Share with users, groups or by mail..." : "Erabiltzaile, talde edo posta elektroniko bidez elkarbanatu...",
+ "Share with users, groups or remote users..." : "erabiltzaile, talde edo urruneko erabiltzaile batzuekin Elkarbanatu ...",
+ "Share with users, groups, remote users or by mail..." : "Erabiltzaile, talde, urruneko erabiltzaile edo postaz elkarbanatu...",
+ "Share with users..." : "Erabiltzaileekin elkarbanatu...",
"The update was successful. Redirecting you to Nextcloud now." : "The update was successful. Redirecting you to Nextcloud now.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Kaixo\n\n%s-ek %s zurekin partekatu duela jakin dezazun.\nIkusi ezazu: %s\n\n",
"The share will expire on %s." : "Elkarbanaketa %s-n iraungiko da.",
diff --git a/core/l10n/fi.js b/core/l10n/fi.js
index 5ae71cf8723..f351256e9b0 100644
--- a/core/l10n/fi.js
+++ b/core/l10n/fi.js
@@ -160,15 +160,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (sähköposti)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Jaa",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Jaa toisia Nextcloud-järjestelmiä käyttäville Federated Cloud ID -tunnuksella muodossa käyttäjätunnus@example.com/nextcloud",
- "Share with users or by mail..." : "Jaa käyttäjille tai sähköpostilla...",
- "Share with users or remote users..." : "Jaa käyttäjille tai etäkäyttäjille...",
- "Share with users, remote users or by mail..." : "Jaa käyttäjille, etäkäyttäjille tai sähköpostilla...",
- "Share with users or groups..." : "Jaa käyttäjille tai ryhmille...",
- "Share with users, groups or by mail..." : "Jaa käyttäjille, ryhmille tai sähköpostilla...",
- "Share with users, groups or remote users..." : "Jaa käyttäjille, ryhmille tai etäkäyttäjille...",
- "Share with users, groups, remote users or by mail..." : "Jaa käyttäjille, ryhmille, etäkäyttäjille tai sähköpostilla...",
- "Share with users..." : "Jaa käyttäjille...",
"Error removing share" : "Virhe jakoa poistaessa",
"Non-existing tag #{tag}" : "Ei olemassa oleva tunniste #{tag}",
"restricted" : "rajoitettu",
@@ -307,6 +298,15 @@ OC.L10N.register(
"can change" : "voi vaihtaa",
"can delete" : "voi poistaa",
"access control" : "pääsynhallinta",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Jaa toisia Nextcloud-järjestelmiä käyttäville Federated Cloud ID -tunnuksella muodossa käyttäjätunnus@example.com/nextcloud",
+ "Share with users or by mail..." : "Jaa käyttäjille tai sähköpostilla...",
+ "Share with users or remote users..." : "Jaa käyttäjille tai etäkäyttäjille...",
+ "Share with users, remote users or by mail..." : "Jaa käyttäjille, etäkäyttäjille tai sähköpostilla...",
+ "Share with users or groups..." : "Jaa käyttäjille tai ryhmille...",
+ "Share with users, groups or by mail..." : "Jaa käyttäjille, ryhmille tai sähköpostilla...",
+ "Share with users, groups or remote users..." : "Jaa käyttäjille, ryhmille tai etäkäyttäjille...",
+ "Share with users, groups, remote users or by mail..." : "Jaa käyttäjille, ryhmille, etäkäyttäjille tai sähköpostilla...",
+ "Share with users..." : "Jaa käyttäjille...",
"The update was successful. Redirecting you to Nextcloud now." : "Päivitys onnistui. Sinut ohjataan nyt Nextcloudiin.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hei,\n\n%s jakoi kohteen %s kanssasi.\nTutustu siihen: %s\n\n",
"The share will expire on %s." : "Jakaminen päättyy %s.",
diff --git a/core/l10n/fi.json b/core/l10n/fi.json
index b03814367d3..1cb3df38622 100644
--- a/core/l10n/fi.json
+++ b/core/l10n/fi.json
@@ -158,15 +158,6 @@
"{sharee} (email)" : "{sharee} (sähköposti)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Jaa",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Jaa toisia Nextcloud-järjestelmiä käyttäville Federated Cloud ID -tunnuksella muodossa käyttäjätunnus@example.com/nextcloud",
- "Share with users or by mail..." : "Jaa käyttäjille tai sähköpostilla...",
- "Share with users or remote users..." : "Jaa käyttäjille tai etäkäyttäjille...",
- "Share with users, remote users or by mail..." : "Jaa käyttäjille, etäkäyttäjille tai sähköpostilla...",
- "Share with users or groups..." : "Jaa käyttäjille tai ryhmille...",
- "Share with users, groups or by mail..." : "Jaa käyttäjille, ryhmille tai sähköpostilla...",
- "Share with users, groups or remote users..." : "Jaa käyttäjille, ryhmille tai etäkäyttäjille...",
- "Share with users, groups, remote users or by mail..." : "Jaa käyttäjille, ryhmille, etäkäyttäjille tai sähköpostilla...",
- "Share with users..." : "Jaa käyttäjille...",
"Error removing share" : "Virhe jakoa poistaessa",
"Non-existing tag #{tag}" : "Ei olemassa oleva tunniste #{tag}",
"restricted" : "rajoitettu",
@@ -305,6 +296,15 @@
"can change" : "voi vaihtaa",
"can delete" : "voi poistaa",
"access control" : "pääsynhallinta",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Jaa toisia Nextcloud-järjestelmiä käyttäville Federated Cloud ID -tunnuksella muodossa käyttäjätunnus@example.com/nextcloud",
+ "Share with users or by mail..." : "Jaa käyttäjille tai sähköpostilla...",
+ "Share with users or remote users..." : "Jaa käyttäjille tai etäkäyttäjille...",
+ "Share with users, remote users or by mail..." : "Jaa käyttäjille, etäkäyttäjille tai sähköpostilla...",
+ "Share with users or groups..." : "Jaa käyttäjille tai ryhmille...",
+ "Share with users, groups or by mail..." : "Jaa käyttäjille, ryhmille tai sähköpostilla...",
+ "Share with users, groups or remote users..." : "Jaa käyttäjille, ryhmille tai etäkäyttäjille...",
+ "Share with users, groups, remote users or by mail..." : "Jaa käyttäjille, ryhmille, etäkäyttäjille tai sähköpostilla...",
+ "Share with users..." : "Jaa käyttäjille...",
"The update was successful. Redirecting you to Nextcloud now." : "Päivitys onnistui. Sinut ohjataan nyt Nextcloudiin.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hei,\n\n%s jakoi kohteen %s kanssasi.\nTutustu siihen: %s\n\n",
"The share will expire on %s." : "Jakaminen päättyy %s.",
diff --git a/core/l10n/fr.js b/core/l10n/fr.js
index 180f1026ba3..4fac783d5b1 100644
--- a/core/l10n/fr.js
+++ b/core/l10n/fr.js
@@ -162,15 +162,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Partager",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partager avec des personnes sur d'autres serveurs en utilisant leur identifiant du Cloud Fédéré (utilisateur@exemple.com/nextcloud)",
- "Share with users or by mail..." : "Partager avec des utilisateurs ou par courriel…",
- "Share with users or remote users..." : "Partager avec des utilisateurs ou des utilisateurs distants...",
- "Share with users, remote users or by mail..." : "Partager avec des utilisateurs, des utilisateurs distants ou par courriel…",
- "Share with users or groups..." : "Partager avec des utilisateurs ou des groupes...",
- "Share with users, groups or by mail..." : "Partager avec des utilisateurs, des groupes ou par courriel…",
- "Share with users, groups or remote users..." : "Partager avec des utilisateurs, groupes ou utilisateurs distants...",
- "Share with users, groups, remote users or by mail..." : "Partager avec des utilisateurs, des groupes, des utilisateurs distants ou par courriel…",
- "Share with users..." : "Partager avec des utilisateurs...",
"Error removing share" : "Erreur lors de l'arrêt du partage",
"Non-existing tag #{tag}" : "Étiquette #{tag} inexistante",
"restricted" : "Restreint",
@@ -309,6 +300,15 @@ OC.L10N.register(
"can change" : "Peut modifier",
"can delete" : "Peut effacer",
"access control" : "contrôle d'accès",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partager avec des personnes sur d'autres serveurs en utilisant leur identifiant du Cloud Fédéré (utilisateur@exemple.com/nextcloud)",
+ "Share with users or by mail..." : "Partager avec des utilisateurs ou par courriel…",
+ "Share with users or remote users..." : "Partager avec des utilisateurs ou des utilisateurs distants...",
+ "Share with users, remote users or by mail..." : "Partager avec des utilisateurs, des utilisateurs distants ou par courriel…",
+ "Share with users or groups..." : "Partager avec des utilisateurs ou des groupes...",
+ "Share with users, groups or by mail..." : "Partager avec des utilisateurs, des groupes ou par courriel…",
+ "Share with users, groups or remote users..." : "Partager avec des utilisateurs, groupes ou utilisateurs distants...",
+ "Share with users, groups, remote users or by mail..." : "Partager avec des utilisateurs, des groupes, des utilisateurs distants ou par courriel…",
+ "Share with users..." : "Partager avec des utilisateurs...",
"The update was successful. Redirecting you to Nextcloud now." : "La mise à jour est terminée. Vous allez être redirigé vers Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Bonjour,\n\nNous vous informons que %s a partagé %s avec vous.\nVous pouvez y accéder à l'adresse suivante : %s\n",
"The share will expire on %s." : "Le partage expirera le %s.",
diff --git a/core/l10n/fr.json b/core/l10n/fr.json
index 1ec9ada494a..95c1777317c 100644
--- a/core/l10n/fr.json
+++ b/core/l10n/fr.json
@@ -160,15 +160,6 @@
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Partager",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partager avec des personnes sur d'autres serveurs en utilisant leur identifiant du Cloud Fédéré (utilisateur@exemple.com/nextcloud)",
- "Share with users or by mail..." : "Partager avec des utilisateurs ou par courriel…",
- "Share with users or remote users..." : "Partager avec des utilisateurs ou des utilisateurs distants...",
- "Share with users, remote users or by mail..." : "Partager avec des utilisateurs, des utilisateurs distants ou par courriel…",
- "Share with users or groups..." : "Partager avec des utilisateurs ou des groupes...",
- "Share with users, groups or by mail..." : "Partager avec des utilisateurs, des groupes ou par courriel…",
- "Share with users, groups or remote users..." : "Partager avec des utilisateurs, groupes ou utilisateurs distants...",
- "Share with users, groups, remote users or by mail..." : "Partager avec des utilisateurs, des groupes, des utilisateurs distants ou par courriel…",
- "Share with users..." : "Partager avec des utilisateurs...",
"Error removing share" : "Erreur lors de l'arrêt du partage",
"Non-existing tag #{tag}" : "Étiquette #{tag} inexistante",
"restricted" : "Restreint",
@@ -307,6 +298,15 @@
"can change" : "Peut modifier",
"can delete" : "Peut effacer",
"access control" : "contrôle d'accès",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partager avec des personnes sur d'autres serveurs en utilisant leur identifiant du Cloud Fédéré (utilisateur@exemple.com/nextcloud)",
+ "Share with users or by mail..." : "Partager avec des utilisateurs ou par courriel…",
+ "Share with users or remote users..." : "Partager avec des utilisateurs ou des utilisateurs distants...",
+ "Share with users, remote users or by mail..." : "Partager avec des utilisateurs, des utilisateurs distants ou par courriel…",
+ "Share with users or groups..." : "Partager avec des utilisateurs ou des groupes...",
+ "Share with users, groups or by mail..." : "Partager avec des utilisateurs, des groupes ou par courriel…",
+ "Share with users, groups or remote users..." : "Partager avec des utilisateurs, groupes ou utilisateurs distants...",
+ "Share with users, groups, remote users or by mail..." : "Partager avec des utilisateurs, des groupes, des utilisateurs distants ou par courriel…",
+ "Share with users..." : "Partager avec des utilisateurs...",
"The update was successful. Redirecting you to Nextcloud now." : "La mise à jour est terminée. Vous allez être redirigé vers Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Bonjour,\n\nNous vous informons que %s a partagé %s avec vous.\nVous pouvez y accéder à l'adresse suivante : %s\n",
"The share will expire on %s." : "Le partage expirera le %s.",
diff --git a/core/l10n/he.js b/core/l10n/he.js
deleted file mode 100644
index 777631c09bf..00000000000
--- a/core/l10n/he.js
+++ /dev/null
@@ -1,241 +0,0 @@
-OC.L10N.register(
- "core",
- {
- "Please select a file." : "יש לבחור קובץ.",
- "File is too big" : "הקובץ גדול מדי",
- "Invalid file provided" : "סופק קובץ לא חוקי",
- "No image or file provided" : "לא סופקו תמונה או קובץ",
- "Unknown filetype" : "סוג קובץ לא מוכר",
- "Invalid image" : "תמונה לא חוקית",
- "An error occurred. Please contact your admin." : "אירעה שגיאה. יש ליצור קשר עם המנהל שלך.",
- "No temporary profile picture available, try again" : "לא קיימת תמונת פרופיל זמנית, יש לנסות שוב",
- "No crop data provided" : "לא סופק מידע קיטום",
- "No valid crop data provided" : "לא סופק מידע קיטום חוקי",
- "Crop is not square" : "הקיטום אינו מרובע",
- "Couldn't reset password because the token is invalid" : "לא ניתן לאפס סיסמא כיוון שמחרוזת האימות אינה חוקית",
- "Couldn't reset password because the token is expired" : "לא ניתן לאפס סיסמא כיוון שמחרוזת האימות פגה תוקף",
- "Could not send reset email because there is no email address for this username. Please contact your administrator." : "לא ניתן היה לשלוח דואר אלקטרוני כיוון שלא מוגדר דואר אלקטרוני למשתמש זה. יש ליצור קשר עם מנהל.",
- "%s password reset" : "%s הסיסמא אופסה",
- "Couldn't send reset email. Please contact your administrator." : "לא ניתן היה לשלוח דואר אלקטרוני לאיפוס. יש לפנות למנהל שלך.",
- "Couldn't send reset email. Please make sure your username is correct." : "לא ניתן היה לשלוח דואר אלקטרוני לאיפוס. יש לוודא ששם המשתמש נכון.",
- "Preparing update" : "מכין עדכון",
- "[%d / %d]: %s" : "[%d / %d]: %s",
- "Repair warning: " : "אזהרת תיקון:",
- "Repair error: " : "שגיאת תיקון:",
- "Please use the command line updater because automatic updating is disabled in the config.php." : "יש להשתמש בעדכון על בסיס שורת פקודה כיוון שעדכון אוטומטי מנוטרל בקובץ config.php.",
- "[%d / %d]: Checking table %s" : "[%d / %d]: בודק טבלה %s",
- "Turned on maintenance mode" : "הפעלת מצב אחזקה",
- "Turned off maintenance mode" : "כיבוי מצב אחזקה",
- "Maintenance mode is kept active" : "מצב אחזקה נשמר פעיל",
- "Updating database schema" : "עדכון סכימת מסד נתונים",
- "Updated database" : "עדכון מסד נתונים",
- "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "בודק אם סכימת מסד הנתונים ניתנת לעדכון (פעולה זו יכולה להמשך זמן רב תלוי בגודל מסד הנתונים)",
- "Checked database schema update" : "עדכון סכימת מסד נתונים נבדק",
- "Checking updates of apps" : "בדיקת עדכוני יישומים",
- "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "בודק אם סכימת מסד הנתונים עבור %s ניתנת לעדכון (פעולה זו יכולה להמשך זמן רב תלוי בגודל מסד הנתונים)",
- "Checked database schema update for apps" : "עדכון סכימת מסד נתונים ליישומים נבדק",
- "Updated \"%s\" to %s" : "מעדכן \"%s\" ל- %s",
- "Set log level to debug" : "קביעת רמת דיווח לתהליך ניפוי בשגיאות",
- "Reset log level" : "קביעה מחדש לרמת דיווח",
- "Starting code integrity check" : "התחלת בדיקת תקינות קוד",
- "Finished code integrity check" : "סיום בדיקת תקינות קוד",
- "%s (3rdparty)" : "%s (צד שלישי)",
- "%s (incompatible)" : "%s (לא תואם)",
- "Following apps have been disabled: %s" : "היישומים הבאים נוטרלו: %s",
- "Already up to date" : "כבר עדכני",
- "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">קיימות בעיות עם בדיקת תקינות קוד. למידע נוסף…</a>",
- "Settings" : "הגדרות",
- "Saving..." : "שמירה…",
- "Dismiss" : "שחרור",
- "Password" : "סיסמא",
- "Cancel" : "ביטול",
- "seconds ago" : "שניות",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "הקישור לאיפוס הסיסמא שלך נשלח אליך בדואר אלקטרוני. אם לא קיבלת את הקישור תוך זמן סביר, מוטב לבדוק את תיבת דואר הזבל/ספאם שלך.<br>אם ההודעה אינה שם, יש לשאול את המנהל המקומי שלך .",
- "I know what I'm doing" : "אני יודע/ת מה אני עושה",
- "Password can not be changed. Please contact your administrator." : "לא ניתן לשנות את הסיסמא. יש לפנות למנהל שלך.",
- "No" : "לא",
- "Yes" : "כן",
- "Choose" : "בחירה",
- "Error loading file picker template: {error}" : "שגיאה בטעינת תבנית בחירת הקבצים: {error}",
- "Error loading message template: {error}" : "שגיאה בטעינת תבנית ההודעות: {error}",
- "read-only" : "לקריאה בלבד",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} הנגשות קובץ","{count} התנגשויות קבצים"],
- "One file conflict" : "התנגשות קובץ אחת",
- "New Files" : "קבצים חדשים",
- "Already existing files" : "קבצים קיימים כבר",
- "Which files do you want to keep?" : "אילו קבצים ברצונך לשמור?",
- "If you select both versions, the copied file will have a number added to its name." : "אם תבחר האפשרות לשמור את שתי הגרסאות, לשם קובץ המועתק יתווסף מספר.",
- "Continue" : "המשך",
- "(all selected)" : "(הכול נבחר)",
- "({count} selected)" : "({count} נבחרו)",
- "Error loading file exists template" : "שגיאה בטעינת קובץ תבנית קיימים",
- "Very weak password" : "סיסמא מאוד חלשה",
- "Weak password" : "סיסמא חלשה",
- "So-so password" : "סיסמא ככה-ככה",
- "Good password" : "סיסמא טובה",
- "Strong password" : "סיסמא חזקה",
- "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "שרת האינטרנט שלך אינו מוגדר כהלכה לאפשר סנכרון כיוון שממשק ה־WebDAV כנראה שבור.",
- "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "שרת האינטרנט שלך לא מוגדר כהלכה לפתור \"{url}\". מידע נוסף קיים <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">במסמכים</a> שלנו.",
- "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "לא הוגדר זיכרון מטמון. על מנת לשפר את הביצועים יש להגדיר memcache אם קיים. מידע נוסף ניתן לצפות ב- <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">מסמכי התיעוד</a>.",
- "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "/dev/urandom אינו ניתן לקריאה על ידי PHP אשר אינו מומלץ בשל סיבות אבטחה. מידע נוסף ניתן לראות ב- <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">מסמכי התיעוד</a> שלנו.",
- "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "כרגע המערכת מריצה PHP {version}. מומלץ מאוד לשדרג את גרסת ה- PHP vשלך כדי לנצל את <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">עדכוני הביצועים והאבטחה המופקים על ידי קבוצת ה- PHP</a> ברגע שההפצה אליך תתמוך בזה.",
- "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached מוגדר כמטמון מופץ, אבל מותקן מודול PHP \"memcache\" מוטעה. רק \\OC\\Memcache\\Memcached תומך ב- \"memcached\" אבל לא ב- \"memcache\". ניתן לצפות ב- <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki בנושא שני המודולים</a>.",
- "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "חלק מהקבצים לא עברו את בדיקת השלמות. מידע נוסף איך לפתור את הבעיה ניתן למצוא ב- to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">מסמכי התיעוד</a> שלנו. (<a href=\"{codeIntegrityDownloadEndpoint}\">רשימה של קבצים לא תקינים…</a> / <a href=\"{rescanEndpoint}\">סריקה מחדש…</a>)",
- "Error occurred while checking server setup" : "שגיאה אירעה בזמן בדיקת התקנת השרת",
- "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "כותרת ה- HTTP \"{header}\" אינה מוגדרת להיות שווה ל- \"{expected}\". הדבר מהווה פוטנציאל סיכון אבטחה או פגיעה בפרטיות ואנו ממליצים לתקן את הגדרה זו.",
- "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "כותרת HTTP \"Strict-Transport-Security\" אינה מוגדרת לפחות \"{seconds}\" שניות. להגברת האבטחה אנו ממליצים לאפשר HSTS כפי שמוסבר ב- <a href=\"{docUrl}\" rel=\"noreferrer\">טיפים לאבטחה</a> שלנו.",
- "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "הנך נכנס לאתר באמצעות פרוטוקול HTTP. אנו ממליצים מאוד להגדיר את השרת לעבוד עם פרוטוקול HTTPS במקום כפי שמוסבר ב- <a href=\"{docUrl}\">טיפים לאבטחה</a> שלנו.",
- "Shared" : "שותף",
- "Shared with {recipients}" : "שיתוף עם {recipients}",
- "Error" : "שגיאה",
- "Error while sharing" : "שגיאה במהלך השיתוף",
- "Error while unsharing" : "שגיאה במהלך ביטול השיתוף",
- "Error setting expiration date" : "אירעה שגיאה בעת הגדרת תאריך התפוגה",
- "The public link will expire no later than {days} days after it is created" : "הקישור הציבורי יפוג עד {days} ימים לאחר שנוצר",
- "Set expiration date" : "הגדרת תאריך תפוגה",
- "Expiration" : "תפוגה",
- "Expiration date" : "תאריך התפוגה",
- "Choose a password for the public link" : "בחירת סיסמא לקישור ציבורי",
- "Resharing is not allowed" : "אסור לעשות שיתוף מחדש",
- "Share link" : "קישור לשיתוף",
- "Link" : "קישור",
- "Password protect" : "הגנה בססמה",
- "Allow editing" : "אישור עריכה",
- "Email link to person" : "שליחת קישור בדוא״ל למשתמש",
- "Send" : "שליחה",
- "Shared with you and the group {group} by {owner}" : "שותף אתך ועם הקבוצה {group} שבבעלות {owner}",
- "Shared with you by {owner}" : "שותף אתך על ידי {owner}",
- "group" : "קבוצה",
- "remote" : "נשלט מרחוק",
- "Unshare" : "הסר שיתוף",
- "Could not unshare" : "לא ניתן לבטל שיתוף",
- "Share details could not be loaded for this item." : "לא ניתן היה לטעון מידע שיתוף לפריט זה",
- "No users or groups found for {search}" : "לא אותרו משתמשים או קבוצות עבור {search}",
- "No users found for {search}" : "לא אותרו משתמשים עבור {search}",
- "An error occurred. Please try again" : "אירעה שגיאה. יש לנסות שנית",
- "{sharee} (group)" : "{sharee} (קבוצה)",
- "{sharee} (remote)" : "{sharee} (מרוחק)",
- "Share" : "שתף",
- "Error removing share" : "שגיאה בזמן הסרת שיתוף",
- "Non-existing tag #{tag}" : "תגית לא קיימת #{tag}",
- "restricted" : "מוגבל",
- "invisible" : "בלתי גלוי",
- "({scope})" : "({scope})",
- "Delete" : "מחיקה",
- "Rename" : "שינוי שם",
- "Collaborative tags" : "תגיות שיתופיות",
- "The object type is not specified." : "סוג הפריט לא צוין.",
- "Enter new" : "הכנסת חדש",
- "Add" : "הוספה",
- "Edit tags" : "עריכת תגים",
- "Error loading dialog template: {error}" : "שגיאה בזמן טעינת תבנית דיאלוג: {error}",
- "No tags selected for deletion." : "לא סומנו תגים למחיקה.",
- "unknown text" : "מלל לא מוכר",
- "Hello world!" : "שלום עולם!",
- "sunny" : "שמשי",
- "Hello {name}, the weather is {weather}" : "שלום {name}, מזג האוויר הנו {weather}",
- "Hello {name}" : "שלום {name}",
- "new" : "חדש",
- "_download %n file_::_download %n files_" : ["הורד %n קובץ","הורדו %n קבצים"],
- "An error occurred." : "אירעה שגיאה.",
- "Please reload the page." : "יש להעלות מחדש דף זה.",
- "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "העדכון בוצע בהצלחה. למידע נוסף <a href=\"{url}\">ניתן לבדוק בהודעת הפורום שלנו</a> המכסה נושא זו.",
- "Searching other places" : "מחפש במקומות אחרים",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} תוצאת חיפוש בתיקייה אחרות","{count} תוצאות חיפוש בתיקיות אחרות"],
- "Personal" : "אישי",
- "Users" : "משתמשים",
- "Apps" : "יישומים",
- "Admin" : "מנהל",
- "Help" : "עזרה",
- "Access forbidden" : "הגישה נחסמה",
- "File not found" : "קובץ לא נמצא",
- "The specified document has not been found on the server." : "המסמך המבוקש לא נמצא על השרת.",
- "You can click here to return to %s." : "ניתן ללחוץ כאן לחזרה אל %s.",
- "Internal Server Error" : "שגיאה פנימית בשרת",
- "The server encountered an internal error and was unable to complete your request." : "השרת נתקל בשגיאה פנימית ולא הצליח לסיים את הבקשה שלך.",
- "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "יש ליצור קשר עם מנהל השרת אם שגיאה זו חוזרת מספר פעמים, יש לצרף לדיווח את הפרטים הטכניים למטה.",
- "More details can be found in the server log." : "פרטים נוספים ניתן למצוא בלוג של הרשת.",
- "Technical details" : "פרטים טכנים",
- "Remote Address: %s" : "כתובת מרוחקת: %s",
- "Request ID: %s" : "מספר זיהוי מבוקש: %s",
- "Type: %s" : "סוג: %s",
- "Code: %s" : "קוד: %s",
- "Message: %s" : "הודעה: %s",
- "File: %s" : "קובץ: %s",
- "Line: %s" : "שורה: %s",
- "Trace" : "עקבות",
- "Security warning" : "אזהרת אבטחה",
- "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "תיקיית וקבצי המידע שלך כנראה נגישים מהאינטרנט מכיוון שקובץ ה.htaccess לא עובד.",
- "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "למידע בנוגע להגדרה מיטבית של השרת שלך, ניתן לצפות ב- <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">תיעוד</a>.",
- "Create an <strong>admin account</strong>" : "יצירת <strong>חשבון מנהל</strong>",
- "Username" : "שם משתמש",
- "Storage & database" : "אחסון ומסד נתונים",
- "Data folder" : "תיקיית נתונים",
- "Configure the database" : "הגדרת מסד הנתונים",
- "Only %s is available." : "רק %s זמין.",
- "Install and activate additional PHP modules to choose other database types." : "לבחירת סוגים אחרים של מסדי נתונים יש להתקין ולהפעיל מודולי PHP נוספים.",
- "For more details check out the documentation." : "למידע נוסף יש לבדוק במסמכי התיעוד.",
- "Database user" : "שם משתמש במסד הנתונים",
- "Database password" : "ססמת מסד הנתונים",
- "Database name" : "שם מסד הנתונים",
- "Database tablespace" : "מרחב הכתובות של מסד הנתונים",
- "Database host" : "שרת בסיס נתונים",
- "Performance warning" : "אזהרת ביצועים",
- "SQLite will be used as database." : "יעשה שימוש ב- SQLite כמסד נתונים.",
- "For larger installations we recommend to choose a different database backend." : "להתקנות נרחבות אנו ממליצים לבחור מסד נתונים אחר לצד השרת.",
- "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "במיוחד כאשר משתמשים במחשב שולחני לסנכרון קבצים השימוש ב SQLite אינו מומלץ.",
- "Finish setup" : "סיום התקנה",
- "Finishing …" : "מסיים...",
- "Need help?" : "עזרה נזקקת?",
- "See the documentation" : "יש לצפות במסמכי התיעוד",
- "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "יישום זה דורש JavaScript לפעולה נכונה. יש {linkstart}לאפשר JavaScript{linkend} ולטעון את העמוד מחדש.",
- "Search" : "חיפוש",
- "Server side authentication failed!" : "אימות לצד שרת נכשל!",
- "Please contact your administrator." : "יש ליצור קשר עם המנהל.",
- "An internal error occurred." : "אירעה שגיאה פנימית.",
- "Please try again or contact your administrator." : "יש לנסות שוב ליצור קשר עם המנהל שלך.",
- "Username or email" : "שם משתמש או דואר אלקטרוני",
- "Wrong password. Reset it?" : "סיסמא שגוייה. האם לאפס אותה?",
- "Wrong password." : "סיסמא שגוייה.",
- "Log in" : "כניסה",
- "Stay logged in" : "השאר מחובר",
- "Alternative Logins" : "כניסות אלטרנטיביות",
- "New password" : "ססמה חדשה",
- "New Password" : "סיסמא חדשה",
- "Reset password" : "איפוס ססמה",
- "This Nextcloud instance is currently in single user mode." : "הפעלת Nextcloud זו עובדת כרגע במצב של משתמש יחיד.",
- "This means only administrators can use the instance." : "לפיכך רק מנהלים יכולים להשתמש בהפעלה זו.",
- "Contact your system administrator if this message persists or appeared unexpectedly." : "יש ליצור קשר עם מנהל המערכת אם הודעה שו נמשכת או מופיעה באופן בלתי צפוי. ",
- "Thank you for your patience." : "תודה על הסבלנות.",
- "Log out" : "התנתקות",
- "You are accessing the server from an untrusted domain." : "נכנסת לשרת משם מתחם / דומיין שאינו מהימן.",
- "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "יש ליצור קשר עם המנהל שלך. אם הנך המנהל של הפעלה זו, יש להגדיר את הגדרות ה- \"trusted_domains\" של config/config.php. דוגמת תצורה ניתן לראות ב- config/config.sample.php.",
- "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "בהתאם לתצורה שלך, כמנהל יתכן ותוכל להשתמש בכפתור מטה להפיכת שם המתחם / דומיין למהימן.",
- "Add \"%s\" as trusted domain" : "הוספת \"%s\" כשם מתחם / דומיין מהימן",
- "App update required" : "נדרש עדכון יישום",
- "%s will be updated to version %s" : "%s יעודכן לגרסה %s",
- "These apps will be updated:" : "יישומים אלו יעודכנו:",
- "These incompatible apps will be disabled:" : "יישומים לא תואמים ינוטרלו:",
- "The theme %s has been disabled." : "ערכת הנושא %s נוטרלה.",
- "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "יש לוודא שמסד הנתונים, תיקיית config ותיקיית data גובו לפני ההמשך.",
- "Start update" : "התחלת עדכון",
- "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "למניעת פסקי זמן בהתקנות גדולות, ניתן במקום להריץ את הפקודה הבאה בתיקיית ההתקנה שלך:",
- "Detailed logs" : "לוג פרטים",
- "Update needed" : "עדכון נדרש",
- "Please use the command line updater because you have a big instance." : "יש להשתמש בעדכון על בסיס שורת פקודה כיוון שמדובר בעדכון גדול.",
- "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "לעזרה, ניתן לצפות ב<a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">מסמכי התיעוד</a>.",
- "This %s instance is currently in maintenance mode, which may take a while." : "הפעלה %s זו כרגע במצב אחזקה, שתמשך זמן מה.",
- "This page will refresh itself when the %s instance is available again." : "עמוד זה ירענן את עצמו כשהפעלת %s תהיה זמינה שוב.",
- "Problem loading page, reloading in 5 seconds" : "בעיה בטעינת העמוד, טעינה מחדש בעוד 5 שניות.",
- "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "הקבצים שלך מוצפנים. אם לא הפעלת את מפתח השחזור, לא תהיה דרך לקבל את המידע מחדש אחרי שהסיסמא תאופס.<br />אם אין לך מושג מה לעשות what to do, מוטב לפנות למנהל שלך לפני ההמשך. <br />האם באמת ברצונך להמשיך?",
- "Ok" : "בסדר",
- "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "כנראה וניתן לגשת אל תיקיית data והקבצים שלך מהאינטרנט. קובץ .htaccess אינו עובד. אנו ממליצים בכל תוקף שתגדיר את השרת בצורה כזאת שלא ניתן יהיה לגשת לתיקיית ה- data או להעביר את תיקיית ה- dta מחוץ לנתיב המסמכים של שרת האינטרנט.",
- "can edit" : "ניתן לערוך",
- "access control" : "בקרת גישה",
- "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "שלום רב,\n\nרצינו לעדכן אותך ש- %s שיתף/שיתפה %s איתך.\nניתן לצפות בשיתוף כאן: %s\n\n",
- "The share will expire on %s." : "השיתוף יפוג תוקף ב- %s.",
- "Cheers!" : "לחיים!",
- "Use the following link to reset your password: {link}" : "יש להשתמש בקישור הבא כדי לאפס את הססמה שלך: {link}",
- "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "הי לך,<br><br>כדאי לך לדעת ש- %s משתף/פת <strong>%s</strong> אתך.<br><a href=\"%s\">לצפייה!</a><br><br>"
-},
-"nplurals=2; plural=(n != 1);");
diff --git a/core/l10n/he.json b/core/l10n/he.json
deleted file mode 100644
index 6a5f159c8e9..00000000000
--- a/core/l10n/he.json
+++ /dev/null
@@ -1,239 +0,0 @@
-{ "translations": {
- "Please select a file." : "יש לבחור קובץ.",
- "File is too big" : "הקובץ גדול מדי",
- "Invalid file provided" : "סופק קובץ לא חוקי",
- "No image or file provided" : "לא סופקו תמונה או קובץ",
- "Unknown filetype" : "סוג קובץ לא מוכר",
- "Invalid image" : "תמונה לא חוקית",
- "An error occurred. Please contact your admin." : "אירעה שגיאה. יש ליצור קשר עם המנהל שלך.",
- "No temporary profile picture available, try again" : "לא קיימת תמונת פרופיל זמנית, יש לנסות שוב",
- "No crop data provided" : "לא סופק מידע קיטום",
- "No valid crop data provided" : "לא סופק מידע קיטום חוקי",
- "Crop is not square" : "הקיטום אינו מרובע",
- "Couldn't reset password because the token is invalid" : "לא ניתן לאפס סיסמא כיוון שמחרוזת האימות אינה חוקית",
- "Couldn't reset password because the token is expired" : "לא ניתן לאפס סיסמא כיוון שמחרוזת האימות פגה תוקף",
- "Could not send reset email because there is no email address for this username. Please contact your administrator." : "לא ניתן היה לשלוח דואר אלקטרוני כיוון שלא מוגדר דואר אלקטרוני למשתמש זה. יש ליצור קשר עם מנהל.",
- "%s password reset" : "%s הסיסמא אופסה",
- "Couldn't send reset email. Please contact your administrator." : "לא ניתן היה לשלוח דואר אלקטרוני לאיפוס. יש לפנות למנהל שלך.",
- "Couldn't send reset email. Please make sure your username is correct." : "לא ניתן היה לשלוח דואר אלקטרוני לאיפוס. יש לוודא ששם המשתמש נכון.",
- "Preparing update" : "מכין עדכון",
- "[%d / %d]: %s" : "[%d / %d]: %s",
- "Repair warning: " : "אזהרת תיקון:",
- "Repair error: " : "שגיאת תיקון:",
- "Please use the command line updater because automatic updating is disabled in the config.php." : "יש להשתמש בעדכון על בסיס שורת פקודה כיוון שעדכון אוטומטי מנוטרל בקובץ config.php.",
- "[%d / %d]: Checking table %s" : "[%d / %d]: בודק טבלה %s",
- "Turned on maintenance mode" : "הפעלת מצב אחזקה",
- "Turned off maintenance mode" : "כיבוי מצב אחזקה",
- "Maintenance mode is kept active" : "מצב אחזקה נשמר פעיל",
- "Updating database schema" : "עדכון סכימת מסד נתונים",
- "Updated database" : "עדכון מסד נתונים",
- "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "בודק אם סכימת מסד הנתונים ניתנת לעדכון (פעולה זו יכולה להמשך זמן רב תלוי בגודל מסד הנתונים)",
- "Checked database schema update" : "עדכון סכימת מסד נתונים נבדק",
- "Checking updates of apps" : "בדיקת עדכוני יישומים",
- "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "בודק אם סכימת מסד הנתונים עבור %s ניתנת לעדכון (פעולה זו יכולה להמשך זמן רב תלוי בגודל מסד הנתונים)",
- "Checked database schema update for apps" : "עדכון סכימת מסד נתונים ליישומים נבדק",
- "Updated \"%s\" to %s" : "מעדכן \"%s\" ל- %s",
- "Set log level to debug" : "קביעת רמת דיווח לתהליך ניפוי בשגיאות",
- "Reset log level" : "קביעה מחדש לרמת דיווח",
- "Starting code integrity check" : "התחלת בדיקת תקינות קוד",
- "Finished code integrity check" : "סיום בדיקת תקינות קוד",
- "%s (3rdparty)" : "%s (צד שלישי)",
- "%s (incompatible)" : "%s (לא תואם)",
- "Following apps have been disabled: %s" : "היישומים הבאים נוטרלו: %s",
- "Already up to date" : "כבר עדכני",
- "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">קיימות בעיות עם בדיקת תקינות קוד. למידע נוסף…</a>",
- "Settings" : "הגדרות",
- "Saving..." : "שמירה…",
- "Dismiss" : "שחרור",
- "Password" : "סיסמא",
- "Cancel" : "ביטול",
- "seconds ago" : "שניות",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "הקישור לאיפוס הסיסמא שלך נשלח אליך בדואר אלקטרוני. אם לא קיבלת את הקישור תוך זמן סביר, מוטב לבדוק את תיבת דואר הזבל/ספאם שלך.<br>אם ההודעה אינה שם, יש לשאול את המנהל המקומי שלך .",
- "I know what I'm doing" : "אני יודע/ת מה אני עושה",
- "Password can not be changed. Please contact your administrator." : "לא ניתן לשנות את הסיסמא. יש לפנות למנהל שלך.",
- "No" : "לא",
- "Yes" : "כן",
- "Choose" : "בחירה",
- "Error loading file picker template: {error}" : "שגיאה בטעינת תבנית בחירת הקבצים: {error}",
- "Error loading message template: {error}" : "שגיאה בטעינת תבנית ההודעות: {error}",
- "read-only" : "לקריאה בלבד",
- "_{count} file conflict_::_{count} file conflicts_" : ["{count} הנגשות קובץ","{count} התנגשויות קבצים"],
- "One file conflict" : "התנגשות קובץ אחת",
- "New Files" : "קבצים חדשים",
- "Already existing files" : "קבצים קיימים כבר",
- "Which files do you want to keep?" : "אילו קבצים ברצונך לשמור?",
- "If you select both versions, the copied file will have a number added to its name." : "אם תבחר האפשרות לשמור את שתי הגרסאות, לשם קובץ המועתק יתווסף מספר.",
- "Continue" : "המשך",
- "(all selected)" : "(הכול נבחר)",
- "({count} selected)" : "({count} נבחרו)",
- "Error loading file exists template" : "שגיאה בטעינת קובץ תבנית קיימים",
- "Very weak password" : "סיסמא מאוד חלשה",
- "Weak password" : "סיסמא חלשה",
- "So-so password" : "סיסמא ככה-ככה",
- "Good password" : "סיסמא טובה",
- "Strong password" : "סיסמא חזקה",
- "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "שרת האינטרנט שלך אינו מוגדר כהלכה לאפשר סנכרון כיוון שממשק ה־WebDAV כנראה שבור.",
- "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "שרת האינטרנט שלך לא מוגדר כהלכה לפתור \"{url}\". מידע נוסף קיים <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">במסמכים</a> שלנו.",
- "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "לא הוגדר זיכרון מטמון. על מנת לשפר את הביצועים יש להגדיר memcache אם קיים. מידע נוסף ניתן לצפות ב- <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">מסמכי התיעוד</a>.",
- "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "/dev/urandom אינו ניתן לקריאה על ידי PHP אשר אינו מומלץ בשל סיבות אבטחה. מידע נוסף ניתן לראות ב- <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">מסמכי התיעוד</a> שלנו.",
- "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "כרגע המערכת מריצה PHP {version}. מומלץ מאוד לשדרג את גרסת ה- PHP vשלך כדי לנצל את <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">עדכוני הביצועים והאבטחה המופקים על ידי קבוצת ה- PHP</a> ברגע שההפצה אליך תתמוך בזה.",
- "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached מוגדר כמטמון מופץ, אבל מותקן מודול PHP \"memcache\" מוטעה. רק \\OC\\Memcache\\Memcached תומך ב- \"memcached\" אבל לא ב- \"memcache\". ניתן לצפות ב- <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki בנושא שני המודולים</a>.",
- "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "חלק מהקבצים לא עברו את בדיקת השלמות. מידע נוסף איך לפתור את הבעיה ניתן למצוא ב- to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">מסמכי התיעוד</a> שלנו. (<a href=\"{codeIntegrityDownloadEndpoint}\">רשימה של קבצים לא תקינים…</a> / <a href=\"{rescanEndpoint}\">סריקה מחדש…</a>)",
- "Error occurred while checking server setup" : "שגיאה אירעה בזמן בדיקת התקנת השרת",
- "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "כותרת ה- HTTP \"{header}\" אינה מוגדרת להיות שווה ל- \"{expected}\". הדבר מהווה פוטנציאל סיכון אבטחה או פגיעה בפרטיות ואנו ממליצים לתקן את הגדרה זו.",
- "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "כותרת HTTP \"Strict-Transport-Security\" אינה מוגדרת לפחות \"{seconds}\" שניות. להגברת האבטחה אנו ממליצים לאפשר HSTS כפי שמוסבר ב- <a href=\"{docUrl}\" rel=\"noreferrer\">טיפים לאבטחה</a> שלנו.",
- "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "הנך נכנס לאתר באמצעות פרוטוקול HTTP. אנו ממליצים מאוד להגדיר את השרת לעבוד עם פרוטוקול HTTPS במקום כפי שמוסבר ב- <a href=\"{docUrl}\">טיפים לאבטחה</a> שלנו.",
- "Shared" : "שותף",
- "Shared with {recipients}" : "שיתוף עם {recipients}",
- "Error" : "שגיאה",
- "Error while sharing" : "שגיאה במהלך השיתוף",
- "Error while unsharing" : "שגיאה במהלך ביטול השיתוף",
- "Error setting expiration date" : "אירעה שגיאה בעת הגדרת תאריך התפוגה",
- "The public link will expire no later than {days} days after it is created" : "הקישור הציבורי יפוג עד {days} ימים לאחר שנוצר",
- "Set expiration date" : "הגדרת תאריך תפוגה",
- "Expiration" : "תפוגה",
- "Expiration date" : "תאריך התפוגה",
- "Choose a password for the public link" : "בחירת סיסמא לקישור ציבורי",
- "Resharing is not allowed" : "אסור לעשות שיתוף מחדש",
- "Share link" : "קישור לשיתוף",
- "Link" : "קישור",
- "Password protect" : "הגנה בססמה",
- "Allow editing" : "אישור עריכה",
- "Email link to person" : "שליחת קישור בדוא״ל למשתמש",
- "Send" : "שליחה",
- "Shared with you and the group {group} by {owner}" : "שותף אתך ועם הקבוצה {group} שבבעלות {owner}",
- "Shared with you by {owner}" : "שותף אתך על ידי {owner}",
- "group" : "קבוצה",
- "remote" : "נשלט מרחוק",
- "Unshare" : "הסר שיתוף",
- "Could not unshare" : "לא ניתן לבטל שיתוף",
- "Share details could not be loaded for this item." : "לא ניתן היה לטעון מידע שיתוף לפריט זה",
- "No users or groups found for {search}" : "לא אותרו משתמשים או קבוצות עבור {search}",
- "No users found for {search}" : "לא אותרו משתמשים עבור {search}",
- "An error occurred. Please try again" : "אירעה שגיאה. יש לנסות שנית",
- "{sharee} (group)" : "{sharee} (קבוצה)",
- "{sharee} (remote)" : "{sharee} (מרוחק)",
- "Share" : "שתף",
- "Error removing share" : "שגיאה בזמן הסרת שיתוף",
- "Non-existing tag #{tag}" : "תגית לא קיימת #{tag}",
- "restricted" : "מוגבל",
- "invisible" : "בלתי גלוי",
- "({scope})" : "({scope})",
- "Delete" : "מחיקה",
- "Rename" : "שינוי שם",
- "Collaborative tags" : "תגיות שיתופיות",
- "The object type is not specified." : "סוג הפריט לא צוין.",
- "Enter new" : "הכנסת חדש",
- "Add" : "הוספה",
- "Edit tags" : "עריכת תגים",
- "Error loading dialog template: {error}" : "שגיאה בזמן טעינת תבנית דיאלוג: {error}",
- "No tags selected for deletion." : "לא סומנו תגים למחיקה.",
- "unknown text" : "מלל לא מוכר",
- "Hello world!" : "שלום עולם!",
- "sunny" : "שמשי",
- "Hello {name}, the weather is {weather}" : "שלום {name}, מזג האוויר הנו {weather}",
- "Hello {name}" : "שלום {name}",
- "new" : "חדש",
- "_download %n file_::_download %n files_" : ["הורד %n קובץ","הורדו %n קבצים"],
- "An error occurred." : "אירעה שגיאה.",
- "Please reload the page." : "יש להעלות מחדש דף זה.",
- "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "העדכון בוצע בהצלחה. למידע נוסף <a href=\"{url}\">ניתן לבדוק בהודעת הפורום שלנו</a> המכסה נושא זו.",
- "Searching other places" : "מחפש במקומות אחרים",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} תוצאת חיפוש בתיקייה אחרות","{count} תוצאות חיפוש בתיקיות אחרות"],
- "Personal" : "אישי",
- "Users" : "משתמשים",
- "Apps" : "יישומים",
- "Admin" : "מנהל",
- "Help" : "עזרה",
- "Access forbidden" : "הגישה נחסמה",
- "File not found" : "קובץ לא נמצא",
- "The specified document has not been found on the server." : "המסמך המבוקש לא נמצא על השרת.",
- "You can click here to return to %s." : "ניתן ללחוץ כאן לחזרה אל %s.",
- "Internal Server Error" : "שגיאה פנימית בשרת",
- "The server encountered an internal error and was unable to complete your request." : "השרת נתקל בשגיאה פנימית ולא הצליח לסיים את הבקשה שלך.",
- "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "יש ליצור קשר עם מנהל השרת אם שגיאה זו חוזרת מספר פעמים, יש לצרף לדיווח את הפרטים הטכניים למטה.",
- "More details can be found in the server log." : "פרטים נוספים ניתן למצוא בלוג של הרשת.",
- "Technical details" : "פרטים טכנים",
- "Remote Address: %s" : "כתובת מרוחקת: %s",
- "Request ID: %s" : "מספר זיהוי מבוקש: %s",
- "Type: %s" : "סוג: %s",
- "Code: %s" : "קוד: %s",
- "Message: %s" : "הודעה: %s",
- "File: %s" : "קובץ: %s",
- "Line: %s" : "שורה: %s",
- "Trace" : "עקבות",
- "Security warning" : "אזהרת אבטחה",
- "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "תיקיית וקבצי המידע שלך כנראה נגישים מהאינטרנט מכיוון שקובץ ה.htaccess לא עובד.",
- "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "למידע בנוגע להגדרה מיטבית של השרת שלך, ניתן לצפות ב- <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">תיעוד</a>.",
- "Create an <strong>admin account</strong>" : "יצירת <strong>חשבון מנהל</strong>",
- "Username" : "שם משתמש",
- "Storage & database" : "אחסון ומסד נתונים",
- "Data folder" : "תיקיית נתונים",
- "Configure the database" : "הגדרת מסד הנתונים",
- "Only %s is available." : "רק %s זמין.",
- "Install and activate additional PHP modules to choose other database types." : "לבחירת סוגים אחרים של מסדי נתונים יש להתקין ולהפעיל מודולי PHP נוספים.",
- "For more details check out the documentation." : "למידע נוסף יש לבדוק במסמכי התיעוד.",
- "Database user" : "שם משתמש במסד הנתונים",
- "Database password" : "ססמת מסד הנתונים",
- "Database name" : "שם מסד הנתונים",
- "Database tablespace" : "מרחב הכתובות של מסד הנתונים",
- "Database host" : "שרת בסיס נתונים",
- "Performance warning" : "אזהרת ביצועים",
- "SQLite will be used as database." : "יעשה שימוש ב- SQLite כמסד נתונים.",
- "For larger installations we recommend to choose a different database backend." : "להתקנות נרחבות אנו ממליצים לבחור מסד נתונים אחר לצד השרת.",
- "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "במיוחד כאשר משתמשים במחשב שולחני לסנכרון קבצים השימוש ב SQLite אינו מומלץ.",
- "Finish setup" : "סיום התקנה",
- "Finishing …" : "מסיים...",
- "Need help?" : "עזרה נזקקת?",
- "See the documentation" : "יש לצפות במסמכי התיעוד",
- "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "יישום זה דורש JavaScript לפעולה נכונה. יש {linkstart}לאפשר JavaScript{linkend} ולטעון את העמוד מחדש.",
- "Search" : "חיפוש",
- "Server side authentication failed!" : "אימות לצד שרת נכשל!",
- "Please contact your administrator." : "יש ליצור קשר עם המנהל.",
- "An internal error occurred." : "אירעה שגיאה פנימית.",
- "Please try again or contact your administrator." : "יש לנסות שוב ליצור קשר עם המנהל שלך.",
- "Username or email" : "שם משתמש או דואר אלקטרוני",
- "Wrong password. Reset it?" : "סיסמא שגוייה. האם לאפס אותה?",
- "Wrong password." : "סיסמא שגוייה.",
- "Log in" : "כניסה",
- "Stay logged in" : "השאר מחובר",
- "Alternative Logins" : "כניסות אלטרנטיביות",
- "New password" : "ססמה חדשה",
- "New Password" : "סיסמא חדשה",
- "Reset password" : "איפוס ססמה",
- "This Nextcloud instance is currently in single user mode." : "הפעלת Nextcloud זו עובדת כרגע במצב של משתמש יחיד.",
- "This means only administrators can use the instance." : "לפיכך רק מנהלים יכולים להשתמש בהפעלה זו.",
- "Contact your system administrator if this message persists or appeared unexpectedly." : "יש ליצור קשר עם מנהל המערכת אם הודעה שו נמשכת או מופיעה באופן בלתי צפוי. ",
- "Thank you for your patience." : "תודה על הסבלנות.",
- "Log out" : "התנתקות",
- "You are accessing the server from an untrusted domain." : "נכנסת לשרת משם מתחם / דומיין שאינו מהימן.",
- "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "יש ליצור קשר עם המנהל שלך. אם הנך המנהל של הפעלה זו, יש להגדיר את הגדרות ה- \"trusted_domains\" של config/config.php. דוגמת תצורה ניתן לראות ב- config/config.sample.php.",
- "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "בהתאם לתצורה שלך, כמנהל יתכן ותוכל להשתמש בכפתור מטה להפיכת שם המתחם / דומיין למהימן.",
- "Add \"%s\" as trusted domain" : "הוספת \"%s\" כשם מתחם / דומיין מהימן",
- "App update required" : "נדרש עדכון יישום",
- "%s will be updated to version %s" : "%s יעודכן לגרסה %s",
- "These apps will be updated:" : "יישומים אלו יעודכנו:",
- "These incompatible apps will be disabled:" : "יישומים לא תואמים ינוטרלו:",
- "The theme %s has been disabled." : "ערכת הנושא %s נוטרלה.",
- "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "יש לוודא שמסד הנתונים, תיקיית config ותיקיית data גובו לפני ההמשך.",
- "Start update" : "התחלת עדכון",
- "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "למניעת פסקי זמן בהתקנות גדולות, ניתן במקום להריץ את הפקודה הבאה בתיקיית ההתקנה שלך:",
- "Detailed logs" : "לוג פרטים",
- "Update needed" : "עדכון נדרש",
- "Please use the command line updater because you have a big instance." : "יש להשתמש בעדכון על בסיס שורת פקודה כיוון שמדובר בעדכון גדול.",
- "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "לעזרה, ניתן לצפות ב<a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">מסמכי התיעוד</a>.",
- "This %s instance is currently in maintenance mode, which may take a while." : "הפעלה %s זו כרגע במצב אחזקה, שתמשך זמן מה.",
- "This page will refresh itself when the %s instance is available again." : "עמוד זה ירענן את עצמו כשהפעלת %s תהיה זמינה שוב.",
- "Problem loading page, reloading in 5 seconds" : "בעיה בטעינת העמוד, טעינה מחדש בעוד 5 שניות.",
- "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "הקבצים שלך מוצפנים. אם לא הפעלת את מפתח השחזור, לא תהיה דרך לקבל את המידע מחדש אחרי שהסיסמא תאופס.<br />אם אין לך מושג מה לעשות what to do, מוטב לפנות למנהל שלך לפני ההמשך. <br />האם באמת ברצונך להמשיך?",
- "Ok" : "בסדר",
- "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "כנראה וניתן לגשת אל תיקיית data והקבצים שלך מהאינטרנט. קובץ .htaccess אינו עובד. אנו ממליצים בכל תוקף שתגדיר את השרת בצורה כזאת שלא ניתן יהיה לגשת לתיקיית ה- data או להעביר את תיקיית ה- dta מחוץ לנתיב המסמכים של שרת האינטרנט.",
- "can edit" : "ניתן לערוך",
- "access control" : "בקרת גישה",
- "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "שלום רב,\n\nרצינו לעדכן אותך ש- %s שיתף/שיתפה %s איתך.\nניתן לצפות בשיתוף כאן: %s\n\n",
- "The share will expire on %s." : "השיתוף יפוג תוקף ב- %s.",
- "Cheers!" : "לחיים!",
- "Use the following link to reset your password: {link}" : "יש להשתמש בקישור הבא כדי לאפס את הססמה שלך: {link}",
- "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "הי לך,<br><br>כדאי לך לדעת ש- %s משתף/פת <strong>%s</strong> אתך.<br><a href=\"%s\">לצפייה!</a><br><br>"
-},"pluralForm" :"nplurals=2; plural=(n != 1);"
-} \ No newline at end of file
diff --git a/core/l10n/hu.js b/core/l10n/hu.js
index d71c48d4d8f..a277fd8855d 100644
--- a/core/l10n/hu.js
+++ b/core/l10n/hu.js
@@ -147,15 +147,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (e-mail)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Megosztás",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Megosztás más szervert használó emberekkel, az Egyesített Felhő Azonosítóval: username@example.com/nextcloud",
- "Share with users or by mail..." : "Megosztás felhasználókkal e-mailben...",
- "Share with users or remote users..." : "Megosztás helyi vagy távoli felhasználókkal...",
- "Share with users, remote users or by mail..." : "Megosztás helyi vagy távoli felhasználókkal e-mailben...",
- "Share with users or groups..." : "Megosztás felhasználókkal vagy csoportokkal...",
- "Share with users, groups or by mail..." : "Megosztás felhasználókkal vagy csoportokkal e-mailben...",
- "Share with users, groups or remote users..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal...",
- "Share with users, groups, remote users or by mail..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal e-mailben...",
- "Share with users..." : "Megosztás felhasználókkal...",
"Error removing share" : "Hiba a megosztás törlésekor",
"Non-existing tag #{tag}" : "Nem létező címke #{tag}",
"restricted" : "korlátozott",
@@ -292,6 +283,15 @@ OC.L10N.register(
"can change" : "módosíthat",
"can delete" : "törölhet",
"access control" : "jogosultság",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Megosztás más szervert használó emberekkel, az Egyesített Felhő Azonosítóval: username@example.com/nextcloud",
+ "Share with users or by mail..." : "Megosztás felhasználókkal e-mailben...",
+ "Share with users or remote users..." : "Megosztás helyi vagy távoli felhasználókkal...",
+ "Share with users, remote users or by mail..." : "Megosztás helyi vagy távoli felhasználókkal e-mailben...",
+ "Share with users or groups..." : "Megosztás felhasználókkal vagy csoportokkal...",
+ "Share with users, groups or by mail..." : "Megosztás felhasználókkal vagy csoportokkal e-mailben...",
+ "Share with users, groups or remote users..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal...",
+ "Share with users, groups, remote users or by mail..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal e-mailben...",
+ "Share with users..." : "Megosztás felhasználókkal...",
"The update was successful. Redirecting you to Nextcloud now." : "A frissítés sikeres volt. Most átirányítunk a Nextcloudhoz.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Üdv!\n\nÉrtesítünk, hogy %s megosztotta veled a következőt: %s.\nItt nézheted meg: %s\n\n",
"The share will expire on %s." : "A megosztás lejár ekkor: %s.",
diff --git a/core/l10n/hu.json b/core/l10n/hu.json
index 5fe991ce0ee..5224277ac24 100644
--- a/core/l10n/hu.json
+++ b/core/l10n/hu.json
@@ -145,15 +145,6 @@
"{sharee} (email)" : "{sharee} (e-mail)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Megosztás",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Megosztás más szervert használó emberekkel, az Egyesített Felhő Azonosítóval: username@example.com/nextcloud",
- "Share with users or by mail..." : "Megosztás felhasználókkal e-mailben...",
- "Share with users or remote users..." : "Megosztás helyi vagy távoli felhasználókkal...",
- "Share with users, remote users or by mail..." : "Megosztás helyi vagy távoli felhasználókkal e-mailben...",
- "Share with users or groups..." : "Megosztás felhasználókkal vagy csoportokkal...",
- "Share with users, groups or by mail..." : "Megosztás felhasználókkal vagy csoportokkal e-mailben...",
- "Share with users, groups or remote users..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal...",
- "Share with users, groups, remote users or by mail..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal e-mailben...",
- "Share with users..." : "Megosztás felhasználókkal...",
"Error removing share" : "Hiba a megosztás törlésekor",
"Non-existing tag #{tag}" : "Nem létező címke #{tag}",
"restricted" : "korlátozott",
@@ -290,6 +281,15 @@
"can change" : "módosíthat",
"can delete" : "törölhet",
"access control" : "jogosultság",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Megosztás más szervert használó emberekkel, az Egyesített Felhő Azonosítóval: username@example.com/nextcloud",
+ "Share with users or by mail..." : "Megosztás felhasználókkal e-mailben...",
+ "Share with users or remote users..." : "Megosztás helyi vagy távoli felhasználókkal...",
+ "Share with users, remote users or by mail..." : "Megosztás helyi vagy távoli felhasználókkal e-mailben...",
+ "Share with users or groups..." : "Megosztás felhasználókkal vagy csoportokkal...",
+ "Share with users, groups or by mail..." : "Megosztás felhasználókkal vagy csoportokkal e-mailben...",
+ "Share with users, groups or remote users..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal...",
+ "Share with users, groups, remote users or by mail..." : "Megosztás felhasználókkal, csoportokkal távoli felhasználókkal e-mailben...",
+ "Share with users..." : "Megosztás felhasználókkal...",
"The update was successful. Redirecting you to Nextcloud now." : "A frissítés sikeres volt. Most átirányítunk a Nextcloudhoz.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Üdv!\n\nÉrtesítünk, hogy %s megosztotta veled a következőt: %s.\nItt nézheted meg: %s\n\n",
"The share will expire on %s." : "A megosztás lejár ekkor: %s.",
diff --git a/core/l10n/id.js b/core/l10n/id.js
index 7df48ffab1e..8e2f99ef046 100644
--- a/core/l10n/id.js
+++ b/core/l10n/id.js
@@ -142,15 +142,6 @@ OC.L10N.register(
"{sharee} (remote)" : "{sharee} (remote)",
"{sharee} (email)" : "{sharee} (surel)",
"Share" : "Bagikan",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Berbagi dengan orang dipeladen lainnya menggunakan Federated Cloud ID mereka username@example.com/nextcloud",
- "Share with users or by mail..." : "Bagikan dengan pengguna atau lewat surel...",
- "Share with users or remote users..." : "Bagikan dengan pengguna atau pengguna jarak jauh...",
- "Share with users, remote users or by mail..." : "Bagikan dengan pengguna, pengguna jarak jauh atau lewat surel...",
- "Share with users or groups..." : "Bagikan dengan pengguna atau grup...",
- "Share with users, groups or by mail..." : "Bagikan dengan pengguna, grup atau lewat surel...",
- "Share with users, groups or remote users..." : "Bagikan dengan pengguna, grup atau pengguna jarak jauh...",
- "Share with users, groups, remote users or by mail..." : "Bagikan dengan pengguna, grup, pengguna jarak jauh atau lewat surel...",
- "Share with users..." : "Bagikan dengan pengguna...",
"Error removing share" : "Terjadi kesalahan saat menghapus pembagian",
"Non-existing tag #{tag}" : "Tag tidak ada #{tag}",
"restricted" : "terbatas",
@@ -285,6 +276,15 @@ OC.L10N.register(
"can change" : "dapat mengubah",
"can delete" : "dapat menghapus",
"access control" : "kontrol akses",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Berbagi dengan orang dipeladen lainnya menggunakan Federated Cloud ID mereka username@example.com/nextcloud",
+ "Share with users or by mail..." : "Bagikan dengan pengguna atau lewat surel...",
+ "Share with users or remote users..." : "Bagikan dengan pengguna atau pengguna jarak jauh...",
+ "Share with users, remote users or by mail..." : "Bagikan dengan pengguna, pengguna jarak jauh atau lewat surel...",
+ "Share with users or groups..." : "Bagikan dengan pengguna atau grup...",
+ "Share with users, groups or by mail..." : "Bagikan dengan pengguna, grup atau lewat surel...",
+ "Share with users, groups or remote users..." : "Bagikan dengan pengguna, grup atau pengguna jarak jauh...",
+ "Share with users, groups, remote users or by mail..." : "Bagikan dengan pengguna, grup, pengguna jarak jauh atau lewat surel...",
+ "Share with users..." : "Bagikan dengan pengguna...",
"The update was successful. Redirecting you to Nextcloud now." : "Pembaruan berhasil. Mengarahkan Anda ke Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hai,\n\nhanya supaya anda tahu bahwa %s membagikan %s dengan anda.\nLihat: %s\n\n",
"The share will expire on %s." : "Pembagian akan berakhir pada %s.",
diff --git a/core/l10n/id.json b/core/l10n/id.json
index 3886baf7fb9..aad97bf279d 100644
--- a/core/l10n/id.json
+++ b/core/l10n/id.json
@@ -140,15 +140,6 @@
"{sharee} (remote)" : "{sharee} (remote)",
"{sharee} (email)" : "{sharee} (surel)",
"Share" : "Bagikan",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Berbagi dengan orang dipeladen lainnya menggunakan Federated Cloud ID mereka username@example.com/nextcloud",
- "Share with users or by mail..." : "Bagikan dengan pengguna atau lewat surel...",
- "Share with users or remote users..." : "Bagikan dengan pengguna atau pengguna jarak jauh...",
- "Share with users, remote users or by mail..." : "Bagikan dengan pengguna, pengguna jarak jauh atau lewat surel...",
- "Share with users or groups..." : "Bagikan dengan pengguna atau grup...",
- "Share with users, groups or by mail..." : "Bagikan dengan pengguna, grup atau lewat surel...",
- "Share with users, groups or remote users..." : "Bagikan dengan pengguna, grup atau pengguna jarak jauh...",
- "Share with users, groups, remote users or by mail..." : "Bagikan dengan pengguna, grup, pengguna jarak jauh atau lewat surel...",
- "Share with users..." : "Bagikan dengan pengguna...",
"Error removing share" : "Terjadi kesalahan saat menghapus pembagian",
"Non-existing tag #{tag}" : "Tag tidak ada #{tag}",
"restricted" : "terbatas",
@@ -283,6 +274,15 @@
"can change" : "dapat mengubah",
"can delete" : "dapat menghapus",
"access control" : "kontrol akses",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Berbagi dengan orang dipeladen lainnya menggunakan Federated Cloud ID mereka username@example.com/nextcloud",
+ "Share with users or by mail..." : "Bagikan dengan pengguna atau lewat surel...",
+ "Share with users or remote users..." : "Bagikan dengan pengguna atau pengguna jarak jauh...",
+ "Share with users, remote users or by mail..." : "Bagikan dengan pengguna, pengguna jarak jauh atau lewat surel...",
+ "Share with users or groups..." : "Bagikan dengan pengguna atau grup...",
+ "Share with users, groups or by mail..." : "Bagikan dengan pengguna, grup atau lewat surel...",
+ "Share with users, groups or remote users..." : "Bagikan dengan pengguna, grup atau pengguna jarak jauh...",
+ "Share with users, groups, remote users or by mail..." : "Bagikan dengan pengguna, grup, pengguna jarak jauh atau lewat surel...",
+ "Share with users..." : "Bagikan dengan pengguna...",
"The update was successful. Redirecting you to Nextcloud now." : "Pembaruan berhasil. Mengarahkan Anda ke Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hai,\n\nhanya supaya anda tahu bahwa %s membagikan %s dengan anda.\nLihat: %s\n\n",
"The share will expire on %s." : "Pembagian akan berakhir pada %s.",
diff --git a/core/l10n/is.js b/core/l10n/is.js
index 4346426fcec..e27ac0a89b2 100644
--- a/core/l10n/is.js
+++ b/core/l10n/is.js
@@ -146,15 +146,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (tölvupóstur)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Deila",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Deila með fólki í öðrum gagnaskýjum með auðkenninu notandanafn@dæmi.is/nextcloud",
- "Share with users or by mail..." : "Deila með notendum eða með tölvupósti...",
- "Share with users or remote users..." : "Deila með notendum eða fjartengdum notendum...",
- "Share with users, remote users or by mail..." : "Deila með notendum, fjartengdum notendum eða með tölvupósti...",
- "Share with users or groups..." : "Deila með notendum eða hópum...",
- "Share with users, groups or by mail..." : "Deila með notendum, hópum eða með tölvupósti...",
- "Share with users, groups or remote users..." : "Deila með notendum, hópum eða fjartengdum notendum...",
- "Share with users, groups, remote users or by mail..." : "Deila með notendum, hópum, fjartengdum notendum eða með tölvupósti...",
- "Share with users..." : "Deila með notendum...",
"Error removing share" : "Villa við að fjarlægja sameign",
"Non-existing tag #{tag}" : "Merki sem er ekki til #{tag}",
"restricted" : "takmarkaður aðgangur",
@@ -293,6 +284,15 @@ OC.L10N.register(
"can change" : "getur breytt",
"can delete" : "getur eytt",
"access control" : "aðgangsstýring",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Deila með fólki í öðrum gagnaskýjum með auðkenninu notandanafn@dæmi.is/nextcloud",
+ "Share with users or by mail..." : "Deila með notendum eða með tölvupósti...",
+ "Share with users or remote users..." : "Deila með notendum eða fjartengdum notendum...",
+ "Share with users, remote users or by mail..." : "Deila með notendum, fjartengdum notendum eða með tölvupósti...",
+ "Share with users or groups..." : "Deila með notendum eða hópum...",
+ "Share with users, groups or by mail..." : "Deila með notendum, hópum eða með tölvupósti...",
+ "Share with users, groups or remote users..." : "Deila með notendum, hópum eða fjartengdum notendum...",
+ "Share with users, groups, remote users or by mail..." : "Deila með notendum, hópum, fjartengdum notendum eða með tölvupósti...",
+ "Share with users..." : "Deila með notendum...",
"The update was successful. Redirecting you to Nextcloud now." : "Uppfærslan heppnaðist. Beini þér til Nextcloud nú.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Sælir,\n\nbara láta þig vita að %s deildi %s með þér.\n\nSkoðaðu það: %s\n\n",
"The share will expire on %s." : "Gildistími sameignar rennur út %s.",
diff --git a/core/l10n/is.json b/core/l10n/is.json
index bc888774762..701427fad95 100644
--- a/core/l10n/is.json
+++ b/core/l10n/is.json
@@ -144,15 +144,6 @@
"{sharee} (email)" : "{sharee} (tölvupóstur)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Deila",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Deila með fólki í öðrum gagnaskýjum með auðkenninu notandanafn@dæmi.is/nextcloud",
- "Share with users or by mail..." : "Deila með notendum eða með tölvupósti...",
- "Share with users or remote users..." : "Deila með notendum eða fjartengdum notendum...",
- "Share with users, remote users or by mail..." : "Deila með notendum, fjartengdum notendum eða með tölvupósti...",
- "Share with users or groups..." : "Deila með notendum eða hópum...",
- "Share with users, groups or by mail..." : "Deila með notendum, hópum eða með tölvupósti...",
- "Share with users, groups or remote users..." : "Deila með notendum, hópum eða fjartengdum notendum...",
- "Share with users, groups, remote users or by mail..." : "Deila með notendum, hópum, fjartengdum notendum eða með tölvupósti...",
- "Share with users..." : "Deila með notendum...",
"Error removing share" : "Villa við að fjarlægja sameign",
"Non-existing tag #{tag}" : "Merki sem er ekki til #{tag}",
"restricted" : "takmarkaður aðgangur",
@@ -291,6 +282,15 @@
"can change" : "getur breytt",
"can delete" : "getur eytt",
"access control" : "aðgangsstýring",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Deila með fólki í öðrum gagnaskýjum með auðkenninu notandanafn@dæmi.is/nextcloud",
+ "Share with users or by mail..." : "Deila með notendum eða með tölvupósti...",
+ "Share with users or remote users..." : "Deila með notendum eða fjartengdum notendum...",
+ "Share with users, remote users or by mail..." : "Deila með notendum, fjartengdum notendum eða með tölvupósti...",
+ "Share with users or groups..." : "Deila með notendum eða hópum...",
+ "Share with users, groups or by mail..." : "Deila með notendum, hópum eða með tölvupósti...",
+ "Share with users, groups or remote users..." : "Deila með notendum, hópum eða fjartengdum notendum...",
+ "Share with users, groups, remote users or by mail..." : "Deila með notendum, hópum, fjartengdum notendum eða með tölvupósti...",
+ "Share with users..." : "Deila með notendum...",
"The update was successful. Redirecting you to Nextcloud now." : "Uppfærslan heppnaðist. Beini þér til Nextcloud nú.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Sælir,\n\nbara láta þig vita að %s deildi %s með þér.\n\nSkoðaðu það: %s\n\n",
"The share will expire on %s." : "Gildistími sameignar rennur út %s.",
diff --git a/core/l10n/it.js b/core/l10n/it.js
index eb24ade2563..7da5d7ef0bf 100644
--- a/core/l10n/it.js
+++ b/core/l10n/it.js
@@ -157,15 +157,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Condividi",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Condividi con persone su altri server utilizzando il loro ID di cloud federata nomeutente@esempio.com/nextcloud",
- "Share with users or by mail..." : "Condividi con utenti o tramite posta...",
- "Share with users or remote users..." : "Condividi con utenti o utenti remoti...",
- "Share with users, remote users or by mail..." : "Condividi con utenti, utenti remoti o tramite posta...",
- "Share with users or groups..." : "Condividi con utenti o gruppi...",
- "Share with users, groups or by mail..." : "Condividi con utenti, gruppi o tramite posta...",
- "Share with users, groups or remote users..." : "Condividi con utenti, gruppi o utenti remoti...",
- "Share with users, groups, remote users or by mail..." : "Condividi con utenti, gruppi, utenti remoti o tramite posta...",
- "Share with users..." : "Condividi con utenti...",
"Error removing share" : "Errore durante la rimozione della condivisione",
"Non-existing tag #{tag}" : "Etichetta #{tag} inesistente",
"restricted" : "limitato",
@@ -304,6 +295,15 @@ OC.L10N.register(
"can change" : "può cambiare",
"can delete" : "può eliminare",
"access control" : "controllo d'accesso",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Condividi con persone su altri server utilizzando il loro ID di cloud federata nomeutente@esempio.com/nextcloud",
+ "Share with users or by mail..." : "Condividi con utenti o tramite posta...",
+ "Share with users or remote users..." : "Condividi con utenti o utenti remoti...",
+ "Share with users, remote users or by mail..." : "Condividi con utenti, utenti remoti o tramite posta...",
+ "Share with users or groups..." : "Condividi con utenti o gruppi...",
+ "Share with users, groups or by mail..." : "Condividi con utenti, gruppi o tramite posta...",
+ "Share with users, groups or remote users..." : "Condividi con utenti, gruppi o utenti remoti...",
+ "Share with users, groups, remote users or by mail..." : "Condividi con utenti, gruppi, utenti remoti o tramite posta...",
+ "Share with users..." : "Condividi con utenti...",
"The update was successful. Redirecting you to Nextcloud now." : "L'aggiornamento è stato effettuato correttamente. Reindirizzamento immediato a Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Ciao,\n\nvolevo informarti che %s ha condiviso %s con te.\nVedi: %s\n\n",
"The share will expire on %s." : "La condivisione scadrà il %s.",
diff --git a/core/l10n/it.json b/core/l10n/it.json
index 7edeef0bde5..a26e4ab07cf 100644
--- a/core/l10n/it.json
+++ b/core/l10n/it.json
@@ -155,15 +155,6 @@
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Condividi",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Condividi con persone su altri server utilizzando il loro ID di cloud federata nomeutente@esempio.com/nextcloud",
- "Share with users or by mail..." : "Condividi con utenti o tramite posta...",
- "Share with users or remote users..." : "Condividi con utenti o utenti remoti...",
- "Share with users, remote users or by mail..." : "Condividi con utenti, utenti remoti o tramite posta...",
- "Share with users or groups..." : "Condividi con utenti o gruppi...",
- "Share with users, groups or by mail..." : "Condividi con utenti, gruppi o tramite posta...",
- "Share with users, groups or remote users..." : "Condividi con utenti, gruppi o utenti remoti...",
- "Share with users, groups, remote users or by mail..." : "Condividi con utenti, gruppi, utenti remoti o tramite posta...",
- "Share with users..." : "Condividi con utenti...",
"Error removing share" : "Errore durante la rimozione della condivisione",
"Non-existing tag #{tag}" : "Etichetta #{tag} inesistente",
"restricted" : "limitato",
@@ -302,6 +293,15 @@
"can change" : "può cambiare",
"can delete" : "può eliminare",
"access control" : "controllo d'accesso",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Condividi con persone su altri server utilizzando il loro ID di cloud federata nomeutente@esempio.com/nextcloud",
+ "Share with users or by mail..." : "Condividi con utenti o tramite posta...",
+ "Share with users or remote users..." : "Condividi con utenti o utenti remoti...",
+ "Share with users, remote users or by mail..." : "Condividi con utenti, utenti remoti o tramite posta...",
+ "Share with users or groups..." : "Condividi con utenti o gruppi...",
+ "Share with users, groups or by mail..." : "Condividi con utenti, gruppi o tramite posta...",
+ "Share with users, groups or remote users..." : "Condividi con utenti, gruppi o utenti remoti...",
+ "Share with users, groups, remote users or by mail..." : "Condividi con utenti, gruppi, utenti remoti o tramite posta...",
+ "Share with users..." : "Condividi con utenti...",
"The update was successful. Redirecting you to Nextcloud now." : "L'aggiornamento è stato effettuato correttamente. Reindirizzamento immediato a Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Ciao,\n\nvolevo informarti che %s ha condiviso %s con te.\nVedi: %s\n\n",
"The share will expire on %s." : "La condivisione scadrà il %s.",
diff --git a/core/l10n/ja.js b/core/l10n/ja.js
index ea5b8454763..fa7192c59b6 100644
--- a/core/l10n/ja.js
+++ b/core/l10n/ja.js
@@ -159,15 +159,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (メール)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "共有",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Federated Cloud ID( username@example.com/nextcloud )を使用して他のサーバーのユーザーと共有する",
- "Share with users or by mail..." : "ユーザーまたはメールで共有する...",
- "Share with users or remote users..." : "ユーザーまたはリモートユーザーと共有する...",
- "Share with users, remote users or by mail..." : "ユーザー、リモートユーザーまたはメールで共有する...",
- "Share with users or groups..." : "ユーザーやグループと共有する...",
- "Share with users, groups or by mail..." : "ユーザー、グループ、またはメールで共有...",
- "Share with users, groups or remote users..." : "ユーザー、グループ、またはリモートユーザーと共有する...",
- "Share with users, groups, remote users or by mail..." : "ユーザー、グループ、リモートユーザーまたはメールで共有...",
- "Share with users..." : "ユーザーと共有する...",
"Error removing share" : "共有の削除エラー",
"Non-existing tag #{tag}" : "存在しないタグ#{tag}",
"restricted" : "制限済",
@@ -306,6 +297,15 @@ OC.L10N.register(
"can change" : "変更できます",
"can delete" : "削除できます",
"access control" : "アクセス権限",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Federated Cloud ID( username@example.com/nextcloud )を使用して他のサーバーのユーザーと共有する",
+ "Share with users or by mail..." : "ユーザーまたはメールで共有する...",
+ "Share with users or remote users..." : "ユーザーまたはリモートユーザーと共有する...",
+ "Share with users, remote users or by mail..." : "ユーザー、リモートユーザーまたはメールで共有する...",
+ "Share with users or groups..." : "ユーザーやグループと共有する...",
+ "Share with users, groups or by mail..." : "ユーザー、グループ、またはメールで共有...",
+ "Share with users, groups or remote users..." : "ユーザー、グループ、またはリモートユーザーと共有する...",
+ "Share with users, groups, remote users or by mail..." : "ユーザー、グループ、リモートユーザーまたはメールで共有...",
+ "Share with users..." : "ユーザーと共有する...",
"The update was successful. Redirecting you to Nextcloud now." : "アップデート成功。Nextcloud にリダイレクトします。",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "こんにちは、\n\n%s があなたと %s を共有したことをお知らせします。\nそれを表示: %s\n",
"The share will expire on %s." : "共有は %s で有効期限が切れます。",
diff --git a/core/l10n/ja.json b/core/l10n/ja.json
index d3b122343d4..91521ff6090 100644
--- a/core/l10n/ja.json
+++ b/core/l10n/ja.json
@@ -157,15 +157,6 @@
"{sharee} (email)" : "{sharee} (メール)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "共有",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Federated Cloud ID( username@example.com/nextcloud )を使用して他のサーバーのユーザーと共有する",
- "Share with users or by mail..." : "ユーザーまたはメールで共有する...",
- "Share with users or remote users..." : "ユーザーまたはリモートユーザーと共有する...",
- "Share with users, remote users or by mail..." : "ユーザー、リモートユーザーまたはメールで共有する...",
- "Share with users or groups..." : "ユーザーやグループと共有する...",
- "Share with users, groups or by mail..." : "ユーザー、グループ、またはメールで共有...",
- "Share with users, groups or remote users..." : "ユーザー、グループ、またはリモートユーザーと共有する...",
- "Share with users, groups, remote users or by mail..." : "ユーザー、グループ、リモートユーザーまたはメールで共有...",
- "Share with users..." : "ユーザーと共有する...",
"Error removing share" : "共有の削除エラー",
"Non-existing tag #{tag}" : "存在しないタグ#{tag}",
"restricted" : "制限済",
@@ -304,6 +295,15 @@
"can change" : "変更できます",
"can delete" : "削除できます",
"access control" : "アクセス権限",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Federated Cloud ID( username@example.com/nextcloud )を使用して他のサーバーのユーザーと共有する",
+ "Share with users or by mail..." : "ユーザーまたはメールで共有する...",
+ "Share with users or remote users..." : "ユーザーまたはリモートユーザーと共有する...",
+ "Share with users, remote users or by mail..." : "ユーザー、リモートユーザーまたはメールで共有する...",
+ "Share with users or groups..." : "ユーザーやグループと共有する...",
+ "Share with users, groups or by mail..." : "ユーザー、グループ、またはメールで共有...",
+ "Share with users, groups or remote users..." : "ユーザー、グループ、またはリモートユーザーと共有する...",
+ "Share with users, groups, remote users or by mail..." : "ユーザー、グループ、リモートユーザーまたはメールで共有...",
+ "Share with users..." : "ユーザーと共有する...",
"The update was successful. Redirecting you to Nextcloud now." : "アップデート成功。Nextcloud にリダイレクトします。",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "こんにちは、\n\n%s があなたと %s を共有したことをお知らせします。\nそれを表示: %s\n",
"The share will expire on %s." : "共有は %s で有効期限が切れます。",
diff --git a/core/l10n/nb.js b/core/l10n/nb.js
index 5bdf59a3a60..5b331ff602a 100644
--- a/core/l10n/nb.js
+++ b/core/l10n/nb.js
@@ -153,15 +153,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Del",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Del med andre brukere på andre tjenere ved å bruke «Federated Cloud ID» brukernavn@eksempel.com/nextcloud",
- "Share with users or by mail..." : "Del med brukere eller på e-post...",
- "Share with users or remote users..." : "Del med brukere eller eksterne brukere...",
- "Share with users, remote users or by mail..." : "Del med brukere, eksterne brukere eller på e-post...",
- "Share with users or groups..." : "Del med brukere eller grupper",
- "Share with users, groups or by mail..." : "Del med brukere, grupper eller på e-post...",
- "Share with users, groups or remote users..." : "Del med brukere, grupper eller eksterne brukere...",
- "Share with users, groups, remote users or by mail..." : "Del med brukere, grupper eller eksterne brukere på e-post...",
- "Share with users..." : "Del med brukere...",
"Error removing share" : "Feil ved fjerning av deling",
"Non-existing tag #{tag}" : "Ikke-eksisterende merkelapp #{tag}",
"restricted" : "begrenset",
@@ -299,6 +290,15 @@ OC.L10N.register(
"can change" : "kan endre",
"can delete" : "kan slette",
"access control" : "tilgangskontroll",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Del med andre brukere på andre tjenere ved å bruke «Federated Cloud ID» brukernavn@eksempel.com/nextcloud",
+ "Share with users or by mail..." : "Del med brukere eller på e-post...",
+ "Share with users or remote users..." : "Del med brukere eller eksterne brukere...",
+ "Share with users, remote users or by mail..." : "Del med brukere, eksterne brukere eller på e-post...",
+ "Share with users or groups..." : "Del med brukere eller grupper",
+ "Share with users, groups or by mail..." : "Del med brukere, grupper eller på e-post...",
+ "Share with users, groups or remote users..." : "Del med brukere, grupper eller eksterne brukere...",
+ "Share with users, groups, remote users or by mail..." : "Del med brukere, grupper eller eksterne brukere på e-post...",
+ "Share with users..." : "Del med brukere...",
"The update was successful. Redirecting you to Nextcloud now." : "Oppdateringen var vellykket. Videresender deg til Nextcloud nå.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hei,\n\nDette er en beskjed om at %s delte %s med deg.\nVis den: %s\n\n",
"The share will expire on %s." : "Delingen vil opphøre %s.",
diff --git a/core/l10n/nb.json b/core/l10n/nb.json
index 0fe9a5e75d5..f499a4af4ea 100644
--- a/core/l10n/nb.json
+++ b/core/l10n/nb.json
@@ -151,15 +151,6 @@
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Del",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Del med andre brukere på andre tjenere ved å bruke «Federated Cloud ID» brukernavn@eksempel.com/nextcloud",
- "Share with users or by mail..." : "Del med brukere eller på e-post...",
- "Share with users or remote users..." : "Del med brukere eller eksterne brukere...",
- "Share with users, remote users or by mail..." : "Del med brukere, eksterne brukere eller på e-post...",
- "Share with users or groups..." : "Del med brukere eller grupper",
- "Share with users, groups or by mail..." : "Del med brukere, grupper eller på e-post...",
- "Share with users, groups or remote users..." : "Del med brukere, grupper eller eksterne brukere...",
- "Share with users, groups, remote users or by mail..." : "Del med brukere, grupper eller eksterne brukere på e-post...",
- "Share with users..." : "Del med brukere...",
"Error removing share" : "Feil ved fjerning av deling",
"Non-existing tag #{tag}" : "Ikke-eksisterende merkelapp #{tag}",
"restricted" : "begrenset",
@@ -297,6 +288,15 @@
"can change" : "kan endre",
"can delete" : "kan slette",
"access control" : "tilgangskontroll",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Del med andre brukere på andre tjenere ved å bruke «Federated Cloud ID» brukernavn@eksempel.com/nextcloud",
+ "Share with users or by mail..." : "Del med brukere eller på e-post...",
+ "Share with users or remote users..." : "Del med brukere eller eksterne brukere...",
+ "Share with users, remote users or by mail..." : "Del med brukere, eksterne brukere eller på e-post...",
+ "Share with users or groups..." : "Del med brukere eller grupper",
+ "Share with users, groups or by mail..." : "Del med brukere, grupper eller på e-post...",
+ "Share with users, groups or remote users..." : "Del med brukere, grupper eller eksterne brukere...",
+ "Share with users, groups, remote users or by mail..." : "Del med brukere, grupper eller eksterne brukere på e-post...",
+ "Share with users..." : "Del med brukere...",
"The update was successful. Redirecting you to Nextcloud now." : "Oppdateringen var vellykket. Videresender deg til Nextcloud nå.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hei,\n\nDette er en beskjed om at %s delte %s med deg.\nVis den: %s\n\n",
"The share will expire on %s." : "Delingen vil opphøre %s.",
diff --git a/core/l10n/nl.js b/core/l10n/nl.js
index dc23a8ac3d0..3838ff4c7d5 100644
--- a/core/l10n/nl.js
+++ b/core/l10n/nl.js
@@ -162,15 +162,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (e-mail)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Delen",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Delen met mensen op andere servers via hun gefedereerde Cloud ID gebruikersnaam@voorbeeld.nl/nextcloud",
- "Share with users or by mail..." : "Delen met gebruikers per e-mail...",
- "Share with users or remote users..." : "Deel met gebruikers of externe gebruikers...",
- "Share with users, remote users or by mail..." : "Delen met gebruikers, externe gebruikers of per e-mail...",
- "Share with users or groups..." : "Delen met gebruikers en groepen...",
- "Share with users, groups or by mail..." : "Delen met gebruikers, groepen of per e-mail...",
- "Share with users, groups or remote users..." : "Delen met gebruikers, groepen of externe gebruikers...",
- "Share with users, groups, remote users or by mail..." : "Delen met groepen, externe gebruikers of per e-mail...",
- "Share with users..." : "Deel met gebruikers...",
"Error removing share" : "Fout bij verwijderen gedeelde",
"Non-existing tag #{tag}" : "Niet bestaande markering #{tag}",
"restricted" : "beperkt",
@@ -309,6 +300,15 @@ OC.L10N.register(
"can change" : "kan wijzigen",
"can delete" : "kan verwijderen",
"access control" : "toegangscontrole",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Delen met mensen op andere servers via hun gefedereerde Cloud ID gebruikersnaam@voorbeeld.nl/nextcloud",
+ "Share with users or by mail..." : "Delen met gebruikers per e-mail...",
+ "Share with users or remote users..." : "Deel met gebruikers of externe gebruikers...",
+ "Share with users, remote users or by mail..." : "Delen met gebruikers, externe gebruikers of per e-mail...",
+ "Share with users or groups..." : "Delen met gebruikers en groepen...",
+ "Share with users, groups or by mail..." : "Delen met gebruikers, groepen of per e-mail...",
+ "Share with users, groups or remote users..." : "Delen met gebruikers, groepen of externe gebruikers...",
+ "Share with users, groups, remote users or by mail..." : "Delen met groepen, externe gebruikers of per e-mail...",
+ "Share with users..." : "Deel met gebruikers...",
"The update was successful. Redirecting you to Nextcloud now." : "De update is geslaagd. Je wordt nu doorgeleid naar Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo daar,\n\n%s deelt %s met je.\nBekijk het hier: %s\n\n",
"The share will expire on %s." : "Het gedeelde vervalt op %s.",
diff --git a/core/l10n/nl.json b/core/l10n/nl.json
index f5decaab53d..9f7efe029fd 100644
--- a/core/l10n/nl.json
+++ b/core/l10n/nl.json
@@ -160,15 +160,6 @@
"{sharee} (email)" : "{sharee} (e-mail)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Delen",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Delen met mensen op andere servers via hun gefedereerde Cloud ID gebruikersnaam@voorbeeld.nl/nextcloud",
- "Share with users or by mail..." : "Delen met gebruikers per e-mail...",
- "Share with users or remote users..." : "Deel met gebruikers of externe gebruikers...",
- "Share with users, remote users or by mail..." : "Delen met gebruikers, externe gebruikers of per e-mail...",
- "Share with users or groups..." : "Delen met gebruikers en groepen...",
- "Share with users, groups or by mail..." : "Delen met gebruikers, groepen of per e-mail...",
- "Share with users, groups or remote users..." : "Delen met gebruikers, groepen of externe gebruikers...",
- "Share with users, groups, remote users or by mail..." : "Delen met groepen, externe gebruikers of per e-mail...",
- "Share with users..." : "Deel met gebruikers...",
"Error removing share" : "Fout bij verwijderen gedeelde",
"Non-existing tag #{tag}" : "Niet bestaande markering #{tag}",
"restricted" : "beperkt",
@@ -307,6 +298,15 @@
"can change" : "kan wijzigen",
"can delete" : "kan verwijderen",
"access control" : "toegangscontrole",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Delen met mensen op andere servers via hun gefedereerde Cloud ID gebruikersnaam@voorbeeld.nl/nextcloud",
+ "Share with users or by mail..." : "Delen met gebruikers per e-mail...",
+ "Share with users or remote users..." : "Deel met gebruikers of externe gebruikers...",
+ "Share with users, remote users or by mail..." : "Delen met gebruikers, externe gebruikers of per e-mail...",
+ "Share with users or groups..." : "Delen met gebruikers en groepen...",
+ "Share with users, groups or by mail..." : "Delen met gebruikers, groepen of per e-mail...",
+ "Share with users, groups or remote users..." : "Delen met gebruikers, groepen of externe gebruikers...",
+ "Share with users, groups, remote users or by mail..." : "Delen met groepen, externe gebruikers of per e-mail...",
+ "Share with users..." : "Deel met gebruikers...",
"The update was successful. Redirecting you to Nextcloud now." : "De update is geslaagd. Je wordt nu doorgeleid naar Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo daar,\n\n%s deelt %s met je.\nBekijk het hier: %s\n\n",
"The share will expire on %s." : "Het gedeelde vervalt op %s.",
diff --git a/core/l10n/pl.js b/core/l10n/pl.js
index 514f697a292..ff414663d13 100644
--- a/core/l10n/pl.js
+++ b/core/l10n/pl.js
@@ -161,15 +161,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (e-mail)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Udostępnij",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Współdziel z innymi użytkownikami z innych serwerów używając ID Stowarzyszonej Chmury username@example.com/nextcloud ",
- "Share with users or by mail..." : "Współdziel z użytkownikami lub poprzez mail...",
- "Share with users or remote users..." : "Współdziel z użytkownikami lub zdalnymi użytkownikami...",
- "Share with users, remote users or by mail..." : "Współdziel z użytkownikami, zdalnymi użytkownikami lub poprzez mail...",
- "Share with users or groups..." : "Współdziel z użytkownikami lub grupami",
- "Share with users, groups or by mail..." : "Współdziel z użytkownikami, grupami lub poprzez mail...",
- "Share with users, groups or remote users..." : "Współdziel z użytkownikami, grupami lub zdalnymi użytkownikami...",
- "Share with users, groups, remote users or by mail..." : "Współdziel z użytkownikami, grupami, zdalnymi użytkownikami lub poprzez mail...",
- "Share with users..." : "Współdziel z użytkownikami...",
"Error removing share" : "Błąd podczas usuwania współdzielenia",
"Non-existing tag #{tag}" : "Znacznik #{tag} nie istnieje",
"restricted" : "ograniczone",
@@ -308,6 +299,15 @@ OC.L10N.register(
"can change" : "może zmienić",
"can delete" : "może usunąć",
"access control" : "kontrola dostępu",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Współdziel z innymi użytkownikami z innych serwerów używając ID Stowarzyszonej Chmury username@example.com/nextcloud ",
+ "Share with users or by mail..." : "Współdziel z użytkownikami lub poprzez mail...",
+ "Share with users or remote users..." : "Współdziel z użytkownikami lub zdalnymi użytkownikami...",
+ "Share with users, remote users or by mail..." : "Współdziel z użytkownikami, zdalnymi użytkownikami lub poprzez mail...",
+ "Share with users or groups..." : "Współdziel z użytkownikami lub grupami",
+ "Share with users, groups or by mail..." : "Współdziel z użytkownikami, grupami lub poprzez mail...",
+ "Share with users, groups or remote users..." : "Współdziel z użytkownikami, grupami lub zdalnymi użytkownikami...",
+ "Share with users, groups, remote users or by mail..." : "Współdziel z użytkownikami, grupami, zdalnymi użytkownikami lub poprzez mail...",
+ "Share with users..." : "Współdziel z użytkownikami...",
"The update was successful. Redirecting you to Nextcloud now." : "Aktualizacja przebiegła pomyślnie. Trwa przekierowywanie do Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Witaj,\n\ntylko informuję, że %s współdzieli z Tobą %s.\nZobacz tutaj: %s\n\n",
"The share will expire on %s." : "Ten zasób wygaśnie %s",
diff --git a/core/l10n/pl.json b/core/l10n/pl.json
index 2a36e8bee29..997d6b024a8 100644
--- a/core/l10n/pl.json
+++ b/core/l10n/pl.json
@@ -159,15 +159,6 @@
"{sharee} (email)" : "{sharee} (e-mail)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Udostępnij",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Współdziel z innymi użytkownikami z innych serwerów używając ID Stowarzyszonej Chmury username@example.com/nextcloud ",
- "Share with users or by mail..." : "Współdziel z użytkownikami lub poprzez mail...",
- "Share with users or remote users..." : "Współdziel z użytkownikami lub zdalnymi użytkownikami...",
- "Share with users, remote users or by mail..." : "Współdziel z użytkownikami, zdalnymi użytkownikami lub poprzez mail...",
- "Share with users or groups..." : "Współdziel z użytkownikami lub grupami",
- "Share with users, groups or by mail..." : "Współdziel z użytkownikami, grupami lub poprzez mail...",
- "Share with users, groups or remote users..." : "Współdziel z użytkownikami, grupami lub zdalnymi użytkownikami...",
- "Share with users, groups, remote users or by mail..." : "Współdziel z użytkownikami, grupami, zdalnymi użytkownikami lub poprzez mail...",
- "Share with users..." : "Współdziel z użytkownikami...",
"Error removing share" : "Błąd podczas usuwania współdzielenia",
"Non-existing tag #{tag}" : "Znacznik #{tag} nie istnieje",
"restricted" : "ograniczone",
@@ -306,6 +297,15 @@
"can change" : "może zmienić",
"can delete" : "może usunąć",
"access control" : "kontrola dostępu",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Współdziel z innymi użytkownikami z innych serwerów używając ID Stowarzyszonej Chmury username@example.com/nextcloud ",
+ "Share with users or by mail..." : "Współdziel z użytkownikami lub poprzez mail...",
+ "Share with users or remote users..." : "Współdziel z użytkownikami lub zdalnymi użytkownikami...",
+ "Share with users, remote users or by mail..." : "Współdziel z użytkownikami, zdalnymi użytkownikami lub poprzez mail...",
+ "Share with users or groups..." : "Współdziel z użytkownikami lub grupami",
+ "Share with users, groups or by mail..." : "Współdziel z użytkownikami, grupami lub poprzez mail...",
+ "Share with users, groups or remote users..." : "Współdziel z użytkownikami, grupami lub zdalnymi użytkownikami...",
+ "Share with users, groups, remote users or by mail..." : "Współdziel z użytkownikami, grupami, zdalnymi użytkownikami lub poprzez mail...",
+ "Share with users..." : "Współdziel z użytkownikami...",
"The update was successful. Redirecting you to Nextcloud now." : "Aktualizacja przebiegła pomyślnie. Trwa przekierowywanie do Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Witaj,\n\ntylko informuję, że %s współdzieli z Tobą %s.\nZobacz tutaj: %s\n\n",
"The share will expire on %s." : "Ten zasób wygaśnie %s",
diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js
index 56dda5847e3..ad264232be5 100644
--- a/core/l10n/pt_BR.js
+++ b/core/l10n/pt_BR.js
@@ -162,15 +162,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Compartilhar",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Compartilhe com pessoas de outros servidores usando o ID de nuvem federada username@example.com/nextcloud",
- "Share with users or by mail..." : "Compartilhe com usuários internos ou por email...",
- "Share with users or remote users..." : "Compartilhe com usuários internos ou usuários remotos...",
- "Share with users, remote users or by mail..." : "Compartilhe com usuários internos, usuários remotos ou por email...",
- "Share with users or groups..." : "Compartilhe com usuários ou grupos...",
- "Share with users, groups or by mail..." : "Compartilhe com usuários, grupos ou por email...",
- "Share with users, groups or remote users..." : "Compartilhe com usuários, grupos ou usuários remotos...",
- "Share with users, groups, remote users or by mail..." : "Compartilhe com usuários, grupos, usuários remotos ou por email...",
- "Share with users..." : "Compartilhe com usuários...",
"Error removing share" : "Erro na exclusão do compartilhamento",
"Non-existing tag #{tag}" : "Etiqueta inexistente #{tag}",
"restricted" : "restrito",
@@ -309,6 +300,15 @@ OC.L10N.register(
"can change" : "Pode alterar",
"can delete" : "pode excluir",
"access control" : "controle de acesso",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Compartilhe com pessoas de outros servidores usando o ID de nuvem federada username@example.com/nextcloud",
+ "Share with users or by mail..." : "Compartilhe com usuários internos ou email...",
+ "Share with users or remote users..." : "Compartilhe com usuários internos ou remotos...",
+ "Share with users, remote users or by mail..." : "Compartilhe com usuários internos, remotos ou email...",
+ "Share with users or groups..." : "Compartilhe com usuários internos ou grupos...",
+ "Share with users, groups or by mail..." : "Compartilhe com usuários internos, grupos ou email...",
+ "Share with users, groups or remote users..." : "Compartilhe com usuários internos, remotos ou grupos...",
+ "Share with users, groups, remote users or by mail..." : "Compartilhe com usuários internos, remotos, grupos ou email...",
+ "Share with users..." : "Compartilhe com usuários internos...",
"The update was successful. Redirecting you to Nextcloud now." : "A atualização terminou com sucesso. Redirecionando para Nextcloud agora.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para avisar que %s compartilhou %s com você.\nVeja isto: %s\n\n",
"The share will expire on %s." : "O compartilhamento irá expirar em %s.",
diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json
index dd922935f00..61a7a2bddf9 100644
--- a/core/l10n/pt_BR.json
+++ b/core/l10n/pt_BR.json
@@ -160,15 +160,6 @@
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Compartilhar",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Compartilhe com pessoas de outros servidores usando o ID de nuvem federada username@example.com/nextcloud",
- "Share with users or by mail..." : "Compartilhe com usuários internos ou por email...",
- "Share with users or remote users..." : "Compartilhe com usuários internos ou usuários remotos...",
- "Share with users, remote users or by mail..." : "Compartilhe com usuários internos, usuários remotos ou por email...",
- "Share with users or groups..." : "Compartilhe com usuários ou grupos...",
- "Share with users, groups or by mail..." : "Compartilhe com usuários, grupos ou por email...",
- "Share with users, groups or remote users..." : "Compartilhe com usuários, grupos ou usuários remotos...",
- "Share with users, groups, remote users or by mail..." : "Compartilhe com usuários, grupos, usuários remotos ou por email...",
- "Share with users..." : "Compartilhe com usuários...",
"Error removing share" : "Erro na exclusão do compartilhamento",
"Non-existing tag #{tag}" : "Etiqueta inexistente #{tag}",
"restricted" : "restrito",
@@ -307,6 +298,15 @@
"can change" : "Pode alterar",
"can delete" : "pode excluir",
"access control" : "controle de acesso",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Compartilhe com pessoas de outros servidores usando o ID de nuvem federada username@example.com/nextcloud",
+ "Share with users or by mail..." : "Compartilhe com usuários internos ou email...",
+ "Share with users or remote users..." : "Compartilhe com usuários internos ou remotos...",
+ "Share with users, remote users or by mail..." : "Compartilhe com usuários internos, remotos ou email...",
+ "Share with users or groups..." : "Compartilhe com usuários internos ou grupos...",
+ "Share with users, groups or by mail..." : "Compartilhe com usuários internos, grupos ou email...",
+ "Share with users, groups or remote users..." : "Compartilhe com usuários internos, remotos ou grupos...",
+ "Share with users, groups, remote users or by mail..." : "Compartilhe com usuários internos, remotos, grupos ou email...",
+ "Share with users..." : "Compartilhe com usuários internos...",
"The update was successful. Redirecting you to Nextcloud now." : "A atualização terminou com sucesso. Redirecionando para Nextcloud agora.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para avisar que %s compartilhou %s com você.\nVeja isto: %s\n\n",
"The share will expire on %s." : "O compartilhamento irá expirar em %s.",
diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js
index 2f66d58b3e7..1ce65d9a179 100644
--- a/core/l10n/pt_PT.js
+++ b/core/l10n/pt_PT.js
@@ -154,15 +154,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Partilhar",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partilhar com pessoas noutros servidores usando a Federated Cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Partilhar com utilizadores ou por email...",
- "Share with users or remote users..." : "Partilhar com utilizadores ou utilizadores remotos...",
- "Share with users, remote users or by mail..." : "Partilhar com utilizadores, utilizadores remotos ou por email...",
- "Share with users or groups..." : "PArtilhar com utilizadores ou grupos...",
- "Share with users, groups or by mail..." : "Partilhar com utilizadores, grupos ou por email...",
- "Share with users, groups or remote users..." : "Partilhar com utilizadores, grupos ou utilizadores remotos...",
- "Share with users, groups, remote users or by mail..." : "Partilhar com utilizadores, grupos, utilizadores remotos oupor email...",
- "Share with users..." : "Partilhar com utilizadores...",
"Error removing share" : "Erro ao remover partilha",
"Non-existing tag #{tag}" : "Etiqueta não existente #{tag}",
"restricted" : "limitado",
@@ -301,6 +292,15 @@ OC.L10N.register(
"can change" : "pode alterar",
"can delete" : "pode apagar",
"access control" : "controlo de acesso",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partilhar com pessoas noutros servidores usando a Federated Cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Partilhar com utilizadores ou por email...",
+ "Share with users or remote users..." : "Partilhar com utilizadores ou utilizadores remotos...",
+ "Share with users, remote users or by mail..." : "Partilhar com utilizadores, utilizadores remotos ou por email...",
+ "Share with users or groups..." : "PArtilhar com utilizadores ou grupos...",
+ "Share with users, groups or by mail..." : "Partilhar com utilizadores, grupos ou por email...",
+ "Share with users, groups or remote users..." : "Partilhar com utilizadores, grupos ou utilizadores remotos...",
+ "Share with users, groups, remote users or by mail..." : "Partilhar com utilizadores, grupos, utilizadores remotos oupor email...",
+ "Share with users..." : "Partilhar com utilizadores...",
"The update was successful. Redirecting you to Nextcloud now." : "A actualização foi bem sucedida. A redireccionar para Nextcloud agora.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para informar que %s partilhou »%s« consigo.\nConsulte aqui: %s\n",
"The share will expire on %s." : "Esta partilha irá expirar em %s.",
diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json
index 5a5d11ce590..cb06b1b4b39 100644
--- a/core/l10n/pt_PT.json
+++ b/core/l10n/pt_PT.json
@@ -152,15 +152,6 @@
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Partilhar",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partilhar com pessoas noutros servidores usando a Federated Cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Partilhar com utilizadores ou por email...",
- "Share with users or remote users..." : "Partilhar com utilizadores ou utilizadores remotos...",
- "Share with users, remote users or by mail..." : "Partilhar com utilizadores, utilizadores remotos ou por email...",
- "Share with users or groups..." : "PArtilhar com utilizadores ou grupos...",
- "Share with users, groups or by mail..." : "Partilhar com utilizadores, grupos ou por email...",
- "Share with users, groups or remote users..." : "Partilhar com utilizadores, grupos ou utilizadores remotos...",
- "Share with users, groups, remote users or by mail..." : "Partilhar com utilizadores, grupos, utilizadores remotos oupor email...",
- "Share with users..." : "Partilhar com utilizadores...",
"Error removing share" : "Erro ao remover partilha",
"Non-existing tag #{tag}" : "Etiqueta não existente #{tag}",
"restricted" : "limitado",
@@ -299,6 +290,15 @@
"can change" : "pode alterar",
"can delete" : "pode apagar",
"access control" : "controlo de acesso",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partilhar com pessoas noutros servidores usando a Federated Cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Partilhar com utilizadores ou por email...",
+ "Share with users or remote users..." : "Partilhar com utilizadores ou utilizadores remotos...",
+ "Share with users, remote users or by mail..." : "Partilhar com utilizadores, utilizadores remotos ou por email...",
+ "Share with users or groups..." : "PArtilhar com utilizadores ou grupos...",
+ "Share with users, groups or by mail..." : "Partilhar com utilizadores, grupos ou por email...",
+ "Share with users, groups or remote users..." : "Partilhar com utilizadores, grupos ou utilizadores remotos...",
+ "Share with users, groups, remote users or by mail..." : "Partilhar com utilizadores, grupos, utilizadores remotos oupor email...",
+ "Share with users..." : "Partilhar com utilizadores...",
"The update was successful. Redirecting you to Nextcloud now." : "A actualização foi bem sucedida. A redireccionar para Nextcloud agora.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Olá,\n\napenas para informar que %s partilhou »%s« consigo.\nConsulte aqui: %s\n",
"The share will expire on %s." : "Esta partilha irá expirar em %s.",
diff --git a/core/l10n/ro.js b/core/l10n/ro.js
index 66e89858b82..68a81f1f081 100644
--- a/core/l10n/ro.js
+++ b/core/l10n/ro.js
@@ -142,15 +142,6 @@ OC.L10N.register(
"{sharee} (remote)" : "{sharee} (distanță)",
"{sharee} (email)" : "{sharee} (email)",
"Share" : "Partajează",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partajează cu alți utilizatori de pe alte servere utilizând ID-ul Cloud-ului lor de forma username@example.com/nextcloud.",
- "Share with users or by mail..." : "Partajează cu alți utilizatori sau prin mail...",
- "Share with users or remote users..." : "Partajează cu alți utilizatori sau cu utilizatori la distanță...",
- "Share with users, remote users or by mail..." : "Partajează cu alți utilizatori, utilizatori la distanță sau prin mail...",
- "Share with users or groups..." : "Partajează cu alți utilizatori sau grupuri...",
- "Share with users, groups or by mail..." : "Partajează cu alți utilizatori, grupuri sau prin mail...",
- "Share with users, groups or remote users..." : "Partajează cu alți utilizatori, grupuri sau utilizatori la distanță...",
- "Share with users, groups, remote users or by mail..." : "Partajează cu alți utilizatori, grupuri, utilizatori la distanță sau prin mail...",
- "Share with users..." : "Partajează cu alți utilizatori...",
"Error removing share" : "Eroare la înlăturarea elementului partajat",
"Non-existing tag #{tag}" : "Etichetă inexistentă #{tag}",
"restricted" : "restricționat",
@@ -285,6 +276,15 @@ OC.L10N.register(
"can change" : "poate schimba",
"can delete" : "poate șterge",
"access control" : "control acces",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partajează cu alți utilizatori de pe alte servere utilizând ID-ul Cloud-ului lor de forma username@example.com/nextcloud.",
+ "Share with users or by mail..." : "Partajează cu alți utilizatori sau prin mail...",
+ "Share with users or remote users..." : "Partajează cu alți utilizatori sau cu utilizatori la distanță...",
+ "Share with users, remote users or by mail..." : "Partajează cu alți utilizatori, utilizatori la distanță sau prin mail...",
+ "Share with users or groups..." : "Partajează cu alți utilizatori sau grupuri...",
+ "Share with users, groups or by mail..." : "Partajează cu alți utilizatori, grupuri sau prin mail...",
+ "Share with users, groups or remote users..." : "Partajează cu alți utilizatori, grupuri sau utilizatori la distanță...",
+ "Share with users, groups, remote users or by mail..." : "Partajează cu alți utilizatori, grupuri, utilizatori la distanță sau prin mail...",
+ "Share with users..." : "Partajează cu alți utilizatori...",
"The update was successful. Redirecting you to Nextcloud now." : "Actualizarea a reușit. Te redirecționăm acum la Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Salutare,\n\nvrem să te anunțăm că %s a partajat %s cu tine.\nPoți vedea aici: %s\n\n",
"The share will expire on %s." : "Partajarea va expira în data de %s.",
diff --git a/core/l10n/ro.json b/core/l10n/ro.json
index f911d6f040b..cf98c9dfc2e 100644
--- a/core/l10n/ro.json
+++ b/core/l10n/ro.json
@@ -140,15 +140,6 @@
"{sharee} (remote)" : "{sharee} (distanță)",
"{sharee} (email)" : "{sharee} (email)",
"Share" : "Partajează",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partajează cu alți utilizatori de pe alte servere utilizând ID-ul Cloud-ului lor de forma username@example.com/nextcloud.",
- "Share with users or by mail..." : "Partajează cu alți utilizatori sau prin mail...",
- "Share with users or remote users..." : "Partajează cu alți utilizatori sau cu utilizatori la distanță...",
- "Share with users, remote users or by mail..." : "Partajează cu alți utilizatori, utilizatori la distanță sau prin mail...",
- "Share with users or groups..." : "Partajează cu alți utilizatori sau grupuri...",
- "Share with users, groups or by mail..." : "Partajează cu alți utilizatori, grupuri sau prin mail...",
- "Share with users, groups or remote users..." : "Partajează cu alți utilizatori, grupuri sau utilizatori la distanță...",
- "Share with users, groups, remote users or by mail..." : "Partajează cu alți utilizatori, grupuri, utilizatori la distanță sau prin mail...",
- "Share with users..." : "Partajează cu alți utilizatori...",
"Error removing share" : "Eroare la înlăturarea elementului partajat",
"Non-existing tag #{tag}" : "Etichetă inexistentă #{tag}",
"restricted" : "restricționat",
@@ -283,6 +274,15 @@
"can change" : "poate schimba",
"can delete" : "poate șterge",
"access control" : "control acces",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Partajează cu alți utilizatori de pe alte servere utilizând ID-ul Cloud-ului lor de forma username@example.com/nextcloud.",
+ "Share with users or by mail..." : "Partajează cu alți utilizatori sau prin mail...",
+ "Share with users or remote users..." : "Partajează cu alți utilizatori sau cu utilizatori la distanță...",
+ "Share with users, remote users or by mail..." : "Partajează cu alți utilizatori, utilizatori la distanță sau prin mail...",
+ "Share with users or groups..." : "Partajează cu alți utilizatori sau grupuri...",
+ "Share with users, groups or by mail..." : "Partajează cu alți utilizatori, grupuri sau prin mail...",
+ "Share with users, groups or remote users..." : "Partajează cu alți utilizatori, grupuri sau utilizatori la distanță...",
+ "Share with users, groups, remote users or by mail..." : "Partajează cu alți utilizatori, grupuri, utilizatori la distanță sau prin mail...",
+ "Share with users..." : "Partajează cu alți utilizatori...",
"The update was successful. Redirecting you to Nextcloud now." : "Actualizarea a reușit. Te redirecționăm acum la Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Salutare,\n\nvrem să te anunțăm că %s a partajat %s cu tine.\nPoți vedea aici: %s\n\n",
"The share will expire on %s." : "Partajarea va expira în data de %s.",
diff --git a/core/l10n/ru.js b/core/l10n/ru.js
index 60b78dc9acf..f53f6553fa8 100644
--- a/core/l10n/ru.js
+++ b/core/l10n/ru.js
@@ -162,15 +162,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Поделиться",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Поделиться с людьми на других серверах используя Federated Cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Поделиться с пользователями или по почте...",
- "Share with users or remote users..." : "Общий доступ с пользователями или удаленными пользователями",
- "Share with users, remote users or by mail..." : "Поделиться с пользователями, удалеными пользователями или по почте...",
- "Share with users or groups..." : "Общий доступ с пользователями или группами",
- "Share with users, groups or by mail..." : "Поделиться с пользователями, группами или по почте...",
- "Share with users, groups or remote users..." : "Поделиться с пользователями, группами или удаленными пользователями...",
- "Share with users, groups, remote users or by mail..." : "Поделиться с пользователями, группами, удалёнными пользователями или по почте...",
- "Share with users..." : "Поделиться с пользователями...",
"Error removing share" : "Ошибка удаления общего доступа",
"Non-existing tag #{tag}" : "Несуществующий тег #{tag}",
"restricted" : "ограниченный",
@@ -309,6 +300,15 @@ OC.L10N.register(
"can change" : "можно изменять",
"can delete" : "можно удалять",
"access control" : "контроль доступа",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Поделиться с людьми на других серверах используя Federated Cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Поделиться с пользователями или по почте...",
+ "Share with users or remote users..." : "Общий доступ с пользователями или удаленными пользователями",
+ "Share with users, remote users or by mail..." : "Поделиться с пользователями, удалеными пользователями или по почте...",
+ "Share with users or groups..." : "Общий доступ с пользователями или группами",
+ "Share with users, groups or by mail..." : "Поделиться с пользователями, группами или по почте...",
+ "Share with users, groups or remote users..." : "Поделиться с пользователями, группами или удаленными пользователями...",
+ "Share with users, groups, remote users or by mail..." : "Поделиться с пользователями, группами, удалёнными пользователями или по почте...",
+ "Share with users..." : "Поделиться с пользователями...",
"The update was successful. Redirecting you to Nextcloud now." : "Обновление прошло успешно. Перенаправляем вас на Nextcloud прямо сейчас.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Здравствуйте,\n\n%s поделился %s с вами.\nПосмотреть: %s\n",
"The share will expire on %s." : "Доступ будет закрыт %s",
diff --git a/core/l10n/ru.json b/core/l10n/ru.json
index 5a4412aeb94..90f24c58d05 100644
--- a/core/l10n/ru.json
+++ b/core/l10n/ru.json
@@ -160,15 +160,6 @@
"{sharee} (email)" : "{sharee} (email)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Поделиться",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Поделиться с людьми на других серверах используя Federated Cloud ID username@example.com/nextcloud",
- "Share with users or by mail..." : "Поделиться с пользователями или по почте...",
- "Share with users or remote users..." : "Общий доступ с пользователями или удаленными пользователями",
- "Share with users, remote users or by mail..." : "Поделиться с пользователями, удалеными пользователями или по почте...",
- "Share with users or groups..." : "Общий доступ с пользователями или группами",
- "Share with users, groups or by mail..." : "Поделиться с пользователями, группами или по почте...",
- "Share with users, groups or remote users..." : "Поделиться с пользователями, группами или удаленными пользователями...",
- "Share with users, groups, remote users or by mail..." : "Поделиться с пользователями, группами, удалёнными пользователями или по почте...",
- "Share with users..." : "Поделиться с пользователями...",
"Error removing share" : "Ошибка удаления общего доступа",
"Non-existing tag #{tag}" : "Несуществующий тег #{tag}",
"restricted" : "ограниченный",
@@ -307,6 +298,15 @@
"can change" : "можно изменять",
"can delete" : "можно удалять",
"access control" : "контроль доступа",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Поделиться с людьми на других серверах используя Federated Cloud ID username@example.com/nextcloud",
+ "Share with users or by mail..." : "Поделиться с пользователями или по почте...",
+ "Share with users or remote users..." : "Общий доступ с пользователями или удаленными пользователями",
+ "Share with users, remote users or by mail..." : "Поделиться с пользователями, удалеными пользователями или по почте...",
+ "Share with users or groups..." : "Общий доступ с пользователями или группами",
+ "Share with users, groups or by mail..." : "Поделиться с пользователями, группами или по почте...",
+ "Share with users, groups or remote users..." : "Поделиться с пользователями, группами или удаленными пользователями...",
+ "Share with users, groups, remote users or by mail..." : "Поделиться с пользователями, группами, удалёнными пользователями или по почте...",
+ "Share with users..." : "Поделиться с пользователями...",
"The update was successful. Redirecting you to Nextcloud now." : "Обновление прошло успешно. Перенаправляем вас на Nextcloud прямо сейчас.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Здравствуйте,\n\n%s поделился %s с вами.\nПосмотреть: %s\n",
"The share will expire on %s." : "Доступ будет закрыт %s",
diff --git a/core/l10n/sk.js b/core/l10n/sk.js
index 97de1606669..9521e6d2f54 100644
--- a/core/l10n/sk.js
+++ b/core/l10n/sk.js
@@ -139,14 +139,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (pošta)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Sprístupniť",
- "Share with users or by mail..." : "Zdieľať s používateľmi alebo prostredníctvom pošty...",
- "Share with users or remote users..." : "Sprístupniť používateľom alebo vzdialeným používateľom...",
- "Share with users, remote users or by mail..." : "Zdieľať spoužívateľmi, vzdialenými používateľmi alebo prostredníctvom pošty...",
- "Share with users or groups..." : "Sprístupniť používateľom alebo skupinám",
- "Share with users, groups or by mail..." : "Zdieľať s používateľmi, skupinami alebo prostredníctvom pošty..",
- "Share with users, groups or remote users..." : "Sprístupniť používateľom, skupinám alebo vzdialeným používateľom...",
- "Share with users, groups, remote users or by mail..." : "Zdieľať s používateľmi, skupinami, vzdialenými používateľmi alebo prostredníctvom pošty..",
- "Share with users..." : "Sprístupniť používateľom...",
"Error removing share" : "Chyba pri rušení sprístupnenia",
"Non-existing tag #{tag}" : "Neexistujúca značka #{tag}",
"restricted" : "obmedzený",
@@ -264,6 +256,14 @@ OC.L10N.register(
"can change" : "môže zmeniť",
"can delete" : "môže odstrániť",
"access control" : "prístupové práva",
+ "Share with users or by mail..." : "Zdieľať s používateľmi alebo prostredníctvom pošty...",
+ "Share with users or remote users..." : "Sprístupniť používateľom alebo vzdialeným používateľom...",
+ "Share with users, remote users or by mail..." : "Zdieľať spoužívateľmi, vzdialenými používateľmi alebo prostredníctvom pošty...",
+ "Share with users or groups..." : "Sprístupniť používateľom alebo skupinám",
+ "Share with users, groups or by mail..." : "Zdieľať s používateľmi, skupinami alebo prostredníctvom pošty..",
+ "Share with users, groups or remote users..." : "Sprístupniť používateľom, skupinám alebo vzdialeným používateľom...",
+ "Share with users, groups, remote users or by mail..." : "Zdieľať s používateľmi, skupinami, vzdialenými používateľmi alebo prostredníctvom pošty..",
+ "Share with users..." : "Sprístupniť používateľom...",
"The update was successful. Redirecting you to Nextcloud now." : "Aktualizácia bola úspešná. Presmerovávam na Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Dobrý deň,\n\npoužívateľ %s Vám sprístupnil položku s názvom %s.\nPre zobrazenie kliknite na odkaz: %s\n",
"The share will expire on %s." : "Sprístupnenie vyprší %s.",
diff --git a/core/l10n/sk.json b/core/l10n/sk.json
index 350b826bec2..6ccc0a5bca8 100644
--- a/core/l10n/sk.json
+++ b/core/l10n/sk.json
@@ -137,14 +137,6 @@
"{sharee} (email)" : "{sharee} (pošta)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Sprístupniť",
- "Share with users or by mail..." : "Zdieľať s používateľmi alebo prostredníctvom pošty...",
- "Share with users or remote users..." : "Sprístupniť používateľom alebo vzdialeným používateľom...",
- "Share with users, remote users or by mail..." : "Zdieľať spoužívateľmi, vzdialenými používateľmi alebo prostredníctvom pošty...",
- "Share with users or groups..." : "Sprístupniť používateľom alebo skupinám",
- "Share with users, groups or by mail..." : "Zdieľať s používateľmi, skupinami alebo prostredníctvom pošty..",
- "Share with users, groups or remote users..." : "Sprístupniť používateľom, skupinám alebo vzdialeným používateľom...",
- "Share with users, groups, remote users or by mail..." : "Zdieľať s používateľmi, skupinami, vzdialenými používateľmi alebo prostredníctvom pošty..",
- "Share with users..." : "Sprístupniť používateľom...",
"Error removing share" : "Chyba pri rušení sprístupnenia",
"Non-existing tag #{tag}" : "Neexistujúca značka #{tag}",
"restricted" : "obmedzený",
@@ -262,6 +254,14 @@
"can change" : "môže zmeniť",
"can delete" : "môže odstrániť",
"access control" : "prístupové práva",
+ "Share with users or by mail..." : "Zdieľať s používateľmi alebo prostredníctvom pošty...",
+ "Share with users or remote users..." : "Sprístupniť používateľom alebo vzdialeným používateľom...",
+ "Share with users, remote users or by mail..." : "Zdieľať spoužívateľmi, vzdialenými používateľmi alebo prostredníctvom pošty...",
+ "Share with users or groups..." : "Sprístupniť používateľom alebo skupinám",
+ "Share with users, groups or by mail..." : "Zdieľať s používateľmi, skupinami alebo prostredníctvom pošty..",
+ "Share with users, groups or remote users..." : "Sprístupniť používateľom, skupinám alebo vzdialeným používateľom...",
+ "Share with users, groups, remote users or by mail..." : "Zdieľať s používateľmi, skupinami, vzdialenými používateľmi alebo prostredníctvom pošty..",
+ "Share with users..." : "Sprístupniť používateľom...",
"The update was successful. Redirecting you to Nextcloud now." : "Aktualizácia bola úspešná. Presmerovávam na Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Dobrý deň,\n\npoužívateľ %s Vám sprístupnil položku s názvom %s.\nPre zobrazenie kliknite na odkaz: %s\n",
"The share will expire on %s." : "Sprístupnenie vyprší %s.",
diff --git a/core/l10n/sq.js b/core/l10n/sq.js
index 8112ed2b743..fc547cac6fb 100644
--- a/core/l10n/sq.js
+++ b/core/l10n/sq.js
@@ -138,15 +138,6 @@ OC.L10N.register(
"{sharee} (remote)" : "{sharee} (i largët)",
"{sharee} (email)" : "{shpërnda} (postë elektronike)",
"Share" : "Ndaje",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Shpërnda me njerëzit në serverat e tjerë duke përdorur ID e tyre të Cloud-it të Federuar\nusername@example.com/nextcloud",
- "Share with users or by mail..." : "Shpërnda me përdoruesit ose nga posta elektronike",
- "Share with users or remote users..." : "Shpërnda me përdoruesit ose me përdoruesit në distancë...",
- "Share with users, remote users or by mail..." : "Shpërnda me përdoruesit, përdoruesit në distancë ose nga posta elektronike...",
- "Share with users or groups..." : "Shpërnda me përdoruesit ose grupet...",
- "Share with users, groups or by mail..." : "Shpërnda me përdoruesit, grupet ose nga posta elektronike...",
- "Share with users, groups or remote users..." : "Shpërnda me përdoruesit, grupet ose përdoruesit në distancë...",
- "Share with users, groups, remote users or by mail..." : "Shpërnda me përdoruesit, grupet, përdoruesit në distancë ose nga posta elektronike...",
- "Share with users..." : "Shpërnda me përdoruesit...",
"Error removing share" : "Gabim në heqjen e ndarjes",
"Non-existing tag #{tag}" : "Etiketë #{tag} që s’ekziston",
"restricted" : "e kufizuar",
@@ -281,6 +272,15 @@ OC.L10N.register(
"can change" : "mund të ndryshohet",
"can delete" : "mund të fshihet",
"access control" : "kontroll hyrjesh",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Shpërnda me njerëzit në serverat e tjerë duke përdorur ID e tyre të Cloud-it të Federuar\nusername@example.com/nextcloud",
+ "Share with users or by mail..." : "Shpërnda me përdoruesit ose nga posta elektronike",
+ "Share with users or remote users..." : "Shpërnda me përdoruesit ose me përdoruesit në distancë...",
+ "Share with users, remote users or by mail..." : "Shpërnda me përdoruesit, përdoruesit në distancë ose nga posta elektronike...",
+ "Share with users or groups..." : "Shpërnda me përdoruesit ose grupet...",
+ "Share with users, groups or by mail..." : "Shpërnda me përdoruesit, grupet ose nga posta elektronike...",
+ "Share with users, groups or remote users..." : "Shpërnda me përdoruesit, grupet ose përdoruesit në distancë...",
+ "Share with users, groups, remote users or by mail..." : "Shpërnda me përdoruesit, grupet, përdoruesit në distancë ose nga posta elektronike...",
+ "Share with users..." : "Shpërnda me përdoruesit...",
"The update was successful. Redirecting you to Nextcloud now." : "Përditësimi ishte i suksesshëm. Ju ridrejtojmë në Nextcloud tani.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Njatjeta,\n\nthjesht po ju bëjmë të ditur që %s ndau me ju %s.\nShiheni: %s\n\n",
"The share will expire on %s." : "Ndarja do të skadojë më %s.",
diff --git a/core/l10n/sq.json b/core/l10n/sq.json
index 25e0a69ad6e..eb6bba08ef1 100644
--- a/core/l10n/sq.json
+++ b/core/l10n/sq.json
@@ -136,15 +136,6 @@
"{sharee} (remote)" : "{sharee} (i largët)",
"{sharee} (email)" : "{shpërnda} (postë elektronike)",
"Share" : "Ndaje",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Shpërnda me njerëzit në serverat e tjerë duke përdorur ID e tyre të Cloud-it të Federuar\nusername@example.com/nextcloud",
- "Share with users or by mail..." : "Shpërnda me përdoruesit ose nga posta elektronike",
- "Share with users or remote users..." : "Shpërnda me përdoruesit ose me përdoruesit në distancë...",
- "Share with users, remote users or by mail..." : "Shpërnda me përdoruesit, përdoruesit në distancë ose nga posta elektronike...",
- "Share with users or groups..." : "Shpërnda me përdoruesit ose grupet...",
- "Share with users, groups or by mail..." : "Shpërnda me përdoruesit, grupet ose nga posta elektronike...",
- "Share with users, groups or remote users..." : "Shpërnda me përdoruesit, grupet ose përdoruesit në distancë...",
- "Share with users, groups, remote users or by mail..." : "Shpërnda me përdoruesit, grupet, përdoruesit në distancë ose nga posta elektronike...",
- "Share with users..." : "Shpërnda me përdoruesit...",
"Error removing share" : "Gabim në heqjen e ndarjes",
"Non-existing tag #{tag}" : "Etiketë #{tag} që s’ekziston",
"restricted" : "e kufizuar",
@@ -279,6 +270,15 @@
"can change" : "mund të ndryshohet",
"can delete" : "mund të fshihet",
"access control" : "kontroll hyrjesh",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Shpërnda me njerëzit në serverat e tjerë duke përdorur ID e tyre të Cloud-it të Federuar\nusername@example.com/nextcloud",
+ "Share with users or by mail..." : "Shpërnda me përdoruesit ose nga posta elektronike",
+ "Share with users or remote users..." : "Shpërnda me përdoruesit ose me përdoruesit në distancë...",
+ "Share with users, remote users or by mail..." : "Shpërnda me përdoruesit, përdoruesit në distancë ose nga posta elektronike...",
+ "Share with users or groups..." : "Shpërnda me përdoruesit ose grupet...",
+ "Share with users, groups or by mail..." : "Shpërnda me përdoruesit, grupet ose nga posta elektronike...",
+ "Share with users, groups or remote users..." : "Shpërnda me përdoruesit, grupet ose përdoruesit në distancë...",
+ "Share with users, groups, remote users or by mail..." : "Shpërnda me përdoruesit, grupet, përdoruesit në distancë ose nga posta elektronike...",
+ "Share with users..." : "Shpërnda me përdoruesit...",
"The update was successful. Redirecting you to Nextcloud now." : "Përditësimi ishte i suksesshëm. Ju ridrejtojmë në Nextcloud tani.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Njatjeta,\n\nthjesht po ju bëjmë të ditur që %s ndau me ju %s.\nShiheni: %s\n\n",
"The share will expire on %s." : "Ndarja do të skadojë më %s.",
diff --git a/core/l10n/sv.js b/core/l10n/sv.js
index b81d18d630e..b5f8f8bfcc7 100644
--- a/core/l10n/sv.js
+++ b/core/l10n/sv.js
@@ -17,6 +17,9 @@ OC.L10N.register(
"Couldn't reset password because the token is invalid" : "Kunde inte återställa lösenordet på grund av felaktig token",
"Couldn't reset password because the token is expired" : "Lösenord kunde inte återställas eftersom \"token\" har utgått",
"Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kunde inte skicka återställningsmejl eftersom det saknas e-postadress för denna användare. Kontakta din administratör",
+ "Password reset" : "Lösenordsåterställning",
+ "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klicka på knappen för att återställa ditt lösenord. Om du inte har begärt att återställa ditt lösenord så kan du ignorera detta mail, inget kommer då att ske.",
+ "Reset your password" : "Åsterställ ditt lösenord",
"%s password reset" : "%s återställ lösenord",
"Couldn't send reset email. Please contact your administrator." : "Kunde inte skicka återställningsmejl. Vänligen kontakta din administratör.",
"Couldn't send reset email. Please make sure your username is correct." : "Kunde inte skicka återställningsmejl. Vänligen kontrollera att ditt användarnamn är korrekt.",
@@ -68,6 +71,7 @@ OC.L10N.register(
"No files in here" : "Det finns inga filer här",
"Choose" : "Välj",
"Error loading file picker template: {error}" : "Fel uppstod för filväljarmall: {error}",
+ "OK" : "OK",
"Error loading message template: {error}" : "Fel uppstod under inläsningen av meddelandemallen: {error}",
"read-only" : "skrivskyddad",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} filkonflikt","{count} filkonflikter"],
@@ -110,44 +114,49 @@ OC.L10N.register(
"Expiration" : "Upphör",
"Expiration date" : "Utgångsdatum",
"Choose a password for the public link" : "Välj ett lösenord för den offentliga länken",
+ "Choose a password for the public link or press \"Enter ↵\"" : "Välj ett lösenord för offentlig delning eller tryck \"Enter ↵\"",
"Copied!" : "Kopierad!",
"Copy" : "Kopiera",
"Not supported!" : "Stöds ej!",
"Press ⌘-C to copy." : "Tryck ned ⌘-C för att kopiera.",
"Press Ctrl-C to copy." : "Tryck ned Ctrl-C för att kopiera.",
"Resharing is not allowed" : "Dela vidare är inte tillåtet",
+ "Share to {name}" : "Dela till {name}",
"Share link" : "Dela länk",
"Link" : "Länk",
"Password protect" : "Lösenordsskydda",
"Allow upload and editing" : "Tillåt uppladdning och redigering",
"Allow editing" : "Tillåt redigering",
+ "upload only" : "endast uppladdning",
"Email link to person" : "Skicka länken som e-postmeddelande",
"Send" : "Skicka",
"Shared with you and the group {group} by {owner}" : "Delad med dig och gruppen {group} av {owner}",
"Shared with you by {owner}" : "Delad med dig av {owner}",
+ "Choose a password for the mail share" : "Välj ett lösenord för delning via e-post",
"{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} delad via länk",
"group" : "Grupp",
"remote" : "extern",
"email" : "e-post",
+ "shared by {sharer}" : "delat av {sharer}",
"Unshare" : "Sluta dela",
+ "Can reshare" : "Kan vidaredela",
+ "Can edit" : "Kan redigera",
+ "Can create" : "Kan skapa",
+ "Can change" : "Kan ändra",
+ "Can delete" : "Kan radera",
+ "Secure drop (upload only)" : "Säkert släpp (endast uppladdning)",
+ "Access control" : "Åtkomstkontroll",
"Could not unshare" : "Kunde inte ta bort delning",
"Share details could not be loaded for this item." : "Delningsdetaljer kunde inte laddas för detta objekt.",
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Minst {count} tecken krävs för automatisk ifyllning","Minst {count} tecken krävs för automatisk ifyllning"],
"No users or groups found for {search}" : "Inga användare eller grupper funna för {search}",
"No users found for {search}" : "Inga användare funna för {search}",
"An error occurred. Please try again" : "Ett fel uppstod. Vänligen försök igen",
"{sharee} (group)" : "{sharee} (grupp)",
"{sharee} (remote)" : "{sharee} (externt)",
"{sharee} (email)" : "{sharee} (e-post)",
+ "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Dela",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Dela med andra personer på andra servrar genom att använda deras Federerade Moln-ID användarnamn@example.com/nextcloud",
- "Share with users or by mail..." : "Dela med användare eller via e-post...",
- "Share with users or remote users..." : "Dela med användare eller externanvändare...",
- "Share with users, remote users or by mail..." : "Dela med användare, externanvändare eller via e-post...",
- "Share with users or groups..." : "Dela med användare eller grupper...",
- "Share with users, groups or by mail..." : "Dela med användare, grupper eller via epost",
- "Share with users, groups or remote users..." : "Dela med användare, grupper eller externanvändare...",
- "Share with users, groups, remote users or by mail..." : "Dela med användare, grupper, externanvändare eller via e-post...",
- "Share with users..." : "Dela med användare...",
"Error removing share" : "Fel uppstod när delning försökte tas bort",
"Non-existing tag #{tag}" : "Icke-existerande tag #{tag}",
"restricted" : "begränsad",
@@ -178,7 +187,9 @@ OC.L10N.register(
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Uppdateringen misslyckades. För mer information <a href=\"{url}\">kolla vår forum post</a> angående problemet.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Uppdateringen misslyckades. Vänligen rapportera felet till <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>.",
"Continue to Nextcloud" : "Fortsätt till Nextcloud",
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Uppdateringen lyckades. Omdirigerar dig till molnet om %n sekund.","Uppdateringen lyckades. Omdirigerar dig till molnet om %n sekunder."],
"Searching other places" : "Söker på andra platser",
+ "No search results in other folders for {tag}{filter}{endtag}" : "Inget sökresultat i andra mappar för {tag}{filter}{endtag}",
"_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} sökresultat i en annan mapp","{count} sökresultat i andra mappar"],
"Personal" : "Personliga Inställningar",
"Users" : "Användare",
@@ -228,6 +239,7 @@ OC.L10N.register(
"Need help?" : "Behöver du hjälp?",
"See the documentation" : "Läs dokumentationen",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denna applikationen kräver JavaScript för att fungera korrekt. Var god {linkstart}aktivera JavaScript{linkend} och ladda om sidan.",
+ "More apps" : "Fler appar",
"Search" : "Sök",
"This action requires you to confirm your password:" : "Denna åtgärd kräver att du bekräftar ditt lösenord:",
"Confirm your password" : "Bekräfta ditt lösenord",
@@ -283,6 +295,15 @@ OC.L10N.register(
"can change" : "kan ändra",
"can delete" : "kan radera",
"access control" : "åtkomstkontroll",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Dela med andra personer på andra servrar genom att använda deras Federerade Moln-ID användarnamn@example.com/nextcloud",
+ "Share with users or by mail..." : "Dela med användare eller via e-post...",
+ "Share with users or remote users..." : "Dela med användare eller externanvändare...",
+ "Share with users, remote users or by mail..." : "Dela med användare, externanvändare eller via e-post...",
+ "Share with users or groups..." : "Dela med användare eller grupper...",
+ "Share with users, groups or by mail..." : "Dela med användare, grupper eller via epost",
+ "Share with users, groups or remote users..." : "Dela med användare, grupper eller externanvändare...",
+ "Share with users, groups, remote users or by mail..." : "Dela med användare, grupper, externanvändare eller via e-post...",
+ "Share with users..." : "Dela med användare...",
"The update was successful. Redirecting you to Nextcloud now." : "Uppdateringen lyckades. Omdirigerar nu till Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej där,\n\nVi vill bara meddela att %s delade %s med dig.\nTitta på den här: %s\n\n",
"The share will expire on %s." : "Delningen kommer att upphöra %s.",
diff --git a/core/l10n/sv.json b/core/l10n/sv.json
index 797fd2a716b..e06ab0428ec 100644
--- a/core/l10n/sv.json
+++ b/core/l10n/sv.json
@@ -15,6 +15,9 @@
"Couldn't reset password because the token is invalid" : "Kunde inte återställa lösenordet på grund av felaktig token",
"Couldn't reset password because the token is expired" : "Lösenord kunde inte återställas eftersom \"token\" har utgått",
"Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kunde inte skicka återställningsmejl eftersom det saknas e-postadress för denna användare. Kontakta din administratör",
+ "Password reset" : "Lösenordsåterställning",
+ "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Klicka på knappen för att återställa ditt lösenord. Om du inte har begärt att återställa ditt lösenord så kan du ignorera detta mail, inget kommer då att ske.",
+ "Reset your password" : "Åsterställ ditt lösenord",
"%s password reset" : "%s återställ lösenord",
"Couldn't send reset email. Please contact your administrator." : "Kunde inte skicka återställningsmejl. Vänligen kontakta din administratör.",
"Couldn't send reset email. Please make sure your username is correct." : "Kunde inte skicka återställningsmejl. Vänligen kontrollera att ditt användarnamn är korrekt.",
@@ -66,6 +69,7 @@
"No files in here" : "Det finns inga filer här",
"Choose" : "Välj",
"Error loading file picker template: {error}" : "Fel uppstod för filväljarmall: {error}",
+ "OK" : "OK",
"Error loading message template: {error}" : "Fel uppstod under inläsningen av meddelandemallen: {error}",
"read-only" : "skrivskyddad",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} filkonflikt","{count} filkonflikter"],
@@ -108,44 +112,49 @@
"Expiration" : "Upphör",
"Expiration date" : "Utgångsdatum",
"Choose a password for the public link" : "Välj ett lösenord för den offentliga länken",
+ "Choose a password for the public link or press \"Enter ↵\"" : "Välj ett lösenord för offentlig delning eller tryck \"Enter ↵\"",
"Copied!" : "Kopierad!",
"Copy" : "Kopiera",
"Not supported!" : "Stöds ej!",
"Press ⌘-C to copy." : "Tryck ned ⌘-C för att kopiera.",
"Press Ctrl-C to copy." : "Tryck ned Ctrl-C för att kopiera.",
"Resharing is not allowed" : "Dela vidare är inte tillåtet",
+ "Share to {name}" : "Dela till {name}",
"Share link" : "Dela länk",
"Link" : "Länk",
"Password protect" : "Lösenordsskydda",
"Allow upload and editing" : "Tillåt uppladdning och redigering",
"Allow editing" : "Tillåt redigering",
+ "upload only" : "endast uppladdning",
"Email link to person" : "Skicka länken som e-postmeddelande",
"Send" : "Skicka",
"Shared with you and the group {group} by {owner}" : "Delad med dig och gruppen {group} av {owner}",
"Shared with you by {owner}" : "Delad med dig av {owner}",
+ "Choose a password for the mail share" : "Välj ett lösenord för delning via e-post",
"{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} delad via länk",
"group" : "Grupp",
"remote" : "extern",
"email" : "e-post",
+ "shared by {sharer}" : "delat av {sharer}",
"Unshare" : "Sluta dela",
+ "Can reshare" : "Kan vidaredela",
+ "Can edit" : "Kan redigera",
+ "Can create" : "Kan skapa",
+ "Can change" : "Kan ändra",
+ "Can delete" : "Kan radera",
+ "Secure drop (upload only)" : "Säkert släpp (endast uppladdning)",
+ "Access control" : "Åtkomstkontroll",
"Could not unshare" : "Kunde inte ta bort delning",
"Share details could not be loaded for this item." : "Delningsdetaljer kunde inte laddas för detta objekt.",
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Minst {count} tecken krävs för automatisk ifyllning","Minst {count} tecken krävs för automatisk ifyllning"],
"No users or groups found for {search}" : "Inga användare eller grupper funna för {search}",
"No users found for {search}" : "Inga användare funna för {search}",
"An error occurred. Please try again" : "Ett fel uppstod. Vänligen försök igen",
"{sharee} (group)" : "{sharee} (grupp)",
"{sharee} (remote)" : "{sharee} (externt)",
"{sharee} (email)" : "{sharee} (e-post)",
+ "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Dela",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Dela med andra personer på andra servrar genom att använda deras Federerade Moln-ID användarnamn@example.com/nextcloud",
- "Share with users or by mail..." : "Dela med användare eller via e-post...",
- "Share with users or remote users..." : "Dela med användare eller externanvändare...",
- "Share with users, remote users or by mail..." : "Dela med användare, externanvändare eller via e-post...",
- "Share with users or groups..." : "Dela med användare eller grupper...",
- "Share with users, groups or by mail..." : "Dela med användare, grupper eller via epost",
- "Share with users, groups or remote users..." : "Dela med användare, grupper eller externanvändare...",
- "Share with users, groups, remote users or by mail..." : "Dela med användare, grupper, externanvändare eller via e-post...",
- "Share with users..." : "Dela med användare...",
"Error removing share" : "Fel uppstod när delning försökte tas bort",
"Non-existing tag #{tag}" : "Icke-existerande tag #{tag}",
"restricted" : "begränsad",
@@ -176,7 +185,9 @@
"The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Uppdateringen misslyckades. För mer information <a href=\"{url}\">kolla vår forum post</a> angående problemet.",
"The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Uppdateringen misslyckades. Vänligen rapportera felet till <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>.",
"Continue to Nextcloud" : "Fortsätt till Nextcloud",
+ "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["Uppdateringen lyckades. Omdirigerar dig till molnet om %n sekund.","Uppdateringen lyckades. Omdirigerar dig till molnet om %n sekunder."],
"Searching other places" : "Söker på andra platser",
+ "No search results in other folders for {tag}{filter}{endtag}" : "Inget sökresultat i andra mappar för {tag}{filter}{endtag}",
"_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} sökresultat i en annan mapp","{count} sökresultat i andra mappar"],
"Personal" : "Personliga Inställningar",
"Users" : "Användare",
@@ -226,6 +237,7 @@
"Need help?" : "Behöver du hjälp?",
"See the documentation" : "Läs dokumentationen",
"This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Denna applikationen kräver JavaScript för att fungera korrekt. Var god {linkstart}aktivera JavaScript{linkend} och ladda om sidan.",
+ "More apps" : "Fler appar",
"Search" : "Sök",
"This action requires you to confirm your password:" : "Denna åtgärd kräver att du bekräftar ditt lösenord:",
"Confirm your password" : "Bekräfta ditt lösenord",
@@ -281,6 +293,15 @@
"can change" : "kan ändra",
"can delete" : "kan radera",
"access control" : "åtkomstkontroll",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Dela med andra personer på andra servrar genom att använda deras Federerade Moln-ID användarnamn@example.com/nextcloud",
+ "Share with users or by mail..." : "Dela med användare eller via e-post...",
+ "Share with users or remote users..." : "Dela med användare eller externanvändare...",
+ "Share with users, remote users or by mail..." : "Dela med användare, externanvändare eller via e-post...",
+ "Share with users or groups..." : "Dela med användare eller grupper...",
+ "Share with users, groups or by mail..." : "Dela med användare, grupper eller via epost",
+ "Share with users, groups or remote users..." : "Dela med användare, grupper eller externanvändare...",
+ "Share with users, groups, remote users or by mail..." : "Dela med användare, grupper, externanvändare eller via e-post...",
+ "Share with users..." : "Dela med användare...",
"The update was successful. Redirecting you to Nextcloud now." : "Uppdateringen lyckades. Omdirigerar nu till Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hej där,\n\nVi vill bara meddela att %s delade %s med dig.\nTitta på den här: %s\n\n",
"The share will expire on %s." : "Delningen kommer att upphöra %s.",
diff --git a/core/l10n/tr.js b/core/l10n/tr.js
index f33d3a3c0e7..8281542010f 100644
--- a/core/l10n/tr.js
+++ b/core/l10n/tr.js
@@ -162,15 +162,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (e-posta)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Paylaş",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Birleşmiş Bulut Kodu ile diğer sunucular üzerindeki kişiler ile paylaş username@example.com/nextcloud",
- "Share with users or by mail..." : "Kullanıcılar ya da e-posta ile paylaş...",
- "Share with users or remote users..." : "Kullanıcılar ya da uzak kullanıcılar ile paylaş...",
- "Share with users, remote users or by mail..." : "Kullanıcılar, uzak kullanıcılar ya da e-posta ile paylaş...",
- "Share with users or groups..." : "Kullanıcı ya da gruplar ile paylaş...",
- "Share with users, groups or by mail..." : "Kullanıcılar, gruplar ya da e-posta ile paylaş...",
- "Share with users, groups or remote users..." : "Kullanıcılar, gruplar ya da uzak kullanıcılar ile paylaş...",
- "Share with users, groups, remote users or by mail..." : "Kullanıcılar, gruplar, uzak kullanıcılar ya da e-posta ile paylaş...",
- "Share with users..." : "Kullanıcılar ile paylaş...",
"Error removing share" : "Paylaşımdan kaldırılırken sorun çıktı",
"Non-existing tag #{tag}" : "#{tag} etiketi bulunamadı",
"restricted" : "kısıtlı",
@@ -309,6 +300,15 @@ OC.L10N.register(
"can change" : "değiştirebilir",
"can delete" : "silebilir",
"access control" : "erişim denetimi",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Birleşmiş Bulut Kodu ile diğer sunucular üzerindeki kişiler ile paylaş username@example.com/nextcloud",
+ "Share with users or by mail..." : "Kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users or remote users..." : "Kullanıcılar ya da uzak kullanıcılar ile paylaş...",
+ "Share with users, remote users or by mail..." : "Kullanıcılar, uzak kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users or groups..." : "Kullanıcı ya da gruplar ile paylaş...",
+ "Share with users, groups or by mail..." : "Kullanıcılar, gruplar ya da e-posta ile paylaş...",
+ "Share with users, groups or remote users..." : "Kullanıcılar, gruplar ya da uzak kullanıcılar ile paylaş...",
+ "Share with users, groups, remote users or by mail..." : "Kullanıcılar, gruplar, uzak kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users..." : "Kullanıcılar ile paylaş...",
"The update was successful. Redirecting you to Nextcloud now." : "Uygulama güncellendi. Nextcloud kullanmaya yönlendiriliyorsunuz.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Merhaba,\n\n%s kullanıcısının sizinle %s paylaşımında bulunduğunu bildirmek istedik.\nPaylaşımı şuradan görebilirsiniz: %s\n\n",
"The share will expire on %s." : "Bu paylaşım %s tarihinde sona erecek.",
diff --git a/core/l10n/tr.json b/core/l10n/tr.json
index 0505b94deff..bcf0f38b8e4 100644
--- a/core/l10n/tr.json
+++ b/core/l10n/tr.json
@@ -160,15 +160,6 @@
"{sharee} (email)" : "{sharee} (e-posta)",
"{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})",
"Share" : "Paylaş",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Birleşmiş Bulut Kodu ile diğer sunucular üzerindeki kişiler ile paylaş username@example.com/nextcloud",
- "Share with users or by mail..." : "Kullanıcılar ya da e-posta ile paylaş...",
- "Share with users or remote users..." : "Kullanıcılar ya da uzak kullanıcılar ile paylaş...",
- "Share with users, remote users or by mail..." : "Kullanıcılar, uzak kullanıcılar ya da e-posta ile paylaş...",
- "Share with users or groups..." : "Kullanıcı ya da gruplar ile paylaş...",
- "Share with users, groups or by mail..." : "Kullanıcılar, gruplar ya da e-posta ile paylaş...",
- "Share with users, groups or remote users..." : "Kullanıcılar, gruplar ya da uzak kullanıcılar ile paylaş...",
- "Share with users, groups, remote users or by mail..." : "Kullanıcılar, gruplar, uzak kullanıcılar ya da e-posta ile paylaş...",
- "Share with users..." : "Kullanıcılar ile paylaş...",
"Error removing share" : "Paylaşımdan kaldırılırken sorun çıktı",
"Non-existing tag #{tag}" : "#{tag} etiketi bulunamadı",
"restricted" : "kısıtlı",
@@ -307,6 +298,15 @@
"can change" : "değiştirebilir",
"can delete" : "silebilir",
"access control" : "erişim denetimi",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Birleşmiş Bulut Kodu ile diğer sunucular üzerindeki kişiler ile paylaş username@example.com/nextcloud",
+ "Share with users or by mail..." : "Kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users or remote users..." : "Kullanıcılar ya da uzak kullanıcılar ile paylaş...",
+ "Share with users, remote users or by mail..." : "Kullanıcılar, uzak kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users or groups..." : "Kullanıcı ya da gruplar ile paylaş...",
+ "Share with users, groups or by mail..." : "Kullanıcılar, gruplar ya da e-posta ile paylaş...",
+ "Share with users, groups or remote users..." : "Kullanıcılar, gruplar ya da uzak kullanıcılar ile paylaş...",
+ "Share with users, groups, remote users or by mail..." : "Kullanıcılar, gruplar, uzak kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users..." : "Kullanıcılar ile paylaş...",
"The update was successful. Redirecting you to Nextcloud now." : "Uygulama güncellendi. Nextcloud kullanmaya yönlendiriliyorsunuz.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Merhaba,\n\n%s kullanıcısının sizinle %s paylaşımında bulunduğunu bildirmek istedik.\nPaylaşımı şuradan görebilirsiniz: %s\n\n",
"The share will expire on %s." : "Bu paylaşım %s tarihinde sona erecek.",
diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js
index d8f2f4a47cc..731e2705933 100644
--- a/core/l10n/zh_CN.js
+++ b/core/l10n/zh_CN.js
@@ -147,15 +147,6 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (邮件)",
"{sharee} ({type}, {owner})" : "{share}({type},{owner})",
"Share" : "分享",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "使用联合云ID与其他服务器的用户分享, 如 用户名@example.com/nextcloud",
- "Share with users or by mail..." : "通过邮件分享...",
- "Share with users or remote users..." : "分享给其他用户或外部用户...",
- "Share with users, remote users or by mail..." : "通过邮件分享给其他用户或外部用户...",
- "Share with users or groups..." : "分享给其他用户或分组...",
- "Share with users, groups or by mail..." : "通过邮件分享给其他用户或分组...",
- "Share with users, groups or remote users..." : "分享给其他用户, 分组或外部用户...",
- "Share with users, groups, remote users or by mail..." : "通过邮件分享给其他用户, 分组或外部用户...",
- "Share with users..." : "分享给其他用户...",
"Error removing share" : "移除分享时出错",
"Non-existing tag #{tag}" : "标签 #{tag} 不存在",
"restricted" : "受限",
@@ -294,6 +285,15 @@ OC.L10N.register(
"can change" : "允许改变",
"can delete" : "允许删除",
"access control" : "访问控制",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "使用联合云ID与其他服务器的用户分享, 如 用户名@example.com/nextcloud",
+ "Share with users or by mail..." : "通过邮件分享...",
+ "Share with users or remote users..." : "分享给其他用户或外部用户...",
+ "Share with users, remote users or by mail..." : "通过邮件分享给其他用户或外部用户...",
+ "Share with users or groups..." : "分享给其他用户或分组...",
+ "Share with users, groups or by mail..." : "通过邮件分享给其他用户或分组...",
+ "Share with users, groups or remote users..." : "分享给其他用户, 分组或外部用户...",
+ "Share with users, groups, remote users or by mail..." : "通过邮件分享给其他用户, 分组或外部用户...",
+ "Share with users..." : "分享给其他用户...",
"The update was successful. Redirecting you to Nextcloud now." : "升级成功. 正在重新访问 Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "嗨、你好,\n\n只想让你知道 %s 分享了 %s 给你。\n现在查看: %s\n",
"The share will expire on %s." : "此分享将在 %s 过期.",
diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json
index 2d445544c0f..5d95fb9aff3 100644
--- a/core/l10n/zh_CN.json
+++ b/core/l10n/zh_CN.json
@@ -145,15 +145,6 @@
"{sharee} (email)" : "{sharee} (邮件)",
"{sharee} ({type}, {owner})" : "{share}({type},{owner})",
"Share" : "分享",
- "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "使用联合云ID与其他服务器的用户分享, 如 用户名@example.com/nextcloud",
- "Share with users or by mail..." : "通过邮件分享...",
- "Share with users or remote users..." : "分享给其他用户或外部用户...",
- "Share with users, remote users or by mail..." : "通过邮件分享给其他用户或外部用户...",
- "Share with users or groups..." : "分享给其他用户或分组...",
- "Share with users, groups or by mail..." : "通过邮件分享给其他用户或分组...",
- "Share with users, groups or remote users..." : "分享给其他用户, 分组或外部用户...",
- "Share with users, groups, remote users or by mail..." : "通过邮件分享给其他用户, 分组或外部用户...",
- "Share with users..." : "分享给其他用户...",
"Error removing share" : "移除分享时出错",
"Non-existing tag #{tag}" : "标签 #{tag} 不存在",
"restricted" : "受限",
@@ -292,6 +283,15 @@
"can change" : "允许改变",
"can delete" : "允许删除",
"access control" : "访问控制",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "使用联合云ID与其他服务器的用户分享, 如 用户名@example.com/nextcloud",
+ "Share with users or by mail..." : "通过邮件分享...",
+ "Share with users or remote users..." : "分享给其他用户或外部用户...",
+ "Share with users, remote users or by mail..." : "通过邮件分享给其他用户或外部用户...",
+ "Share with users or groups..." : "分享给其他用户或分组...",
+ "Share with users, groups or by mail..." : "通过邮件分享给其他用户或分组...",
+ "Share with users, groups or remote users..." : "分享给其他用户, 分组或外部用户...",
+ "Share with users, groups, remote users or by mail..." : "通过邮件分享给其他用户, 分组或外部用户...",
+ "Share with users..." : "分享给其他用户...",
"The update was successful. Redirecting you to Nextcloud now." : "升级成功. 正在重新访问 Nextcloud.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "嗨、你好,\n\n只想让你知道 %s 分享了 %s 给你。\n现在查看: %s\n",
"The share will expire on %s." : "此分享将在 %s 过期.",
diff --git a/lib/private/App/CodeChecker/CodeChecker.php b/lib/private/App/CodeChecker/CodeChecker.php
index 5a3cc3122cb..291bedee92f 100644
--- a/lib/private/App/CodeChecker/CodeChecker.php
+++ b/lib/private/App/CodeChecker/CodeChecker.php
@@ -26,8 +26,6 @@ namespace OC\App\CodeChecker;
use OC\Hooks\BasicEmitter;
use PhpParser\Lexer;
-use PhpParser\Node;
-use PhpParser\Node\Name;
use PhpParser\NodeTraverser;
use PhpParser\Parser;
use RecursiveCallbackFilterIterator;
diff --git a/lib/private/App/Platform.php b/lib/private/App/Platform.php
index 4959ce7ae4b..344e420b7d3 100644
--- a/lib/private/App/Platform.php
+++ b/lib/private/App/Platform.php
@@ -24,7 +24,6 @@
namespace OC\App;
-use OC_Util;
use OCP\IConfig;
/**
diff --git a/lib/private/AppFramework/App.php b/lib/private/AppFramework/App.php
index 5a7bc8fad43..75b2e983fea 100644
--- a/lib/private/AppFramework/App.php
+++ b/lib/private/AppFramework/App.php
@@ -28,7 +28,6 @@
namespace OC\AppFramework;
use OC\AppFramework\Http\Dispatcher;
-use OC_App;
use OC\AppFramework\DependencyInjection\DIContainer;
use OCP\AppFramework\Http;
use OCP\AppFramework\QueryException;
diff --git a/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php b/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php
index e2ad7955dd0..e9fcc1fdea5 100644
--- a/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php
+++ b/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php
@@ -25,7 +25,6 @@ use OC\AppFramework\Utility\ControllerMethodReflector;
use OC\Security\RateLimiting\Exception\RateLimitExceededException;
use OC\Security\RateLimiting\Limiter;
use OCP\AppFramework\Http\JSONResponse;
-use OCP\AppFramework\Http\Response;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Middleware;
use OCP\IRequest;
diff --git a/lib/private/Comments/Manager.php b/lib/private/Comments/Manager.php
index 695d209b68f..f1c5b7dca50 100644
--- a/lib/private/Comments/Manager.php
+++ b/lib/private/Comments/Manager.php
@@ -25,7 +25,6 @@
namespace OC\Comments;
use Doctrine\DBAL\Exception\DriverException;
-use Doctrine\DBAL\Platforms\MySqlPlatform;
use OCP\Comments\CommentsEvent;
use OCP\Comments\IComment;
use OCP\Comments\ICommentsEventHandler;
diff --git a/lib/private/Console/Application.php b/lib/private/Console/Application.php
index 693381ea2b4..69cb94c7a92 100644
--- a/lib/private/Console/Application.php
+++ b/lib/private/Console/Application.php
@@ -37,7 +37,6 @@ use Symfony\Component\Console\Application as SymfonyApplication;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
-use Symfony\Component\Console\Output\ConsoleOutputInterface;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
class Application {
diff --git a/lib/private/DB/MDB2SchemaReader.php b/lib/private/DB/MDB2SchemaReader.php
index 9495160b52f..4092485d6a5 100644
--- a/lib/private/DB/MDB2SchemaReader.php
+++ b/lib/private/DB/MDB2SchemaReader.php
@@ -32,8 +32,6 @@
namespace OC\DB;
use Doctrine\DBAL\Platforms\AbstractPlatform;
-use Doctrine\DBAL\Schema\SchemaConfig;
-use Doctrine\DBAL\Platforms\MySqlPlatform;
use Doctrine\DBAL\Schema\Schema;
use OCP\IConfig;
diff --git a/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php b/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php
index e4d7a3902fd..b165d8153f5 100644
--- a/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php
+++ b/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php
@@ -22,12 +22,6 @@
namespace OC\DB\QueryBuilder\ExpressionBuilder;
-use OC\DB\QueryBuilder\QueryFunction;
-use OCP\DB\QueryBuilder\ILiteral;
-use OCP\DB\QueryBuilder\IParameter;
-use OCP\DB\QueryBuilder\IQueryBuilder;
-use OCP\DB\QueryBuilder\IQueryFunction;
-
class SqliteExpressionBuilder extends ExpressionBuilder {
/**
* @inheritdoc
diff --git a/lib/private/Encryption/Util.php b/lib/private/Encryption/Util.php
index 76e1200a1cb..ed91c0fe549 100644
--- a/lib/private/Encryption/Util.php
+++ b/lib/private/Encryption/Util.php
@@ -31,7 +31,6 @@ use OC\Encryption\Exceptions\ModuleDoesNotExistsException;
use OC\Files\Filesystem;
use OC\Files\View;
use OCP\Encryption\IEncryptionModule;
-use OCP\Files\Storage;
use OCP\IConfig;
class Util {
diff --git a/lib/private/Files/Cache/Scanner.php b/lib/private/Files/Cache/Scanner.php
index e65c01559f0..fe25da6d09a 100644
--- a/lib/private/Files/Cache/Scanner.php
+++ b/lib/private/Files/Cache/Scanner.php
@@ -40,7 +40,6 @@ use OC\Hooks\BasicEmitter;
use OCP\Config;
use OCP\Files\Cache\IScanner;
use OCP\Files\ForbiddenException;
-use OCP\Files\Storage\ILockingStorage;
use OCP\Lock\ILockingProvider;
/**
diff --git a/lib/private/Files/Cache/StorageGlobal.php b/lib/private/Files/Cache/StorageGlobal.php
index 791835baccc..81cd075cefe 100644
--- a/lib/private/Files/Cache/StorageGlobal.php
+++ b/lib/private/Files/Cache/StorageGlobal.php
@@ -21,7 +21,6 @@
namespace OC\Files\Cache;
use OCP\DB\QueryBuilder\IQueryBuilder;
-use OCP\Files\Mount\IMountPoint;
use OCP\IDBConnection;
/**
diff --git a/lib/private/Files/Config/LazyStorageMountInfo.php b/lib/private/Files/Config/LazyStorageMountInfo.php
index 40d463c5103..e72eacf330d 100644
--- a/lib/private/Files/Config/LazyStorageMountInfo.php
+++ b/lib/private/Files/Config/LazyStorageMountInfo.php
@@ -22,10 +22,7 @@
namespace OC\Files\Config;
-use OC\Files\Filesystem;
-use OCP\Files\Config\ICachedMountInfo;
use OCP\Files\Mount\IMountPoint;
-use OCP\Files\Node;
use OCP\IUser;
class LazyStorageMountInfo extends CachedMountInfo {
diff --git a/lib/private/Files/Config/UserMountCache.php b/lib/private/Files/Config/UserMountCache.php
index 5cbdfaa9d82..6ec78e4d81c 100644
--- a/lib/private/Files/Config/UserMountCache.php
+++ b/lib/private/Files/Config/UserMountCache.php
@@ -24,14 +24,11 @@
namespace OC\Files\Config;
-use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
-use OC\Files\Filesystem;
use OCA\Files_Sharing\SharedMount;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\Files\Config\ICachedMountInfo;
use OCP\Files\Config\IUserMountCache;
use OCP\Files\Mount\IMountPoint;
-use OCP\Files\Node;
use OCP\Files\NotFoundException;
use OCP\ICache;
use OCP\IDBConnection;
diff --git a/lib/private/Files/FileInfo.php b/lib/private/Files/FileInfo.php
index 8e968ca453d..e1b5bf983ce 100644
--- a/lib/private/Files/FileInfo.php
+++ b/lib/private/Files/FileInfo.php
@@ -32,8 +32,6 @@ namespace OC\Files;
use OCP\Files\Cache\ICacheEntry;
use OCP\Files\Mount\IMountPoint;
-use OCP\Files\Storage\IStorage;
-use OCP\Files\IHomeStorage;
use OCP\IUser;
class FileInfo implements \OCP\Files\FileInfo, \ArrayAccess {
diff --git a/lib/private/Files/Filesystem.php b/lib/private/Files/Filesystem.php
index 22b14e44074..0ebf23818b4 100644
--- a/lib/private/Files/Filesystem.php
+++ b/lib/private/Files/Filesystem.php
@@ -64,7 +64,6 @@ use OC\Files\Mount\MountPoint;
use OC\Files\Storage\StorageFactory;
use OC\Lockdown\Filesystem\NullStorage;
use OCP\Files\Config\IMountProvider;
-use OCP\Files\Mount\IMountPoint;
use OCP\Files\NotFoundException;
use OCP\IUserManager;
diff --git a/lib/private/Files/Node/LazyRoot.php b/lib/private/Files/Node/LazyRoot.php
index 1fb3f6448bc..ae7623d0ed9 100644
--- a/lib/private/Files/Node/LazyRoot.php
+++ b/lib/private/Files/Node/LazyRoot.php
@@ -21,9 +21,7 @@
*/
namespace OC\Files\Node;
-use OC\Files\Mount\MountPoint;
use OCP\Files\IRootFolder;
-use OCP\Files\NotPermittedException;
/**
* Class LazyRoot
diff --git a/lib/private/Files/ObjectStore/Swift.php b/lib/private/Files/ObjectStore/Swift.php
index 38fb96e3af6..8b64fd66de0 100644
--- a/lib/private/Files/ObjectStore/Swift.php
+++ b/lib/private/Files/ObjectStore/Swift.php
@@ -28,7 +28,6 @@ use Guzzle\Http\Exception\ClientErrorResponseException;
use OCP\Files\ObjectStore\IObjectStore;
use OCP\Files\StorageAuthException;
use OCP\Files\StorageNotAvailableException;
-use OpenCloud\Common\Exceptions\EndpointError;
use OpenCloud\Common\Service\Catalog;
use OpenCloud\Common\Service\CatalogItem;
use OpenCloud\Identity\Resource\Token;
diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php
index 73cf137181a..223f270bc45 100644
--- a/lib/private/Files/Storage/DAV.php
+++ b/lib/private/Files/Storage/DAV.php
@@ -38,12 +38,10 @@ use GuzzleHttp\Exception\RequestException;
use GuzzleHttp\Message\ResponseInterface;
use Icewind\Streams\CallbackWrapper;
use OC\Files\Filesystem;
-use OC\Files\Stream\Close;
use Icewind\Streams\IteratorDirectory;
use OC\MemCache\ArrayCache;
use OCP\AppFramework\Http;
use OCP\Constants;
-use OCP\Files;
use OCP\Files\FileInfo;
use OCP\Files\StorageInvalidException;
use OCP\Files\StorageNotAvailableException;
diff --git a/lib/private/Files/Type/Loader.php b/lib/private/Files/Type/Loader.php
index d1f447d8081..4dd798e7b07 100644
--- a/lib/private/Files/Type/Loader.php
+++ b/lib/private/Files/Type/Loader.php
@@ -24,7 +24,6 @@ namespace OC\Files\Type;
use OCP\Files\IMimeTypeLoader;
use OCP\IDBConnection;
-
use Doctrine\DBAL\Exception\UniqueConstraintViolationException;
/**
diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php
index 85c70a1015e..70b74a8242e 100644
--- a/lib/private/Files/View.php
+++ b/lib/private/Files/View.php
@@ -61,8 +61,6 @@ use OCP\Files\InvalidPathException;
use OCP\Files\Mount\IMountPoint;
use OCP\Files\NotFoundException;
use OCP\Files\ReservedWordException;
-use OCP\Files\UnseekableException;
-use OCP\Files\Storage\ILockingStorage;
use OCP\IUser;
use OCP\Lock\ILockingProvider;
use OCP\Lock\LockedException;
diff --git a/lib/private/Installer.php b/lib/private/Installer.php
index 38d0ce13684..0d6030d5744 100644
--- a/lib/private/Installer.php
+++ b/lib/private/Installer.php
@@ -46,7 +46,6 @@ use OC\App\AppStore\Fetcher\AppFetcher;
use OC\App\CodeChecker\CodeChecker;
use OC\App\CodeChecker\EmptyCheck;
use OC\App\CodeChecker\PrivateCheck;
-use OC\Archive\Archive;
use OC\Archive\TAR;
use OC_App;
use OC_DB;
diff --git a/lib/private/Lockdown/Filesystem/NullCache.php b/lib/private/Lockdown/Filesystem/NullCache.php
index 9cb8016194b..670a2fadef3 100644
--- a/lib/private/Lockdown/Filesystem/NullCache.php
+++ b/lib/private/Lockdown/Filesystem/NullCache.php
@@ -22,7 +22,6 @@ namespace OC\Lockdown\Filesystem;
use OC\Files\Cache\CacheEntry;
use OCP\Constants;
use OCP\Files\Cache\ICache;
-use OCP\Files\Cache\ICacheEntry;
use OCP\Files\FileInfo;
use OCP\Files\Search\ISearchQuery;
diff --git a/lib/private/Log.php b/lib/private/Log.php
index a87aff0b954..ea20353a0a0 100644
--- a/lib/private/Log.php
+++ b/lib/private/Log.php
@@ -34,7 +34,6 @@ namespace OC;
use InterfaSys\LogNormalizer\Normalizer;
use \OCP\ILogger;
-use OCP\Security\StringUtils;
use OCP\Util;
/**
diff --git a/lib/private/Repair/RepairInvalidShares.php b/lib/private/Repair/RepairInvalidShares.php
index eba66e295c4..78884ca9cde 100644
--- a/lib/private/Repair/RepairInvalidShares.php
+++ b/lib/private/Repair/RepairInvalidShares.php
@@ -27,7 +27,6 @@ namespace OC\Repair;
use OCP\Migration\IOutput;
use OCP\Migration\IRepairStep;
-use Doctrine\DBAL\Platforms\OraclePlatform;
/**
* Repairs shares with invalid data
diff --git a/lib/private/Security/CredentialsManager.php b/lib/private/Security/CredentialsManager.php
index 44f3d32ea93..0ac9b30c6ce 100644
--- a/lib/private/Security/CredentialsManager.php
+++ b/lib/private/Security/CredentialsManager.php
@@ -25,7 +25,6 @@ namespace OC\Security;
use OCP\Security\ICrypto;
use OCP\IDBConnection;
use OCP\Security\ICredentialsManager;
-use OCP\IConfig;
/**
* Store and retrieve credentials for external services
diff --git a/lib/private/Security/SecureRandom.php b/lib/private/Security/SecureRandom.php
index 884ee842b9d..5bd909ea002 100644
--- a/lib/private/Security/SecureRandom.php
+++ b/lib/private/Security/SecureRandom.php
@@ -23,8 +23,6 @@
namespace OC\Security;
-use RandomLib;
-use Sabre\DAV\Exception;
use OCP\Security\ISecureRandom;
/**
diff --git a/lib/private/Settings/Admin/Additional.php b/lib/private/Settings/Admin/Additional.php
index 59058851a64..ffa0de68488 100644
--- a/lib/private/Settings/Admin/Additional.php
+++ b/lib/private/Settings/Admin/Additional.php
@@ -23,16 +23,8 @@
namespace OC\Settings\Admin;
-use Doctrine\DBAL\Connection;
-use Doctrine\DBAL\DBALException;
-use Doctrine\DBAL\Platforms\SqlitePlatform;
-use OC\Lock\DBLockingProvider;
-use OC\Lock\NoopLockingProvider;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\IConfig;
-use OCP\IDBConnection;
-use OCP\IL10N;
-use OCP\Lock\ILockingProvider;
use OCP\Settings\ISettings;
class Additional implements ISettings {
diff --git a/lib/private/Settings/Admin/ServerDevNotice.php b/lib/private/Settings/Admin/ServerDevNotice.php
index 1d7f34f782d..39897d5c612 100644
--- a/lib/private/Settings/Admin/ServerDevNotice.php
+++ b/lib/private/Settings/Admin/ServerDevNotice.php
@@ -22,16 +22,7 @@
*/
namespace OC\Settings\Admin;
-use Doctrine\DBAL\Connection;
-use Doctrine\DBAL\DBALException;
-use Doctrine\DBAL\Platforms\SqlitePlatform;
-use OC\Lock\DBLockingProvider;
-use OC\Lock\NoopLockingProvider;
use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IConfig;
-use OCP\IDBConnection;
-use OCP\IL10N;
-use OCP\Lock\ILockingProvider;
use OCP\Settings\ISettings;
class ServerDevNotice implements ISettings {
diff --git a/lib/private/Setup/AbstractDatabase.php b/lib/private/Setup/AbstractDatabase.php
index c554e569a63..d5c34291e60 100644
--- a/lib/private/Setup/AbstractDatabase.php
+++ b/lib/private/Setup/AbstractDatabase.php
@@ -26,7 +26,6 @@
*/
namespace OC\Setup;
-use OC\AllConfig;
use OC\DB\ConnectionFactory;
use OC\SystemConfig;
use OCP\IL10N;
diff --git a/lib/private/Share/Share.php b/lib/private/Share/Share.php
index b3e4cb2d4aa..1bfd0821354 100644
--- a/lib/private/Share/Share.php
+++ b/lib/private/Share/Share.php
@@ -43,7 +43,6 @@
namespace OC\Share;
use OC\Files\Filesystem;
-use OCA\FederatedFileSharing\DiscoveryManager;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\ILogger;
use OCP\IUserManager;
diff --git a/lib/private/Share20/DefaultShareProvider.php b/lib/private/Share20/DefaultShareProvider.php
index ed3651df9b2..933a2a5a33e 100644
--- a/lib/private/Share20/DefaultShareProvider.php
+++ b/lib/private/Share20/DefaultShareProvider.php
@@ -24,7 +24,6 @@
namespace OC\Share20;
use OC\Files\Cache\Cache;
-use OC\Files\Cache\CacheEntry;
use OCP\Files\File;
use OCP\Files\Folder;
use OCP\Share\IShareProvider;
diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php
index 1407d89d112..06d03f2ec7c 100644
--- a/lib/private/Share20/Manager.php
+++ b/lib/private/Share20/Manager.php
@@ -36,7 +36,6 @@ use OCP\Files\Folder;
use OCP\Files\IRootFolder;
use OCP\Files\Mount\IMountManager;
use OCP\Files\Node;
-use OCP\Files\NotFoundException;
use OCP\IConfig;
use OCP\IGroupManager;
use OCP\IL10N;
@@ -48,7 +47,6 @@ use OCP\Share\Exceptions\GenericShareException;
use OCP\Share\Exceptions\ShareNotFound;
use OCP\Share\IManager;
use OCP\Share\IProviderFactory;
-use OCP\Share\IShare;
use Symfony\Component\EventDispatcher\EventDispatcher;
use Symfony\Component\EventDispatcher\GenericEvent;
use OCP\Share\IShareProvider;
diff --git a/lib/private/Share20/ProviderFactory.php b/lib/private/Share20/ProviderFactory.php
index c79f58f6ba6..609fd87cd19 100644
--- a/lib/private/Share20/ProviderFactory.php
+++ b/lib/private/Share20/ProviderFactory.php
@@ -25,7 +25,6 @@ namespace OC\Share20;
use OC\CapabilitiesManager;
use OCA\FederatedFileSharing\AddressHandler;
-use OCA\FederatedFileSharing\DiscoveryManager;
use OCA\FederatedFileSharing\FederatedShareProvider;
use OCA\FederatedFileSharing\Notifications;
use OCA\FederatedFileSharing\TokenHandler;
diff --git a/lib/private/SystemTag/SystemTagManager.php b/lib/private/SystemTag/SystemTagManager.php
index d0854e885eb..ab0deba0360 100644
--- a/lib/private/SystemTag/SystemTagManager.php
+++ b/lib/private/SystemTag/SystemTagManager.php
@@ -31,7 +31,6 @@ use OCP\SystemTag\ManagerEvent;
use OCP\SystemTag\TagAlreadyExistsException;
use OCP\SystemTag\TagNotFoundException;
use Symfony\Component\EventDispatcher\EventDispatcherInterface;
-use OCP\IUserManager;
use OCP\IGroupManager;
use OCP\SystemTag\ISystemTag;
use OCP\IUser;
diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php
index 6e09f41a215..7021eae8b0e 100644
--- a/lib/private/Template/SCSSCacher.php
+++ b/lib/private/Template/SCSSCacher.php
@@ -25,7 +25,6 @@ use Leafo\ScssPhp\Compiler;
use Leafo\ScssPhp\Exception\ParserException;
use Leafo\ScssPhp\Formatter\Crunched;
use Leafo\ScssPhp\Formatter\Expanded;
-use OC\SystemConfig;
use OCP\Files\IAppData;
use OCP\Files\NotFoundException;
use OCP\Files\NotPermittedException;
diff --git a/lib/private/Updater/VersionCheck.php b/lib/private/Updater/VersionCheck.php
index 3518f40bd4f..7b8b7073d6d 100644
--- a/lib/private/Updater/VersionCheck.php
+++ b/lib/private/Updater/VersionCheck.php
@@ -23,10 +23,8 @@
namespace OC\Updater;
-use OC_Util;
use OCP\Http\Client\IClientService;
use OCP\IConfig;
-use OC\Setup;
use OCP\Util;
class VersionCheck {
diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php
index 56ab59f7238..e6b811aa845 100644
--- a/lib/private/legacy/app.php
+++ b/lib/private/legacy/app.php
@@ -51,7 +51,6 @@ use OC\App\DependencyAnalyzer;
use OC\App\InfoParser;
use OC\App\Platform;
use OC\Installer;
-use OC\OCSClient;
use OC\Repair;
use OCP\App\ManagerEvent;
diff --git a/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php b/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php
index 09eb5a1c151..64d4eb6e5d0 100644
--- a/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php
+++ b/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php
@@ -22,8 +22,6 @@
namespace OCP\AppFramework\Http;
-use OCP\AppFramework\Http;
-
/**
* Class EmptyContentSecurityPolicy is a simple helper which allows applications
* to modify the Content-Security-Policy sent by ownCloud. Per default the policy
diff --git a/lib/public/AppFramework/Http/NotFoundResponse.php b/lib/public/AppFramework/Http/NotFoundResponse.php
index 26338623efe..7f068a4c413 100644
--- a/lib/public/AppFramework/Http/NotFoundResponse.php
+++ b/lib/public/AppFramework/Http/NotFoundResponse.php
@@ -23,7 +23,6 @@
namespace OCP\AppFramework\Http;
-use OCP\AppFramework\Http;
use OCP\Template;
/**
diff --git a/lib/public/AppFramework/Http/RedirectResponse.php b/lib/public/AppFramework/Http/RedirectResponse.php
index adda83c7cfa..0ce3a64cb38 100644
--- a/lib/public/AppFramework/Http/RedirectResponse.php
+++ b/lib/public/AppFramework/Http/RedirectResponse.php
@@ -26,7 +26,6 @@
namespace OCP\AppFramework\Http;
-use OCP\AppFramework\Http\Response;
use OCP\AppFramework\Http;
diff --git a/lib/public/AppFramework/IAppContainer.php b/lib/public/AppFramework/IAppContainer.php
index 2fa049d6e85..f26afbdcd17 100644
--- a/lib/public/AppFramework/IAppContainer.php
+++ b/lib/public/AppFramework/IAppContainer.php
@@ -26,7 +26,6 @@
namespace OCP\AppFramework;
-use OCP\AppFramework\IApi;
use OCP\IContainer;
/**
diff --git a/lib/public/AppFramework/Middleware.php b/lib/public/AppFramework/Middleware.php
index 75cd3beea02..677e5c2e7ee 100644
--- a/lib/public/AppFramework/Middleware.php
+++ b/lib/public/AppFramework/Middleware.php
@@ -30,7 +30,6 @@
namespace OCP\AppFramework;
-use OCP\AppFramework\Controller;
use OCP\AppFramework\Http\Response;
diff --git a/lib/public/AppFramework/OCSController.php b/lib/public/AppFramework/OCSController.php
index 700d9ea1a22..06d0d90f3e1 100644
--- a/lib/public/AppFramework/OCSController.php
+++ b/lib/public/AppFramework/OCSController.php
@@ -31,7 +31,6 @@
namespace OCP\AppFramework;
use OCP\AppFramework\Http\DataResponse;
-use OCP\AppFramework\Http\OCSResponse;
use OCP\AppFramework\Http\Response;
use OCP\IRequest;
diff --git a/lib/public/Files/Cache/ICache.php b/lib/public/Files/Cache/ICache.php
index 63993d0a8cb..3207356cb76 100644
--- a/lib/public/Files/Cache/ICache.php
+++ b/lib/public/Files/Cache/ICache.php
@@ -21,7 +21,6 @@
*/
namespace OCP\Files\Cache;
-use OCP\Files\Search\ISearchOperator;
use OCP\Files\Search\ISearchQuery;
/**
diff --git a/lib/public/Files/Config/IMountProviderCollection.php b/lib/public/Files/Config/IMountProviderCollection.php
index f0f5bf4be25..93701c326b2 100644
--- a/lib/public/Files/Config/IMountProviderCollection.php
+++ b/lib/public/Files/Config/IMountProviderCollection.php
@@ -23,7 +23,6 @@
namespace OCP\Files\Config;
-use OCP\Files\Mount\IMountPoint;
use OCP\IUser;
/**
diff --git a/lib/public/SystemTag/ISystemTagManager.php b/lib/public/SystemTag/ISystemTagManager.php
index bdfa19286f0..fff0a439116 100644
--- a/lib/public/SystemTag/ISystemTagManager.php
+++ b/lib/public/SystemTag/ISystemTagManager.php
@@ -24,7 +24,6 @@
namespace OCP\SystemTag;
use OCP\IUser;
-use OCP\SystemTag\ISystemTag;
/**
* Public interface to access and manage system-wide tags.
diff --git a/settings/js/admin.js b/settings/js/admin.js
index 475fecf604e..177f6d3f7f4 100644
--- a/settings/js/admin.js
+++ b/settings/js/admin.js
@@ -231,7 +231,6 @@ $(document).ready(function(){
$.ajax({
url: OC.generateUrl('/settings/admin/mailtest'),
type: 'POST',
- data: $('#mail_credentials_settings').serialize(),
success: function(){
OC.msg.finishedSuccess('#sendtestmail_msg', t('settings', 'Email sent'));
},
@@ -239,9 +238,6 @@ $(document).ready(function(){
OC.msg.finishedError('#sendtestmail_msg', xhr.responseJSON);
}
});
- $.post(OC.generateUrl('/settings/admin/mailtest'), '', function(data){
- OC.msg.finishedAction('#sendtestmail_msg', data);
- });
});
$('#allowGroupSharing').change(function() {
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index 16f043b4576..46f4e5977be 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -677,6 +677,7 @@ var UserList = {
};
$(document).ready(function () {
+ OC.Plugins.attach('OC.Settings.UserList', UserList);
$userList = $('#userlist');
$userListBody = $userList.find('tbody');
$userListHead = $userList.find('thead');
diff --git a/settings/l10n/el.js b/settings/l10n/el.js
index e0dcf0ddd4f..3ba1720937e 100644
--- a/settings/l10n/el.js
+++ b/settings/l10n/el.js
@@ -17,6 +17,8 @@ OC.L10N.register(
"Group already exists." : "Η ομάδα υπάρχει ήδη.",
"Unable to add group." : "Αδυναμία προσθήκης ομάδας.",
"Unable to delete group." : "Αδυναμία διαγραφής ομάδας.",
+ "Invalid SMTP password." : "Μη έγκυρο συνθηματικό SMTP.",
+ "Email setting test" : "Δοκιμή ρυθμίσεων email",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Παρουσιάστηκε σφάλμα κατά την αποστολή e-mail. Παρακαλώ ελέγξτε τις ρυθμίσεις σας.(Error: %s)",
"You need to set your user email before being able to send test emails." : "Πρέπει να ορίσετε το email του χρήστη πριν να είστε σε θέση να στείλετε δοκιμαστικά emails.",
"Invalid request" : "Μη έγκυρο αίτημα",
diff --git a/settings/l10n/el.json b/settings/l10n/el.json
index 077e3cb5c30..310fd3ed063 100644
--- a/settings/l10n/el.json
+++ b/settings/l10n/el.json
@@ -15,6 +15,8 @@
"Group already exists." : "Η ομάδα υπάρχει ήδη.",
"Unable to add group." : "Αδυναμία προσθήκης ομάδας.",
"Unable to delete group." : "Αδυναμία διαγραφής ομάδας.",
+ "Invalid SMTP password." : "Μη έγκυρο συνθηματικό SMTP.",
+ "Email setting test" : "Δοκιμή ρυθμίσεων email",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Παρουσιάστηκε σφάλμα κατά την αποστολή e-mail. Παρακαλώ ελέγξτε τις ρυθμίσεις σας.(Error: %s)",
"You need to set your user email before being able to send test emails." : "Πρέπει να ορίσετε το email του χρήστη πριν να είστε σε θέση να στείλετε δοκιμαστικά emails.",
"Invalid request" : "Μη έγκυρο αίτημα",
diff --git a/settings/l10n/fi.js b/settings/l10n/fi.js
index 635684dc690..b9c72e4faa2 100644
--- a/settings/l10n/fi.js
+++ b/settings/l10n/fi.js
@@ -168,7 +168,7 @@ OC.L10N.register(
"Send mode" : "Lähetystila",
"Encryption" : "Salaus",
"From address" : "Lähettäjän osoite",
- "mail" : "sähköposti",
+ "mail" : "posti",
"Authentication method" : "Tunnistautumistapa",
"Authentication required" : "Tunnistautuminen vaaditaan",
"Server address" : "Palvelimen osoite",
@@ -328,7 +328,7 @@ OC.L10N.register(
"Default quota" : "Oletuskiintiö",
"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Määritä tallennustilan kiintiö (esim. \"512 MB\" tai \"12 GB\")",
"Other" : "Muu",
- "Group admin for" : "Ryhmäylläpitäjä kohteille",
+ "Group admin for" : "Ryhmäylläpitäjä ryhmille",
"Quota" : "Kiintiö",
"Storage location" : "Tallennustilan sijainti",
"User backend" : "Käyttäjätaustaosa",
diff --git a/settings/l10n/fi.json b/settings/l10n/fi.json
index 5e11551f02e..787ce72316b 100644
--- a/settings/l10n/fi.json
+++ b/settings/l10n/fi.json
@@ -166,7 +166,7 @@
"Send mode" : "Lähetystila",
"Encryption" : "Salaus",
"From address" : "Lähettäjän osoite",
- "mail" : "sähköposti",
+ "mail" : "posti",
"Authentication method" : "Tunnistautumistapa",
"Authentication required" : "Tunnistautuminen vaaditaan",
"Server address" : "Palvelimen osoite",
@@ -326,7 +326,7 @@
"Default quota" : "Oletuskiintiö",
"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Määritä tallennustilan kiintiö (esim. \"512 MB\" tai \"12 GB\")",
"Other" : "Muu",
- "Group admin for" : "Ryhmäylläpitäjä kohteille",
+ "Group admin for" : "Ryhmäylläpitäjä ryhmille",
"Quota" : "Kiintiö",
"Storage location" : "Tallennustilan sijainti",
"User backend" : "Käyttäjätaustaosa",
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index 2d104a65516..78d0be4bb35 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -30,7 +30,7 @@ OC.L10N.register(
"Well done, %s!" : "Bom trabalho, %s!",
"If you received this email, the email configuration seems to be correct." : "Se você recebeu este email, é sinal que a configuração do email está correta.",
"Email setting test" : "Teste da configuração de email",
- "Mail could not be sent. Check your mail server log" : "Email não pode ser enviado. Verifique o log do seu servidor de email",
+ "Mail could not be sent. Check your mail server log" : "Email não pôde ser enviado. Verifique o log do seu servidor de email",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocorreu um problema ao enviar o email. Por favor, revise suas configurações. (Erro: %s)",
"You need to set your user email before being able to send test emails." : "Você precisa configurar seu email de usuário antes de ser capaz de enviar emails de teste.",
"Invalid request" : "Solicitação inválida",
@@ -182,7 +182,7 @@ OC.L10N.register(
"STARTTLS" : "STARTTLS",
"Email server" : "Servidor de email",
"Open documentation" : "Abrir documentação",
- "This is used for sending out notifications." : "Isto é usado para o envio de notificações.",
+ "This is used for sending out notifications." : "Usado para o envio de notificações.",
"Send mode" : "Modo de envio",
"Encryption" : "Criptografia",
"From address" : "Endereço \"From\"",
@@ -226,7 +226,7 @@ OC.L10N.register(
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nós sugerimos a instalação dos pacotes necessários em seu sistema para suportar um dos seguintes locais: %s.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não estiver instalada na raiz do domínio e usa o Cron do sistema, pode haver problema com a geração da URL. Para evitar estes problemas, por favor, defina a opção \"overwrite.cli.url\" em seu arquivo config.php para o caminho webroot de sua instalação (Sugestão: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Não foi possível executar o cron via CLI. Os seguintes erros ocorreram:",
- "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor verifique os <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guias de instalação ↗</a>, e verifique qualquer erro ou advertência no <a href=\"%s\">log</a>.",
+ "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor verifique os <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guias de instalação ↗</a> e verifique qualquer erro ou advertência no <a href=\"%s\">log</a>.",
"All checks passed." : "Todas as verificações passaram.",
"Cron" : "Cron",
"Last cron job execution: %s." : "Última execução do trabalho Cron: %s.",
@@ -329,9 +329,9 @@ OC.L10N.register(
"Desktop client" : "Cliente desktop",
"Android app" : "Aplicativo Android",
"iOS app" : "Aplicativo iOS",
- "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Se voce quiser ajudar o projeto {contributepen} entre no desenvolvimento{linkclose} ou {contributeopen}divulgue nossos conceitos{linkclose}!",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Se voce quiser ajudar o projeto, {contributeopen}junte-se ao desenvolvimento{linkclose} ou {contributeopen}divulgue nossos conceitos{linkclose}!",
"Show First Run Wizard again" : "Mostrar Assistente de Primeira Execução novamente",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes Web, desktop e móvel estão conectados à sua conta.",
+ "Web, desktop and mobile clients currently logged in to your account." : "Clientes Web, desktop e móvel que estão conectados à sua conta.",
"Device" : "Dispositivo",
"Last activity" : "Última atividade",
"Passcodes that give an app or device permissions to access your account." : "Códigos de acesso que fornecem permissões a um aplicativo ou dispositivo para acessar sua conta.",
@@ -342,7 +342,7 @@ OC.L10N.register(
"For security reasons this password will only be shown once." : "Por motivo de segurança, esta senha só será exibida uma vez.",
"Username" : "Nome de Usuário",
"Done" : "Concluído",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desenvolvido pela {communityopen}comunidade Nextcloud{linkclose}, o {githubopen}código fonte{linkclose} é licenciado sob a {licenseopen}AGPL{linkclose}.",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desenvolvido pela {communityopen}comunidade Nextcloud{linkclose}. O {githubopen}código fonte{linkclose} é licenciado sob a {licenseopen}AGPL{linkclose}.",
"Follow us on Google Plus!" : "Siga-nos no Google Plus!",
"Like our facebook page!" : "Curta nossa página no Facebook!",
"Subscribe to our twitter channel!" : "Assine o nosso canal no Twitter!",
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index bdef13bdd12..11951f89c90 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -28,7 +28,7 @@
"Well done, %s!" : "Bom trabalho, %s!",
"If you received this email, the email configuration seems to be correct." : "Se você recebeu este email, é sinal que a configuração do email está correta.",
"Email setting test" : "Teste da configuração de email",
- "Mail could not be sent. Check your mail server log" : "Email não pode ser enviado. Verifique o log do seu servidor de email",
+ "Mail could not be sent. Check your mail server log" : "Email não pôde ser enviado. Verifique o log do seu servidor de email",
"A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocorreu um problema ao enviar o email. Por favor, revise suas configurações. (Erro: %s)",
"You need to set your user email before being able to send test emails." : "Você precisa configurar seu email de usuário antes de ser capaz de enviar emails de teste.",
"Invalid request" : "Solicitação inválida",
@@ -180,7 +180,7 @@
"STARTTLS" : "STARTTLS",
"Email server" : "Servidor de email",
"Open documentation" : "Abrir documentação",
- "This is used for sending out notifications." : "Isto é usado para o envio de notificações.",
+ "This is used for sending out notifications." : "Usado para o envio de notificações.",
"Send mode" : "Modo de envio",
"Encryption" : "Criptografia",
"From address" : "Endereço \"From\"",
@@ -224,7 +224,7 @@
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Nós sugerimos a instalação dos pacotes necessários em seu sistema para suportar um dos seguintes locais: %s.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Se a sua instalação não estiver instalada na raiz do domínio e usa o Cron do sistema, pode haver problema com a geração da URL. Para evitar estes problemas, por favor, defina a opção \"overwrite.cli.url\" em seu arquivo config.php para o caminho webroot de sua instalação (Sugestão: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Não foi possível executar o cron via CLI. Os seguintes erros ocorreram:",
- "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor verifique os <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guias de instalação ↗</a>, e verifique qualquer erro ou advertência no <a href=\"%s\">log</a>.",
+ "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor verifique os <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guias de instalação ↗</a> e verifique qualquer erro ou advertência no <a href=\"%s\">log</a>.",
"All checks passed." : "Todas as verificações passaram.",
"Cron" : "Cron",
"Last cron job execution: %s." : "Última execução do trabalho Cron: %s.",
@@ -327,9 +327,9 @@
"Desktop client" : "Cliente desktop",
"Android app" : "Aplicativo Android",
"iOS app" : "Aplicativo iOS",
- "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Se voce quiser ajudar o projeto {contributepen} entre no desenvolvimento{linkclose} ou {contributeopen}divulgue nossos conceitos{linkclose}!",
+ "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "Se voce quiser ajudar o projeto, {contributeopen}junte-se ao desenvolvimento{linkclose} ou {contributeopen}divulgue nossos conceitos{linkclose}!",
"Show First Run Wizard again" : "Mostrar Assistente de Primeira Execução novamente",
- "Web, desktop and mobile clients currently logged in to your account." : "Clientes Web, desktop e móvel estão conectados à sua conta.",
+ "Web, desktop and mobile clients currently logged in to your account." : "Clientes Web, desktop e móvel que estão conectados à sua conta.",
"Device" : "Dispositivo",
"Last activity" : "Última atividade",
"Passcodes that give an app or device permissions to access your account." : "Códigos de acesso que fornecem permissões a um aplicativo ou dispositivo para acessar sua conta.",
@@ -340,7 +340,7 @@
"For security reasons this password will only be shown once." : "Por motivo de segurança, esta senha só será exibida uma vez.",
"Username" : "Nome de Usuário",
"Done" : "Concluído",
- "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desenvolvido pela {communityopen}comunidade Nextcloud{linkclose}, o {githubopen}código fonte{linkclose} é licenciado sob a {licenseopen}AGPL{linkclose}.",
+ "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desenvolvido pela {communityopen}comunidade Nextcloud{linkclose}. O {githubopen}código fonte{linkclose} é licenciado sob a {licenseopen}AGPL{linkclose}.",
"Follow us on Google Plus!" : "Siga-nos no Google Plus!",
"Like our facebook page!" : "Curta nossa página no Facebook!",
"Subscribe to our twitter channel!" : "Assine o nosso canal no Twitter!",
diff --git a/tests/Core/Controller/LoginControllerTest.php b/tests/Core/Controller/LoginControllerTest.php
index c9ab8e7476d..ca32a04efe1 100644
--- a/tests/Core/Controller/LoginControllerTest.php
+++ b/tests/Core/Controller/LoginControllerTest.php
@@ -23,7 +23,6 @@ namespace Tests\Core\Controller;
use OC\Authentication\TwoFactorAuth\Manager;
use OC\Core\Controller\LoginController;
-use OC\Security\Bruteforce\Throttler;
use OC\User\Session;
use OCP\AppFramework\Http\RedirectResponse;
use OCP\AppFramework\Http\TemplateResponse;
@@ -281,7 +280,7 @@ class LoginControllerTest extends TestCase {
public function testLoginWithInvalidCredentials() {
$user = 'MyUserName';
$password = 'secret';
- $loginPageUrl = 'some url';
+ $loginPageUrl = '/login?redirect_url=/apps/files';
$this->request
->expects($this->once())
@@ -292,7 +291,10 @@ class LoginControllerTest extends TestCase {
->will($this->returnValue(false));
$this->urlGenerator->expects($this->once())
->method('linkToRoute')
- ->with('core.login.showLoginForm')
+ ->with('core.login.showLoginForm', [
+ 'user' => 'MyUserName',
+ 'redirect_url' => '/apps/files',
+ ])
->will($this->returnValue($loginPageUrl));
$this->userSession->expects($this->never())
@@ -304,7 +306,7 @@ class LoginControllerTest extends TestCase {
$expected = new \OCP\AppFramework\Http\RedirectResponse($loginPageUrl);
$expected->throttle();
- $this->assertEquals($expected, $this->loginController->tryLogin($user, $password, ''));
+ $this->assertEquals($expected, $this->loginController->tryLogin($user, $password, '/apps/files'));
}
public function testLoginWithValidCredentials() {
diff --git a/tests/acceptance/run.sh b/tests/acceptance/run.sh
index 3969782300d..42a718d46e2 100755
--- a/tests/acceptance/run.sh
+++ b/tests/acceptance/run.sh
@@ -48,31 +48,34 @@
# (probably you will not have containers nor images with those names, but just
# in case).
-# Switch between timeout on linux and gtimeout on macOS (same for mktemp and
-# gmktemp)
-
-case "$OSTYPE" in
- darwin*)
- INSTALLED=$(which gtimeout)
- if [ "$INSTALLED" == "" ]; then
- echo "Please install coreutils (brew install coreutils)"
- exit 1;
- fi
-
- MKTEMP=gmktemp
- TIMEOUT=gtimeout
- DOCKEROPTION="-e no_proxy=localhost "
- ;;
- linux*)
- MKTEMP=mktemp
- TIMEOUT=timeout
- DOCKEROPTION=" "
- ;;
- *)
- echo "Operating system ($OSTYPE) not supported"
- exit 1
- ;;
-esac
+# Sets the variables that abstract the differences in command names and options
+# between operating systems.
+#
+# Switches between timeout on GNU/Linux and gtimeout on macOS (same for mktemp
+# and gmktemp).
+function setOperatingSystemAbstractionVariables() {
+ case "$OSTYPE" in
+ darwin*)
+ if [ "$(which gtimeout)" == "" ]; then
+ echo "Please install coreutils (brew install coreutils)"
+ exit 1
+ fi
+
+ MKTEMP=gmktemp
+ TIMEOUT=gtimeout
+ DOCKER_OPTIONS="-e no_proxy=localhost "
+ ;;
+ linux*)
+ MKTEMP=mktemp
+ TIMEOUT=timeout
+ DOCKER_OPTIONS=" "
+ ;;
+ *)
+ echo "Operating system ($OSTYPE) not supported"
+ exit 1
+ ;;
+ esac
+}
# Launches the Selenium server in a Docker container.
#
@@ -105,12 +108,12 @@ function prepareSelenium() {
SELENIUM_CONTAINER=selenium-nextcloud-local-test-acceptance
echo "Starting Selenium server"
- docker run --detach --name=$SELENIUM_CONTAINER --publish 4444:4444 --publish 5900:5900 $DOCKEROPTION selenium/standalone-firefox-debug:2.53.1-beryllium
+ docker run --detach --name=$SELENIUM_CONTAINER --publish 4444:4444 --publish 5900:5900 $DOCKER_OPTIONS selenium/standalone-firefox-debug:2.53.1-beryllium
echo "Waiting for Selenium server to be ready"
if ! $TIMEOUT 10s bash -c "while ! curl 127.0.0.1:4444 >/dev/null 2>&1; do sleep 1; done"; then
echo "Could not start Selenium server; running" \
- "\"docker run --rm --publish 4444:4444 --publish 5900:5900 $DOCKEROPTION selenium/standalone-firefox-debug:2.53.1-beryllium\"" \
+ "\"docker run --rm --publish 4444:4444 --publish 5900:5900 $DOCKER_OPTIONS selenium/standalone-firefox-debug:2.53.1-beryllium\"" \
"could give you a hint of the problem"
exit 1
@@ -197,6 +200,8 @@ cd "$(dirname $0)"
# If no parameter is provided to this script all the acceptance tests are run.
SCENARIO_TO_RUN=$1
+setOperatingSystemAbstractionVariables
+
prepareSelenium
prepareDocker
diff --git a/tests/bootstrap.php b/tests/bootstrap.php
index c58d9f58522..44c42d353e9 100644
--- a/tests/bootstrap.php
+++ b/tests/bootstrap.php
@@ -19,3 +19,5 @@ if (!class_exists('PHPUnit_Framework_TestCase')) {
}
OC_Hook::clear();
+
+set_include_path(get_include_path() . PATH_SEPARATOR . '/usr/share/php');
diff --git a/tests/lib/Files/Config/UserMountCacheTest.php b/tests/lib/Files/Config/UserMountCacheTest.php
index 376f0a0276c..f38bd3fcdc3 100644
--- a/tests/lib/Files/Config/UserMountCacheTest.php
+++ b/tests/lib/Files/Config/UserMountCacheTest.php
@@ -47,6 +47,7 @@ class UserMountCacheTest extends TestCase {
$userBackend = new Dummy();
$userBackend->createUser('u1', '');
$userBackend->createUser('u2', '');
+ $userBackend->createUser('u3', '');
$this->userManager->registerBackend($userBackend);
$this->cache = new \OC\Files\Config\UserMountCache($this->connection, $this->userManager, $this->createMock(Log::class));
}
@@ -211,6 +212,7 @@ class UserMountCacheTest extends TestCase {
public function testGetMountsForUser() {
$user1 = $this->userManager->get('u1');
$user2 = $this->userManager->get('u2');
+ $user3 = $this->userManager->get('u3');
list($storage1, $id1) = $this->getStorage(1);
list($storage2, $id2) = $this->getStorage(2);
@@ -219,9 +221,12 @@ class UserMountCacheTest extends TestCase {
$this->cache->registerMounts($user1, [$mount1, $mount2]);
$this->cache->registerMounts($user2, [$mount2]);
+ $this->cache->registerMounts($user3, [$mount2]);
$this->clearCache();
+ $user3->delete();
+
$cachedMounts = $this->cache->getMountsForUser($user1);
$this->assertCount(2, $cachedMounts);
@@ -234,6 +239,9 @@ class UserMountCacheTest extends TestCase {
$this->assertEquals($user1, $cachedMounts[1]->getUser());
$this->assertEquals($id2, $cachedMounts[1]->getRootId());
$this->assertEquals(2, $cachedMounts[1]->getStorageId());
+
+ $cachedMounts = $this->cache->getMountsForUser($user3);
+ $this->assertEmpty($cachedMounts);
}
public function testGetMountsByStorageId() {
@@ -431,4 +439,20 @@ class UserMountCacheTest extends TestCase {
$this->assertCount(0, $cachedMounts);
}
+
+
+ public function testGetMountsForFileIdDeletedUser() {
+ $user1 = $this->userManager->get('u1');
+
+ list($storage1, $rootId) = $this->getStorage(2);
+ $rootId = $this->createCacheEntry('', 2);
+ $mount1 = new MountPoint($storage1, '/foo/');
+ $this->cache->registerMounts($user1, [$mount1]);
+
+ $user1->delete();
+ $this->clearCache();
+
+ $cachedMounts = $this->cache->getMountsForFileId($rootId);
+ $this->assertEmpty($cachedMounts);
+ }
}