diff options
26 files changed, 307 insertions, 262 deletions
diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index c99689619d8..84ec8433a83 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -152,7 +152,7 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription $query->andWhere($query->expr()->neq('uri', $query->createNamedParameter(BirthdayService::BIRTHDAY_CALENDAR_URI))); } - return $query->execute()->fetchColumn(); + return (int)$query->execute()->fetchColumn(); } /** diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index 48e3b04b38b..b8491c08ff6 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -111,7 +111,7 @@ class CardDavBackend implements BackendInterface, SyncSupport { ->from('addressbooks') ->where($query->expr()->eq('principaluri', $query->createNamedParameter($principalUri))); - return $query->execute()->fetchColumn(); + return (int)$query->execute()->fetchColumn(); } /** diff --git a/apps/files_sharing/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php index de6967c7d63..267e53829da 100644 --- a/apps/files_sharing/appinfo/routes.php +++ b/apps/files_sharing/appinfo/routes.php @@ -77,6 +77,39 @@ $application->registerRoutes($this, [ 'url' => '/api/v1/sharees', 'verb' => 'GET', ], + /* + * Remote Shares + */ + [ + 'name' => 'Remote#getShares', + 'url' => '/api/v1/remote_shares', + 'verb' => 'GET', + ], + [ + 'name' => 'Remote#getOpenShares', + 'url' => '/api/v1/remote_shares/pending', + 'verb' => 'GET', + ], + [ + 'name' => 'Remote#acceptShare', + 'url' => '/api/v1/remote_shares/pending/{id}', + 'verb' => 'POST', + ], + [ + 'name' => 'Remote#declineShare', + 'url' => '/api/v1/remote_shares/pending/{id}', + 'verb' => 'DELETE', + ], + [ + 'name' => 'Remote#getShare', + 'url' => '/api/v1/remote_shares/{id}', + 'verb' => 'GET', + ], + [ + 'name' => 'Remote#unshare', + 'url' => '/api/v1/remote_shares/{id}', + 'verb' => 'DELETE', + ], ], ]); @@ -96,33 +129,3 @@ $this->create('sharing_external_shareinfo', '/shareinfo') // OCS API //TODO: SET: mail notification, waiting for PR #4689 to be accepted - -API::register('get', - '/apps/files_sharing/api/v1/remote_shares', - array('\OCA\Files_Sharing\API\Remote', 'getShares'), - 'files_sharing'); - -API::register('get', - '/apps/files_sharing/api/v1/remote_shares/pending', - array('\OCA\Files_Sharing\API\Remote', 'getOpenShares'), - 'files_sharing'); - -API::register('post', - '/apps/files_sharing/api/v1/remote_shares/pending/{id}', - array('\OCA\Files_Sharing\API\Remote', 'acceptShare'), - 'files_sharing'); - -API::register('delete', - '/apps/files_sharing/api/v1/remote_shares/pending/{id}', - array('\OCA\Files_Sharing\API\Remote', 'declineShare'), - 'files_sharing'); - -API::register('get', - '/apps/files_sharing/api/v1/remote_shares/{id}', - array('\OCA\Files_Sharing\API\Remote', 'getShare'), - 'files_sharing'); - -API::register('delete', - '/apps/files_sharing/api/v1/remote_shares/{id}', - array('\OCA\Files_Sharing\API\Remote', 'unshare'), - 'files_sharing'); diff --git a/apps/files_sharing/lib/API/Remote.php b/apps/files_sharing/lib/API/Remote.php deleted file mode 100644 index a522f923a39..00000000000 --- a/apps/files_sharing/lib/API/Remote.php +++ /dev/null @@ -1,230 +0,0 @@ -<?php -/** - * @copyright Copyright (c) 2016, ownCloud, Inc. - * - * @author Joas Schilling <coding@schilljs.com> - * @author Lukas Reschke <lukas@statuscode.ch> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * - * @license AGPL-3.0 - * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> - * - */ - -namespace OCA\Files_Sharing\API; - -use OC\Files\Filesystem; -use OCA\FederatedFileSharing\DiscoveryManager; -use OCA\Files_Sharing\External\Manager; - -class Remote { - - /** - * Get list of pending remote shares - * - * @param array $params empty - * @return \OC_OCS_Result - */ - public static function getOpenShares($params) { - $discoveryManager = new DiscoveryManager( - \OC::$server->getMemCacheFactory(), - \OC::$server->getHTTPClientService() - ); - $externalManager = new Manager( - \OC::$server->getDatabaseConnection(), - Filesystem::getMountManager(), - Filesystem::getLoader(), - \OC::$server->getHTTPClientService(), - \OC::$server->getNotificationManager(), - $discoveryManager, - \OC_User::getUser() - ); - - return new \OC_OCS_Result($externalManager->getOpenShares()); - } - - /** - * Accept a remote share - * - * @param array $params contains the shareID 'id' which should be accepted - * @return \OC_OCS_Result - */ - public static function acceptShare($params) { - $discoveryManager = new DiscoveryManager( - \OC::$server->getMemCacheFactory(), - \OC::$server->getHTTPClientService() - ); - $externalManager = new Manager( - \OC::$server->getDatabaseConnection(), - Filesystem::getMountManager(), - Filesystem::getLoader(), - \OC::$server->getHTTPClientService(), - \OC::$server->getNotificationManager(), - $discoveryManager, - \OC_User::getUser() - ); - - if ($externalManager->acceptShare((int) $params['id'])) { - return new \OC_OCS_Result(); - } - - // Make sure the user has no notification for something that does not exist anymore. - $externalManager->processNotification((int) $params['id']); - - return new \OC_OCS_Result(null, 404, "wrong share ID, share doesn't exist."); - } - - /** - * Decline a remote share - * - * @param array $params contains the shareID 'id' which should be declined - * @return \OC_OCS_Result - */ - public static function declineShare($params) { - $discoveryManager = new DiscoveryManager( - \OC::$server->getMemCacheFactory(), - \OC::$server->getHTTPClientService() - ); - $externalManager = new Manager( - \OC::$server->getDatabaseConnection(), - Filesystem::getMountManager(), - Filesystem::getLoader(), - \OC::$server->getHTTPClientService(), - \OC::$server->getNotificationManager(), - $discoveryManager, - \OC_User::getUser() - ); - - if ($externalManager->declineShare((int) $params['id'])) { - return new \OC_OCS_Result(); - } - - // Make sure the user has no notification for something that does not exist anymore. - $externalManager->processNotification((int) $params['id']); - - return new \OC_OCS_Result(null, 404, "wrong share ID, share doesn't exist."); - } - - /** - * @param array $share Share with info from the share_external table - * @return array enriched share info with data from the filecache - */ - private static function extendShareInfo($share) { - $view = new \OC\Files\View('/' . \OC_User::getUser() . '/files/'); - $info = $view->getFileInfo($share['mountpoint']); - - $share['mimetype'] = $info->getMimetype(); - $share['mtime'] = $info->getMtime(); - $share['permissions'] = $info->getPermissions(); - $share['type'] = $info->getType(); - $share['file_id'] = $info->getId(); - - return $share; - } - - /** - * List accepted remote shares - * - * @param array $params - * @return \OC_OCS_Result - */ - public static function getShares($params) { - $discoveryManager = new DiscoveryManager( - \OC::$server->getMemCacheFactory(), - \OC::$server->getHTTPClientService() - ); - $externalManager = new Manager( - \OC::$server->getDatabaseConnection(), - Filesystem::getMountManager(), - Filesystem::getLoader(), - \OC::$server->getHTTPClientService(), - \OC::$server->getNotificationManager(), - $discoveryManager, - \OC_User::getUser() - ); - - $shares = $externalManager->getAcceptedShares(); - - $shares = array_map('self::extendShareInfo', $shares); - - return new \OC_OCS_Result($shares); - } - - /** - * Get info of a remote share - * - * @param array $params contains the shareID 'id' - * @return \OC_OCS_Result - */ - public static function getShare($params) { - $discoveryManager = new DiscoveryManager( - \OC::$server->getMemCacheFactory(), - \OC::$server->getHTTPClientService() - ); - $externalManager = new Manager( - \OC::$server->getDatabaseConnection(), - Filesystem::getMountManager(), - Filesystem::getLoader(), - \OC::$server->getHTTPClientService(), - \OC::$server->getNotificationManager(), - $discoveryManager, - \OC_User::getUser() - ); - - $shareInfo = $externalManager->getShare($params['id']); - - if ($shareInfo === false) { - return new \OC_OCS_Result(null, 404, 'share does not exist'); - } else { - $shareInfo = self::extendShareInfo($shareInfo); - return new \OC_OCS_Result($shareInfo); - } - } - - /** - * Unshare a remote share - * - * @param array $params contains the shareID 'id' which should be unshared - * @return \OC_OCS_Result - */ - public static function unshare($params) { - $discoveryManager = new DiscoveryManager( - \OC::$server->getMemCacheFactory(), - \OC::$server->getHTTPClientService() - ); - $externalManager = new Manager( - \OC::$server->getDatabaseConnection(), - Filesystem::getMountManager(), - Filesystem::getLoader(), - \OC::$server->getHTTPClientService(), - \OC::$server->getNotificationManager(), - $discoveryManager, - \OC_User::getUser() - ); - - $shareInfo = $externalManager->getShare($params['id']); - - if ($shareInfo === false) { - return new \OC_OCS_Result(null, 404, 'Share does not exist'); - } - - $mountPoint = '/' . \OC_User::getUser() . '/files' . $shareInfo['mountpoint']; - - if ($externalManager->removeShare($mountPoint) === true) { - return new \OC_OCS_Result(null); - } else { - return new \OC_OCS_Result(null, 403, 'Could not unshare'); - } - } -} diff --git a/apps/files_sharing/lib/AppInfo/Application.php b/apps/files_sharing/lib/AppInfo/Application.php index 0e70924da40..5558ffbdfc4 100644 --- a/apps/files_sharing/lib/AppInfo/Application.php +++ b/apps/files_sharing/lib/AppInfo/Application.php @@ -111,6 +111,7 @@ class Application extends App { $uid ); }); + $container->registerAlias('OCA\Files_Sharing\External\Manager', 'ExternalManager'); /** * Middleware diff --git a/apps/files_sharing/lib/Controller/RemoteController.php b/apps/files_sharing/lib/Controller/RemoteController.php new file mode 100644 index 00000000000..7c7a608ff2d --- /dev/null +++ b/apps/files_sharing/lib/Controller/RemoteController.php @@ -0,0 +1,183 @@ +<?php +/** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see <http://www.gnu.org/licenses/> + * + */ + +namespace OCA\Files_Sharing\Controller; + +use OCA\Files_Sharing\External\Manager; +use OCP\AppFramework\Http\DataResponse; +use OCP\AppFramework\OCS\OCSForbiddenException; +use OCP\AppFramework\OCS\OCSNotFoundException; +use OCP\AppFramework\OCSController; +use OCP\IRequest; + +class RemoteController extends OCSController { + + /** @var Manager */ + private $externalManager; + + /** + * @NoAdminRequired + * + * Remote constructor. + * + * @param string $appName + * @param IRequest $request + * @param Manager $externalManager + */ + public function __construct($appName, + IRequest $request, + Manager $externalManager) { + parent::__construct($appName, $request); + + $this->externalManager = $externalManager; + } + + /** + * @NoAdminRequired + * + * Get list of pending remote shares + * + * @return DataResponse + */ + public function getOpenShares() { + return new DataResponse($this->externalManager->getOpenShares()); + } + + /** + * @NoAdminRequired + * + * Accept a remote share + * + * @param int $id + * @return DataResponse + * @throws OCSNotFoundException + */ + public function acceptShare($id) { + if ($this->externalManager->acceptShare($id)) { + return new DataResponse(); + } + + // Make sure the user has no notification for something that does not exist anymore. + $this->externalManager->processNotification($id); + + throw new OCSNotFoundException('wrong share ID, share doesn\'t exist.'); + } + + /** + * @NoAdminRequired + * + * Decline a remote share + * + * @param int $id + * @return DataResponse + * @throws OCSNotFoundException + */ + public function declineShare($id) { + if ($this->externalManager->declineShare($id)) { + return new DataResponse(); + } + + // Make sure the user has no notification for something that does not exist anymore. + $this->externalManager->processNotification($id); + + throw new OCSNotFoundException('wrong share ID, share doesn\'t exist.'); + } + + /** + * @param array $share Share with info from the share_external table + * @return array enriched share info with data from the filecache + */ + private static function extendShareInfo($share) { + $view = new \OC\Files\View('/' . \OC_User::getUser() . '/files/'); + $info = $view->getFileInfo($share['mountpoint']); + + $share['mimetype'] = $info->getMimetype(); + $share['mtime'] = $info->getMTime(); + $share['permissions'] = $info->getPermissions(); + $share['type'] = $info->getType(); + $share['file_id'] = $info->getId(); + + return $share; + } + + /** + * @NoAdminRequired + * + * List accepted remote shares + * + * @return DataResponse + */ + public function getShares() { + $shares = $this->externalManager->getAcceptedShares(); + $shares = array_map('self::extendShareInfo', $shares); + + return new DataResponse($shares); + } + + /** + * @NoAdminRequired + * + * Get info of a remote share + * + * @param int $id + * @return DataResponse + * @throws OCSNotFoundException + */ + public function getShare($id) { + $shareInfo = $this->externalManager->getShare($id); + + if ($shareInfo === false) { + throw new OCSNotFoundException('share does not exist'); + } else { + $shareInfo = self::extendShareInfo($shareInfo); + return new DataResponse($shareInfo); + } + } + + /** + * @NoAdminRequired + * + * Unshare a remote share + * + * @param int $id + * @return DataResponse + * @throws OCSNotFoundException + * @throws OCSForbiddenException + */ + public function unshare($id) { + $shareInfo = $this->externalManager->getShare($id); + + if ($shareInfo === false) { + throw new OCSNotFoundException('Share does not exist'); + } + + $mountPoint = '/' . \OC_User::getUser() . '/files' . $shareInfo['mountpoint']; + + if ($this->externalManager->removeShare($mountPoint) === true) { + return new DataResponse(); + } else { + throw new OCSForbiddenException('Could not unshare'); + } + } +} diff --git a/apps/twofactor_backupcodes/l10n/de.js b/apps/twofactor_backupcodes/l10n/de.js new file mode 100644 index 00000000000..e5ca6422df6 --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/de.js @@ -0,0 +1,17 @@ +OC.L10N.register( + "twofactor_backupcodes", + { + "Generate backup codes" : "Backup-Codes erstellen", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Backup-Codes wurden erstellt. {{used}} von {{total}} Codes wurden benutzt.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dies sind Deine Backup-Codes. Bitte speichere und/oder drucke diese aus, da diese Codes später nicht mehr gelesen werden können", + "Save backup codes" : "Backup-Codes speichern", + "Print backup codes" : "Backup-Codes drucken", + "Regenerate backup codes" : "Backup-Codes neu generieren", + "If you regenerate backup codes, you automatically invalidate old codes." : "Wenn Du Backup-Codes neu generierst, werden alte automatisch ungültig.", + "An error occurred while generating your backup codes" : "Ein Fehler ist bei der Erstellung Deiner Backup-Codes aufgetreten", + "Nextcloud backup codes" : "Nextcloud-Backup-Codes", + "Backup code" : "Backup-Code", + "Use backup code" : "Backup-Code verwenden", + "Second-factor backup codes" : "Zweitfaktor-Backup-Codes" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/twofactor_backupcodes/l10n/de.json b/apps/twofactor_backupcodes/l10n/de.json new file mode 100644 index 00000000000..e3cdfce9d7b --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/de.json @@ -0,0 +1,15 @@ +{ "translations": { + "Generate backup codes" : "Backup-Codes erstellen", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Backup-Codes wurden erstellt. {{used}} von {{total}} Codes wurden benutzt.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dies sind Deine Backup-Codes. Bitte speichere und/oder drucke diese aus, da diese Codes später nicht mehr gelesen werden können", + "Save backup codes" : "Backup-Codes speichern", + "Print backup codes" : "Backup-Codes drucken", + "Regenerate backup codes" : "Backup-Codes neu generieren", + "If you regenerate backup codes, you automatically invalidate old codes." : "Wenn Du Backup-Codes neu generierst, werden alte automatisch ungültig.", + "An error occurred while generating your backup codes" : "Ein Fehler ist bei der Erstellung Deiner Backup-Codes aufgetreten", + "Nextcloud backup codes" : "Nextcloud-Backup-Codes", + "Backup code" : "Backup-Code", + "Use backup code" : "Backup-Code verwenden", + "Second-factor backup codes" : "Zweitfaktor-Backup-Codes" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/twofactor_backupcodes/l10n/nl.js b/apps/twofactor_backupcodes/l10n/nl.js new file mode 100644 index 00000000000..e0dde0e9a0e --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/nl.js @@ -0,0 +1,17 @@ +OC.L10N.register( + "twofactor_backupcodes", + { + "Generate backup codes" : "Genereer backup code", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Backup codes zijn gegenereerd. {{used}} van {{total}} codes zijn gebruikt.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dit zijn jouw backup codes. Bewaar ze en/of druk ze af, aangezien je ze later niet weer kunt zien.", + "Save backup codes" : "Bewaren backup code", + "Print backup codes" : "Afdrukken backup code", + "Regenerate backup codes" : "Regenereer backup code", + "If you regenerate backup codes, you automatically invalidate old codes." : "Als je backup codes opnieuw genereert, worden oude codes automatisch ongeldig gemaakt.", + "An error occurred while generating your backup codes" : "Er trad een fout op bij het genereren van je backup codes", + "Nextcloud backup codes" : "Nextcloud backup codes", + "Backup code" : "Backup code", + "Use backup code" : "Gebruik backup code", + "Second-factor backup codes" : "Twee-factor backup code" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/twofactor_backupcodes/l10n/nl.json b/apps/twofactor_backupcodes/l10n/nl.json new file mode 100644 index 00000000000..77185e6f36e --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/nl.json @@ -0,0 +1,15 @@ +{ "translations": { + "Generate backup codes" : "Genereer backup code", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Backup codes zijn gegenereerd. {{used}} van {{total}} codes zijn gebruikt.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Dit zijn jouw backup codes. Bewaar ze en/of druk ze af, aangezien je ze later niet weer kunt zien.", + "Save backup codes" : "Bewaren backup code", + "Print backup codes" : "Afdrukken backup code", + "Regenerate backup codes" : "Regenereer backup code", + "If you regenerate backup codes, you automatically invalidate old codes." : "Als je backup codes opnieuw genereert, worden oude codes automatisch ongeldig gemaakt.", + "An error occurred while generating your backup codes" : "Er trad een fout op bij het genereren van je backup codes", + "Nextcloud backup codes" : "Nextcloud backup codes", + "Backup code" : "Backup code", + "Use backup code" : "Gebruik backup code", + "Second-factor backup codes" : "Twee-factor backup code" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/updatenotification/l10n/cs_CZ.js b/apps/updatenotification/l10n/cs_CZ.js index 1380d8eba95..23af7c686d1 100644 --- a/apps/updatenotification/l10n/cs_CZ.js +++ b/apps/updatenotification/l10n/cs_CZ.js @@ -7,6 +7,7 @@ OC.L10N.register( "Nextcloud core" : "Nextcloud Core", "Update for %1$s to version %2$s is available." : "Je dostupná aktualizace pro %1$s na verzi %2$s.", "A new version is available: %s" : "Je dostupná nová verze: %s", + "Download now" : "Stáhnout nyní", "Your version is up to date." : "Používáte nejnovější verzi.", "Checked on %s" : "Zkontrolováno %s", "Update channel:" : "Aktualizovat kanál:", diff --git a/apps/updatenotification/l10n/cs_CZ.json b/apps/updatenotification/l10n/cs_CZ.json index f5137fe6695..95b10919df0 100644 --- a/apps/updatenotification/l10n/cs_CZ.json +++ b/apps/updatenotification/l10n/cs_CZ.json @@ -5,6 +5,7 @@ "Nextcloud core" : "Nextcloud Core", "Update for %1$s to version %2$s is available." : "Je dostupná aktualizace pro %1$s na verzi %2$s.", "A new version is available: %s" : "Je dostupná nová verze: %s", + "Download now" : "Stáhnout nyní", "Your version is up to date." : "Používáte nejnovější verzi.", "Checked on %s" : "Zkontrolováno %s", "Update channel:" : "Aktualizovat kanál:", diff --git a/apps/updatenotification/l10n/de.js b/apps/updatenotification/l10n/de.js index f0eea25d287..90a69f27780 100644 --- a/apps/updatenotification/l10n/de.js +++ b/apps/updatenotification/l10n/de.js @@ -7,6 +7,7 @@ OC.L10N.register( "Nextcloud core" : "Nextcloud Kern", "Update for %1$s to version %2$s is available." : "Ein Update von %1$s auf Version %2$s ist verfügbar.", "A new version is available: %s" : "Eine neue Version ist verfügbar: %s", + "Download now" : "Jetzt herunterladen", "Your version is up to date." : "Deine Version ist aktuell.", "Checked on %s" : "Geprüft am %s", "Update channel:" : "Update-Kanal:", diff --git a/apps/updatenotification/l10n/de.json b/apps/updatenotification/l10n/de.json index 462db15bd32..7215f2daa19 100644 --- a/apps/updatenotification/l10n/de.json +++ b/apps/updatenotification/l10n/de.json @@ -5,6 +5,7 @@ "Nextcloud core" : "Nextcloud Kern", "Update for %1$s to version %2$s is available." : "Ein Update von %1$s auf Version %2$s ist verfügbar.", "A new version is available: %s" : "Eine neue Version ist verfügbar: %s", + "Download now" : "Jetzt herunterladen", "Your version is up to date." : "Deine Version ist aktuell.", "Checked on %s" : "Geprüft am %s", "Update channel:" : "Update-Kanal:", diff --git a/apps/updatenotification/l10n/is.js b/apps/updatenotification/l10n/is.js index 088002b3d0f..321ac5d187d 100644 --- a/apps/updatenotification/l10n/is.js +++ b/apps/updatenotification/l10n/is.js @@ -7,6 +7,7 @@ OC.L10N.register( "Nextcloud core" : "Nextcloud kjarni", "Update for %1$s to version %2$s is available." : "Upfærsla %1$s í útgáfu %2$s er tiltæk.", "A new version is available: %s" : "Ný útgáfa er tiltæk: %s", + "Download now" : "Sækja núna", "Your version is up to date." : "Útgáfan þín er af nýjustu gerð.", "Checked on %s" : "Athugað þann %s", "Update channel:" : "Uppfærslurás:", diff --git a/apps/updatenotification/l10n/is.json b/apps/updatenotification/l10n/is.json index dffe445f297..f556061e97c 100644 --- a/apps/updatenotification/l10n/is.json +++ b/apps/updatenotification/l10n/is.json @@ -5,6 +5,7 @@ "Nextcloud core" : "Nextcloud kjarni", "Update for %1$s to version %2$s is available." : "Upfærsla %1$s í útgáfu %2$s er tiltæk.", "A new version is available: %s" : "Ný útgáfa er tiltæk: %s", + "Download now" : "Sækja núna", "Your version is up to date." : "Útgáfan þín er af nýjustu gerð.", "Checked on %s" : "Athugað þann %s", "Update channel:" : "Uppfærslurás:", diff --git a/apps/updatenotification/l10n/nl.js b/apps/updatenotification/l10n/nl.js index 89ee44bafb4..cc5c1ee3fcd 100644 --- a/apps/updatenotification/l10n/nl.js +++ b/apps/updatenotification/l10n/nl.js @@ -3,9 +3,11 @@ OC.L10N.register( { "Update notifications" : "Bijwerken meldingen", "{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.", + "Channel updated" : "Kanaal bijgewerkt", "Nextcloud core" : "Nextcloud core", "Update for %1$s to version %2$s is available." : "Update voor %1$s naar versie %2$s is beschikbaar.", "A new version is available: %s" : "Er is een nieuwe versie beschikbaar: %s", + "Download now" : "Download nu", "Your version is up to date." : "Je versie is up to date.", "Checked on %s" : "Gecontroleerd op %s", "Update channel:" : "Bijwerkkanaal:", diff --git a/apps/updatenotification/l10n/nl.json b/apps/updatenotification/l10n/nl.json index 3437220cd31..b907300c2e1 100644 --- a/apps/updatenotification/l10n/nl.json +++ b/apps/updatenotification/l10n/nl.json @@ -1,9 +1,11 @@ { "translations": { "Update notifications" : "Bijwerken meldingen", "{version} is available. Get more information on how to update." : "{version} is beschikbaar. Meer informatie over het bijwerken.", + "Channel updated" : "Kanaal bijgewerkt", "Nextcloud core" : "Nextcloud core", "Update for %1$s to version %2$s is available." : "Update voor %1$s naar versie %2$s is beschikbaar.", "A new version is available: %s" : "Er is een nieuwe versie beschikbaar: %s", + "Download now" : "Download nu", "Your version is up to date." : "Je versie is up to date.", "Checked on %s" : "Gecontroleerd op %s", "Update channel:" : "Bijwerkkanaal:", diff --git a/apps/updatenotification/l10n/ru.js b/apps/updatenotification/l10n/ru.js index 7546a3a0cbc..940cf041f6d 100644 --- a/apps/updatenotification/l10n/ru.js +++ b/apps/updatenotification/l10n/ru.js @@ -3,9 +3,11 @@ OC.L10N.register( { "Update notifications" : "Уведомления об обновлениях", "{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о порядке обновления.", + "Channel updated" : "Канал обновлен.", "Nextcloud core" : "Nextcloud core", "Update for %1$s to version %2$s is available." : "Доступно обновление для %1$s до версии %2$s.", "A new version is available: %s" : "Доступна новая версия: %s", + "Download now" : "Скачать сейчас", "Your version is up to date." : "Версия не требует обновления.", "Checked on %s" : "Проверено %s", "Update channel:" : "Канал обновлений:", diff --git a/apps/updatenotification/l10n/ru.json b/apps/updatenotification/l10n/ru.json index 0fb8d3ded66..623e1303a00 100644 --- a/apps/updatenotification/l10n/ru.json +++ b/apps/updatenotification/l10n/ru.json @@ -1,9 +1,11 @@ { "translations": { "Update notifications" : "Уведомления об обновлениях", "{version} is available. Get more information on how to update." : "Доступна версия {version}. Получить дополнительную информацию о порядке обновления.", + "Channel updated" : "Канал обновлен.", "Nextcloud core" : "Nextcloud core", "Update for %1$s to version %2$s is available." : "Доступно обновление для %1$s до версии %2$s.", "A new version is available: %s" : "Доступна новая версия: %s", + "Download now" : "Скачать сейчас", "Your version is up to date." : "Версия не требует обновления.", "Checked on %s" : "Проверено %s", "Update channel:" : "Канал обновлений:", diff --git a/settings/l10n/is.js b/settings/l10n/is.js index aab43c850dc..edfed591b5d 100644 --- a/settings/l10n/is.js +++ b/settings/l10n/is.js @@ -46,6 +46,7 @@ OC.L10N.register( "Add trusted domain" : "Bæta við treystu léni", "Migration in progress. Please wait until the migration is finished" : "Yfirfærsla er í gangi. Dokaðu við þar til henni er lokið", "Migration started …" : "Yfirfærsla hafin...", + "Not saved" : "Ekki vistað", "Sending..." : "Sendi...", "Official" : "Opinbert", "Approved" : "Samþykkt", diff --git a/settings/l10n/is.json b/settings/l10n/is.json index 008f2fb7348..7d33421e8e2 100644 --- a/settings/l10n/is.json +++ b/settings/l10n/is.json @@ -44,6 +44,7 @@ "Add trusted domain" : "Bæta við treystu léni", "Migration in progress. Please wait until the migration is finished" : "Yfirfærsla er í gangi. Dokaðu við þar til henni er lokið", "Migration started …" : "Yfirfærsla hafin...", + "Not saved" : "Ekki vistað", "Sending..." : "Sendi...", "Official" : "Opinbert", "Approved" : "Samþykkt", diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index dca660a9cca..7f4df7337eb 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -46,6 +46,7 @@ OC.L10N.register( "Add trusted domain" : "Vertrouwd domein toevoegen", "Migration in progress. Please wait until the migration is finished" : "Migratie bezig. Wacht tot het proces klaar is.", "Migration started …" : "Migratie gestart...", + "Not saved" : "Niet opgeslagen", "Sending..." : "Versturen...", "Official" : "Officieel", "Approved" : "Goedgekeurd", @@ -217,6 +218,8 @@ OC.L10N.register( "Exclude groups from sharing" : "Sluit groepen uit van delen", "These groups will still be able to receive shares, but not to initiate them." : "Deze groepen kunnen gedeelde mappen bestanden ontvangen, maar kunnen ze niet starten.", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Sta auto-aanvullen van gebruikersnaam toe in de Delen-dialoog. Als dit is uitgeschakeld, moet de gebruikersnaam volledig worden ingevuld.", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Tonen disclaimer op de openbare link uploadpagina (alleen tonen als het bestandsoverzicht verborgen is).", + "This text will be shown on the public link upload page when the file list is hidden." : "Deze tekst wordt getoond op de openbare link uploadpagina als het bestandsoverzicht is verborgen.", "Tips & tricks" : "Tips & trucs", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite wordt gebruikt als database. Voor grotere installaties adviseren we om te schakelen naar een andere database engine.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Vooral wanneer de desktop client wordt gebruik voor bestandssynchronisatie wordt gebruik van sqlite afgeraden.", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index 8a26862260f..3f5327fa0d6 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -44,6 +44,7 @@ "Add trusted domain" : "Vertrouwd domein toevoegen", "Migration in progress. Please wait until the migration is finished" : "Migratie bezig. Wacht tot het proces klaar is.", "Migration started …" : "Migratie gestart...", + "Not saved" : "Niet opgeslagen", "Sending..." : "Versturen...", "Official" : "Officieel", "Approved" : "Goedgekeurd", @@ -215,6 +216,8 @@ "Exclude groups from sharing" : "Sluit groepen uit van delen", "These groups will still be able to receive shares, but not to initiate them." : "Deze groepen kunnen gedeelde mappen bestanden ontvangen, maar kunnen ze niet starten.", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Sta auto-aanvullen van gebruikersnaam toe in de Delen-dialoog. Als dit is uitgeschakeld, moet de gebruikersnaam volledig worden ingevuld.", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Tonen disclaimer op de openbare link uploadpagina (alleen tonen als het bestandsoverzicht verborgen is).", + "This text will be shown on the public link upload page when the file list is hidden." : "Deze tekst wordt getoond op de openbare link uploadpagina als het bestandsoverzicht is verborgen.", "Tips & tricks" : "Tips & trucs", "SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite wordt gebruikt als database. Voor grotere installaties adviseren we om te schakelen naar een andere database engine.", "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Vooral wanneer de desktop client wordt gebruik voor bestandssynchronisatie wordt gebruik van sqlite afgeraden.", diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js index 5ba30582802..1eda84a85b0 100644 --- a/settings/l10n/ru.js +++ b/settings/l10n/ru.js @@ -46,6 +46,7 @@ OC.L10N.register( "Add trusted domain" : "Добавить доверенный домен", "Migration in progress. Please wait until the migration is finished" : "Миграция в процессе. Пожалуйста, подождите завершения миграции", "Migration started …" : "Начата миграция ...", + "Not saved" : "Не сохранено", "Sending..." : "Отправляется ...", "Official" : "Официальное", "Approved" : "Подтвержденное", diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json index 1944fa3cadc..7be6c02f182 100644 --- a/settings/l10n/ru.json +++ b/settings/l10n/ru.json @@ -44,6 +44,7 @@ "Add trusted domain" : "Добавить доверенный домен", "Migration in progress. Please wait until the migration is finished" : "Миграция в процессе. Пожалуйста, подождите завершения миграции", "Migration started …" : "Начата миграция ...", + "Not saved" : "Не сохранено", "Sending..." : "Отправляется ...", "Official" : "Официальное", "Approved" : "Подтвержденное", |