From b36dd8b71fb8751b07ef98443d739d0b1cda9c7d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 28 Sep 2017 14:22:42 +0200 Subject: [PATCH 01/92] Fallback to filename based detection if the remote dav server doesn't know the mimetype Signed-off-by: Robin Appelman --- .../tests/Storage/WebdavTest.php | 13 +++++++++- lib/private/Files/Storage/DAV.php | 26 ++++++++++++------- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/apps/files_external/tests/Storage/WebdavTest.php b/apps/files_external/tests/Storage/WebdavTest.php index 1e518e23b779b..b007ded266261 100644 --- a/apps/files_external/tests/Storage/WebdavTest.php +++ b/apps/files_external/tests/Storage/WebdavTest.php @@ -28,6 +28,7 @@ namespace OCA\Files_External\Tests\Storage; use \OC\Files\Storage\DAV; +use OC\Files\Type\Detection; /** * Class WebdavTest @@ -43,7 +44,7 @@ protected function setUp() { $id = $this->getUniqueID(); $config = include('files_external/tests/config.webdav.php'); - if ( ! is_array($config) or !$config['run']) { + if (!is_array($config) or !$config['run']) { $this->markTestSkipped('WebDAV backend not configured'); } if (isset($config['wait'])) { @@ -61,4 +62,14 @@ protected function tearDown() { parent::tearDown(); } + + public function testMimetypeFallback() { + $this->instance->file_put_contents('foo.bar', 'asd'); + + /** @var Detection $mimeDetector */ + $mimeDetector = \OC::$server->getMimeTypeDetector(); + $mimeDetector->registerType('bar', 'application/x-bar'); + + $this->assertEquals('application/x-bar', $this->instance->getMimeType('foo.bar')); + } } diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php index 223f270bc454e..be23021d8f465 100644 --- a/lib/private/Files/Storage/DAV.php +++ b/lib/private/Files/Storage/DAV.php @@ -146,7 +146,7 @@ protected function init() { } $proxy = \OC::$server->getConfig()->getSystemValue('proxy', ''); - if($proxy !== '') { + if ($proxy !== '') { $settings['proxy'] = $proxy; } @@ -343,11 +343,11 @@ public function fopen($path, $mode) { case 'rb': try { $response = $this->httpClientService - ->newClient() - ->get($this->createBaseUri() . $this->encodePath($path), [ - 'auth' => [$this->user, $this->password], - 'stream' => true - ]); + ->newClient() + ->get($this->createBaseUri() . $this->encodePath($path), [ + 'auth' => [$this->user, $this->password], + 'stream' => true + ]); } catch (RequestException $e) { if ($e->getResponse() instanceof ResponseInterface && $e->getResponse()->getStatusCode() === 404) { @@ -590,6 +590,15 @@ public function stat($path) { /** {@inheritdoc} */ public function getMimeType($path) { + $remoteMimetype = $this->getMimeTypeFromRemote($path); + if ($remoteMimetype === 'application/octet-stream') { + return \OC::$server->getMimeTypeDetector()->detectPath($path); + } else { + return $remoteMimetype; + } + } + + public function getMimeTypeFromRemote($path) { try { $response = $this->propfind($path); if ($response === false) { @@ -606,12 +615,11 @@ public function getMimeType($path) { } elseif (isset($response['{DAV:}getcontenttype'])) { return $response['{DAV:}getcontenttype']; } else { - return false; + return 'application/octet-stream'; } } catch (\Exception $e) { - $this->convertException($e, $path); + return false; } - return false; } /** From c2cd5fc5d345a61b6cc251d2974f199f4e8c04f8 Mon Sep 17 00:00:00 2001 From: Mario Danic Date: Thu, 9 Nov 2017 00:29:34 +0100 Subject: [PATCH 02/92] Fix flow Signed-off-by: Mario Danic --- core/Controller/ClientFlowLoginController.php | 11 +++++++++- .../ClientFlowLoginControllerTest.php | 20 +++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/core/Controller/ClientFlowLoginController.php b/core/Controller/ClientFlowLoginController.php index 81ba8009b2488..47bbbce640e36 100644 --- a/core/Controller/ClientFlowLoginController.php +++ b/core/Controller/ClientFlowLoginController.php @@ -307,7 +307,16 @@ public function generateAppPassword($stateToken, ); $this->session->remove('oauth.state'); } else { - $redirectUri = 'nc://login/server:' . $this->request->getServerHost() . '&user:' . urlencode($loginName) . '&password:' . urlencode($token); + $serverPostfix = ''; + + if (strpos($this->request->getRequestUri(), '/index.php') !== false) { + $serverPostfix = substr($this->request->getRequestUri(), 0, strpos($this->request->getRequestUri(), '/index.php')); + } else if (strpos($this->request->getRequestUri(), '/login/flow') !== false) { + $serverPostfix = substr($this->request->getRequestUri(), 0, strpos($this->request->getRequestUri(), '/login/flow')); + } + + $serverPath = $this->request->getServerProtocol() . "://" . $this->request->getServerHost() . $serverPostfix; + $redirectUri = 'nc://login/server:' . $serverPath . '&user:' . urlencode($loginName) . '&password:' . urlencode($token); } return new Http\RedirectResponse($redirectUri); diff --git a/tests/Core/Controller/ClientFlowLoginControllerTest.php b/tests/Core/Controller/ClientFlowLoginControllerTest.php index 99388e2c4417e..d2dec68573758 100644 --- a/tests/Core/Controller/ClientFlowLoginControllerTest.php +++ b/tests/Core/Controller/ClientFlowLoginControllerTest.php @@ -158,6 +158,10 @@ public function testShowAuthPickerPageWithOcsHeader() { ->expects($this->once()) ->method('getName') ->willReturn('ExampleCloud'); + $this->request + ->expects($this->once()) + ->method('getServerProtocol') + ->willReturn('http'); $this->request ->expects($this->once()) ->method('getServerHost') @@ -214,6 +218,10 @@ public function testShowAuthPickerPageWithOauth() { ->expects($this->once()) ->method('getName') ->willReturn('ExampleCloud'); + $this->request + ->expects($this->once()) + ->method('getServerProtocol') + ->willReturn('http'); $this->request ->expects($this->once()) ->method('getServerHost') @@ -423,12 +431,16 @@ public function testGeneratePasswordWithPassword() { IToken::PERMANENT_TOKEN, IToken::DO_NOT_REMEMBER ); + $this->request + ->expects($this->once()) + ->method('getServerProtocol') + ->willReturn('http'); $this->request ->expects($this->once()) ->method('getServerHost') ->willReturn('example.com'); - $expected = new Http\RedirectResponse('nc://login/server:example.com&user:MyLoginName&password:MyGeneratedToken'); + $expected = new Http\RedirectResponse('nc://login/server:http://example.com&user:MyLoginName&password:MyGeneratedToken'); $this->assertEquals($expected, $this->clientFlowLoginController->generateAppPassword('MyStateToken')); } @@ -571,12 +583,16 @@ public function testGeneratePasswordWithoutPassword() { IToken::PERMANENT_TOKEN, IToken::DO_NOT_REMEMBER ); + $this->request + ->expects($this->once()) + ->method('getServerProtocol') + ->willReturn('http'); $this->request ->expects($this->once()) ->method('getServerHost') ->willReturn('example.com'); - $expected = new Http\RedirectResponse('nc://login/server:example.com&user:MyLoginName&password:MyGeneratedToken'); + $expected = new Http\RedirectResponse('nc://login/server:http://example.com&user:MyLoginName&password:MyGeneratedToken'); $this->assertEquals($expected, $this->clientFlowLoginController->generateAppPassword('MyStateToken')); } } From dfc91a253c19746b1062189740242c5b1992c7a5 Mon Sep 17 00:00:00 2001 From: Vincent Petry Date: Tue, 8 Aug 2017 16:37:14 +0200 Subject: [PATCH 03/92] Parse Sabre Exception in OC.Files.Client and file-upload MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In case of error, instead of a generic error message, an upload will display whichever message is returned in the Sabre Exception, if applicable. Signed-off-by: Daniel Calviño Sánchez --- apps/files/js/file-upload.js | 35 ++++++++++++++---- core/js/files/client.js | 47 +++++++++++++++++++------ core/js/tests/specs/files/clientSpec.js | 18 ++++++++-- 3 files changed, 82 insertions(+), 18 deletions(-) diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js index 5dc18907c7b51..d1730fa7bc7c9 100644 --- a/apps/files/js/file-upload.js +++ b/apps/files/js/file-upload.js @@ -303,7 +303,23 @@ OC.FileUpload.prototype = { */ getResponse: function() { var response = this.data.response(); - if (typeof response.result !== 'string') { + if (response.errorThrown) { + // attempt parsing Sabre exception is available + var xml = response.jqXHR.responseXML; + if (xml.documentElement.localName === 'error' && xml.documentElement.namespaceURI === 'DAV:') { + var messages = xml.getElementsByTagNameNS('http://sabredav.org/ns', 'message'); + var exceptions = xml.getElementsByTagNameNS('http://sabredav.org/ns', 'exception'); + if (messages.length) { + response.message = messages[0].textContent; + } + if (exceptions.length) { + response.exception = exceptions[0].textContent; + } + return response; + } + } + + if (typeof response.result !== 'string' && response.result) { //fetch response from iframe response = $.parseJSON(response.result[0].body.innerText); if (!response) { @@ -931,6 +947,7 @@ OC.Uploader.prototype = _.extend({ status = upload.getResponseStatus(); } self.log('fail', e, upload); + self._hideProgressBar(); if (data.textStatus === 'abort') { self.showUploadCancelMessage(); @@ -947,7 +964,12 @@ OC.Uploader.prototype = _.extend({ self.cancelUploads(); } else { // HTTP connection problem or other error - OC.Notification.show(data.errorThrown, {type: 'error'}); + var message = ''; + if (upload) { + var response = upload.getResponse(); + message = response.message; + } + OC.Notification.show(message || data.errorThrown, {type: 'error'}); } if (upload) { @@ -1144,16 +1166,17 @@ OC.Uploader.prototype = _.extend({ upload.done().then(function() { self._hideProgressBar(); self.trigger('done', e, upload); - }).fail(function(status) { + }).fail(function(status, response) { + var message = response.message; self._hideProgressBar(); if (status === 507) { // not enough space - OC.Notification.show(t('files', 'Not enough free space'), {type: 'error'}); + OC.Notification.show(message || t('files', 'Not enough free space'), {type: 'error'}); self.cancelUploads(); } else if (status === 409) { - OC.Notification.show(t('files', 'Target folder does not exist any more'), {type: 'error'}); + OC.Notification.show(message || t('files', 'Target folder does not exist any more'), {type: 'error'}); } else { - OC.Notification.show(t('files', 'Error when assembling chunks, status code {status}', {status: status}), {type: 'error'}); + OC.Notification.show(message || t('files', 'Error when assembling chunks, status code {status}', {status: status}), {type: 'error'}); } self.trigger('fail', e, data); }); diff --git a/core/js/files/client.js b/core/js/files/client.js index e810381342a6e..3fe24e6250860 100644 --- a/core/js/files/client.js +++ b/core/js/files/client.js @@ -394,6 +394,26 @@ return status >= 200 && status <= 299; }, + /** + * Parse the Sabre exception out of the given response, if any + * + * @param {Object} response object + * @return {Object} array of parsed message and exception (only the first one) + */ + _getSabreException: function(response) { + var result = {}; + var xml = response.xhr.responseXML; + var messages = xml.getElementsByTagNameNS('http://sabredav.org/ns', 'message'); + var exceptions = xml.getElementsByTagNameNS('http://sabredav.org/ns', 'exception'); + if (messages.length) { + result.message = messages[0].textContent; + } + if (exceptions.length) { + result.exception = exceptions[0].textContent; + } + return result; + }, + /** * Returns the default PROPFIND properties to use during a call. * @@ -447,7 +467,8 @@ } deferred.resolve(result.status, results); } else { - deferred.reject(result.status); + result = _.extend(result, self._getSabreException(result)); + deferred.reject(result.status, result); } }); return promise; @@ -521,7 +542,8 @@ var results = self._parseResult(result.body); deferred.resolve(result.status, results); } else { - deferred.reject(result.status); + result = _.extend(result, self._getSabreException(result)); + deferred.reject(result.status, result); } }); return promise; @@ -560,7 +582,8 @@ if (self._isSuccessStatus(result.status)) { deferred.resolve(result.status, self._parseResult([result.body])[0]); } else { - deferred.reject(result.status); + result = _.extend(result, self._getSabreException(result)); + deferred.reject(result.status, result); } } ); @@ -590,7 +613,8 @@ if (self._isSuccessStatus(result.status)) { deferred.resolve(result.status, result.body); } else { - deferred.reject(result.status); + result = _.extend(result, self._getSabreException(result)); + deferred.reject(result.status, result); } } ); @@ -639,7 +663,8 @@ if (self._isSuccessStatus(result.status)) { deferred.resolve(result.status); } else { - deferred.reject(result.status); + result = _.extend(result, self._getSabreException(result)); + deferred.reject(result.status, result); } } ); @@ -663,7 +688,8 @@ if (self._isSuccessStatus(result.status)) { deferred.resolve(result.status); } else { - deferred.reject(result.status); + result = _.extend(result, self._getSabreException(result)); + deferred.reject(result.status, result); } } ); @@ -727,11 +753,12 @@ this._buildUrl(path), headers ).then( - function(response) { - if (self._isSuccessStatus(response.status)) { - deferred.resolve(response.status); + function(result) { + if (self._isSuccessStatus(result.status)) { + deferred.resolve(result.status); } else { - deferred.reject(response.status); + result = _.extend(result, self._getSabreException(result)); + deferred.reject(result.status, result); } } ); diff --git a/core/js/tests/specs/files/clientSpec.js b/core/js/tests/specs/files/clientSpec.js index d66c209bca5c1..89ac3e4dd0461 100644 --- a/core/js/tests/specs/files/clientSpec.js +++ b/core/js/tests/specs/files/clientSpec.js @@ -87,14 +87,28 @@ describe('OC.Files.Client tests', function() { promise.done(successHandler); promise.fail(failHandler); + var errorXml = + '' + + ' Sabre\\DAV\\Exception\\SomeException' + + ' Some error message' + + ''; + + var parser = new DOMParser(); + requestDeferred.resolve({ status: status, - body: '' + body: errorXml, + xhr: { + responseXML: parser.parseFromString(errorXml, 'application/xml') + } }); promise.then(function() { expect(failHandler.calledOnce).toEqual(true); - expect(failHandler.calledWith(status)).toEqual(true); + expect(failHandler.getCall(0).args[0]).toEqual(status); + expect(failHandler.getCall(0).args[1].status).toEqual(status); + expect(failHandler.getCall(0).args[1].message).toEqual('Some error message'); + expect(failHandler.getCall(0).args[1].exception).toEqual('Sabre\\DAV\\Exception\\SomeException'); expect(successHandler.notCalled).toEqual(true); }); From fc456bec39446880ca6153ef903b569f041dd087 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Tue, 19 Sep 2017 12:53:35 +0200 Subject: [PATCH 04/92] check for encryption state on propfind Signed-off-by: Bjoern Schiessle --- core/js/files/client.js | 12 ++++++++++++ core/js/tests/specs/files/clientSpec.js | 13 +++++++++++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/core/js/files/client.js b/core/js/files/client.js index fa3d795d4123a..dc842a9d3bf7f 100644 --- a/core/js/files/client.js +++ b/core/js/files/client.js @@ -74,6 +74,7 @@ Client.PROPERTY_PERMISSIONS = '{' + Client.NS_OWNCLOUD + '}permissions'; Client.PROPERTY_SIZE = '{' + Client.NS_OWNCLOUD + '}size'; Client.PROPERTY_GETCONTENTLENGTH = '{' + Client.NS_DAV + '}getcontentlength'; + Client.PROPERTY_ISENCRYPTED = '{' + Client.NS_DAV + '}is-encrypted'; Client.PROTOCOL_HTTP = 'http'; Client.PROTOCOL_HTTPS = 'https'; @@ -120,6 +121,10 @@ * Mount type */ [Client.NS_NEXTCLOUD, 'mount-type'], + /** + * Encryption state + */ + [Client.NS_NEXTCLOUD, 'is-encrypted'], ]; /** @@ -305,6 +310,13 @@ data.hasPreview = true; } + var isEncryptedProp = props['{' + Client.NS_NEXTCLOUD + '}is-encrypted']; + if (!_.isUndefined(isEncryptedProp)) { + data.isEncrypted = isEncryptedProp === '1'; + } else { + data.isEncrypted = false; + } + var contentType = props[Client.PROPERTY_GETCONTENTTYPE]; if (!_.isUndefined(contentType)) { data.mimetype = contentType; diff --git a/core/js/tests/specs/files/clientSpec.js b/core/js/tests/specs/files/clientSpec.js index 6593372144a5b..ec0a0fbda4037 100644 --- a/core/js/tests/specs/files/clientSpec.js +++ b/core/js/tests/specs/files/clientSpec.js @@ -224,6 +224,7 @@ describe('OC.Files.Client tests', function() { expect(props).toContain('{http://owncloud.org/ns}fileid'); expect(props).toContain('{http://owncloud.org/ns}size'); expect(props).toContain('{http://owncloud.org/ns}permissions'); + expect(props).toContain('{http://nextcloud.org/ns}is-encrypted'); }); it('sends PROPFIND to base url when empty path given', function() { client.getFolderContents(''); @@ -262,6 +263,7 @@ describe('OC.Files.Client tests', function() { expect(info.mtime).toEqual(1436535485000); expect(info.mimetype).toEqual('text/plain'); expect(info.etag).toEqual('559fcabd79a38'); + expect(info.isEncrypted).toEqual(false); // sub entry info = response[1]; @@ -274,6 +276,7 @@ describe('OC.Files.Client tests', function() { expect(info.mtime).toEqual(1436536800000); expect(info.mimetype).toEqual('httpd/unix-directory'); expect(info.etag).toEqual('66cfcabd79abb'); + expect(info.isEncrypted).toEqual(false); }); }); it('returns parent node in result if specified', function() { @@ -303,6 +306,7 @@ describe('OC.Files.Client tests', function() { expect(info.mtime).toEqual(1436522405000); expect(info.mimetype).toEqual('httpd/unix-directory'); expect(info.etag).toEqual('56cfcabd79abb'); + expect(info.isEncrypted).toEqual(false); // the two other entries follow expect(response[1].id).toEqual(51); @@ -422,6 +426,7 @@ describe('OC.Files.Client tests', function() { expect(props).toContain('{http://owncloud.org/ns}fileid'); expect(props).toContain('{http://owncloud.org/ns}size'); expect(props).toContain('{http://owncloud.org/ns}permissions'); + expect(props).toContain('{http://nextcloud.org/ns}is-encrypted'); }); it('parses the result list into a FileInfo array', function() { var promise = client.getFilteredFiles({ @@ -473,7 +478,7 @@ describe('OC.Files.Client tests', function() { describe('file info', function() { var responseXml = dav.Client.prototype.parseMultiStatus( '' + - '' + + '' + makeResponseBlock( '/owncloud/remote.php/webdav/path/to%20space/%E6%96%87%E4%BB%B6%E5%A4%B9/', { @@ -483,7 +488,8 @@ describe('OC.Files.Client tests', function() { 'oc:id': '00000011oc2d13a6a068', 'oc:fileid': '11', 'oc:permissions': 'GRDNVCK', - 'oc:size': '120' + 'oc:size': '120', + 'nc:is-encrypted': '1' }, [ 'd:getcontenttype', @@ -510,6 +516,7 @@ describe('OC.Files.Client tests', function() { expect(props).toContain('{http://owncloud.org/ns}fileid'); expect(props).toContain('{http://owncloud.org/ns}size'); expect(props).toContain('{http://owncloud.org/ns}permissions'); + expect(props).toContain('{http://nextcloud.org/ns}is-encrypted'); }); it('parses the result into a FileInfo', function() { var promise = client.getFileInfo('path/to space/文件夹'); @@ -535,6 +542,7 @@ describe('OC.Files.Client tests', function() { expect(info.mtime).toEqual(1436522405000); expect(info.mimetype).toEqual('httpd/unix-directory'); expect(info.etag).toEqual('56cfcabd79abb'); + expect(info.isEncrypted).toEqual(true); }); }); it('properly parses entry inside root', function() { @@ -583,6 +591,7 @@ describe('OC.Files.Client tests', function() { expect(info.mtime).toEqual(1436522405000); expect(info.mimetype).toEqual('httpd/unix-directory'); expect(info.etag).toEqual('56cfcabd79abb'); + expect(info.isEncrypted).toEqual(false); }); }); it('rejects promise when an error occurred', function() { From 670ac48eb73d8ab1ce44fae81a23296f10d997c0 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Tue, 19 Sep 2017 13:58:26 +0200 Subject: [PATCH 05/92] adjust permissions in web view for encrypted folders Signed-off-by: Bjoern Schiessle --- apps/files/js/filelist.js | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 6996e423776ae..8eecfd13c229c 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1447,7 +1447,9 @@ path = fileData.path || this.getCurrentDirectory(), permissions = parseInt(fileData.permissions, 10) || 0; - if (fileData.isShareMountPoint) { + var isEndToEndEncrypted = (type === 'dir' && fileData.isEncrypted); + + if (!isEndToEndEncrypted && fileData.isShareMountPoint) { permissions = permissions | OC.PERMISSION_UPDATE; } From 37d8d3d858d66ccfc9b9a32606a9448bc15f5960 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Mon, 20 Nov 2017 20:51:32 +0100 Subject: [PATCH 06/92] Add data attribute to file list rows telling if the file is encrypted MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel Calviño Sánchez --- apps/files/js/filelist.js | 6 +++-- apps/files/tests/js/filelistSpec.js | 38 +++++++++++++++++++++++++---- 2 files changed, 37 insertions(+), 7 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 8eecfd13c229c..217a2f1489600 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -953,7 +953,8 @@ type: $el.attr('data-type'), etag: $el.attr('data-etag'), permissions: parseInt($el.attr('data-permissions'), 10), - hasPreview: $el.attr('data-has-preview') === 'true' + hasPreview: $el.attr('data-has-preview') === 'true', + isEncrypted: $el.attr('data-e2eencrypted') === 'true' }; var size = $el.attr('data-size'); if (size) { @@ -1176,7 +1177,8 @@ "data-mtime": mtime, "data-etag": fileData.etag, "data-permissions": permissions, - "data-has-preview": fileData.hasPreview !== false + "data-has-preview": fileData.hasPreview !== false, + "data-e2eencrypted": fileData.isEncrypted === true }); if (dataIcon) { diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index 64fc68764938f..e3b5eba3ecbf4 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -217,6 +217,7 @@ describe('OCA.Files.FileList tests', function() { expect($tr.attr('data-permissions')).toEqual('31'); expect($tr.attr('data-mime')).toEqual('text/plain'); expect($tr.attr('data-mtime')).toEqual('123456'); + expect($tr.attr('data-e2eencrypted')).toEqual('false'); expect($tr.find('a.name').attr('href')) .toEqual(OC.webroot + '/remote.php/webdav/subdir/testName.txt'); expect($tr.find('.nametext').text().trim()).toEqual('testName.txt'); @@ -246,6 +247,7 @@ describe('OCA.Files.FileList tests', function() { expect($tr.attr('data-permissions')).toEqual('31'); expect($tr.attr('data-mime')).toEqual('httpd/unix-directory'); expect($tr.attr('data-mtime')).toEqual('123456'); + expect($tr.attr('data-e2eencrypted')).toEqual('false'); expect($tr.find('.filesize').text()).toEqual('1 KB'); expect($tr.find('.date').text()).not.toEqual('?'); @@ -271,6 +273,7 @@ describe('OCA.Files.FileList tests', function() { expect($tr.attr('data-permissions')).toEqual('31'); expect($tr.attr('data-mime')).toBeUndefined(); expect($tr.attr('data-mtime')).toEqual('123456'); + expect($tr.attr('data-e2eencrypted')).toEqual('false'); expect($tr.find('.filesize').text()).toEqual('Pending'); expect($tr.find('.date').text()).not.toEqual('?'); @@ -293,10 +296,20 @@ describe('OCA.Files.FileList tests', function() { expect($tr.attr('data-permissions')).toEqual('31'); expect($tr.attr('data-mime')).toEqual('httpd/unix-directory'); expect($tr.attr('data-mtime')).toEqual('123456'); + expect($tr.attr('data-e2eencrypted')).toEqual('false'); expect($tr.find('.filesize').text()).toEqual('Pending'); expect($tr.find('.date').text()).not.toEqual('?'); }); + it('generates dir element with true e2eencrypted attribute when calling add() with minimal data including isEncrypted', function() { + var fileData = { + type: 'dir', + name: 'testFolder', + isEncrypted: true + }; + var $tr = fileList.add(fileData); + expect($tr.attr('data-e2eencrypted')).toEqual('true'); + }); it('generates file element with no permissions when permissions are explicitly none', function() { var fileData = { type: 'dir', @@ -2086,7 +2099,8 @@ describe('OCA.Files.FileList tests', function() { size: 12, etag: 'abc', permissions: OC.PERMISSION_ALL, - hasPreview: true + hasPreview: true, + isEncrypted: false }); expect(files[1]).toEqual({ id: 3, @@ -2097,7 +2111,8 @@ describe('OCA.Files.FileList tests', function() { size: 58009, etag: '123', permissions: OC.PERMISSION_ALL, - hasPreview: true + hasPreview: true, + isEncrypted: false }); expect(files[2]).toEqual({ id: 4, @@ -2108,7 +2123,8 @@ describe('OCA.Files.FileList tests', function() { size: 250, etag: '456', permissions: OC.PERMISSION_ALL, - hasPreview: true + hasPreview: true, + isEncrypted: false }); expect(files[0].id).toEqual(1); expect(files[0].name).toEqual('One.txt'); @@ -2130,7 +2146,8 @@ describe('OCA.Files.FileList tests', function() { size: 12, etag: 'abc', permissions: OC.PERMISSION_ALL, - hasPreview: true + hasPreview: true, + isEncrypted: false }); expect(files[1]).toEqual({ id: 4, @@ -2141,7 +2158,8 @@ describe('OCA.Files.FileList tests', function() { size: 250, etag: '456', permissions: OC.PERMISSION_ALL, - hasPreview: true + hasPreview: true, + isEncrypted: false }); }); describe('Download', function() { @@ -3231,6 +3249,16 @@ describe('OCA.Files.FileList tests', function() { expect(fileInfo.mimetype).toEqual('text/plain'); expect(fileInfo.type).toEqual('file'); expect(fileInfo.path).not.toBeDefined(); + expect(fileInfo.isEncrypted).toEqual(false); + }); + it('sets isEncrypted attribute if data includes true e2eencrypted', function() { + testFiles[3].isEncrypted = true; + + fileList.setFiles(testFiles); + $tr = fileList.findFileEl('somedir'); + + var fileInfo = fileList.elementToFile($tr); + expect(fileInfo.isEncrypted).toEqual(true); }); it('adds path attribute if available', function() { $tr.attr('data-path', '/subdir'); From 7bc28f14de8c3d77ec611a4ffd8ad48dc6093cea Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Tue, 19 Sep 2017 17:24:53 +0200 Subject: [PATCH 07/92] show e2e folder icon on encrypted folders Signed-off-by: Bjoern Schiessle --- apps/files/js/filelist.js | 5 ++++- apps/files/tests/js/filelistSpec.js | 26 +++++++++++++++++++++++++ core/img/filetypes/folder-encrypted.svg | 1 + core/js/mimetype.js | 2 ++ core/js/mimetypelist.js | 1 + core/js/share.js | 6 +++++- core/js/tests/specs/shareSpec.js | 7 +++++++ 7 files changed, 46 insertions(+), 2 deletions(-) create mode 100644 core/img/filetypes/folder-encrypted.svg diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 217a2f1489600..0add41d641904 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -1156,7 +1156,10 @@ if (type === 'dir') { mime = mime || 'httpd/unix-directory'; - if (fileData.mountType && fileData.mountType.indexOf('external') === 0) { + if (fileData.isEncrypted) { + icon = OC.MimeType.getIconUrl('dir-encrypted'); + dataIcon = icon; + } else if (fileData.mountType && fileData.mountType.indexOf('external') === 0) { icon = OC.MimeType.getIconUrl('dir-external'); dataIcon = icon; } diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js index e3b5eba3ecbf4..83926b24fee72 100644 --- a/apps/files/tests/js/filelistSpec.js +++ b/apps/files/tests/js/filelistSpec.js @@ -1455,6 +1455,32 @@ describe('OCA.Files.FileList tests', function() { expect(OC.TestUtil.getImageUrl($td.find('.thumbnail'))).toEqual(OC.webroot + '/core/img/filetypes/folder.svg'); expect(previewLoadStub.notCalled).toEqual(true); }); + it('render encrypted folder icon for encrypted root', function() { + var fileData = { + type: 'dir', + mimetype: 'httpd/unix-directory', + name: 'test dir', + isEncrypted: true + }; + var $tr = fileList.add(fileData); + var $td = $tr.find('td.filename'); + expect(OC.TestUtil.getImageUrl($td.find('.thumbnail'))).toEqual(OC.webroot + '/core/img/filetypes/folder-encrypted.svg'); + expect(previewLoadStub.notCalled).toEqual(true); + }); + it('render encrypted folder icon for encrypted subdir', function() { + var fileData = { + type: 'dir', + mimetype: 'httpd/unix-directory', + name: 'test dir', + isEncrypted: true + }; + var $tr = fileList.add(fileData); + var $td = $tr.find('td.filename'); + expect(OC.TestUtil.getImageUrl($td.find('.thumbnail'))).toEqual(OC.webroot + '/core/img/filetypes/folder-encrypted.svg'); + expect(previewLoadStub.notCalled).toEqual(true); + // default icon override + expect($tr.attr('data-icon')).toEqual(OC.webroot + '/core/img/filetypes/folder-encrypted.svg'); + }); it('render external storage icon for external storage root', function() { var fileData = { type: 'dir', diff --git a/core/img/filetypes/folder-encrypted.svg b/core/img/filetypes/folder-encrypted.svg new file mode 100644 index 0000000000000..e2b62a99b053f --- /dev/null +++ b/core/img/filetypes/folder-encrypted.svg @@ -0,0 +1 @@ + diff --git a/core/js/mimetype.js b/core/js/mimetype.js index ed4fedc7f8a72..e5a07abc9513b 100644 --- a/core/js/mimetype.js +++ b/core/js/mimetype.js @@ -44,6 +44,8 @@ OC.MimeType = { // Generate path if (mimeType === 'dir' && $.inArray('folder', files) !== -1) { return 'folder'; + } else if (mimeType === 'dir-encrypted' && $.inArray('folder-encrypted', files) !== -1) { + return 'folder-encrypted'; } else if (mimeType === 'dir-shared' && $.inArray('folder-shared', files) !== -1) { return 'folder-shared'; } else if (mimeType === 'dir-public' && $.inArray('folder-public', files) !== -1) { diff --git a/core/js/mimetypelist.js b/core/js/mimetypelist.js index ea513131d8859..13db16c5a21f3 100644 --- a/core/js/mimetypelist.js +++ b/core/js/mimetypelist.js @@ -104,6 +104,7 @@ OC.MimeTypeList={ "file", "folder", "folder-drag-accept", + "folder-encrypted", "folder-external", "folder-public", "folder-shared", diff --git a/core/js/share.js b/core/js/share.js index 25d59b46fb4ca..be90c626959de 100644 --- a/core/js/share.js +++ b/core/js/share.js @@ -276,10 +276,14 @@ OC.Share = _.extend(OC.Share || {}, { $tr.find('.filename .thumbnail').css('background-image', 'url(' + shareFolderIcon + ')'); $tr.attr('data-icon', shareFolderIcon); } else if (type === 'dir') { + var isEncrypted = $tr.attr('data-e2eencrypted'); var mountType = $tr.attr('data-mounttype'); // FIXME: duplicate of FileList._createRow logic for external folder, // need to refactor the icon logic into a single code path eventually - if (mountType && mountType.indexOf('external') === 0) { + if (isEncrypted === 'true') { + shareFolderIcon = OC.MimeType.getIconUrl('dir-encrypted'); + $tr.attr('data-icon', shareFolderIcon); + } else if (mountType && mountType.indexOf('external') === 0) { shareFolderIcon = OC.MimeType.getIconUrl('dir-external'); $tr.attr('data-icon', shareFolderIcon); } else { diff --git a/core/js/tests/specs/shareSpec.js b/core/js/tests/specs/shareSpec.js index 70c698c99a2d4..127582ace6176 100644 --- a/core/js/tests/specs/shareSpec.js +++ b/core/js/tests/specs/shareSpec.js @@ -149,6 +149,13 @@ describe('OC.Share tests', function() { checkIcon('filetypes/folder-external'); }); + it('shows encrypted icon if encrypted folder', function() { + $file.attr('data-type', 'dir'); + $file.attr('data-e2eencrypted', true); + OC.Share.markFileAsShared($file, false, false); + + checkIcon('filetypes/folder-encrypted'); + }); }); describe('displaying the recipients', function() { From ec8c7d612dd692bcbbfe04c22f15c35424554277 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Wed, 22 Nov 2017 15:34:40 +0100 Subject: [PATCH 08/92] Use flex for guest full screen alignment MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- core/css/guest.css | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/core/css/guest.css b/core/css/guest.css index 9c223dfc08578..3b618bf7f79cd 100644 --- a/core/css/guest.css +++ b/core/css/guest.css @@ -60,6 +60,13 @@ h3 { } /* Global content */ +body { + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; +} + #header .logo { background-image: url('../img/logo.svg?v=1'); background-repeat: no-repeat; @@ -77,15 +84,8 @@ h3 { max-height: 200px; } .wrapper { - min-height: 100%; - margin: 0 auto -70px; width: 300px; -} -.v-align { - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); + margin-top: auto; } /* Default FORM */ @@ -723,6 +723,7 @@ img.icon-loading-small-dark, object.icon-loading-small-dark, video.icon-loading- footer, .push { height: 70px; + margin-top: auto; } footer .info a { From 1c5a1906d6ee27a7b338de5b2be6beeaca1a7787 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Wed, 22 Nov 2017 15:40:25 +0100 Subject: [PATCH 09/92] Fixed heigh resize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- core/css/guest.css | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/core/css/guest.css b/core/css/guest.css index 3b618bf7f79cd..0d2506fdf6b16 100644 --- a/core/css/guest.css +++ b/core/css/guest.css @@ -4,7 +4,7 @@ /* Default and reset */ html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, code, del, dfn, em, img, q, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, dialog, figure, footer, header, hgroup, nav, section { margin:0; padding:0; border:0; outline:0; font-weight:inherit; font-size:100%; font-family:inherit; vertical-align:baseline; cursor:default; } -html, body { height:100%; } +html { height:100%; } article, aside, dialog, figure, footer, header, hgroup, nav, section { display:block; } body { line-height:1.5; } table { border-collapse:separate; border-spacing:0; white-space:nowrap; } @@ -28,7 +28,8 @@ body { background-repeat: no-repeat; background-size: cover; background-attachment: fixed; /* fix background gradient */ - height: 100%; /* fix sticky footer */ + min-height: 100%; /* fix sticky footer */ + height: auto; } /* Various fonts settings */ From 60a73bab1c83c9f8065aa1c642a7ca2c80cd6d2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Mon, 20 Nov 2017 22:14:25 +0100 Subject: [PATCH 10/92] Submit comments with Enter and use Shift+Enter for new lines MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel Calviño Sánchez --- apps/comments/js/commentstabview.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/apps/comments/js/commentstabview.js b/apps/comments/js/commentstabview.js index 7398a709421d5..0d752877b04d9 100644 --- a/apps/comments/js/commentstabview.js +++ b/apps/comments/js/commentstabview.js @@ -517,9 +517,10 @@ $field.toggleClass('error', limitExceeded); $submitButton.prop('disabled', limitExceeded); - //submits form on ctrl+Enter or cmd+Enter - if (ev.keyCode === 13 && (ev.ctrlKey || ev.metaKey)) { + // Submits form with Enter, but Shift+Enter is a new line + if (ev.keyCode === 13 && !ev.shiftKey) { $submitButton.click(); + ev.preventDefault(); } }, From a936aea8a46ae1ec2c9a79e781716ca73da3ab38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Thu, 23 Nov 2017 09:23:24 +0100 Subject: [PATCH 11/92] Fixed top MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- core/css/guest.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/core/css/guest.css b/core/css/guest.css index 0d2506fdf6b16..b03e8d55efb31 100644 --- a/core/css/guest.css +++ b/core/css/guest.css @@ -86,7 +86,7 @@ body { } .wrapper { width: 300px; - margin-top: auto; + margin-top: 10%; } /* Default FORM */ From 01e346b2ae92446e3d86cd54381fb54a5c680fca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Mon, 27 Nov 2017 19:41:25 +0100 Subject: [PATCH 12/92] Ensure that X-OC-MTime header is an integer also with chunked uploads MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit extends the changes introduced in pull request #3793 also to chunked uploads. The "sanitizeMTime" method name is the same used in the equivalent pull request to this one from ownCloud (28066). Signed-off-by: Daniel Calviño Sánchez --- apps/dav/lib/Connector/Sabre/File.php | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php index f172bde5f1fde..b9d55cc454f77 100644 --- a/apps/dav/lib/Connector/Sabre/File.php +++ b/apps/dav/lib/Connector/Sabre/File.php @@ -210,11 +210,7 @@ public function put($data) { // allow sync clients to send the mtime along in a header $request = \OC::$server->getRequest(); if (isset($request->server['HTTP_X_OC_MTIME'])) { - $mtimeStr = $request->server['HTTP_X_OC_MTIME']; - if (!is_numeric($mtimeStr)) { - throw new \InvalidArgumentException('X-OC-Mtime header must be an integer (unix timestamp).'); - } - $mtime = intval($mtimeStr); + $mtime = $this->sanitizeMtime($request->server['HTTP_X_OC_MTIME']); if ($this->fileView->touch($this->path, $mtime)) { header('X-OC-MTime: accepted'); } @@ -472,7 +468,8 @@ private function createFileChunked($data) { // allow sync clients to send the mtime along in a header $request = \OC::$server->getRequest(); if (isset($request->server['HTTP_X_OC_MTIME'])) { - if ($targetStorage->touch($targetInternalPath, $request->server['HTTP_X_OC_MTIME'])) { + $mtime = $this->sanitizeMtime($request->server['HTTP_X_OC_MTIME']); + if ($targetStorage->touch($targetInternalPath, $mtime)) { header('X-OC-MTime: accepted'); } } @@ -570,6 +567,14 @@ private function convertToSabreException(\Exception $e) { throw new \Sabre\DAV\Exception($e->getMessage(), 0, $e); } + private function sanitizeMtime($mtimeFromRequest) { + if (!is_numeric($mtimeFromRequest)) { + throw new \InvalidArgumentException('X-OC-MTime header must be an integer (unix timestamp).'); + } + + return intval($mtimeFromRequest); + } + /** * Get the checksum for this file * From 2af3d8a9b274236f693c79527fb61f42ecd8109a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Mon, 27 Nov 2017 19:41:34 +0100 Subject: [PATCH 13/92] Make possible to provide a specific HTTP request object to File MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This will be used in a following commit to test how the X-OC-MTime header is handled. This commit is based on the "make File::put() more testable" commit (included in 018d45cad97e0) from ownCloud by Artur Neumann. Signed-off-by: Daniel Calviño Sánchez --- apps/dav/lib/Connector/Sabre/File.php | 42 ++++++++++++++----- .../tests/unit/Connector/Sabre/FileTest.php | 5 ++- 2 files changed, 35 insertions(+), 12 deletions(-) diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php index b9d55cc454f77..2db956a3da883 100644 --- a/apps/dav/lib/Connector/Sabre/File.php +++ b/apps/dav/lib/Connector/Sabre/File.php @@ -36,13 +36,16 @@ namespace OCA\DAV\Connector\Sabre; +use OC\AppFramework\Http\Request; use OC\Files\Filesystem; +use OC\Files\View; use OCA\DAV\Connector\Sabre\Exception\EntityTooLarge; use OCA\DAV\Connector\Sabre\Exception\FileLocked; use OCA\DAV\Connector\Sabre\Exception\Forbidden as DAVForbiddenException; use OCA\DAV\Connector\Sabre\Exception\UnsupportedMediaType; use OCP\Encryption\Exceptions\GenericEncryptionException; use OCP\Files\EntityTooLargeException; +use OCP\Files\FileInfo; use OCP\Files\ForbiddenException; use OCP\Files\InvalidContentException; use OCP\Files\InvalidPathException; @@ -51,6 +54,7 @@ use OCP\Files\StorageNotAvailableException; use OCP\Lock\ILockingProvider; use OCP\Lock\LockedException; +use OCP\Share\IManager; use Sabre\DAV\Exception; use Sabre\DAV\Exception\BadRequest; use Sabre\DAV\Exception\Forbidden; @@ -61,6 +65,26 @@ class File extends Node implements IFile { + protected $request; + + /** + * Sets up the node, expects a full path name + * + * @param \OC\Files\View $view + * @param \OCP\Files\FileInfo $info + * @param \OCP\Share\IManager $shareManager + * @param \OC\AppFramework\Http\Request $request + */ + public function __construct(View $view, FileInfo $info, IManager $shareManager = null, Request $request = null) { + parent::__construct($view, $info, $shareManager); + + if (isset($request)) { + $this->request = $request; + } else { + $this->request = \OC::$server->getRequest(); + } + } + /** * Updates the data * @@ -208,9 +232,8 @@ public function put($data) { } // allow sync clients to send the mtime along in a header - $request = \OC::$server->getRequest(); - if (isset($request->server['HTTP_X_OC_MTIME'])) { - $mtime = $this->sanitizeMtime($request->server['HTTP_X_OC_MTIME']); + if (isset($this->request->server['HTTP_X_OC_MTIME'])) { + $mtime = $this->sanitizeMtime($this->request->server['HTTP_X_OC_MTIME']); if ($this->fileView->touch($this->path, $mtime)) { header('X-OC-MTime: accepted'); } @@ -222,8 +245,8 @@ public function put($data) { $this->refreshInfo(); - if (isset($request->server['HTTP_OC_CHECKSUM'])) { - $checksum = trim($request->server['HTTP_OC_CHECKSUM']); + if (isset($this->request->server['HTTP_OC_CHECKSUM'])) { + $checksum = trim($this->request->server['HTTP_OC_CHECKSUM']); $this->fileView->putFileInfo($this->path, ['checksum' => $checksum]); $this->refreshInfo(); } else if ($this->getChecksum() !== null && $this->getChecksum() !== '') { @@ -466,9 +489,8 @@ private function createFileChunked($data) { } // allow sync clients to send the mtime along in a header - $request = \OC::$server->getRequest(); - if (isset($request->server['HTTP_X_OC_MTIME'])) { - $mtime = $this->sanitizeMtime($request->server['HTTP_X_OC_MTIME']); + if (isset($this->request->server['HTTP_X_OC_MTIME'])) { + $mtime = $this->sanitizeMtime($this->request->server['HTTP_X_OC_MTIME']); if ($targetStorage->touch($targetInternalPath, $mtime)) { header('X-OC-MTime: accepted'); } @@ -484,8 +506,8 @@ private function createFileChunked($data) { // FIXME: should call refreshInfo but can't because $this->path is not the of the final file $info = $this->fileView->getFileInfo($targetPath); - if (isset($request->server['HTTP_OC_CHECKSUM'])) { - $checksum = trim($request->server['HTTP_OC_CHECKSUM']); + if (isset($this->request->server['HTTP_OC_CHECKSUM'])) { + $checksum = trim($this->request->server['HTTP_OC_CHECKSUM']); $this->fileView->putFileInfo($targetPath, ['checksum' => $checksum]); } else if ($info->getChecksum() !== null && $info->getChecksum() !== '') { $this->fileView->putFileInfo($this->path, ['checksum' => '']); diff --git a/apps/dav/tests/unit/Connector/Sabre/FileTest.php b/apps/dav/tests/unit/Connector/Sabre/FileTest.php index 4d106842cf0d5..0a2abba446de6 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FileTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FileTest.php @@ -284,10 +284,11 @@ function ($path) use ($storage) { * * @param string $path path to put the file into * @param string $viewRoot root to use for the view + * @param null|\OC\AppFramework\Http\Request $request the HTTP request * * @return null|string of the PUT operaiton which is usually the etag */ - private function doPut($path, $viewRoot = null) { + private function doPut($path, $viewRoot = null, \OC\AppFramework\Http\Request $request = null) { $view = \OC\Files\Filesystem::getView(); if (!is_null($viewRoot)) { $view = new \OC\Files\View($viewRoot); @@ -303,7 +304,7 @@ private function doPut($path, $viewRoot = null) { null ); - $file = new \OCA\DAV\Connector\Sabre\File($view, $info); + $file = new \OCA\DAV\Connector\Sabre\File($view, $info, null, $request); // beforeMethod locks $view->lockFile($path, ILockingProvider::LOCK_SHARED); From a5e4c2ea118327a6769abcc1fe4567695082105e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Mon, 27 Nov 2017 19:41:39 +0100 Subject: [PATCH 14/92] Add tests for X-OC-MTime header handling MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit is based on the commits from pull request 28066 (included in 018d45cad97e0) from ownCloud by Artur Neumann and Phil Davis. Unit tests are currently run only on systems that support negative mtimes, so no special handling of negative values was included in the tests to keep the test code more manageable. Signed-off-by: Daniel Calviño Sánchez --- .../tests/unit/Connector/Sabre/FileTest.php | 133 ++++++++++++++++++ 1 file changed, 133 insertions(+) diff --git a/apps/dav/tests/unit/Connector/Sabre/FileTest.php b/apps/dav/tests/unit/Connector/Sabre/FileTest.php index 0a2abba446de6..8890654c8ccd6 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FileTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FileTest.php @@ -31,6 +31,7 @@ use OC\Files\View; use OCP\Files\ForbiddenException; use OCP\Files\Storage; +use OCP\IConfig; use Test\HookHelper; use OC\Files\Filesystem; use OCP\Lock\ILockingProvider; @@ -49,6 +50,9 @@ class FileTest extends \Test\TestCase { */ private $user; + /** @var IConfig | \PHPUnit_Framework_MockObject_MockObject */ + protected $config; + public function setUp() { parent::setUp(); unset($_SERVER['HTTP_OC_CHUNKED']); @@ -62,6 +66,8 @@ public function setUp() { $userManager->createUser($this->user, 'pass'); $this->loginAsUser($this->user); + + $this->config = $this->getMockBuilder('\OCP\IConfig')->getMock(); } public function tearDown() { @@ -324,6 +330,114 @@ public function testPutSingleFile() { $this->assertNotEmpty($this->doPut('/foo.txt')); } + public function legalMtimeProvider() { + return [ + "string" => [ + 'HTTP_X_OC_MTIME' => "string", + 'expected result' => null + ], + "castable string (int)" => [ + 'HTTP_X_OC_MTIME' => "34", + 'expected result' => 34 + ], + "castable string (float)" => [ + 'HTTP_X_OC_MTIME' => "34.56", + 'expected result' => 34 + ], + "float" => [ + 'HTTP_X_OC_MTIME' => 34.56, + 'expected result' => 34 + ], + "zero" => [ + 'HTTP_X_OC_MTIME' => 0, + 'expected result' => 0 + ], + "zero string" => [ + 'HTTP_X_OC_MTIME' => "0", + 'expected result' => 0 + ], + "negative zero string" => [ + 'HTTP_X_OC_MTIME' => "-0", + 'expected result' => 0 + ], + "string starting with number following by char" => [ + 'HTTP_X_OC_MTIME' => "2345asdf", + 'expected result' => null + ], + "string castable hex int" => [ + 'HTTP_X_OC_MTIME' => "0x45adf", + 'expected result' => 0 + ], + "string that looks like invalid hex int" => [ + 'HTTP_X_OC_MTIME' => "0x123g", + 'expected result' => null + ], + "negative int" => [ + 'HTTP_X_OC_MTIME' => -34, + 'expected result' => -34 + ], + "negative float" => [ + 'HTTP_X_OC_MTIME' => -34.43, + 'expected result' => -34 + ], + ]; + } + + /** + * Test putting a file with string Mtime + * @runInSeparateProcess + * @preserveGlobalState disabled + * @dataProvider legalMtimeProvider + */ + public function testPutSingleFileLegalMtime($requestMtime, $resultMtime) { + $request = new \OC\AppFramework\Http\Request([ + 'server' => [ + 'HTTP_X_OC_MTIME' => $requestMtime, + ] + ], null, $this->config, null); + $file = 'foo.txt'; + + if ($resultMtime === null) { + $this->expectException(\InvalidArgumentException::class); + $this->expectExceptionMessage("X-OC-MTime header must be an integer (unix timestamp)."); + } + + $this->doPut($file, null, $request); + + if ($resultMtime !== null) { + $this->assertEquals($resultMtime, $this->getFileInfos($file)['mtime']); + } + } + + /** + * Test putting a file with string Mtime using chunking + * @runInSeparateProcess + * @preserveGlobalState disabled + * @dataProvider legalMtimeProvider + */ + public function testChunkedPutLegalMtime($requestMtime, $resultMtime) { + $request = new \OC\AppFramework\Http\Request([ + 'server' => [ + 'HTTP_X_OC_MTIME' => $requestMtime, + ] + ], null, $this->config, null); + + $_SERVER['HTTP_OC_CHUNKED'] = true; + $file = 'foo.txt'; + + if ($resultMtime === null) { + $this->expectException(\Sabre\DAV\Exception::class); + $this->expectExceptionMessage("X-OC-MTime header must be an integer (unix timestamp)."); + } + + $this->doPut($file.'-chunking-12345-2-0', null, $request); + $this->doPut($file.'-chunking-12345-2-1', null, $request); + + if ($resultMtime !== null) { + $this->assertEquals($resultMtime, $this->getFileInfos($file)['mtime']); + } + } + /** * Test putting a file using chunking */ @@ -968,6 +1082,25 @@ private function listPartFiles(\OC\Files\View $userView = null, $path = '') { return $files; } + /** + * returns an array of file information filesize, mtime, filetype, mimetype + * + * @param string $path + * @param View $userView + * @return array + */ + private function getFileInfos($path = '', View $userView = null) { + if ($userView === null) { + $userView = Filesystem::getView(); + } + return [ + "filesize" => $userView->filesize($path), + "mtime" => $userView->filemtime($path), + "filetype" => $userView->filetype($path), + "mimetype" => $userView->getMimeType($path) + ]; + } + /** * @expectedException \Sabre\DAV\Exception\ServiceUnavailable */ From ffe034abb09b5f73ec50f15c7deb92357765377f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20M=C3=BCller?= Date: Mon, 27 Nov 2017 19:41:48 +0100 Subject: [PATCH 15/92] Don't use runInSeparateProcess MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Directly calling "header" in the PHPUnit process causes the "Cannot modify header information - headers already sent by" error to be thrown. Instead of running the test in a separate process, which is slower, this commit wraps the call to "header" in a method that can be mocked in the tests. Signed-off-by: Daniel Calviño Sánchez --- apps/dav/lib/Connector/Sabre/File.php | 8 ++++++-- apps/dav/tests/unit/Connector/Sabre/FileTest.php | 10 +++++----- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php index 2db956a3da883..2d20c0958ff6b 100644 --- a/apps/dav/lib/Connector/Sabre/File.php +++ b/apps/dav/lib/Connector/Sabre/File.php @@ -235,7 +235,7 @@ public function put($data) { if (isset($this->request->server['HTTP_X_OC_MTIME'])) { $mtime = $this->sanitizeMtime($this->request->server['HTTP_X_OC_MTIME']); if ($this->fileView->touch($this->path, $mtime)) { - header('X-OC-MTime: accepted'); + $this->header('X-OC-MTime: accepted'); } } @@ -492,7 +492,7 @@ private function createFileChunked($data) { if (isset($this->request->server['HTTP_X_OC_MTIME'])) { $mtime = $this->sanitizeMtime($this->request->server['HTTP_X_OC_MTIME']); if ($targetStorage->touch($targetInternalPath, $mtime)) { - header('X-OC-MTime: accepted'); + $this->header('X-OC-MTime: accepted'); } } @@ -605,4 +605,8 @@ private function sanitizeMtime($mtimeFromRequest) { public function getChecksum() { return $this->info->getChecksum(); } + + protected function header($string) { + \header($string); + } } diff --git a/apps/dav/tests/unit/Connector/Sabre/FileTest.php b/apps/dav/tests/unit/Connector/Sabre/FileTest.php index 8890654c8ccd6..2bc65b987b7d1 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FileTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FileTest.php @@ -310,7 +310,11 @@ private function doPut($path, $viewRoot = null, \OC\AppFramework\Http\Request $r null ); - $file = new \OCA\DAV\Connector\Sabre\File($view, $info, null, $request); + /** @var \OCA\DAV\Connector\Sabre\File | \PHPUnit_Framework_MockObject_MockObject $file */ + $file = $this->getMockBuilder(\OCA\DAV\Connector\Sabre\File::class) + ->setConstructorArgs([$view, $info, null, $request]) + ->setMethods(['header']) + ->getMock(); // beforeMethod locks $view->lockFile($path, ILockingProvider::LOCK_SHARED); @@ -385,8 +389,6 @@ public function legalMtimeProvider() { /** * Test putting a file with string Mtime - * @runInSeparateProcess - * @preserveGlobalState disabled * @dataProvider legalMtimeProvider */ public function testPutSingleFileLegalMtime($requestMtime, $resultMtime) { @@ -411,8 +413,6 @@ public function testPutSingleFileLegalMtime($requestMtime, $resultMtime) { /** * Test putting a file with string Mtime using chunking - * @runInSeparateProcess - * @preserveGlobalState disabled * @dataProvider legalMtimeProvider */ public function testChunkedPutLegalMtime($requestMtime, $resultMtime) { From 2a7b1bae10f9578485805d3733eda21b019236c1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Tue, 28 Nov 2017 01:08:52 +0100 Subject: [PATCH 16/92] Reject X-OC-MTime header if given as a string with hexadecimal notation MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In PHP 7.X hexadecimal notation support was removed from "is_numeric", so "sanitizeMtime" directly rejected those values; in PHP 5.X, on the other hand, "sanitizeMtime" returned 0 when a string with hexadecimal notation was given (as it was the behaviour of "intval"). To provide a consistent behaviour between PHP versions, and given that it does not make much sense to send X-OC-MTime in hexadecimal notation, now X-OC-MTime is always rejected if given as a string with hexadecimal notation. Signed-off-by: Daniel Calviño Sánchez --- apps/dav/lib/Connector/Sabre/File.php | 6 +++++- apps/dav/tests/unit/Connector/Sabre/FileTest.php | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php index 2d20c0958ff6b..32cc8b7adeb28 100644 --- a/apps/dav/lib/Connector/Sabre/File.php +++ b/apps/dav/lib/Connector/Sabre/File.php @@ -590,7 +590,11 @@ private function convertToSabreException(\Exception $e) { } private function sanitizeMtime($mtimeFromRequest) { - if (!is_numeric($mtimeFromRequest)) { + // In PHP 5.X "is_numeric" returns true for strings in hexadecimal + // notation. This is no longer the case in PHP 7.X, so this check + // ensures that strings with hexadecimal notations fail too in PHP 5.X. + $isHexadecimal = is_string($mtimeFromRequest) && preg_match('/^\s*0[xX]/', $mtimeFromRequest); + if ($isHexadecimal || !is_numeric($mtimeFromRequest)) { throw new \InvalidArgumentException('X-OC-MTime header must be an integer (unix timestamp).'); } diff --git a/apps/dav/tests/unit/Connector/Sabre/FileTest.php b/apps/dav/tests/unit/Connector/Sabre/FileTest.php index 2bc65b987b7d1..1db9b7948e396 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FileTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FileTest.php @@ -370,7 +370,7 @@ public function legalMtimeProvider() { ], "string castable hex int" => [ 'HTTP_X_OC_MTIME' => "0x45adf", - 'expected result' => 0 + 'expected result' => null ], "string that looks like invalid hex int" => [ 'HTTP_X_OC_MTIME' => "0x123g", From 0c457782199ea04eb9977c3baaebc843b0099e9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Tue, 28 Nov 2017 02:04:28 +0100 Subject: [PATCH 17/92] Fix silent conflicts due to merging #7256 after #7251 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Although #7256 was merged cleanly some of the changes really conflicted with those introduced by the last commit of #7251, and this broke the appearance of the author row of comments. This commit fixes those silent conflicts and restores the appearance of the author row. Signed-off-by: Daniel Calviño Sánchez --- apps/comments/css/comments.css | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/comments/css/comments.css b/apps/comments/css/comments.css index 646f5f1100cc1..311eeebe4db43 100644 --- a/apps/comments/css/comments.css +++ b/apps/comments/css/comments.css @@ -140,6 +140,9 @@ .atwho-view-ul * .avatar-name-wrapper, #commentsTabView .comment .authorRow { position: relative; + display: inline-flex; + align-items: center; + width: 100%; } #commentsTabView .comment:not(.newCommentRow) .message .avatar-name-wrapper:not(.currentUser), @@ -152,9 +155,6 @@ .atwho-view-ul .avatar-name-wrapper, .atwho-view-ul .avatar-name-wrapper .avatar { cursor: pointer; - display: inline-flex; - align-items: center; - width: 100%; } #commentsTabView .comments li .message .atwho-inserted { From 70953fa7888165b8a6352b2eae6db0ecfd1d169e Mon Sep 17 00:00:00 2001 From: Marin Treselj Date: Tue, 28 Nov 2017 10:56:28 +0100 Subject: [PATCH 18/92] Add new .icon-white and .icon-shadow classes, add toggle-background icon Signed-off-by: Marin Treselj --- core/css/icons.scss | 47 ++++++++++++++++++++------ core/css/variables.scss | 2 +- core/img/actions/toggle-background.svg | 1 + 3 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 core/img/actions/toggle-background.svg diff --git a/core/css/icons.scss b/core/css/icons.scss index 87fb835f67771..5f1d8af78997c 100644 --- a/core/css/icons.scss +++ b/core/css/icons.scss @@ -90,7 +90,14 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { } .icon-shadow { - filter: drop-shadow(0 1px 3px $color-box-shadow); + filter: drop-shadow(1px 1px 4px $color-box-shadow); + &.icon-white { + filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); + } +} + +.icon-white { + filter: invert(100%); } /* ICONS -------------------------------------------------------------------- */ @@ -106,16 +113,20 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { background-image: url('../img/actions/audio.svg?v=1'); } +/* TODO: to be deprecated; use .icon-audio.icon-white.icon-shadow */ .icon-audio-white { - background-image: url('../img/actions/audio-white.svg?v=2'); + background-image: url('../img/actions/audio.svg?v=2'); + filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); } .icon-audio-off { background-image: url('../img/actions/audio-off.svg?v=1'); } +/* TODO: to be deprecated; use .icon-audio-off.icon-white.icon-shadow */ .icon-audio-off-white { - background-image: url('../img/actions/audio-off-white.svg?v=1'); + background-image: url('../img/actions/audio-off.svg?v=1'); + filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); } .icon-caret { @@ -171,6 +182,7 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { } &:hover, &:focus { background-image: url('../img/actions/delete-hover.svg?v=1'); + filter: initial; } } @@ -222,8 +234,10 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { background-image: url('../img/actions/fullscreen.svg?v=1'); } +/* TODO: to be deprecated; use .icon-fullscreen.icon-white.icon-shadow */ .icon-fullscreen-white { - background-image: url('../img/actions/fullscreen-white.svg?v=2'); + background-image: url('../img/actions/fullscreen.svg?v=1'); + filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); } .icon-history { @@ -294,16 +308,20 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { background-image: url('../img/actions/screen.svg?v=1'); } +/* TODO: to be deprecated; use .icon-screen.icon-white.icon-shadow */ .icon-screen-white { - background-image: url('../img/actions/screen-white.svg?v=1'); + background-image: url('../img/actions/screen.svg?v=1'); + filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); } .icon-screen-off { background-image: url('../img/actions/screen-off.svg?v=1'); } +/* TODO: to be deprecated; use .icon-screen-off.icon-white.icon-shadow */ .icon-screen-off-white { - background-image: url('../img/actions/screen-off-white.svg?v=1'); + background-image: url('../img/actions/screen-off.svg?v=1'); + filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); } .icon-search { @@ -373,6 +391,10 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { background-image: url('../img/actions/toggle.svg?v=1'); } +.icon-toggle-background { + background-image: url('../img/actions/toggle-background.svg?v=1'); +} + .icon-toggle-pictures { background-image: url('../img/actions/toggle-pictures.svg?v=1'); } @@ -405,16 +427,20 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { background-image: url('../img/actions/video.svg?v=1'); } +/* TODO: to be deprecated; use .icon-video-off.icon-white.icon-shadow */ .icon-video-white { - background-image: url('../img/actions/video-white.svg?v=2'); + background-image: url('../img/actions/video.svg?v=2'); + filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); } .icon-video-off { background-image: url('../img/actions/video-off.svg?v=1'); } +/* TODO: to be deprecated; use .icon-video-off.icon-white.icon-shadow */ .icon-video-off-white { - background-image: url('../img/actions/video-off-white.svg?v=1'); + background-image: url('../img/actions/video-off.svg?v=1'); + filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); } .icon-view-close { @@ -426,7 +452,7 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { } .icon-view-next { - background-image: url('../img/actions/view-next.svg?v=1'); + background-image: url('../img/actions/arrow-right.svg?v=1'); } .icon-view-pause { @@ -438,13 +464,14 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { } .icon-view-previous { - background-image: url('../img/actions/view-previous.svg?v=1'); + background-image: url('../img/actions/arrow-left.svg?v=1'); } /* PLACES ------------------------------------------------------------------- */ .icon-calendar { background-image: url('../img/places/calendar.svg?v=1'); } + .icon-calendar-dark { background-image: url('../img/places/calendar-dark.svg?v=1'); } diff --git a/core/css/variables.scss b/core/css/variables.scss index 86a348c24f7aa..edeebd5403fc9 100644 --- a/core/css/variables.scss +++ b/core/css/variables.scss @@ -20,6 +20,6 @@ $image-login-background: '../img/background.png?v=2'; $color-loading: #969696; $color-loading-dark: #bbbbbb; -$color-box-shadow: rgba(nc-darken($color-main-background, 30%), 0.75); +$color-box-shadow: rgba(nc-darken($color-main-background, 70%), 0.75); $color-border: nc-darken($color-main-background, 8%); $border-radius: 3px; diff --git a/core/img/actions/toggle-background.svg b/core/img/actions/toggle-background.svg new file mode 100644 index 0000000000000..9b56627e3945c --- /dev/null +++ b/core/img/actions/toggle-background.svg @@ -0,0 +1 @@ + From dd8bfe5d365a2fd3a7f581cd1527e3f6985742da Mon Sep 17 00:00:00 2001 From: Marin Treselj Date: Tue, 28 Nov 2017 10:59:22 +0100 Subject: [PATCH 19/92] Remove deprecated white, shaded icons Signed-off-by: Marin Treselj --- core/img/actions/audio-off-white.svg | 1 - core/img/actions/audio-white.svg | 1 - core/img/actions/fullscreen-white.svg | 1 - core/img/actions/screen-off-white.svg | 1 - core/img/actions/screen-white.svg | 1 - core/img/actions/video-off-white.svg | 1 - core/img/actions/video-white.svg | 1 - core/img/actions/view-close.svg | 1 - core/img/actions/view-download.svg | 1 - core/img/actions/view-next.svg | 1 - core/img/actions/view-pause.svg | 1 - core/img/actions/view-play.svg | 1 - core/img/actions/view-previous.svg | 1 - 13 files changed, 13 deletions(-) delete mode 100644 core/img/actions/audio-off-white.svg delete mode 100644 core/img/actions/audio-white.svg delete mode 100644 core/img/actions/fullscreen-white.svg delete mode 100644 core/img/actions/screen-off-white.svg delete mode 100644 core/img/actions/screen-white.svg delete mode 100644 core/img/actions/video-off-white.svg delete mode 100644 core/img/actions/video-white.svg delete mode 100644 core/img/actions/view-close.svg delete mode 100644 core/img/actions/view-download.svg delete mode 100644 core/img/actions/view-next.svg delete mode 100644 core/img/actions/view-pause.svg delete mode 100644 core/img/actions/view-play.svg delete mode 100644 core/img/actions/view-previous.svg diff --git a/core/img/actions/audio-off-white.svg b/core/img/actions/audio-off-white.svg deleted file mode 100644 index d0699a959d0cb..0000000000000 --- a/core/img/actions/audio-off-white.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/core/img/actions/audio-white.svg b/core/img/actions/audio-white.svg deleted file mode 100644 index 209177deb3f2c..0000000000000 --- a/core/img/actions/audio-white.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/core/img/actions/fullscreen-white.svg b/core/img/actions/fullscreen-white.svg deleted file mode 100644 index c920885bf6be4..0000000000000 --- a/core/img/actions/fullscreen-white.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/core/img/actions/screen-off-white.svg b/core/img/actions/screen-off-white.svg deleted file mode 100644 index a022b933808ca..0000000000000 --- a/core/img/actions/screen-off-white.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/core/img/actions/screen-white.svg b/core/img/actions/screen-white.svg deleted file mode 100644 index e279dc48270ba..0000000000000 --- a/core/img/actions/screen-white.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/core/img/actions/video-off-white.svg b/core/img/actions/video-off-white.svg deleted file mode 100644 index 95e39de06d458..0000000000000 --- a/core/img/actions/video-off-white.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/core/img/actions/video-white.svg b/core/img/actions/video-white.svg deleted file mode 100644 index f24bb373add2c..0000000000000 --- a/core/img/actions/video-white.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/core/img/actions/view-close.svg b/core/img/actions/view-close.svg deleted file mode 100644 index 7b76c6d17980c..0000000000000 --- a/core/img/actions/view-close.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/core/img/actions/view-download.svg b/core/img/actions/view-download.svg deleted file mode 100644 index 89bba33f6aa8b..0000000000000 --- a/core/img/actions/view-download.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/core/img/actions/view-next.svg b/core/img/actions/view-next.svg deleted file mode 100644 index 662b2172daea4..0000000000000 --- a/core/img/actions/view-next.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/core/img/actions/view-pause.svg b/core/img/actions/view-pause.svg deleted file mode 100644 index edc29cacca228..0000000000000 --- a/core/img/actions/view-pause.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/core/img/actions/view-play.svg b/core/img/actions/view-play.svg deleted file mode 100644 index 9d9fb12bdd37e..0000000000000 --- a/core/img/actions/view-play.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/core/img/actions/view-previous.svg b/core/img/actions/view-previous.svg deleted file mode 100644 index 492f8f50d70b8..0000000000000 --- a/core/img/actions/view-previous.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file From cfd1e045884b5fc24746ccbc3d58f785ddece401 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Tue, 28 Nov 2017 12:41:36 +0100 Subject: [PATCH 20/92] Update login filter when user filter was newly generated Signed-off-by: Arthur Schiwon --- .../user_ldap/js/wizard/wizardTabLoginFilter.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/apps/user_ldap/js/wizard/wizardTabLoginFilter.js b/apps/user_ldap/js/wizard/wizardTabLoginFilter.js index 7cc35aae0aa2c..0eef632d85d1b 100644 --- a/apps/user_ldap/js/wizard/wizardTabLoginFilter.js +++ b/apps/user_ldap/js/wizard/wizardTabLoginFilter.js @@ -85,6 +85,7 @@ OCA = OCA || {}; setModel: function(configModel) { this._super(configModel); this.configModel.on('configLoaded', this.onConfigSwitch, this); + this.configModel.on('configUpdated', this.onConfigUpdated, this); this.configModel.on('receivedLdapFeature', this.onFeatureReceived, this); }, @@ -204,6 +205,22 @@ OCA = OCA || {}; view.onConfigLoaded(view, configuration); }, + /** + * @param {WizardTabLoginFilter} view + * @param {Object} configuration + */ + onConfigUpdated: function(view, configuration) { + // When the user list filter is updated in assisted mode, also + // update the login filter automatically. + if( + !_.isUndefined(configuration.ldap_userlist_filter) + && view.parsedFilterMode === view.configModel.FILTER_MODE_ASSISTED + && _.toArray(configuration).length === 1 + ) { + view.configModel.requestWizard('ldap_login_filter'); + } + }, + /** * if UserObjectClasses are found, the corresponding element will be * updated From 96bc03a03a7d7b1d5868eed5c1cc86b1b9b8ca2c Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Tue, 28 Nov 2017 13:30:51 +0100 Subject: [PATCH 21/92] don't create sorter instances when none was requested Signed-off-by: Arthur Schiwon --- core/Controller/AutoCompleteController.php | 12 +- .../Controller/AutoCompleteControllerTest.php | 140 +++++++++++++----- 2 files changed, 106 insertions(+), 46 deletions(-) diff --git a/core/Controller/AutoCompleteController.php b/core/Controller/AutoCompleteController.php index 2e01f85c6398f..1619f9b9edd8d 100644 --- a/core/Controller/AutoCompleteController.php +++ b/core/Controller/AutoCompleteController.php @@ -73,11 +73,13 @@ public function get($search, $itemType, $itemId, $sorter = null, $shareTypes = [ unset($results['exact']); $results = array_merge_recursive($exactMatches, $results); - $sorters = array_reverse(explode('|', $sorter)); - $this->autoCompleteManager->runSorters($sorters, $results, [ - 'itemType' => $itemType, - 'itemId' => $itemId, - ]); + if($sorter !== null) { + $sorters = array_reverse(explode('|', $sorter)); + $this->autoCompleteManager->runSorters($sorters, $results, [ + 'itemType' => $itemType, + 'itemId' => $itemId, + ]); + } // transform to expected format $results = $this->prepareResultArray($results); diff --git a/tests/Core/Controller/AutoCompleteControllerTest.php b/tests/Core/Controller/AutoCompleteControllerTest.php index bcd0d6e1cd344..6279ba3283e99 100644 --- a/tests/Core/Controller/AutoCompleteControllerTest.php +++ b/tests/Core/Controller/AutoCompleteControllerTest.php @@ -59,57 +59,115 @@ protected function setUp() { ); } - public function testGet() { - $searchResults = [ - 'exact' => [ - 'users' => [], - 'robots' => [], - ], - 'users' => [ - ['label' => 'Alice A.', 'value' => ['shareWith' => 'alice']], - ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']], + public function searchDataProvider() { + return [ + [ #0 – regular search + // searchResults + [ + 'exact' => [ + 'users' => [], + 'robots' => [], + ], + 'users' => [ + ['label' => 'Alice A.', 'value' => ['shareWith' => 'alice']], + ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']], + ], + ], + // expected + [ + [ 'id' => 'alice', 'label' => 'Alice A.', 'source' => 'users'], + [ 'id' => 'bob', 'label' => 'Bob Y.', 'source' => 'users'], + ], + '', + 'files', + '42', + null ], - ]; - - $expected = [ - [ 'id' => 'alice', 'label' => 'Alice A.', 'source' => 'users'], - [ 'id' => 'bob', 'label' => 'Bob Y.', 'source' => 'users'], - ]; - - $this->collaboratorSearch->expects($this->once()) - ->method('search') - ->willReturn([$searchResults, false]); - - $response = $this->controller->get('', 'files', '42', null); - - $list = $response->getData(); - $this->assertEquals($expected, $list); // has better error output… - $this->assertSame($expected, $list); - } - - public function testGetWithExactMatch() { - $searchResults = [ - 'exact' => [ - 'users' => [ - ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']], + [ #1 – missing itemtype and id + [ + 'exact' => [ + 'users' => [], + 'robots' => [], + ], + 'users' => [ + ['label' => 'Alice A.', 'value' => ['shareWith' => 'alice']], + ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']], + ], ], - 'robots' => [], + // expected + [ + [ 'id' => 'alice', 'label' => 'Alice A.', 'source' => 'users'], + [ 'id' => 'bob', 'label' => 'Bob Y.', 'source' => 'users'], + ], + '', + null, + null, + null ], - 'users' => [ - ['label' => 'Robert R.', 'value' => ['shareWith' => 'bobby']], + [ #2 – with sorter + [ + 'exact' => [ + 'users' => [], + 'robots' => [], + ], + 'users' => [ + ['label' => 'Alice A.', 'value' => ['shareWith' => 'alice']], + ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']], + ], + ], + // expected + [ + [ 'id' => 'alice', 'label' => 'Alice A.', 'source' => 'users'], + [ 'id' => 'bob', 'label' => 'Bob Y.', 'source' => 'users'], + ], + '', + 'files', + '42', + 'karma|bus-factor' ], + [ #3 – exact Match + [ + 'exact' => [ + 'users' => [ + ['label' => 'Bob Y.', 'value' => ['shareWith' => 'bob']], + ], + 'robots' => [], + ], + 'users' => [ + ['label' => 'Robert R.', 'value' => ['shareWith' => 'bobby']], + ], + ], + [ + [ 'id' => 'bob', 'label' => 'Bob Y.', 'source' => 'users'], + [ 'id' => 'bobby', 'label' => 'Robert R.', 'source' => 'users'], + ], + 'bob', + 'files', + '42', + null + ] ]; + } - $expected = [ - [ 'id' => 'bob', 'label' => 'Bob Y.', 'source' => 'users'], - [ 'id' => 'bobby', 'label' => 'Robert R.', 'source' => 'users'], - ]; - + /** + * @param $searchResults + * @param $expected + * @param $searchTerm + * @param $itemType + * @param $itemId + * @param $sorter + * @dataProvider searchDataProvider + */ + public function testGet($searchResults, $expected, $searchTerm, $itemType, $itemId, $sorter) { $this->collaboratorSearch->expects($this->once()) ->method('search') ->willReturn([$searchResults, false]); - $response = $this->controller->get('bob', 'files', '42', null); + $runSorterFrequency = $sorter === null ? $this->never() : $this->once(); + $this->autoCompleteManager->expects($runSorterFrequency) + ->method('runSorters'); + + $response = $this->controller->get($searchTerm, $itemType, $itemId, $sorter); $list = $response->getData(); $this->assertEquals($expected, $list); // has better error output… From 54878d753ab1f4abe38ac28dbb123a70abb390c7 Mon Sep 17 00:00:00 2001 From: Marin Treselj Date: Tue, 28 Nov 2017 14:30:02 +0100 Subject: [PATCH 22/92] Revert removing of deprecated icons Signed-off-by: Marin Treselj --- core/img/actions/audio-off-white.svg | 1 + core/img/actions/audio-white.svg | 1 + core/img/actions/fullscreen-white.svg | 1 + core/img/actions/screen-off-white.svg | 1 + core/img/actions/screen-white.svg | 1 + core/img/actions/video-off-white.svg | 1 + core/img/actions/video-white.svg | 1 + core/img/actions/view-close.svg | 1 + core/img/actions/view-download.svg | 1 + core/img/actions/view-next.svg | 1 + core/img/actions/view-pause.svg | 1 + core/img/actions/view-play.svg | 1 + core/img/actions/view-previous.svg | 1 + 13 files changed, 13 insertions(+) create mode 100644 core/img/actions/audio-off-white.svg create mode 100644 core/img/actions/audio-white.svg create mode 100644 core/img/actions/fullscreen-white.svg create mode 100644 core/img/actions/screen-off-white.svg create mode 100644 core/img/actions/screen-white.svg create mode 100644 core/img/actions/video-off-white.svg create mode 100644 core/img/actions/video-white.svg create mode 100644 core/img/actions/view-close.svg create mode 100644 core/img/actions/view-download.svg create mode 100644 core/img/actions/view-next.svg create mode 100644 core/img/actions/view-pause.svg create mode 100644 core/img/actions/view-play.svg create mode 100644 core/img/actions/view-previous.svg diff --git a/core/img/actions/audio-off-white.svg b/core/img/actions/audio-off-white.svg new file mode 100644 index 0000000000000..d0699a959d0cb --- /dev/null +++ b/core/img/actions/audio-off-white.svg @@ -0,0 +1 @@ + diff --git a/core/img/actions/audio-white.svg b/core/img/actions/audio-white.svg new file mode 100644 index 0000000000000..209177deb3f2c --- /dev/null +++ b/core/img/actions/audio-white.svg @@ -0,0 +1 @@ + diff --git a/core/img/actions/fullscreen-white.svg b/core/img/actions/fullscreen-white.svg new file mode 100644 index 0000000000000..c920885bf6be4 --- /dev/null +++ b/core/img/actions/fullscreen-white.svg @@ -0,0 +1 @@ + diff --git a/core/img/actions/screen-off-white.svg b/core/img/actions/screen-off-white.svg new file mode 100644 index 0000000000000..a022b933808ca --- /dev/null +++ b/core/img/actions/screen-off-white.svg @@ -0,0 +1 @@ + diff --git a/core/img/actions/screen-white.svg b/core/img/actions/screen-white.svg new file mode 100644 index 0000000000000..e279dc48270ba --- /dev/null +++ b/core/img/actions/screen-white.svg @@ -0,0 +1 @@ + diff --git a/core/img/actions/video-off-white.svg b/core/img/actions/video-off-white.svg new file mode 100644 index 0000000000000..95e39de06d458 --- /dev/null +++ b/core/img/actions/video-off-white.svg @@ -0,0 +1 @@ + diff --git a/core/img/actions/video-white.svg b/core/img/actions/video-white.svg new file mode 100644 index 0000000000000..f24bb373add2c --- /dev/null +++ b/core/img/actions/video-white.svg @@ -0,0 +1 @@ + diff --git a/core/img/actions/view-close.svg b/core/img/actions/view-close.svg new file mode 100644 index 0000000000000..7b76c6d17980c --- /dev/null +++ b/core/img/actions/view-close.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core/img/actions/view-download.svg b/core/img/actions/view-download.svg new file mode 100644 index 0000000000000..89bba33f6aa8b --- /dev/null +++ b/core/img/actions/view-download.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core/img/actions/view-next.svg b/core/img/actions/view-next.svg new file mode 100644 index 0000000000000..662b2172daea4 --- /dev/null +++ b/core/img/actions/view-next.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core/img/actions/view-pause.svg b/core/img/actions/view-pause.svg new file mode 100644 index 0000000000000..edc29cacca228 --- /dev/null +++ b/core/img/actions/view-pause.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core/img/actions/view-play.svg b/core/img/actions/view-play.svg new file mode 100644 index 0000000000000..9d9fb12bdd37e --- /dev/null +++ b/core/img/actions/view-play.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/core/img/actions/view-previous.svg b/core/img/actions/view-previous.svg new file mode 100644 index 0000000000000..492f8f50d70b8 --- /dev/null +++ b/core/img/actions/view-previous.svg @@ -0,0 +1 @@ + \ No newline at end of file From 3c0d6ccbed99afac8c24826f5cb24bc413af3db0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mario=20=C4=90ani=C4=87?= Date: Wed, 29 Nov 2017 09:09:11 +0100 Subject: [PATCH 23/92] Update README.md authentification is not a real word :) --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index bc9624449136d..916314d2d8fdf 100644 --- a/README.md +++ b/README.md @@ -15,7 +15,7 @@ * :package: **Sync your Data** You keep your files, contacts, calendars and more synchronized amongst your devices. * :arrows_counterclockwise: **Share your Data** …by giving others access to the stuff you want them to see or to collaborate with. * :rocket: **Expandable with dozens of Apps** ...like [Calendar](https://github.com/nextcloud/calendar), [Contacts](https://github.com/nextcloud/contacts), [Mail](https://github.com/nextcloud/mail) and all those you can discover in our [App Store](https://apps.nextcloud.com) -* :lock: **Security** with our encryption mechanisms, [HackerOne bounty program](https://hackerone.com/nextcloud) and two-factor authentification. +* :lock: **Security** with our encryption mechanisms, [HackerOne bounty program](https://hackerone.com/nextcloud) and two-factor authentication. *You want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and at your Enterprise?* [**Learn about all our Features**](https://nextcloud.com/features). From 8e684f76e5d599917b52ddfd0ea1d58e31222487 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Wed, 29 Nov 2017 09:50:40 +0100 Subject: [PATCH 24/92] Allow `{lang}` as a placeholder in the skeleton directory Signed-off-by: Joas Schilling --- config/config.sample.php | 3 +++ lib/private/legacy/util.php | 15 ++++++++++++++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/config/config.sample.php b/config/config.sample.php index 022b807a881a5..59fb1d136100a 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -242,6 +242,9 @@ * The directory where the skeleton files are located. These files will be * copied to the data directory of new users. Leave empty to not copy any * skeleton files. + * ``{lang}`` can be used as a placeholder for the language of the user. + * If the directory does not exist, it falls back to non dialect (from ``de_DE`` + * to ``de``). If that does not exist either, it falls back to ``en`` * * Defaults to ``core/skeleton`` in the Nextcloud directory. */ diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php index 3ce11746672fd..b9a7706eaf71f 100644 --- a/lib/private/legacy/util.php +++ b/lib/private/legacy/util.php @@ -379,7 +379,20 @@ public static function getUserQuota($userId) { */ public static function copySkeleton($userId, \OCP\Files\Folder $userDirectory) { - $skeletonDirectory = \OC::$server->getConfig()->getSystemValue('skeletondirectory', \OC::$SERVERROOT . '/core/skeleton'); + $plainSkeletonDirectory = \OC::$server->getConfig()->getSystemValue('skeletondirectory', \OC::$SERVERROOT . '/core/skeleton'); + $userLang = \OC::$server->getL10NFactory()->findLanguage(); + $skeletonDirectory = str_replace('{lang}', $userLang, $plainSkeletonDirectory); + + if (!file_exists($skeletonDirectory)) { + $dialectStart = strpos($userLang, '_'); + if ($dialectStart !== false) { + $skeletonDirectory = str_replace('{lang}', substr($userLang, 0, $dialectStart), $plainSkeletonDirectory); + } + if ($dialectStart === false || !file_exists($skeletonDirectory)) { + $skeletonDirectory = str_replace('{lang}', 'en', $plainSkeletonDirectory); + } + } + $instanceId = \OC::$server->getConfig()->getSystemValue('instanceid', ''); if ($instanceId === null) { From 79554a29e02120121c541206e427ce5dff52e693 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Wed, 29 Nov 2017 13:06:32 +0100 Subject: [PATCH 25/92] Do not log Exception if a connection error occured Signed-off-by: Roeland Jago Douma --- apps/federation/lib/BackgroundJob/GetSharedSecret.php | 3 +++ apps/federation/lib/BackgroundJob/RequestSharedSecret.php | 3 +++ 2 files changed, 6 insertions(+) diff --git a/apps/federation/lib/BackgroundJob/GetSharedSecret.php b/apps/federation/lib/BackgroundJob/GetSharedSecret.php index a3b087e12f8ba..0c621aa40eadf 100644 --- a/apps/federation/lib/BackgroundJob/GetSharedSecret.php +++ b/apps/federation/lib/BackgroundJob/GetSharedSecret.php @@ -31,6 +31,7 @@ namespace OCA\Federation\BackgroundJob; use GuzzleHttp\Exception\ClientException; +use GuzzleHttp\Exception\ConnectException; use OC\BackgroundJob\JobList; use OC\BackgroundJob\Job; use OCA\Federation\DbHandler; @@ -196,6 +197,8 @@ protected function run($argument) { } else { $this->logger->info($target . ' responded with a ' . $status . ' containing: ' . $e->getMessage(), ['app' => 'federation']); } + } catch (ConnectException $e) { + $this->logger->info('Could not connect to ' . $target, ['app' => 'federation']); } catch (\Exception $e) { $status = Http::STATUS_INTERNAL_SERVER_ERROR; $this->logger->logException($e, ['app' => 'federation']); diff --git a/apps/federation/lib/BackgroundJob/RequestSharedSecret.php b/apps/federation/lib/BackgroundJob/RequestSharedSecret.php index 0ba4e37f759de..09de76cba95b6 100644 --- a/apps/federation/lib/BackgroundJob/RequestSharedSecret.php +++ b/apps/federation/lib/BackgroundJob/RequestSharedSecret.php @@ -32,6 +32,7 @@ use GuzzleHttp\Exception\ClientException; +use GuzzleHttp\Exception\ConnectException; use OC\BackgroundJob\JobList; use OC\BackgroundJob\Job; use OCA\Federation\DbHandler; @@ -196,6 +197,8 @@ protected function run($argument) { } else { $this->logger->info($target . ' responded with a ' . $status . ' containing: ' . $e->getMessage(), ['app' => 'federation']); } + } catch (ConnectException $e) { + $this->logger->info('Could not connect to ' . $target, ['app' => 'federation']); } catch (\Exception $e) { $status = Http::STATUS_INTERNAL_SERVER_ERROR; $this->logger->logException($e, ['app' => 'federation']); From 604596ec166602117aaf51e86b7138a519b62742 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 19 Oct 2017 16:22:43 +0200 Subject: [PATCH 26/92] Always generate avatar Even if no avatar is set we should just generate the image. This to not duplicate the code on all the clients. And only server images from the avtar endpoint. Signed-off-by: Roeland Jago Douma --- core/Controller/AvatarController.php | 160 ++++++++++++++++++++++++++- 1 file changed, 155 insertions(+), 5 deletions(-) diff --git a/core/Controller/AvatarController.php b/core/Controller/AvatarController.php index 36b12fbd79c16..5b762a4fd3fa1 100644 --- a/core/Controller/AvatarController.php +++ b/core/Controller/AvatarController.php @@ -111,6 +111,136 @@ public function __construct($appName, $this->timeFactory = $timeFactory; } + + /** + * @param int $r + * @param int $g + * @param int $b + * @return double[] Array containing h s l in [0, 1] range + */ + private function rgbToHsl($r, $g, $b) { + $r /= 255.0; + $g /= 255.0; + $b /= 255.0; + + $max = max($r, $g, $b); + $min = min($r, $g, $b); + + + $h = ($max + $min) / 2.0; + $l = ($max + $min) / 2.0; + + if($max === $min) { + $h = $s = 0; // Achromatic + } else { + $d = $max - $min; + $s = $l > 0.5 ? $d / (2 - $max - $min) : $d / ($max + $min); + switch($max) { + case $r: + $h = ($g - $b) / $d + ($g < $b ? 6 : 0); + break; + case $g: + $h = ($b - $r) / $d + 2.0; + break; + case $b: + $h = ($r - $g) / $d + 4.0; + break; + } + $h /= 6.0; + } + return [$h, $s, $l]; + + } + + /** + * @param string $text + * @return int[] Array containting r g b in the range [0, 255] + */ + private function avatarBackgroundColor($text) { + $hash = preg_replace('/[^0-9a-f]+/', '', $text); + + $hash = md5($hash); + $hashChars = str_split($hash); + + + // Init vars + $result = ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0']; + $rgb = [0, 0, 0]; + $sat = 0.70; + $lum = 0.68; + $modulo = 16; + + + // Splitting evenly the string + foreach($hashChars as $i => $char) { + $result[$i % $modulo] .= intval($char, 16); + } + + // Converting our data into a usable rgb format + // Start at 1 because 16%3=1 but 15%3=0 and makes the repartition even + for($count = 1; $count < $modulo; $count++) { + $rgb[$count%3] += (int)$result[$count]; + } + + // Reduce values bigger than rgb requirements + $rgb[0] %= 255; + $rgb[1] %= 255; + $rgb[2] %= 255; + + $hsl = $this->rgbToHsl($rgb[0], $rgb[1], $rgb[2]); + + // Classic formulla to check the brigtness for our eye + // If too bright, lower the sat + $bright = sqrt(0.299 * ($rgb[0] ** 2) + 0.587 * ($rgb[1] ** 2) + 0.114 * ($rgb[2] ** 2)); + if ($bright >= 200) { + $sat = 0.60; + } + + return $this->hslToRgb($hsl[0], $sat, $lum); + } + + /** + * @param double $h Heu in range [0, 1] + * @param double $s Saturation in range [0, 1] + * @param double $l Lightness in range [0, 1] + * @return int[] Array containging r g b in the range [0, 255] + */ + private function hslToRgb($h, $s, $l){ + $hue2rgb = function ($p, $q, $t){ + if($t < 0) { + $t += 1; + } + if($t > 1) { + $t -= 1; + } + if($t < 1/6) { + return $p + ($q - $p) * 6 * $t; + } + if($t < 1/2) { + return $q; + } + if($t < 2/3) { + return $p + ($q - $p) * (2/3 - $t) * 6; + } + return $p; + }; + + if($s == 0){ + $r = $l; + $g = $l; + $b = $l; // achromatic + }else{ + $q = $l < 0.5 ? $l * (1 + $s) : $l + $s - $l * $s; + $p = 2 * $l - $q; + $r = $hue2rgb($p, $q, $h + 1/3); + $g = $hue2rgb($p, $q, $h); + $b = $hue2rgb($p, $q, $h - 1/3); + } + + return array(round($r * 255), round($g * 255), round($b * 255)); + } + + /** * @NoAdminRequired * @NoCSRFRequired @@ -135,11 +265,31 @@ public function getAvatar($userId, $size) { ['Content-Type' => $avatar->getMimeType()]); } catch (NotFoundException $e) { $user = $this->userManager->get($userId); - $resp = new JSONResponse([ - 'data' => [ - 'displayname' => $user->getDisplayName(), - ], - ]); + $userDisplayName = $user->getDisplayName(); + $text = strtoupper(substr($userDisplayName, 0, 1)); + $backgroundColor = $this->avatarBackgroundColor($userDisplayName); + + $im = imagecreatetruecolor($size, $size); + $background = imagecolorallocate($im, $backgroundColor[0], $backgroundColor[1], $backgroundColor[2]); + $white = imagecolorallocate($im, 255, 255, 255); + imagefilledrectangle($im, 0, 0, $size, $size, $background); + + $font = __DIR__ . '/../../core/fonts/OpenSans-Light.woff'; + + $fontSize = $size * 0.4; + $box = imagettfbbox($fontSize, 0, $font, $text); + + $x = ($size - ($box[2] - $box[0])) / 2; + $y = ($size - ($box[1] - $box[7])) / 2; + $y -= $box[7]; + imagettftext($im, $fontSize, 0, $x, $y, $white, $font, $text); + + header('Content-Type: image/png'); + + imagepng($im); + imagedestroy($im); + + exit(); } catch (\Exception $e) { $resp = new JSONResponse([ 'data' => [ From ba648eecdff7dcb4feff676ca2cfc9c8b4f01ef5 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Fri, 20 Oct 2017 20:06:13 +0200 Subject: [PATCH 27/92] Move avatar code to Avatar Class Signed-off-by: Roeland Jago Douma --- core/Controller/AvatarController.php | 162 +--------------------- lib/private/Avatar.php | 197 +++++++++++++++++++++++++-- 2 files changed, 190 insertions(+), 169 deletions(-) diff --git a/core/Controller/AvatarController.php b/core/Controller/AvatarController.php index 5b762a4fd3fa1..c01e81a1790c0 100644 --- a/core/Controller/AvatarController.php +++ b/core/Controller/AvatarController.php @@ -112,133 +112,6 @@ public function __construct($appName, } - /** - * @param int $r - * @param int $g - * @param int $b - * @return double[] Array containing h s l in [0, 1] range - */ - private function rgbToHsl($r, $g, $b) { - $r /= 255.0; - $g /= 255.0; - $b /= 255.0; - - $max = max($r, $g, $b); - $min = min($r, $g, $b); - - - $h = ($max + $min) / 2.0; - $l = ($max + $min) / 2.0; - - if($max === $min) { - $h = $s = 0; // Achromatic - } else { - $d = $max - $min; - $s = $l > 0.5 ? $d / (2 - $max - $min) : $d / ($max + $min); - switch($max) { - case $r: - $h = ($g - $b) / $d + ($g < $b ? 6 : 0); - break; - case $g: - $h = ($b - $r) / $d + 2.0; - break; - case $b: - $h = ($r - $g) / $d + 4.0; - break; - } - $h /= 6.0; - } - return [$h, $s, $l]; - - } - - /** - * @param string $text - * @return int[] Array containting r g b in the range [0, 255] - */ - private function avatarBackgroundColor($text) { - $hash = preg_replace('/[^0-9a-f]+/', '', $text); - - $hash = md5($hash); - $hashChars = str_split($hash); - - - // Init vars - $result = ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0']; - $rgb = [0, 0, 0]; - $sat = 0.70; - $lum = 0.68; - $modulo = 16; - - - // Splitting evenly the string - foreach($hashChars as $i => $char) { - $result[$i % $modulo] .= intval($char, 16); - } - - // Converting our data into a usable rgb format - // Start at 1 because 16%3=1 but 15%3=0 and makes the repartition even - for($count = 1; $count < $modulo; $count++) { - $rgb[$count%3] += (int)$result[$count]; - } - - // Reduce values bigger than rgb requirements - $rgb[0] %= 255; - $rgb[1] %= 255; - $rgb[2] %= 255; - - $hsl = $this->rgbToHsl($rgb[0], $rgb[1], $rgb[2]); - - // Classic formulla to check the brigtness for our eye - // If too bright, lower the sat - $bright = sqrt(0.299 * ($rgb[0] ** 2) + 0.587 * ($rgb[1] ** 2) + 0.114 * ($rgb[2] ** 2)); - if ($bright >= 200) { - $sat = 0.60; - } - - return $this->hslToRgb($hsl[0], $sat, $lum); - } - - /** - * @param double $h Heu in range [0, 1] - * @param double $s Saturation in range [0, 1] - * @param double $l Lightness in range [0, 1] - * @return int[] Array containging r g b in the range [0, 255] - */ - private function hslToRgb($h, $s, $l){ - $hue2rgb = function ($p, $q, $t){ - if($t < 0) { - $t += 1; - } - if($t > 1) { - $t -= 1; - } - if($t < 1/6) { - return $p + ($q - $p) * 6 * $t; - } - if($t < 1/2) { - return $q; - } - if($t < 2/3) { - return $p + ($q - $p) * (2/3 - $t) * 6; - } - return $p; - }; - - if($s == 0){ - $r = $l; - $g = $l; - $b = $l; // achromatic - }else{ - $q = $l < 0.5 ? $l * (1 + $s) : $l + $s - $l * $s; - $p = 2 * $l - $q; - $r = $hue2rgb($p, $q, $h + 1/3); - $g = $hue2rgb($p, $q, $h); - $b = $hue2rgb($p, $q, $h - 1/3); - } - - return array(round($r * 255), round($g * 255), round($b * 255)); - } /** @@ -263,39 +136,10 @@ public function getAvatar($userId, $size) { $resp = new FileDisplayResponse($avatar, Http::STATUS_OK, ['Content-Type' => $avatar->getMimeType()]); - } catch (NotFoundException $e) { - $user = $this->userManager->get($userId); - $userDisplayName = $user->getDisplayName(); - $text = strtoupper(substr($userDisplayName, 0, 1)); - $backgroundColor = $this->avatarBackgroundColor($userDisplayName); - - $im = imagecreatetruecolor($size, $size); - $background = imagecolorallocate($im, $backgroundColor[0], $backgroundColor[1], $backgroundColor[2]); - $white = imagecolorallocate($im, 255, 255, 255); - imagefilledrectangle($im, 0, 0, $size, $size, $background); - - $font = __DIR__ . '/../../core/fonts/OpenSans-Light.woff'; - - $fontSize = $size * 0.4; - $box = imagettfbbox($fontSize, 0, $font, $text); - - $x = ($size - ($box[2] - $box[0])) / 2; - $y = ($size - ($box[1] - $box[7])) / 2; - $y -= $box[7]; - imagettftext($im, $fontSize, 0, $x, $y, $white, $font, $text); - - header('Content-Type: image/png'); - - imagepng($im); - imagedestroy($im); - - exit(); } catch (\Exception $e) { - $resp = new JSONResponse([ - 'data' => [ - 'displayname' => $userId, - ], - ]); + $resp = new Http\Response(); + $resp->setStatus(Http::STATUS_NOT_FOUND); + return $resp; } // Let cache this! diff --git a/lib/private/Avatar.php b/lib/private/Avatar.php index b2d1b2be3186f..47f7ffdab3749 100644 --- a/lib/private/Avatar.php +++ b/lib/private/Avatar.php @@ -124,15 +124,15 @@ public function set ($data) { $type = 'jpg'; } if ($type !== 'jpg' && $type !== 'png') { - throw new \Exception($this->l->t("Unknown filetype")); + throw new \Exception($this->l->t('Unknown filetype')); } if (!$img->valid()) { - throw new \Exception($this->l->t("Invalid image")); + throw new \Exception($this->l->t('Invalid image')); } if (!($img->height() === $img->width())) { - throw new NotSquareException($this->l->t("Avatar image is not square")); + throw new NotSquareException($this->l->t('Avatar image is not square')); } $this->remove(); @@ -164,7 +164,16 @@ public function remove () { * @inheritdoc */ public function getFile($size) { - $ext = $this->getExtension(); + try { + $ext = $this->getExtension(); + } catch (NotFoundException $e) { + $data = $this->generateAvatar($this->user->getDisplayName(), 1024); + $avatar = $this->folder->newFile('avatar.png'); + $avatar->putContent($data); + $ext = 'png'; + + $this->folder->newFile('generated'); + } if ($size === -1) { $path = 'avatar.' . $ext; @@ -179,19 +188,26 @@ public function getFile($size) { throw new NotFoundException; } - $avatar = new OC_Image(); - /** @var ISimpleFile $file */ - $file = $this->folder->getFile('avatar.' . $ext); - $avatar->loadFromData($file->getContent()); - if ($size !== -1) { + if ($this->folder->fileExists('generated')) { + $data = $this->generateAvatar($this->user->getDisplayName(), $size); + + } else { + $avatar = new OC_Image(); + /** @var ISimpleFile $file */ + $file = $this->folder->getFile('avatar.' . $ext); + $avatar->loadFromData($file->getContent()); $avatar->resize($size); + $data = $avatar->data(); } + try { $file = $this->folder->newFile($path); - $file->putContent($avatar->data()); + $file->putContent($data); } catch (NotPermittedException $e) { $this->logger->error('Failed to save avatar for ' . $this->user->getUID()); + throw new NotFoundException(); } + } return $file; @@ -211,4 +227,165 @@ private function getExtension() { } throw new NotFoundException; } + + /** + * @param string $userDisplayName + * @param int $size + * @return string + */ + private function generateAvatar($userDisplayName, $size) { + $text = strtoupper(substr($userDisplayName, 0, 1)); + $backgroundColor = $this->avatarBackgroundColor($userDisplayName); + + $im = imagecreatetruecolor($size, $size); + $background = imagecolorallocate($im, $backgroundColor[0], $backgroundColor[1], $backgroundColor[2]); + $white = imagecolorallocate($im, 255, 255, 255); + imagefilledrectangle($im, 0, 0, $size, $size, $background); + + $font = __DIR__ . '/../../core/fonts/OpenSans-Light.woff'; + + $fontSize = $size * 0.4; + $box = imagettfbbox($fontSize, 0, $font, $text); + + $x = ($size - ($box[2] - $box[0])) / 2; + $y = ($size - ($box[1] - $box[7])) / 2; + $y -= $box[7]; + imagettftext($im, $fontSize, 0, $x, $y, $white, $font, $text); + + ob_start(); + imagepng($im); + $data = ob_get_contents(); + ob_end_clean(); + + return $data; + } + + /** + * @param int $r + * @param int $g + * @param int $b + * @return double[] Array containing h s l in [0, 1] range + */ + private function rgbToHsl($r, $g, $b) { + $r /= 255.0; + $g /= 255.0; + $b /= 255.0; + + $max = max($r, $g, $b); + $min = min($r, $g, $b); + + + $h = ($max + $min) / 2.0; + $l = ($max + $min) / 2.0; + + if($max === $min) { + $h = $s = 0; // Achromatic + } else { + $d = $max - $min; + $s = $l > 0.5 ? $d / (2 - $max - $min) : $d / ($max + $min); + switch($max) { + case $r: + $h = ($g - $b) / $d + ($g < $b ? 6 : 0); + break; + case $g: + $h = ($b - $r) / $d + 2.0; + break; + case $b: + $h = ($r - $g) / $d + 4.0; + break; + } + $h /= 6.0; + } + return [$h, $s, $l]; + + } + + /** + * @param string $text + * @return int[] Array containting r g b in the range [0, 255] + */ + private function avatarBackgroundColor($text) { + $hash = preg_replace('/[^0-9a-f]+/', '', $text); + + $hash = md5($hash); + $hashChars = str_split($hash); + + + // Init vars + $result = ['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0']; + $rgb = [0, 0, 0]; + $sat = 0.70; + $lum = 0.68; + $modulo = 16; + + + // Splitting evenly the string + foreach($hashChars as $i => $char) { + $result[$i % $modulo] .= intval($char, 16); + } + + // Converting our data into a usable rgb format + // Start at 1 because 16%3=1 but 15%3=0 and makes the repartition even + for($count = 1; $count < $modulo; $count++) { + $rgb[$count%3] += (int)$result[$count]; + } + + // Reduce values bigger than rgb requirements + $rgb[0] %= 255; + $rgb[1] %= 255; + $rgb[2] %= 255; + + $hsl = $this->rgbToHsl($rgb[0], $rgb[1], $rgb[2]); + + // Classic formula to check the brightness for our eye + // If too bright, lower the sat + $bright = sqrt(0.299 * ($rgb[0] ** 2) + 0.587 * ($rgb[1] ** 2) + 0.114 * ($rgb[2] ** 2)); + if ($bright >= 200) { + $sat = 0.60; + } + + return $this->hslToRgb($hsl[0], $sat, $lum); + } + + /** + * @param double $h Hue in range [0, 1] + * @param double $s Saturation in range [0, 1] + * @param double $l Lightness in range [0, 1] + * @return int[] Array containing r g b in the range [0, 255] + */ + private function hslToRgb($h, $s, $l){ + $hue2rgb = function ($p, $q, $t){ + if($t < 0) { + $t += 1; + } + if($t > 1) { + $t -= 1; + } + if($t < 1/6) { + return $p + ($q - $p) * 6 * $t; + } + if($t < 1/2) { + return $q; + } + if($t < 2/3) { + return $p + ($q - $p) * (2/3 - $t) * 6; + } + return $p; + }; + + if($s === 0){ + $r = $l; + $g = $l; + $b = $l; // achromatic + }else{ + $q = $l < 0.5 ? $l * (1 + $s) : $l + $s - $l * $s; + $p = 2 * $l - $q; + $r = $hue2rgb($p, $q, $h + 1/3); + $g = $hue2rgb($p, $q, $h); + $b = $hue2rgb($p, $q, $h - 1/3); + } + + return array(round($r * 255), round($g * 255), round($b * 255)); + } + } From 03d9e7e963c704eb5b4f48c495fac9310b9f2e0d Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Fri, 20 Oct 2017 20:08:45 +0200 Subject: [PATCH 28/92] Sinc we use AppData the regex is not needed anymore Signed-off-by: Roeland Jago Douma --- lib/private/Avatar.php | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/lib/private/Avatar.php b/lib/private/Avatar.php index 47f7ffdab3749..833d430ac0129 100644 --- a/lib/private/Avatar.php +++ b/lib/private/Avatar.php @@ -146,16 +146,13 @@ public function set ($data) { * @return void */ public function remove () { - $regex = '/^avatar\.([0-9]+\.)?(jpg|png)$/'; $avatars = $this->folder->getDirectoryListing(); $this->config->setUserValue($this->user->getUID(), 'avatar', 'version', (int)$this->config->getUserValue($this->user->getUID(), 'avatar', 'version', 0) + 1); foreach ($avatars as $avatar) { - if (preg_match($regex, $avatar->getName())) { - $avatar->delete(); - } + $avatar->delete(); } $this->user->triggerChange('avatar', ''); } From d5496dc435eeff931ab1d540ea4b069520e88e12 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Fri, 20 Oct 2017 20:15:26 +0200 Subject: [PATCH 29/92] Since we update the avatar in the sync service remove the generated file Signed-off-by: Roeland Jago Douma --- lib/private/Avatar.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lib/private/Avatar.php b/lib/private/Avatar.php index 833d430ac0129..583a83f5166ed 100644 --- a/lib/private/Avatar.php +++ b/lib/private/Avatar.php @@ -138,6 +138,13 @@ public function set ($data) { $this->remove(); $file = $this->folder->newFile('avatar.'.$type); $file->putContent($data); + + try { + $generated = $this->folder->getFile('generated'); + $generated->delete(); + } catch (NotFoundException $e) { + // + } $this->user->triggerChange('avatar', $file); } From 8e8fe6b8ebc4b3ad32a72e1262aed82c96a52b36 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 9 Nov 2017 11:34:50 +0100 Subject: [PATCH 30/92] Fix tests Signed-off-by: Roeland Jago Douma --- .../Core/Controller/AvatarControllerTest.php | 8 +--- tests/lib/AvatarTest.php | 44 ++++++++++++++++--- 2 files changed, 39 insertions(+), 13 deletions(-) diff --git a/tests/Core/Controller/AvatarControllerTest.php b/tests/Core/Controller/AvatarControllerTest.php index de568438022d2..3194d671908ac 100644 --- a/tests/Core/Controller/AvatarControllerTest.php +++ b/tests/Core/Controller/AvatarControllerTest.php @@ -134,9 +134,7 @@ public function testGetAvatarNoAvatar() { $response = $this->avatarController->getAvatar('userId', 32); //Comment out until JS is fixed - //$this->assertEquals(Http::STATUS_NOT_FOUND, $response->getStatus()); - $this->assertEquals(Http::STATUS_OK, $response->getStatus()); - $this->assertEquals('displayName', $response->getData()['data']['displayname']); + $this->assertEquals(Http::STATUS_NOT_FOUND, $response->getStatus()); } /** @@ -167,9 +165,7 @@ public function testGetAvatarNoUser() { $response = $this->avatarController->getAvatar('userDoesNotExist', 32); //Comment out until JS is fixed - //$this->assertEquals(Http::STATUS_NOT_FOUND, $response->getStatus()); - $this->assertEquals(Http::STATUS_OK, $response->getStatus()); - $this->assertEquals('userDoesNotExist', $response->getData()['data']['displayname']); + $this->assertEquals(Http::STATUS_NOT_FOUND, $response->getStatus()); } /** diff --git a/tests/lib/AvatarTest.php b/tests/lib/AvatarTest.php index cea3f9bed1a09..240aecc115e95 100644 --- a/tests/lib/AvatarTest.php +++ b/tests/lib/AvatarTest.php @@ -12,6 +12,8 @@ use OC\User\User; use OCP\Files\File; use OCP\Files\Folder; +use OCP\Files\NotFoundException; +use OCP\Files\SimpleFS\ISimpleFile; use OCP\IConfig; use OCP\IL10N; use OCP\ILogger; @@ -49,7 +51,35 @@ public function setUp() { } public function testGetNoAvatar() { - $this->assertEquals(false, $this->avatar->get()); + $file = $this->createMock(ISimpleFile::class); + $this->folder->method('newFile') + ->willReturn($file); + + $this->folder->method('getFile') + ->will($this->returnCallback(function($path) { + if ($path === 'avatar.64.png') { + throw new NotFoundException(); + } + })); + $this->folder->method('fileExists') + ->will($this->returnCallback(function($path) { + if ($path === 'generated') { + return true; + } + return false; + })); + + $data = NULL; + $file->method('putContent') + ->with($this->callback(function ($d) use (&$data) { + $data = $d; + return true; + })); + + $file->method('getContent') + ->willReturn($data); + + $this->assertEquals($data, $this->avatar->get()->data()); } public function testGetAvatarSizeMatch() { @@ -161,13 +191,13 @@ public function testSetAvatar() { ->willReturn('avatar.32.jpg'); $resizedAvatarFile->expects($this->once())->method('delete'); - $nonAvatarFile = $this->createMock(File::class); - $nonAvatarFile->method('getName') - ->willReturn('avatarX'); - $nonAvatarFile->expects($this->never())->method('delete'); - $this->folder->method('getDirectoryListing') - ->willReturn([$avatarFileJPG, $avatarFilePNG, $resizedAvatarFile, $nonAvatarFile]); + ->willReturn([$avatarFileJPG, $avatarFilePNG, $resizedAvatarFile]); + + $generated = $this->createMock(File::class); + $this->folder->method('getFile') + ->with('generated') + ->willReturn($generated); $newFile = $this->createMock(File::class); $this->folder->expects($this->once()) From d24b6866b1624666af751dfd6cdb25e49c591edd Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Wed, 29 Nov 2017 16:28:38 +0100 Subject: [PATCH 31/92] Actually set the status so we don't cause another exception * And add tests so I don't mess up again Signed-off-by: Roeland Jago Douma --- .../lib/BackgroundJob/GetSharedSecret.php | 1 + .../lib/BackgroundJob/RequestSharedSecret.php | 1 + .../BackgroundJob/GetSharedSecretTest.php | 38 +++++++++++++++++++ .../BackgroundJob/RequestSharedSecretTest.php | 38 +++++++++++++++++++ 4 files changed, 78 insertions(+) diff --git a/apps/federation/lib/BackgroundJob/GetSharedSecret.php b/apps/federation/lib/BackgroundJob/GetSharedSecret.php index 0c621aa40eadf..6090f521fcc27 100644 --- a/apps/federation/lib/BackgroundJob/GetSharedSecret.php +++ b/apps/federation/lib/BackgroundJob/GetSharedSecret.php @@ -198,6 +198,7 @@ protected function run($argument) { $this->logger->info($target . ' responded with a ' . $status . ' containing: ' . $e->getMessage(), ['app' => 'federation']); } } catch (ConnectException $e) { + $status = -1; // There is no status code if we could not connect $this->logger->info('Could not connect to ' . $target, ['app' => 'federation']); } catch (\Exception $e) { $status = Http::STATUS_INTERNAL_SERVER_ERROR; diff --git a/apps/federation/lib/BackgroundJob/RequestSharedSecret.php b/apps/federation/lib/BackgroundJob/RequestSharedSecret.php index 09de76cba95b6..a201c9dccb618 100644 --- a/apps/federation/lib/BackgroundJob/RequestSharedSecret.php +++ b/apps/federation/lib/BackgroundJob/RequestSharedSecret.php @@ -198,6 +198,7 @@ protected function run($argument) { $this->logger->info($target . ' responded with a ' . $status . ' containing: ' . $e->getMessage(), ['app' => 'federation']); } } catch (ConnectException $e) { + $status = -1; // There is no status code if we could not connect $this->logger->info('Could not connect to ' . $target, ['app' => 'federation']); } catch (\Exception $e) { $status = Http::STATUS_INTERNAL_SERVER_ERROR; diff --git a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php index fca64faebe44b..2058b2592c8db 100644 --- a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php +++ b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php @@ -28,6 +28,7 @@ namespace OCA\Federation\Tests\BackgroundJob; +use GuzzleHttp\Exception\ConnectException; use OCA\Federation\BackgroundJob\GetSharedSecret; use OCA\Files_Sharing\Tests\TestCase; use OCA\Federation\DbHandler; @@ -277,4 +278,41 @@ public function testRunExpired() { $this->invokePrivate($this->getSharedSecret, 'run', [$argument]); } + + public function testRunConnectionError() { + $target = 'targetURL'; + $source = 'sourceURL'; + $token = 'token'; + + $argument = ['url' => $target, 'token' => $token]; + + $this->timeFactory->method('getTime') + ->willReturn(42); + + $this->urlGenerator + ->expects($this->once()) + ->method('getAbsoluteURL') + ->with('/') + ->willReturn($source); + $this->httpClient->expects($this->once())->method('get') + ->with( + $target . '/ocs/v2.php/apps/federation/api/v1/shared-secret?format=json', + [ + 'query' => + [ + 'url' => $source, + 'token' => $token + ], + 'timeout' => 3, + 'connect_timeout' => 3, + ] + )->willThrowException($this->createMock(ConnectException::class)); + + $this->dbHandler->expects($this->never())->method('addToken'); + $this->trustedServers->expects($this->never())->method('addSharedSecret'); + + $this->invokePrivate($this->getSharedSecret, 'run', [$argument]); + + $this->assertTrue($this->invokePrivate($this->getSharedSecret, 'retainJob')); + } } diff --git a/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php b/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php index 33133e3b12f57..57a85f1be0b87 100644 --- a/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php +++ b/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php @@ -27,6 +27,7 @@ namespace OCA\Federation\Tests\BackgroundJob; +use GuzzleHttp\Exception\ConnectException; use OCA\Federation\BackgroundJob\RequestSharedSecret; use OCA\Federation\DbHandler; use OCA\Federation\TrustedServers; @@ -262,4 +263,41 @@ public function testRunExpired() { $this->invokePrivate($this->requestSharedSecret, 'run', [$argument]); } + + public function testRunConnectionError() { + $target = 'targetURL'; + $source = 'sourceURL'; + $token = 'token'; + + $argument = ['url' => $target, 'token' => $token]; + + $this->timeFactory->method('getTime')->willReturn(42); + + $this->urlGenerator + ->expects($this->once()) + ->method('getAbsoluteURL') + ->with('/') + ->willReturn($source); + + $this->httpClient + ->expects($this->once()) + ->method('post') + ->with( + $target . '/ocs/v2.php/apps/federation/api/v1/request-shared-secret?format=json', + [ + 'body' => + [ + 'url' => $source, + 'token' => $token + ], + 'timeout' => 3, + 'connect_timeout' => 3, + ] + )->willThrowException($this->createMock(ConnectException::class)); + + $this->dbHandler->expects($this->never())->method('addToken'); + + $this->invokePrivate($this->requestSharedSecret, 'run', [$argument]); + $this->assertTrue($this->invokePrivate($this->requestSharedSecret, 'retainJob')); + } } From 49ec86a81fa19884de125ec48325d85e2e1b1561 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Thu, 30 Nov 2017 01:13:19 +0000 Subject: [PATCH 32/92] [tx-robot] updated from transifex --- apps/comments/l10n/da.js | 2 ++ apps/comments/l10n/da.json | 2 ++ apps/comments/l10n/ka_GE.js | 2 ++ apps/comments/l10n/ka_GE.json | 2 ++ apps/comments/l10n/nb.js | 1 + apps/comments/l10n/nb.json | 1 + apps/comments/l10n/sr.js | 2 ++ apps/comments/l10n/sr.json | 2 ++ apps/files/l10n/nb.js | 4 ++-- apps/files/l10n/nb.json | 4 ++-- apps/files_external/l10n/nb.js | 2 +- apps/files_external/l10n/nb.json | 2 +- apps/files_sharing/l10n/nb.js | 2 +- apps/files_sharing/l10n/nb.json | 2 +- apps/theming/l10n/nb.js | 2 +- apps/theming/l10n/nb.json | 2 +- apps/user_ldap/l10n/nb.js | 2 +- apps/user_ldap/l10n/nb.json | 2 +- apps/workflowengine/l10n/nb.js | 6 +++--- apps/workflowengine/l10n/nb.json | 6 +++--- core/l10n/es.js | 7 +++++++ core/l10n/es.json | 7 +++++++ core/l10n/ka_GE.js | 17 ++++++++++++++++- core/l10n/ka_GE.json | 17 ++++++++++++++++- core/l10n/nb.js | 17 +++++++++-------- core/l10n/nb.json | 17 +++++++++-------- core/l10n/sr.js | 15 +++++++++++++++ core/l10n/sr.json | 15 +++++++++++++++ settings/l10n/nl.js | 2 +- settings/l10n/nl.json | 2 +- 30 files changed, 128 insertions(+), 38 deletions(-) diff --git a/apps/comments/l10n/da.js b/apps/comments/l10n/da.js index a5863b30708cf..200bb57481296 100644 --- a/apps/comments/l10n/da.js +++ b/apps/comments/l10n/da.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s kommenterede %2$s", "{author} commented on {file}" : "{author} kommenterede {file}", "Comments for files" : "Kommentarer for filer", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"%s”, I en kommentar af en bruger der siden er blevet slettet", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"{file}”, I en kommentar af en bruger der siden er blevet slettet", "%1$s mentioned you in a comment on “%2$s”" : "%1$s nævnte dig i en kommentarer på “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} nævnte dig i en kommentarer på \"{file}\"", "A (now) deleted user mentioned you in a comment on “%s”" : "En (nu) slettet bruger nævnte dig i en kommentarer på “%s”", diff --git a/apps/comments/l10n/da.json b/apps/comments/l10n/da.json index ada6069868df5..3d2a42647d41f 100644 --- a/apps/comments/l10n/da.json +++ b/apps/comments/l10n/da.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s kommenterede %2$s", "{author} commented on {file}" : "{author} kommenterede {file}", "Comments for files" : "Kommentarer for filer", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"%s”, I en kommentar af en bruger der siden er blevet slettet", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du blev nævnt i \"{file}”, I en kommentar af en bruger der siden er blevet slettet", "%1$s mentioned you in a comment on “%2$s”" : "%1$s nævnte dig i en kommentarer på “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} nævnte dig i en kommentarer på \"{file}\"", "A (now) deleted user mentioned you in a comment on “%s”" : "En (nu) slettet bruger nævnte dig i en kommentarer på “%s”", diff --git a/apps/comments/l10n/ka_GE.js b/apps/comments/l10n/ka_GE.js index ac4c179a62887..c7ac16fcc5543 100644 --- a/apps/comments/l10n/ka_GE.js +++ b/apps/comments/l10n/ka_GE.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s მომხმარებელმა გააკეთა კომენტარი %2$s-ზე", "{author} commented on {file}" : "{author} მომხმარებელმა გააკეთა კომენტარი {file}-ზე", "Comments for files" : "კომენტარები ფაილებზე", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "თქვენ მოგიხსენიეს “%s”-ში, ახლა უკვე გაუქმებული მომხმარებლის კომენტარში", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "თქვენ მოგიხსენიეს “{file}”-ში, ახლა უკვე გაუქმებული მომხმარებლის კომენტარში", "%1$s mentioned you in a comment on “%2$s”" : "%1$s გახსენათ “%2$s”-ზე გაკეთებულ კომენტარში", "{user} mentioned you in a comment on “{file}”" : "{user} გახსენათ “{file}” ფაილზე გაკეტებულ კომენტარში", "A (now) deleted user mentioned you in a comment on “%s”" : "(ახლა) წაშლილმა მოხმარებელმა მოგიხსენიათ კომენტარში “%s”-ზე", diff --git a/apps/comments/l10n/ka_GE.json b/apps/comments/l10n/ka_GE.json index 398930720ab3c..908a188459f5a 100644 --- a/apps/comments/l10n/ka_GE.json +++ b/apps/comments/l10n/ka_GE.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s მომხმარებელმა გააკეთა კომენტარი %2$s-ზე", "{author} commented on {file}" : "{author} მომხმარებელმა გააკეთა კომენტარი {file}-ზე", "Comments for files" : "კომენტარები ფაილებზე", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "თქვენ მოგიხსენიეს “%s”-ში, ახლა უკვე გაუქმებული მომხმარებლის კომენტარში", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "თქვენ მოგიხსენიეს “{file}”-ში, ახლა უკვე გაუქმებული მომხმარებლის კომენტარში", "%1$s mentioned you in a comment on “%2$s”" : "%1$s გახსენათ “%2$s”-ზე გაკეთებულ კომენტარში", "{user} mentioned you in a comment on “{file}”" : "{user} გახსენათ “{file}” ფაილზე გაკეტებულ კომენტარში", "A (now) deleted user mentioned you in a comment on “%s”" : "(ახლა) წაშლილმა მოხმარებელმა მოგიხსენიათ კომენტარში “%s”-ზე", diff --git a/apps/comments/l10n/nb.js b/apps/comments/l10n/nb.js index a9bacf8b4679f..cc6b8b473568d 100644 --- a/apps/comments/l10n/nb.js +++ b/apps/comments/l10n/nb.js @@ -26,6 +26,7 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s kommenterte %2$s", "{author} commented on {file}" : "{author} kommenterte på {file}", "Comments for files" : "Kommentarer for filer", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du ble nevnte på \"%s\", i en kommentar av en bruker som siden har blitt slettet", "%1$s mentioned you in a comment on “%2$s”" : "%1$s nevnte deg i en kommentar på “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} nevnte deg i en kommentar på “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "En (now) slettet bruker nevnte deg i en kommentar til “%s”", diff --git a/apps/comments/l10n/nb.json b/apps/comments/l10n/nb.json index b1e22b86013aa..ca8628ed86299 100644 --- a/apps/comments/l10n/nb.json +++ b/apps/comments/l10n/nb.json @@ -24,6 +24,7 @@ "%1$s commented on %2$s" : "%1$s kommenterte %2$s", "{author} commented on {file}" : "{author} kommenterte på {file}", "Comments for files" : "Kommentarer for filer", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du ble nevnte på \"%s\", i en kommentar av en bruker som siden har blitt slettet", "%1$s mentioned you in a comment on “%2$s”" : "%1$s nevnte deg i en kommentar på “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} nevnte deg i en kommentar på “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "En (now) slettet bruker nevnte deg i en kommentar til “%s”", diff --git a/apps/comments/l10n/sr.js b/apps/comments/l10n/sr.js index eff074e2dd1ca..5044f4c5a0f93 100644 --- a/apps/comments/l10n/sr.js +++ b/apps/comments/l10n/sr.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s коментарисао на %2$s", "{author} commented on {file}" : "{author} коментарисао на {file}", "Comments for files" : "Коментари на фајлове", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Поменути сте у \"%s\", у коментару који је оставио корисник који је од тада избрисан", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Поменути сте на фајлу \"{file}\", у коментару који је оставио корисник који је од тада избрисан", "%1$s mentioned you in a comment on “%2$s”" : "%1$s Вас је поменуо у коментару на \"%2$s\"", "{user} mentioned you in a comment on “{file}”" : "{user} Вас је поменуо у коментару на “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "(Сада) обрисани корисник Вас је поменуо у коментару на “%s”", diff --git a/apps/comments/l10n/sr.json b/apps/comments/l10n/sr.json index 7ece9c4305caa..dae3ee3e8120a 100644 --- a/apps/comments/l10n/sr.json +++ b/apps/comments/l10n/sr.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s коментарисао на %2$s", "{author} commented on {file}" : "{author} коментарисао на {file}", "Comments for files" : "Коментари на фајлове", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Поменути сте у \"%s\", у коментару који је оставио корисник који је од тада избрисан", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Поменути сте на фајлу \"{file}\", у коментару који је оставио корисник који је од тада избрисан", "%1$s mentioned you in a comment on “%2$s”" : "%1$s Вас је поменуо у коментару на \"%2$s\"", "{user} mentioned you in a comment on “{file}”" : "{user} Вас је поменуо у коментару на “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "(Сада) обрисани корисник Вас је поменуо у коментару на “%s”", diff --git a/apps/files/l10n/nb.js b/apps/files/l10n/nb.js index a51f8c36c86e1..b9e3ee0a1b80e 100644 --- a/apps/files/l10n/nb.js +++ b/apps/files/l10n/nb.js @@ -152,8 +152,8 @@ OC.L10N.register( "{minutes}:{seconds}m" : "{minutes}:{seconds}m", "_{seconds} second left_::_{seconds} seconds left_" : ["{seconds} sekund igjen","{seconds} sekunder igjen"], "{seconds}s" : "{seconds}er", - "Any moment now..." : "Hvert øyeblikk nå...", - "Soon..." : "Snart...", + "Any moment now..." : "Hvert øyeblikk nå…", + "Soon..." : "Snart…", "File upload is in progress. Leaving the page now will cancel the upload." : "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen.", "Move" : "Flytt", "Copy local link" : "Kopier lokal lenke", diff --git a/apps/files/l10n/nb.json b/apps/files/l10n/nb.json index 5b3d3bb7ab5d7..4c4e06223620d 100644 --- a/apps/files/l10n/nb.json +++ b/apps/files/l10n/nb.json @@ -150,8 +150,8 @@ "{minutes}:{seconds}m" : "{minutes}:{seconds}m", "_{seconds} second left_::_{seconds} seconds left_" : ["{seconds} sekund igjen","{seconds} sekunder igjen"], "{seconds}s" : "{seconds}er", - "Any moment now..." : "Hvert øyeblikk nå...", - "Soon..." : "Snart...", + "Any moment now..." : "Hvert øyeblikk nå…", + "Soon..." : "Snart…", "File upload is in progress. Leaving the page now will cancel the upload." : "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen.", "Move" : "Flytt", "Copy local link" : "Kopier lokal lenke", diff --git a/apps/files_external/l10n/nb.js b/apps/files_external/l10n/nb.js index 944f3af56ec69..a96f89e83190e 100644 --- a/apps/files_external/l10n/nb.js +++ b/apps/files_external/l10n/nb.js @@ -17,7 +17,7 @@ OC.L10N.register( "Are you sure you want to delete this external storage" : "Er du sikker på at du vil slette denne eksterne lagringsplassen?", "Delete storage?" : "Slett lagringsplass", "Saved" : "Lagret", - "Saving..." : "Lagrer...", + "Saving..." : "Lagrer…", "Save" : "Lagre", "Empty response from the server" : "Tomt svar fra tjeneren", "Couldn't access. Please log out and in again to activate this mount point" : "Fikk ikke tilgang. Logg ut og inn igjen for å aktivere dette oppkoblingspunktet.", diff --git a/apps/files_external/l10n/nb.json b/apps/files_external/l10n/nb.json index 576cd2a6420c3..3cf8c0d42b156 100644 --- a/apps/files_external/l10n/nb.json +++ b/apps/files_external/l10n/nb.json @@ -15,7 +15,7 @@ "Are you sure you want to delete this external storage" : "Er du sikker på at du vil slette denne eksterne lagringsplassen?", "Delete storage?" : "Slett lagringsplass", "Saved" : "Lagret", - "Saving..." : "Lagrer...", + "Saving..." : "Lagrer…", "Save" : "Lagre", "Empty response from the server" : "Tomt svar fra tjeneren", "Couldn't access. Please log out and in again to activate this mount point" : "Fikk ikke tilgang. Logg ut og inn igjen for å aktivere dette oppkoblingspunktet.", diff --git a/apps/files_sharing/l10n/nb.js b/apps/files_sharing/l10n/nb.js index 8541f92d47455..dbd5b14d8d67a 100644 --- a/apps/files_sharing/l10n/nb.js +++ b/apps/files_sharing/l10n/nb.js @@ -108,7 +108,7 @@ OC.L10N.register( "Download %s" : "Last ned %s", "Upload files to %s" : "Last opp filer til %s", "Select or drop files" : "Velg eller slipp filer", - "Uploading files…" : "Laster opp filer...", + "Uploading files…" : "Laster opp filer…", "Uploaded files:" : "Opplastede filer:", "%s is publicly shared" : "%s er delt offentlig" }, diff --git a/apps/files_sharing/l10n/nb.json b/apps/files_sharing/l10n/nb.json index b2d107be8a9d1..a37b907d45630 100644 --- a/apps/files_sharing/l10n/nb.json +++ b/apps/files_sharing/l10n/nb.json @@ -106,7 +106,7 @@ "Download %s" : "Last ned %s", "Upload files to %s" : "Last opp filer til %s", "Select or drop files" : "Velg eller slipp filer", - "Uploading files…" : "Laster opp filer...", + "Uploading files…" : "Laster opp filer…", "Uploaded files:" : "Opplastede filer:", "%s is publicly shared" : "%s er delt offentlig" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/nb.js b/apps/theming/l10n/nb.js index 1b2f2c7a14865..3216a33467a1a 100644 --- a/apps/theming/l10n/nb.js +++ b/apps/theming/l10n/nb.js @@ -1,7 +1,7 @@ OC.L10N.register( "theming", { - "Loading preview…" : "Laster forhåndsvisning...", + "Loading preview…" : "Laster forhåndsvisning…", "Saved" : "Lagret", "Admin" : "Admin", "a safe home for all your data" : "et trygt hjem for alle dine data", diff --git a/apps/theming/l10n/nb.json b/apps/theming/l10n/nb.json index cee466fff04f8..1f921c6ff4cfd 100644 --- a/apps/theming/l10n/nb.json +++ b/apps/theming/l10n/nb.json @@ -1,5 +1,5 @@ { "translations": { - "Loading preview…" : "Laster forhåndsvisning...", + "Loading preview…" : "Laster forhåndsvisning…", "Saved" : "Lagret", "Admin" : "Admin", "a safe home for all your data" : "et trygt hjem for alle dine data", diff --git a/apps/user_ldap/l10n/nb.js b/apps/user_ldap/l10n/nb.js index ca86531ca3092..c9cc167e637d3 100644 --- a/apps/user_ldap/l10n/nb.js +++ b/apps/user_ldap/l10n/nb.js @@ -20,7 +20,7 @@ OC.L10N.register( "Good password" : "Bra passord", "Strong password" : "Sterkt passord", "The Base DN appears to be wrong" : "Basis-DN ser ut til å være feil", - "Testing configuration…" : "Tester konfigurasjonen...", + "Testing configuration…" : "Tester oppsettet…", "Configuration incorrect" : "Oppsettet er galt", "Configuration incomplete" : "Ufullstendig oppsett", "Configuration OK" : "Oppsett OK", diff --git a/apps/user_ldap/l10n/nb.json b/apps/user_ldap/l10n/nb.json index f22fc71deb263..50474b35c3c0f 100644 --- a/apps/user_ldap/l10n/nb.json +++ b/apps/user_ldap/l10n/nb.json @@ -18,7 +18,7 @@ "Good password" : "Bra passord", "Strong password" : "Sterkt passord", "The Base DN appears to be wrong" : "Basis-DN ser ut til å være feil", - "Testing configuration…" : "Tester konfigurasjonen...", + "Testing configuration…" : "Tester oppsettet…", "Configuration incorrect" : "Oppsettet er galt", "Configuration incomplete" : "Ufullstendig oppsett", "Configuration OK" : "Oppsett OK", diff --git a/apps/workflowengine/l10n/nb.js b/apps/workflowengine/l10n/nb.js index b3b622b6abf4b..ebfe15f000559 100644 --- a/apps/workflowengine/l10n/nb.js +++ b/apps/workflowengine/l10n/nb.js @@ -28,7 +28,7 @@ OC.L10N.register( "not between" : "ikke mellom", "Start" : "Start", "End" : "Slutt", - "Select timezone…" : "Velg tidssone ...", + "Select timezone…" : "Velg tidssone…", "Request URL" : "Ønsk en URL", "Predefined URLs" : "Forhåndsdefinerte URLer", "Files WebDAV" : "Filer WebDAV", @@ -65,8 +65,8 @@ OC.L10N.register( "Add rule" : "Legg til regel", "Reset" : "Tilbakestill", "Save" : "Lagre", - "Saving…" : "Lagrer ...", - "Loading…" : "Laster ...", + "Saving…" : "Lagrer…", + "Loading…" : "Laster…", "Successfully saved" : "Lagret", "File mime type" : "Filens MIME-type" }, diff --git a/apps/workflowengine/l10n/nb.json b/apps/workflowengine/l10n/nb.json index 5a6702fe2ff1e..78c87957f3db0 100644 --- a/apps/workflowengine/l10n/nb.json +++ b/apps/workflowengine/l10n/nb.json @@ -26,7 +26,7 @@ "not between" : "ikke mellom", "Start" : "Start", "End" : "Slutt", - "Select timezone…" : "Velg tidssone ...", + "Select timezone…" : "Velg tidssone…", "Request URL" : "Ønsk en URL", "Predefined URLs" : "Forhåndsdefinerte URLer", "Files WebDAV" : "Filer WebDAV", @@ -63,8 +63,8 @@ "Add rule" : "Legg til regel", "Reset" : "Tilbakestill", "Save" : "Lagre", - "Saving…" : "Lagrer ...", - "Loading…" : "Laster ...", + "Saving…" : "Lagrer…", + "Loading…" : "Laster…", "Successfully saved" : "Lagret", "File mime type" : "Filens MIME-type" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/core/l10n/es.js b/core/l10n/es.js index 39bbaec146d3f..bf597e519904d 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -115,9 +115,16 @@ OC.L10N.register( "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no tiene conexión a internet: no se ha podido alcanzar múltiples puntos finales. Esto significa que algunas de las características, como montar almacenamientos externos, notificaciones sobre actualizaciones o instalación de apps de terceras partes no funcionarán. Acceder remotamente a los archivos y enviar correos de notificación tampoco funcionará. Debes establecer una conexión del servidor a internet para disfrutar todas las características.", "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Nose ha configurado ninguna memoria caché. Para mejorar el rendimiento, por favor, configura memcache, si está disponible. Se puede encontrar más información en la documentación.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom, lo que está fuertemente desaconsejado por razones de seguridad. Se puede encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás usando PHP {version}. Actualiza la versión de PHP para aprovecharte de mejoras de rendimiento y seguridad provistas por el PHP Group tan pronto como tu distribución lo soporte.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de cabeceras del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy fiable. Si no, esto es un problema de seguridad que puede permitir que un atacante disfrazar su dirección IP como visible a Nextcloud. Se puede encontrar más información en la documentación.", "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 memcached wiki about both modules." : "Memcached está configurado como caché distribuida, pero el módulo erróneo de PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached solo soporta \"memcached\" y no \"memcache\". Vea la wiki de memcached sobre ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no han pasado la comprobación de integridad. Se puede encontrar más información sobre cómo resolver este problema en la documentación. (Lista de archivos inválidos... / Reescanear)", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función PHP \"set_time_limit\" no está disponible. Esto podría resultar en scripts detenidos a mitad de ejecución, rompiendo tu instalación. Activar esta función está fuertemente recomendado.", "Error occurred while checking server setup" : "Ha ocurrido un error al revisar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess no funciona. Se recomienda encarecidamente que configures tu servidor web de tal manera que el directorio de datos no sea accesible, o que lo muevas fuera de la raíz de documentos del servidor web.", "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "La cabecera HTTP \"{header}\" no está configurada como \"{expected}\". Esto es un riesgo potencial de seguridad o privacidad, y se recomienda ajustar esta configuración de forma adecuada.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "La cabecera HTTP \"{header}\" no está configurada como \"{expected}\". Algunas características podrían no funcionar correctamente, por lo que se recomienda ajustar esta configuración.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accedes al sitio de forma insegura, vía HTTP. Se aconseja fuertemente configurar tu servidor para que requiera HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", "Shared with" : "Compartido con", "Shared by" : "Compartido por", diff --git a/core/l10n/es.json b/core/l10n/es.json index 2352b53b73c58..70b5ad81e7891 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -113,9 +113,16 @@ "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no tiene conexión a internet: no se ha podido alcanzar múltiples puntos finales. Esto significa que algunas de las características, como montar almacenamientos externos, notificaciones sobre actualizaciones o instalación de apps de terceras partes no funcionarán. Acceder remotamente a los archivos y enviar correos de notificación tampoco funcionará. Debes establecer una conexión del servidor a internet para disfrutar todas las características.", "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Nose ha configurado ninguna memoria caché. Para mejorar el rendimiento, por favor, configura memcache, si está disponible. Se puede encontrar más información en la documentación.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom, lo que está fuertemente desaconsejado por razones de seguridad. Se puede encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás usando PHP {version}. Actualiza la versión de PHP para aprovecharte de mejoras de rendimiento y seguridad provistas por el PHP Group tan pronto como tu distribución lo soporte.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de cabeceras del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy fiable. Si no, esto es un problema de seguridad que puede permitir que un atacante disfrazar su dirección IP como visible a Nextcloud. Se puede encontrar más información en la documentación.", "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 memcached wiki about both modules." : "Memcached está configurado como caché distribuida, pero el módulo erróneo de PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached solo soporta \"memcached\" y no \"memcache\". Vea la wiki de memcached sobre ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no han pasado la comprobación de integridad. Se puede encontrar más información sobre cómo resolver este problema en la documentación. (Lista de archivos inválidos... / Reescanear)", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función PHP \"set_time_limit\" no está disponible. Esto podría resultar en scripts detenidos a mitad de ejecución, rompiendo tu instalación. Activar esta función está fuertemente recomendado.", "Error occurred while checking server setup" : "Ha ocurrido un error al revisar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess no funciona. Se recomienda encarecidamente que configures tu servidor web de tal manera que el directorio de datos no sea accesible, o que lo muevas fuera de la raíz de documentos del servidor web.", "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "La cabecera HTTP \"{header}\" no está configurada como \"{expected}\". Esto es un riesgo potencial de seguridad o privacidad, y se recomienda ajustar esta configuración de forma adecuada.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "La cabecera HTTP \"{header}\" no está configurada como \"{expected}\". Algunas características podrían no funcionar correctamente, por lo que se recomienda ajustar esta configuración.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accedes al sitio de forma insegura, vía HTTP. Se aconseja fuertemente configurar tu servidor para que requiera HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", "Shared with" : "Compartido con", "Shared by" : "Compartido por", diff --git a/core/l10n/ka_GE.js b/core/l10n/ka_GE.js index f3831e98a8784..210e2cbeaface 100644 --- a/core/l10n/ka_GE.js +++ b/core/l10n/ka_GE.js @@ -110,8 +110,23 @@ OC.L10N.register( "So-so password" : "არცთუ ისეთი ძლიერი პაროლი", "Good password" : "კარგი პაროლი", "Strong password" : "ძლიერი პაროლი", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "ფაილის სინქრონიზაციის დასაშვებად თქვენი ვებ-სერვერი ჯერ არაა სწორად კოფინგირურებული, როგორც ჩანს WebDAV ინტერფეისი გაფუჭებულია.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "\"{url}\"-ის გასახსნელად თქვენი ვებ-სერვერი არაა სწორად კონფიგურირებული. შეგიძლიათ იხილოთ მეტი ინფორმაცია დოკუმენტაციაში.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "ამ სერვერს არ გააჩნია მოქმედი ინტერნეტ კავშირი: მიუწვდომელია მრავალი წერტილი. ეს ნიშნავს, რომ ფუნქციები როგორებიცაა ექსტერნალური საცავის დაყენება, შეტყობინებები განახლებებზე ან მესამე მხარის აპლიკაციების ინსტალაცია არ იმუშავებს. შესაძლოა ფაილებთან დისტანციური წვდომა და საფოსტო შეტყობინებების გაგზავნაც არ მუშაობდეს. ყველა ფუნქციის მუშაობისთვის, ამ სერვერზე ჩართეთ ინტერნეტ კავშირი.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "მეხსიერების კეში არაა კონფიგურირებული. მოქმედების მახასიათებლების გაუმჯობესებისთვის გთოხვთ გაუწიოთ კონფიგურაცია memcache-ს. შეგიძლიათ იხილოთ მეტი ინფორმაცია დოკუმენტაციაში.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom PHP-ს მიერ ვერ იკითხება, რაც უსაფრთოხების მიზნებიდან გამომდინარე უკიდურესად არა-რეკომენდირებულია. შეგიძლიათ მეტი ინფორმაცია მიიღოთ დოკუმენტაციიდან.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "ამჟამად თქვენთან მოქმედია PHP {version}. განაახლეთ თქვენი PHP ვერსია, რათა ისარგებლოთ PHP Group-ის მიერ უზრუნველყოფილი გაუმჯობესებული ქმედებითა და უსაფრთხოებებისის განახლებებით.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Nextcloud-ს უკავშირდებით სანდო პქოქსით ან საწინააღმეგო პროქსის დასათაურებებების კონფიგურაცია არასწორია. თუ არა, ეს უსაფრთხოების პრობლემაა და თავდამსხმელმა შეიძლება მოიტყუოს IP მისამართით. იხილეთ მეტი ინფორმაცია ჩვენს დოკუმენტაციაში.", "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 memcached wiki about both modules." : "Memcached კონფიგურირებულია როგორც განაწილებული ქეში, თუმცა დაყენებულია არასწორი PHP მოდული \"memcache\" . \\OC\\Memcache\\Memcached მხარს უჭერს მხოლოდ \"memcached\"-ს და არა \"memcache\"-s. მეტი ინფორმაციისთვის იხილეთ memcached ვიკი ორივე მოდულზე.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "გარკვეულმა ფაილება ვერ გაიარეს ერთიანობის შემოწმება. ინფორმაცია თუ როგორ აღმოფხრათ ეს პრობლემა შეგიძლიათ მოიძიოთ დოკუმენტაციაში. (არასწორი ფაილების სია... / ხელახალი სკანირება...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "PHP OPcache არაა სწორად კონფიგურირებული. უკეთესი მოქმედებისთვის რეკომენდირებულია php.ini-ში გამოიყენოთ შემდეგი პარამეტრები:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "PHP-ს ფუნქცია \"set_time_limit\" არაა ხელმისაწვდომი. ამან შეიძლება ქმედებისას გამოიწვიოს სკრიპტების შეჩერება, ინსტალაციის შეწყვეტა. რეკომენდირებულია ამ ფუნქციის ჩართვა.", "Error occurred while checking server setup" : "შეცდომა სერვერის მოწყობის შემოწმებისას", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "თქვენი data დირექტორია და ფაილები ალბათ წვდომადია ინტერნეტიდან. .htaccess ფაილი არ მუშაობს. მკაცრად რეკომენდირებულია ისე გაუწიოთ თქვენს ვებ-სერვერს კონფიგურაცია, რომ data დირექტორია აღარ იყოს წვდომადი, ან გაიტანოთ ის ვებ-სერვერის root დირექტორიიდან.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "HTTP დასათაურება \"{header}\" არაა კონფიგურირებული უტოლდებოდეს \"{expected}\"-ს. ეს პოტენციური უსაფრთხოების და კონფიდენციალურობის რისკია, რეკომენდირებულია ამ პარამეტრის გამოსწორება.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "HTTP დასათაურება \"{header}\" არაა კონფიგურირებული უტოლდებოდეს \"{expected}\"-ს. ზოგიერთმა ფუნქციამ შეიძლება არ იმუშაოს სწორად და რეკომენდირებულია ამ პარამეტრის რეგულაცია.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "\"Strict-Transport-Security\" HTTP დასათაურება არაა კონფიგურირებული \"{seconds}\" წამამდე მაინც. გაუმჯობესებული თავდაცვის მიზნებისთვის რეკომენდირებულია ჩართოთ HSTS როგორც აღწერილია თავდაცვის რეკომენდაციებში.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "საიტს უკავშირდებით HTTP-თი. მტკიცედ გირჩევთ გაუწიოთ სერვერს კონფიგურაცია, ისე რომ გამოიყენოთ HTTPS, როგორც აღწერილიათავდაცვის რეკომენდაციებში.", "Shared" : "გაზიარებული", "Shared with" : "გაზიარებულია", "Shared by" : "გამზიარებელი", @@ -312,7 +327,7 @@ OC.L10N.register( "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 memcached wiki about both modules." : "Memcached კონფიგურირებულია როგორც განაწილებული ქეში, თუმცა დაყენებულია არასწორი PHP მოდული \"memcache\" . \\OC\\Memcache\\Memcached მხარს უჭერს მხოლოდ \"memcached\"-ს და არა \"memcache\"-s. მეტი ინფორმაციისთვის იხილეთ memcached ვიკი ორივე მოდულზე.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our documentation. (List of invalid files… / Rescan…)" : "გარკვეულმა ფაილება ვერ გაიარეს ერთიანობის შემოწმება. ინფორმაცია თუ როგორ აღმოფხრათ ეს პრობლემა შეგიძლიათ მოიძიოთ ჩვენს დოკუმენტაციაში. (არასწორი ფაილების სია... / ხელახალი სკანირება...)", "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 დირექტორია აღარ იყოს წვდომადი, ან გაიტანოთ ის ვებ-სერვერის root დირექტორიიდან.", - "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 \"{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 security tips." : "\"Strict-Transport-Security\" HTTP დასათაურება არაა კონფიგურირებული \"{seconds}\" წამამდე მაინც. გაუმჯობესებული თავდაცვის მიზნებისთვის რეკომენდაციას გიწევთ ჩართოთ HSTS როგორც აღწერილია ჩვენს თავდაცვის რეკომენდაციებში.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our security tips." : "ამ საიტს უკავშირდებით HTTP-თი. მტკიცედ გირჩევთ გაუწიოთ სერვერს კონფიგურაცია, ისე რომ გამოიყენოთ HTTPS, როგორც აღწერილია ჩვენს თავდაცვის რეკომენდაციებში.", "Shared with {recipients}" : "გაზიარებულია მიმღებებთან {recipients}", diff --git a/core/l10n/ka_GE.json b/core/l10n/ka_GE.json index ee002f272af3e..7da1f8dd41298 100644 --- a/core/l10n/ka_GE.json +++ b/core/l10n/ka_GE.json @@ -108,8 +108,23 @@ "So-so password" : "არცთუ ისეთი ძლიერი პაროლი", "Good password" : "კარგი პაროლი", "Strong password" : "ძლიერი პაროლი", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "ფაილის სინქრონიზაციის დასაშვებად თქვენი ვებ-სერვერი ჯერ არაა სწორად კოფინგირურებული, როგორც ჩანს WebDAV ინტერფეისი გაფუჭებულია.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "\"{url}\"-ის გასახსნელად თქვენი ვებ-სერვერი არაა სწორად კონფიგურირებული. შეგიძლიათ იხილოთ მეტი ინფორმაცია დოკუმენტაციაში.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "ამ სერვერს არ გააჩნია მოქმედი ინტერნეტ კავშირი: მიუწვდომელია მრავალი წერტილი. ეს ნიშნავს, რომ ფუნქციები როგორებიცაა ექსტერნალური საცავის დაყენება, შეტყობინებები განახლებებზე ან მესამე მხარის აპლიკაციების ინსტალაცია არ იმუშავებს. შესაძლოა ფაილებთან დისტანციური წვდომა და საფოსტო შეტყობინებების გაგზავნაც არ მუშაობდეს. ყველა ფუნქციის მუშაობისთვის, ამ სერვერზე ჩართეთ ინტერნეტ კავშირი.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "მეხსიერების კეში არაა კონფიგურირებული. მოქმედების მახასიათებლების გაუმჯობესებისთვის გთოხვთ გაუწიოთ კონფიგურაცია memcache-ს. შეგიძლიათ იხილოთ მეტი ინფორმაცია დოკუმენტაციაში.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom PHP-ს მიერ ვერ იკითხება, რაც უსაფრთოხების მიზნებიდან გამომდინარე უკიდურესად არა-რეკომენდირებულია. შეგიძლიათ მეტი ინფორმაცია მიიღოთ დოკუმენტაციიდან.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "ამჟამად თქვენთან მოქმედია PHP {version}. განაახლეთ თქვენი PHP ვერსია, რათა ისარგებლოთ PHP Group-ის მიერ უზრუნველყოფილი გაუმჯობესებული ქმედებითა და უსაფრთხოებებისის განახლებებით.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Nextcloud-ს უკავშირდებით სანდო პქოქსით ან საწინააღმეგო პროქსის დასათაურებებების კონფიგურაცია არასწორია. თუ არა, ეს უსაფრთხოების პრობლემაა და თავდამსხმელმა შეიძლება მოიტყუოს IP მისამართით. იხილეთ მეტი ინფორმაცია ჩვენს დოკუმენტაციაში.", "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 memcached wiki about both modules." : "Memcached კონფიგურირებულია როგორც განაწილებული ქეში, თუმცა დაყენებულია არასწორი PHP მოდული \"memcache\" . \\OC\\Memcache\\Memcached მხარს უჭერს მხოლოდ \"memcached\"-ს და არა \"memcache\"-s. მეტი ინფორმაციისთვის იხილეთ memcached ვიკი ორივე მოდულზე.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "გარკვეულმა ფაილება ვერ გაიარეს ერთიანობის შემოწმება. ინფორმაცია თუ როგორ აღმოფხრათ ეს პრობლემა შეგიძლიათ მოიძიოთ დოკუმენტაციაში. (არასწორი ფაილების სია... / ხელახალი სკანირება...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "PHP OPcache არაა სწორად კონფიგურირებული. უკეთესი მოქმედებისთვის რეკომენდირებულია php.ini-ში გამოიყენოთ შემდეგი პარამეტრები:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "PHP-ს ფუნქცია \"set_time_limit\" არაა ხელმისაწვდომი. ამან შეიძლება ქმედებისას გამოიწვიოს სკრიპტების შეჩერება, ინსტალაციის შეწყვეტა. რეკომენდირებულია ამ ფუნქციის ჩართვა.", "Error occurred while checking server setup" : "შეცდომა სერვერის მოწყობის შემოწმებისას", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "თქვენი data დირექტორია და ფაილები ალბათ წვდომადია ინტერნეტიდან. .htaccess ფაილი არ მუშაობს. მკაცრად რეკომენდირებულია ისე გაუწიოთ თქვენს ვებ-სერვერს კონფიგურაცია, რომ data დირექტორია აღარ იყოს წვდომადი, ან გაიტანოთ ის ვებ-სერვერის root დირექტორიიდან.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "HTTP დასათაურება \"{header}\" არაა კონფიგურირებული უტოლდებოდეს \"{expected}\"-ს. ეს პოტენციური უსაფრთხოების და კონფიდენციალურობის რისკია, რეკომენდირებულია ამ პარამეტრის გამოსწორება.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "HTTP დასათაურება \"{header}\" არაა კონფიგურირებული უტოლდებოდეს \"{expected}\"-ს. ზოგიერთმა ფუნქციამ შეიძლება არ იმუშაოს სწორად და რეკომენდირებულია ამ პარამეტრის რეგულაცია.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "\"Strict-Transport-Security\" HTTP დასათაურება არაა კონფიგურირებული \"{seconds}\" წამამდე მაინც. გაუმჯობესებული თავდაცვის მიზნებისთვის რეკომენდირებულია ჩართოთ HSTS როგორც აღწერილია თავდაცვის რეკომენდაციებში.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "საიტს უკავშირდებით HTTP-თი. მტკიცედ გირჩევთ გაუწიოთ სერვერს კონფიგურაცია, ისე რომ გამოიყენოთ HTTPS, როგორც აღწერილიათავდაცვის რეკომენდაციებში.", "Shared" : "გაზიარებული", "Shared with" : "გაზიარებულია", "Shared by" : "გამზიარებელი", @@ -310,7 +325,7 @@ "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 memcached wiki about both modules." : "Memcached კონფიგურირებულია როგორც განაწილებული ქეში, თუმცა დაყენებულია არასწორი PHP მოდული \"memcache\" . \\OC\\Memcache\\Memcached მხარს უჭერს მხოლოდ \"memcached\"-ს და არა \"memcache\"-s. მეტი ინფორმაციისთვის იხილეთ memcached ვიკი ორივე მოდულზე.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our documentation. (List of invalid files… / Rescan…)" : "გარკვეულმა ფაილება ვერ გაიარეს ერთიანობის შემოწმება. ინფორმაცია თუ როგორ აღმოფხრათ ეს პრობლემა შეგიძლიათ მოიძიოთ ჩვენს დოკუმენტაციაში. (არასწორი ფაილების სია... / ხელახალი სკანირება...)", "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 დირექტორია აღარ იყოს წვდომადი, ან გაიტანოთ ის ვებ-სერვერის root დირექტორიიდან.", - "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 \"{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 security tips." : "\"Strict-Transport-Security\" HTTP დასათაურება არაა კონფიგურირებული \"{seconds}\" წამამდე მაინც. გაუმჯობესებული თავდაცვის მიზნებისთვის რეკომენდაციას გიწევთ ჩართოთ HSTS როგორც აღწერილია ჩვენს თავდაცვის რეკომენდაციებში.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our security tips." : "ამ საიტს უკავშირდებით HTTP-თი. მტკიცედ გირჩევთ გაუწიოთ სერვერს კონფიგურაცია, ისე რომ გამოიყენოთ HTTPS, როგორც აღწერილია ჩვენს თავდაცვის რეკომენდაციებში.", "Shared with {recipients}" : "გაზიარებულია მიმღებებთან {recipients}", diff --git a/core/l10n/nb.js b/core/l10n/nb.js index 2e2f07b449963..bcfe421235966 100644 --- a/core/l10n/nb.js +++ b/core/l10n/nb.js @@ -75,7 +75,7 @@ OC.L10N.register( "Confirm" : "Bekreft", "Failed to authenticate, try again" : "Autentisering mislyktes, prøv igjen", "seconds ago" : "for få sekunder siden", - "Logging in …" : "Logger inn...", + "Logging in …" : "Logger inn…", "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.
If it is not there ask your local administrator." : "Lenken for tilbakestilling av passordet ditt er sendt til din e-postadresse. Hvis du ikke mottar den innen rimelig tid, sjekk mappen for søppelpost.
Hvis du ikke finner den der, kontakt din lokale administrator.", "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Filene dine er kryptert. Det vil ikke være mulig å gjenopprette dine data etter at passordet ditt er satt på nytt.
Hvis du ikke er sikker på hva du skal gjøre, kontakt administratoren din før du fortsetter.
Vil du virkelig fortsette?", "I know what I'm doing" : "Jeg vet hva jeg gjør", @@ -112,6 +112,7 @@ OC.L10N.register( "Strong password" : "Sterkt passord", "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 memcached wiki about both modules." : "Memcached er satt opp som distribuert hurtiglager, men feil PHP-modul \"memcache\" er installert. \\OC\\Memcache\\Memcached støtter bare \"memcached\" og ikke \"memcache\". Se memcached-wikien om begge modulene.", "Error occurred while checking server setup" : "Feil oppstod ved sjekking av tjener-oppsett", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Du besøker denne nettsiden via HTTP. Det anbefales sterkt at du setter opp tjeneren til å kreve HTTPS i stedet, som beskrevet i sikkerhetstipsene.", "Shared" : "Delt", "Shared with" : "Delt med", "Shared by" : "Delt av", @@ -324,14 +325,14 @@ OC.L10N.register( "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 deres sammenknyttede sky-ID brukernavn@eksempel.no/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 by mail..." : "Del med brukere eller per 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...", + "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 object type is not specified." : "Objekttypen er ikke spesifisert.", "Enter new" : "Oppgi ny", "Add" : "Legg til", diff --git a/core/l10n/nb.json b/core/l10n/nb.json index dc93d633c7a64..4a5fe1851f438 100644 --- a/core/l10n/nb.json +++ b/core/l10n/nb.json @@ -73,7 +73,7 @@ "Confirm" : "Bekreft", "Failed to authenticate, try again" : "Autentisering mislyktes, prøv igjen", "seconds ago" : "for få sekunder siden", - "Logging in …" : "Logger inn...", + "Logging in …" : "Logger inn…", "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.
If it is not there ask your local administrator." : "Lenken for tilbakestilling av passordet ditt er sendt til din e-postadresse. Hvis du ikke mottar den innen rimelig tid, sjekk mappen for søppelpost.
Hvis du ikke finner den der, kontakt din lokale administrator.", "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Filene dine er kryptert. Det vil ikke være mulig å gjenopprette dine data etter at passordet ditt er satt på nytt.
Hvis du ikke er sikker på hva du skal gjøre, kontakt administratoren din før du fortsetter.
Vil du virkelig fortsette?", "I know what I'm doing" : "Jeg vet hva jeg gjør", @@ -110,6 +110,7 @@ "Strong password" : "Sterkt passord", "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 memcached wiki about both modules." : "Memcached er satt opp som distribuert hurtiglager, men feil PHP-modul \"memcache\" er installert. \\OC\\Memcache\\Memcached støtter bare \"memcached\" og ikke \"memcache\". Se memcached-wikien om begge modulene.", "Error occurred while checking server setup" : "Feil oppstod ved sjekking av tjener-oppsett", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Du besøker denne nettsiden via HTTP. Det anbefales sterkt at du setter opp tjeneren til å kreve HTTPS i stedet, som beskrevet i sikkerhetstipsene.", "Shared" : "Delt", "Shared with" : "Delt med", "Shared by" : "Delt av", @@ -322,14 +323,14 @@ "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 deres sammenknyttede sky-ID brukernavn@eksempel.no/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 by mail..." : "Del med brukere eller per 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...", + "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 object type is not specified." : "Objekttypen er ikke spesifisert.", "Enter new" : "Oppgi ny", "Add" : "Legg til", diff --git a/core/l10n/sr.js b/core/l10n/sr.js index b5252dbf509b8..cdba0c0982fbe 100644 --- a/core/l10n/sr.js +++ b/core/l10n/sr.js @@ -110,8 +110,23 @@ OC.L10N.register( "So-so password" : "Осредња лозинка", "Good password" : "Добра лозинка", "Strong password" : "Јака лозинка", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Ваш сервер није правилно подешен да омогући синхронизацију фајлова. Изгледа да је ВебДАВ сучеље покварено.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Ваш сервер није правилно подешен да разлучи \"{url}\". Можете наћи више информација у документацији.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Овај сервер нема интернет конекцију: немогуће је доћи до више интернет крајњих тачака. Ово значи да неке могућности као што су качење спољних складишта, обавештења о ажурирањима или инсталација апликација треће стране неће радити. Приступање фајловима споља и слање обавештења е-поштом исто тако може да не ради. Омогућите интернет конекцију на овом серверу ако желите да уживате у свим могућностима.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Нисте подесили меморијски кеш. Да побољшате перформансе, подесите меморијски кеш, ако је доступан. Више информација има у документацији.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP не може да чита /dev/urandom. Ово се баш не препоручује из сигурносних разлога. Можете наћи више информација у документацији.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Тренутно користите {version} верзију PHP-а. Надоградите PHP верзију да искористите сва безбедоносна ажурирања и побољшања брзине које обезбеђује PHP група, чим Ваша дистрибуција почне да је подржава.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Или подешавање обрнутих прокси заглавља није исправно, или приступате Некстклауду преко проксија од поверења. Ако то не радите, ово је безбедоносни проблем и може омогућити нападачу да лажира да је његова IP адреса видљива Некстклауду. Више информација о овоме има у документацији.", "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 memcached wiki about both modules." : "Memcached је подешен као дистрибуирани кеш, али је инсталиран погрешни PHP модуле \"memcache\". \\OC\\Memcache\\Memcached подржава само \"memcached\" модул, а не и \"memcache\". Погледајте memcached вики о оба модула.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Неки фајлови нису прошли проверу интегритета. Даљње информације о томе како да решите овај проблем се могу наћи у документацији. (Списак неисправних фајлова/Скенирај поново…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "PHP OPcache није подешен исправно. За боље перформансе предлаже се да користите следећа подешавања у php.ini фајлу:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "PHP функција \"set_time_limit\" није доступна. Ово може да узрокује да се скрипте закоче у сред извршавања, и тако покваре инсталацију. Препоручује се да омогућите ову функцију.", "Error occurred while checking server setup" : "Дошло је до грешке при провери поставки сервера", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Ваша фасцикла са подацима и фајлови су вероватно доступни са интернета. .htaccess фајл не ради. Препоручујемо да подесите Ваш веб сервер тако да је фасцикла са подацима ван фасцикле кореног документа веб сервера.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "HTTP заглавље „{header}“ није подешено као „{expected}“. Ово потенцијално угрожава безбедност и приватност и препоручује се да подесите ову поставку.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "HTTP заглавље „{header}“ није подешено као „{expected}“. Неке функције можда неће радити исправно, па препоручује се да подесите ову поставку.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "\"Strict-Transport-Security\" HTTP заглавље није подешено да буде бар \"{seconds}\" секунди. За додатну сигурност, предлаже се да омогућите HSTS као што је описано у сигурносним саветима.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Приступање сајту преко HTTP-а. Препоручује се да подесите Ваш сервер да захтева HTTPS као што је описано у безбедоносним саветима.", "Shared" : "Дељено", "Shared with" : "Дељено са", "Shared by" : "Поделио", diff --git a/core/l10n/sr.json b/core/l10n/sr.json index cb329b924dbcb..f2f940a4835ce 100644 --- a/core/l10n/sr.json +++ b/core/l10n/sr.json @@ -108,8 +108,23 @@ "So-so password" : "Осредња лозинка", "Good password" : "Добра лозинка", "Strong password" : "Јака лозинка", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Ваш сервер није правилно подешен да омогући синхронизацију фајлова. Изгледа да је ВебДАВ сучеље покварено.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Ваш сервер није правилно подешен да разлучи \"{url}\". Можете наћи више информација у документацији.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Овај сервер нема интернет конекцију: немогуће је доћи до више интернет крајњих тачака. Ово значи да неке могућности као што су качење спољних складишта, обавештења о ажурирањима или инсталација апликација треће стране неће радити. Приступање фајловима споља и слање обавештења е-поштом исто тако може да не ради. Омогућите интернет конекцију на овом серверу ако желите да уживате у свим могућностима.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Нисте подесили меморијски кеш. Да побољшате перформансе, подесите меморијски кеш, ако је доступан. Више информација има у документацији.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP не може да чита /dev/urandom. Ово се баш не препоручује из сигурносних разлога. Можете наћи више информација у документацији.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Тренутно користите {version} верзију PHP-а. Надоградите PHP верзију да искористите сва безбедоносна ажурирања и побољшања брзине које обезбеђује PHP група, чим Ваша дистрибуција почне да је подржава.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Или подешавање обрнутих прокси заглавља није исправно, или приступате Некстклауду преко проксија од поверења. Ако то не радите, ово је безбедоносни проблем и може омогућити нападачу да лажира да је његова IP адреса видљива Некстклауду. Више информација о овоме има у документацији.", "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 memcached wiki about both modules." : "Memcached је подешен као дистрибуирани кеш, али је инсталиран погрешни PHP модуле \"memcache\". \\OC\\Memcache\\Memcached подржава само \"memcached\" модул, а не и \"memcache\". Погледајте memcached вики о оба модула.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Неки фајлови нису прошли проверу интегритета. Даљње информације о томе како да решите овај проблем се могу наћи у документацији. (Списак неисправних фајлова/Скенирај поново…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "PHP OPcache није подешен исправно. За боље перформансе предлаже се да користите следећа подешавања у php.ini фајлу:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "PHP функција \"set_time_limit\" није доступна. Ово може да узрокује да се скрипте закоче у сред извршавања, и тако покваре инсталацију. Препоручује се да омогућите ову функцију.", "Error occurred while checking server setup" : "Дошло је до грешке при провери поставки сервера", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Ваша фасцикла са подацима и фајлови су вероватно доступни са интернета. .htaccess фајл не ради. Препоручујемо да подесите Ваш веб сервер тако да је фасцикла са подацима ван фасцикле кореног документа веб сервера.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "HTTP заглавље „{header}“ није подешено као „{expected}“. Ово потенцијално угрожава безбедност и приватност и препоручује се да подесите ову поставку.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "HTTP заглавље „{header}“ није подешено као „{expected}“. Неке функције можда неће радити исправно, па препоручује се да подесите ову поставку.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "\"Strict-Transport-Security\" HTTP заглавље није подешено да буде бар \"{seconds}\" секунди. За додатну сигурност, предлаже се да омогућите HSTS као што је описано у сигурносним саветима.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Приступање сајту преко HTTP-а. Препоручује се да подесите Ваш сервер да захтева HTTPS као што је описано у безбедоносним саветима.", "Shared" : "Дељено", "Shared with" : "Дељено са", "Shared by" : "Поделио", diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index cf9612b175963..e9fec7a482dd4 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -60,7 +60,7 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$swijzigde je wachtwoord op %2$s.", "Your password on %s was changed." : "Je wachtwoord op  %s is gewijzigd.", "Your password on %s was reset by an administrator." : "Je wachtwoord op %s werd hersteld door een beheerder.", - "Password for %1$s changed on %2$s" : "Wachtwoord voor %1$sgewijzigd op %2$s", + "Password for %1$s changed on %2$s" : "Wachtwoord voor %1$s gewijzigd op %2$s", "Password changed for %s" : "Wachtwoord gewijzigd voor %s", "If you did not request this, please contact an administrator." : "Als je dat niet aanvroeg, neem dan contact op met een beheerder.", "%1$s changed your email address on %2$s." : "%1$s wijzigde je e-mailadres op %2$s.", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index 27f6e32c2bccc..0cc2f1555f633 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -58,7 +58,7 @@ "%1$s changed your password on %2$s." : "%1$swijzigde je wachtwoord op %2$s.", "Your password on %s was changed." : "Je wachtwoord op  %s is gewijzigd.", "Your password on %s was reset by an administrator." : "Je wachtwoord op %s werd hersteld door een beheerder.", - "Password for %1$s changed on %2$s" : "Wachtwoord voor %1$sgewijzigd op %2$s", + "Password for %1$s changed on %2$s" : "Wachtwoord voor %1$s gewijzigd op %2$s", "Password changed for %s" : "Wachtwoord gewijzigd voor %s", "If you did not request this, please contact an administrator." : "Als je dat niet aanvroeg, neem dan contact op met een beheerder.", "%1$s changed your email address on %2$s." : "%1$s wijzigde je e-mailadres op %2$s.", From 3b390ef43042326339d526473dac3aa9f21dffdc Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Thu, 30 Nov 2017 11:11:40 +0100 Subject: [PATCH 33/92] Fix translation of federation scope menu * l10n in Nextcloud works by extracting the values only passed on their location and not based on the first parameter * we need to change the translation pool from `core` to `settings` then * fixes #7345 Signed-off-by: Morris Jobke --- settings/js/federationscopemenu.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/settings/js/federationscopemenu.js b/settings/js/federationscopemenu.js index 467ca48f62d0d..4b1813f90e948 100644 --- a/settings/js/federationscopemenu.js +++ b/settings/js/federationscopemenu.js @@ -46,22 +46,22 @@ this._scopes = [ { name: 'private', - displayName: (this.field === 'avatar' || this.field === 'displayname') ? t('core', 'Local') : t('core', 'Private'), - tooltip: (this.field === 'avatar' || this.field === 'displayname') ? t('core', 'Only visible to local users') : t('core', 'Only visible to you'), + displayName: (this.field === 'avatar' || this.field === 'displayname') ? t('settings', 'Local') : t('settings', 'Private'), + tooltip: (this.field === 'avatar' || this.field === 'displayname') ? t('settings', 'Only visible to local users') : t('settings', 'Only visible to you'), icon: OC.imagePath('core', 'actions/password'), active: false }, { name: 'contacts', - displayName: t('core', 'Contacts'), - tooltip: t('core', 'Visible to local users and to trusted servers'), + displayName: t('settings', 'Contacts'), + tooltip: t('settings', 'Visible to local users and to trusted servers'), icon: OC.imagePath('core', 'places/contacts-dark'), active: false }, { name: 'public', - displayName: t('core', 'Public'), - tooltip: t('core', 'Will be synced to a global and public address book'), + displayName: t('settings', 'Public'), + tooltip: t('settings', 'Will be synced to a global and public address book'), icon: OC.imagePath('core', 'places/link'), active: false } From 1b7dfd73afba20ccbd3b313d0f1bb678e60654d8 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 30 Nov 2017 11:16:00 +0100 Subject: [PATCH 34/92] Allow to skip data dir permission checks by config Enables installation on services that don't allow/support permission changes. Signed-off-by: Arthur Schiwon --- config/config.sample.php | 12 ++++++++++++ lib/private/legacy/util.php | 5 ++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/config/config.sample.php b/config/config.sample.php index 022b807a881a5..adb0c125b1eaa 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -645,6 +645,18 @@ */ 'check_for_working_htaccess' => true, +/** + * In rare setups (e.g. on Openshift or docker on windows) the permissions check + * might block the installation while the underlying system offers no means to + * "correct" the permissions. In this case, set the value to false. + * + * In regular cases, if issues with permissions are encountered they should be + * adjusted accordingly. Changing the flag is discouraged. + * + * Defaults to ``true`` + */ +'check_data_directory_permissions' => true, + /** * In certain environments it is desired to have a read-only configuration file. * When this switch is set to ``true`` Nextcloud will not verify whether the diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php index 3ce11746672fd..2fc6ba52d4e3f 100644 --- a/lib/private/legacy/util.php +++ b/lib/private/legacy/util.php @@ -979,8 +979,11 @@ public static function checkDatabaseVersion() { * @return array arrays with error messages and hints */ public static function checkDataDirectoryPermissions($dataDirectory) { + if(\OC::$server->getConfig()->getSystemValue('check_data_directory_permissions', true) === false) { + return []; + } $l = \OC::$server->getL10N('lib'); - $errors = array(); + $errors = []; $permissionsModHint = $l->t('Please change the permissions to 0770 so that the directory' . ' cannot be listed by other users.'); $perms = substr(decoct(@fileperms($dataDirectory)), -3); From 8b734347b17da5ff2ec7f12e2149aeec785310f2 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Thu, 30 Nov 2017 12:47:55 +0100 Subject: [PATCH 35/92] use formal version of German if default_language is set to 'de_DE' Signed-off-by: Bjoern Schiessle --- lib/private/L10N/Factory.php | 26 +++++++++++++++++++- tests/lib/L10N/FactoryTest.php | 44 ++++++++++++++++++++++++++++++++-- 2 files changed, 67 insertions(+), 3 deletions(-) diff --git a/lib/private/L10N/Factory.php b/lib/private/L10N/Factory.php index 399bebb8189c3..150b36cec44d3 100644 --- a/lib/private/L10N/Factory.php +++ b/lib/private/L10N/Factory.php @@ -260,7 +260,7 @@ private function getLanguageFromRequest($app) { foreach ($available as $available_language) { if ($preferred_language === strtolower($available_language)) { - return $available_language; + return $this->respectDefaultLanguage($app, $available_language); } } @@ -276,6 +276,30 @@ private function getLanguageFromRequest($app) { throw new LanguageNotFoundException(); } + /** + * if default language is set to de_DE (formal German) this should be + * preferred to 'de' (non-formal German) if possible + * + * @param string|null $app + * @param string $lang + * @return string + */ + protected function respectDefaultLanguage($app, $lang) { + $result = $lang; + $defaultLanguage = $this->config->getSystemValue('default_language', false); + + // use formal version of german ("Sie" instead of "Du") if the default + // language is set to 'de_DE' if possible + if (strtolower($lang) === 'de' + && strtolower($defaultLanguage) === 'de_de' && + $this->languageExists($app, 'de_DE') + ) { + $result = 'de_DE'; + } + + return $result; + } + /** * Checks if $sub is a subdirectory of $parent * diff --git a/tests/lib/L10N/FactoryTest.php b/tests/lib/L10N/FactoryTest.php index 171be67d33694..602967b162620 100644 --- a/tests/lib/L10N/FactoryTest.php +++ b/tests/lib/L10N/FactoryTest.php @@ -368,12 +368,17 @@ public function dataSetLanguageFromRequest() { * @param string $expected */ public function testGetLanguageFromRequest($app, $header, array $availableLanguages, $expected) { - $factory = $this->getFactory(['findAvailableLanguages']); + $factory = $this->getFactory(['findAvailableLanguages', 'respectDefaultLanguage']); $factory->expects($this->once()) ->method('findAvailableLanguages') ->with($app) ->willReturn($availableLanguages); + $factory->expects($this->any()) + ->method('respectDefaultLanguage')->willReturnCallback(function($app, $lang) { + return $lang; + }); + $this->request->expects($this->once()) ->method('getHeader') ->with('ACCEPT_LANGUAGE') @@ -497,7 +502,7 @@ public function testFindLanguage($loggedIn, $availableLang, $expected) { ->with($this->equalTo('ACCEPT_LANGUAGE')) ->willReturn($browserLang); - $factory = $this->getFactory(['languageExists', 'findAvailableLanguages']); + $factory = $this->getFactory(['languageExists', 'findAvailableLanguages', 'respectDefaultLanguage']); $factory->expects($this->any()) ->method('languageExists') ->will($this->returnCallback(function ($app, $lang) use ($availableLang) { @@ -508,9 +513,44 @@ public function testFindLanguage($loggedIn, $availableLang, $expected) { ->will($this->returnCallback(function ($app) use ($availableLang) { return $availableLang; })); + $factory->expects($this->any()) + ->method('respectDefaultLanguage')->willReturnCallback(function($app, $lang) { + return $lang; + }); $lang = $factory->findLanguage(null); $this->assertSame($expected, $lang); } + + public function dataTestRespectDefaultLanguage() { + return [ + ['de', 'de_DE', true, 'de_DE'], + ['de', 'de', true, 'de'], + ['de', false, true, 'de'], + ['fr', 'de_DE', true, 'fr'], + ]; + } + + /** + * test if we respect default language if possible + * + * @dataProvider dataTestRespectDefaultLanguage + * + * @param string $lang + * @param string $defaultLanguage + * @param bool $langExists + * @param string $expected + */ + public function testRespectDefaultLanguage($lang, $defaultLanguage, $langExists, $expected) { + $factory = $this->getFactory(['languageExists']); + $factory->expects($this->any()) + ->method('languageExists')->willReturn($langExists); + $this->config->expects($this->any()) + ->method('getSystemValue')->with('default_language', false)->willReturn($defaultLanguage); + + $result = $this->invokePrivate($factory, 'respectDefaultLanguage', ['app', $lang]); + $this->assertSame($expected, $result); + } + } From 314bfeb6b825a52354e04b14c0fc73264a4bf043 Mon Sep 17 00:00:00 2001 From: Marin Treselj Date: Thu, 30 Nov 2017 18:26:26 +0100 Subject: [PATCH 36/92] Define icon-shadow only in context of icon-white Signed-off-by: Marin Treselj --- core/css/icons.scss | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/core/css/icons.scss b/core/css/icons.scss index 5f1d8af78997c..625196c8eb37f 100644 --- a/core/css/icons.scss +++ b/core/css/icons.scss @@ -89,15 +89,10 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { background-size: 32px !important; } -.icon-shadow { - filter: drop-shadow(1px 1px 4px $color-box-shadow); - &.icon-white { - filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); - } -} - .icon-white { filter: invert(100%); + &.icon-shadow { + filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); } /* ICONS -------------------------------------------------------------------- */ From d03fcbca77368e749cc30c899c38ace1d414a94d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Thu, 30 Nov 2017 19:25:50 +0100 Subject: [PATCH 37/92] Set text only in the message div of the new comment form MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When finding ".message" elements on "view.$el" the message area for the new comment form and all the comments were matched. Now the selector was restricted to match only the message area for the new comment form. Signed-off-by: Daniel Calviño Sánchez --- apps/comments/tests/js/commentstabviewSpec.js | 23 +++++++++++-------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/apps/comments/tests/js/commentstabviewSpec.js b/apps/comments/tests/js/commentstabviewSpec.js index 8b99ad081cd0e..d2170a37f7d18 100644 --- a/apps/comments/tests/js/commentstabviewSpec.js +++ b/apps/comments/tests/js/commentstabviewSpec.js @@ -219,6 +219,7 @@ describe('OCA.Comments.CommentsTabView tests', function() { describe('posting comments', function() { var createStub; var currentUserStub; + var $newCommentForm; beforeEach(function() { view.collection.set(testComments); @@ -229,6 +230,8 @@ describe('OCA.Comments.CommentsTabView tests', function() { displayName: 'Test User' }); + $newCommentForm = view.$el.find('.newCommentForm'); + // Required for the absolute selector used to find the new comment // after a successful creation in _onSubmitSuccess. $('#testArea').append(view.$el); @@ -239,8 +242,8 @@ describe('OCA.Comments.CommentsTabView tests', function() { }); it('creates a new comment when clicking post button', function() { - view.$el.find('.message').text('New message'); - view.$el.find('form').submit(); + $newCommentForm.find('.message').text('New message'); + $newCommentForm.submit(); expect(createStub.calledOnce).toEqual(true); expect(createStub.lastCall.args[0]).toEqual({ @@ -253,8 +256,8 @@ describe('OCA.Comments.CommentsTabView tests', function() { }); }); it('creates a new comment with mentions when clicking post button', function() { - view.$el.find('.message').text('New message @anotheruser'); - view.$el.find('form').submit(); + $newCommentForm.find('.message').text('New message @anotheruser'); + $newCommentForm.submit(); var createStubExpectedData = { actorId: 'testuser', @@ -297,8 +300,8 @@ describe('OCA.Comments.CommentsTabView tests', function() { expect($message.find('.avatar[data-user=anotheruser] ~ .contactsmenu-popover').length).toEqual(1); }); it('does not create a comment if the field is empty', function() { - view.$el.find('.message').val(' '); - view.$el.find('form').submit(); + $newCommentForm.find('.message').val(' '); + $newCommentForm.submit(); expect(createStub.notCalled).toEqual(true); }); @@ -307,8 +310,8 @@ describe('OCA.Comments.CommentsTabView tests', function() { for (var i = 0; i < view._commentMaxLength * 2; i++) { bigMessage += 'a'; } - view.$el.find('.message').val(bigMessage); - view.$el.find('form').submit(); + $newCommentForm.find('.message').val(bigMessage); + $newCommentForm.submit(); expect(createStub.notCalled).toEqual(true); }); @@ -319,8 +322,8 @@ describe('OCA.Comments.CommentsTabView tests', function() { beforeEach(function() { tooltipStub = sinon.stub($.fn, 'tooltip'); - $message = view.$el.find('.message'); - $submitButton = view.$el.find('.submit'); + $message = $newCommentForm.find('.message'); + $submitButton = $newCommentForm.find('.submit'); }); afterEach(function() { tooltipStub.restore(); From c43f64d56b517e061ceb48e30ebaa48cc7866236 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Thu, 30 Nov 2017 19:30:27 +0100 Subject: [PATCH 38/92] Add unit tests for posting comments with enter key MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Daniel Calviño Sánchez --- apps/comments/tests/js/commentstabviewSpec.js | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/apps/comments/tests/js/commentstabviewSpec.js b/apps/comments/tests/js/commentstabviewSpec.js index d2170a37f7d18..d4456728f02ab 100644 --- a/apps/comments/tests/js/commentstabviewSpec.js +++ b/apps/comments/tests/js/commentstabviewSpec.js @@ -255,6 +255,34 @@ describe('OCA.Comments.CommentsTabView tests', function() { creationDateTime: new Date(Date.UTC(2016, 1, 3, 10, 5, 9)).toUTCString() }); }); + it('creates a new comment when typing enter', function() { + $newCommentForm.find('.message').text('New message'); + var keydownEvent = new $.Event('keydown', {keyCode: 13}); + $newCommentForm.find('.message').trigger(keydownEvent); + + expect(createStub.calledOnce).toEqual(true); + expect(createStub.lastCall.args[0]).toEqual({ + actorId: 'testuser', + actorDisplayName: 'Test User', + actorType: 'users', + verb: 'comment', + message: 'New message', + creationDateTime: new Date(Date.UTC(2016, 1, 3, 10, 5, 9)).toUTCString() + }); + expect(keydownEvent.isDefaultPrevented()).toEqual(true); + }); + it('creates a new line when typing shift+enter', function() { + $newCommentForm.find('.message').text('New message'); + var keydownEvent = new $.Event('keydown', {keyCode: 13, shiftKey: true}); + $newCommentForm.find('.message').trigger(keydownEvent); + + expect(createStub.calledOnce).toEqual(false); + // PhantomJS does not seem to handle typing in a contenteditable, so + // instead of looking for a new line the best that can be done is + // checking that the default behaviour would have been executed. + expect($newCommentForm.find('.message').text()).toContain('New message'); + expect(keydownEvent.isDefaultPrevented()).toEqual(false); + }); it('creates a new comment with mentions when clicking post button', function() { $newCommentForm.find('.message').text('New message @anotheruser'); $newCommentForm.submit(); From ffc627e18e6398ec1dac75e7b72abde52434ff74 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Fri, 1 Dec 2017 01:10:20 +0000 Subject: [PATCH 39/92] [tx-robot] updated from transifex --- apps/comments/l10n/cs.js | 2 ++ apps/comments/l10n/cs.json | 2 ++ apps/comments/l10n/es_CL.js | 2 ++ apps/comments/l10n/es_CL.json | 2 ++ apps/comments/l10n/es_CO.js | 2 ++ apps/comments/l10n/es_CO.json | 2 ++ apps/comments/l10n/es_CR.js | 2 ++ apps/comments/l10n/es_CR.json | 2 ++ apps/comments/l10n/es_DO.js | 2 ++ apps/comments/l10n/es_DO.json | 2 ++ apps/comments/l10n/es_EC.js | 2 ++ apps/comments/l10n/es_EC.json | 2 ++ apps/comments/l10n/es_GT.js | 2 ++ apps/comments/l10n/es_GT.json | 2 ++ apps/comments/l10n/es_HN.js | 2 ++ apps/comments/l10n/es_HN.json | 2 ++ apps/comments/l10n/es_NI.js | 2 ++ apps/comments/l10n/es_NI.json | 2 ++ apps/comments/l10n/es_PA.js | 2 ++ apps/comments/l10n/es_PA.json | 2 ++ apps/comments/l10n/es_PE.js | 2 ++ apps/comments/l10n/es_PE.json | 2 ++ apps/comments/l10n/es_PR.js | 2 ++ apps/comments/l10n/es_PR.json | 2 ++ apps/comments/l10n/es_PY.js | 2 ++ apps/comments/l10n/es_PY.json | 2 ++ apps/comments/l10n/es_SV.js | 2 ++ apps/comments/l10n/es_SV.json | 2 ++ apps/comments/l10n/es_UY.js | 2 ++ apps/comments/l10n/es_UY.json | 2 ++ apps/dav/l10n/cs.js | 1 + apps/dav/l10n/cs.json | 1 + apps/dav/l10n/es_CL.js | 1 + apps/dav/l10n/es_CL.json | 1 + apps/dav/l10n/es_CO.js | 11 +++++++++++ apps/dav/l10n/es_CO.json | 11 +++++++++++ apps/dav/l10n/es_CR.js | 11 +++++++++++ apps/dav/l10n/es_CR.json | 11 +++++++++++ apps/dav/l10n/es_DO.js | 11 +++++++++++ apps/dav/l10n/es_DO.json | 11 +++++++++++ apps/dav/l10n/es_EC.js | 11 +++++++++++ apps/dav/l10n/es_EC.json | 11 +++++++++++ apps/dav/l10n/es_GT.js | 11 +++++++++++ apps/dav/l10n/es_GT.json | 11 +++++++++++ apps/dav/l10n/es_HN.js | 11 +++++++++++ apps/dav/l10n/es_HN.json | 11 +++++++++++ apps/dav/l10n/es_NI.js | 11 +++++++++++ apps/dav/l10n/es_NI.json | 11 +++++++++++ apps/dav/l10n/es_PA.js | 11 +++++++++++ apps/dav/l10n/es_PA.json | 11 +++++++++++ apps/dav/l10n/es_PE.js | 11 +++++++++++ apps/dav/l10n/es_PE.json | 11 +++++++++++ apps/dav/l10n/es_PR.js | 11 +++++++++++ apps/dav/l10n/es_PR.json | 11 +++++++++++ apps/dav/l10n/es_PY.js | 11 +++++++++++ apps/dav/l10n/es_PY.json | 11 +++++++++++ apps/dav/l10n/es_SV.js | 11 +++++++++++ apps/dav/l10n/es_SV.json | 11 +++++++++++ apps/dav/l10n/es_UY.js | 11 +++++++++++ apps/dav/l10n/es_UY.json | 11 +++++++++++ apps/files/l10n/cs.js | 8 ++++++++ apps/files/l10n/cs.json | 8 ++++++++ apps/files/l10n/es_CO.js | 3 +++ apps/files/l10n/es_CO.json | 3 +++ apps/files/l10n/es_CR.js | 3 +++ apps/files/l10n/es_CR.json | 3 +++ apps/files/l10n/es_DO.js | 3 +++ apps/files/l10n/es_DO.json | 3 +++ apps/files/l10n/es_EC.js | 3 +++ apps/files/l10n/es_EC.json | 3 +++ apps/files/l10n/es_GT.js | 3 +++ apps/files/l10n/es_GT.json | 3 +++ apps/files/l10n/es_HN.js | 3 +++ apps/files/l10n/es_HN.json | 3 +++ apps/files/l10n/es_NI.js | 3 +++ apps/files/l10n/es_NI.json | 3 +++ apps/files/l10n/es_PA.js | 3 +++ apps/files/l10n/es_PA.json | 3 +++ apps/files/l10n/es_PE.js | 3 +++ apps/files/l10n/es_PE.json | 3 +++ apps/files/l10n/es_PR.js | 3 +++ apps/files/l10n/es_PR.json | 3 +++ apps/files/l10n/es_PY.js | 3 +++ apps/files/l10n/es_PY.json | 3 +++ apps/files/l10n/es_SV.js | 3 +++ apps/files/l10n/es_SV.json | 3 +++ apps/files/l10n/es_UY.js | 3 +++ apps/files/l10n/es_UY.json | 3 +++ apps/theming/l10n/cs.js | 2 ++ apps/theming/l10n/cs.json | 2 ++ apps/theming/l10n/es_CO.js | 1 + apps/theming/l10n/es_CO.json | 1 + apps/theming/l10n/es_CR.js | 1 + apps/theming/l10n/es_CR.json | 1 + apps/theming/l10n/es_DO.js | 1 + apps/theming/l10n/es_DO.json | 1 + apps/theming/l10n/es_EC.js | 1 + apps/theming/l10n/es_EC.json | 1 + apps/theming/l10n/es_GT.js | 1 + apps/theming/l10n/es_GT.json | 1 + apps/theming/l10n/es_HN.js | 1 + apps/theming/l10n/es_HN.json | 1 + apps/theming/l10n/es_NI.js | 1 + apps/theming/l10n/es_NI.json | 1 + apps/theming/l10n/es_PA.js | 1 + apps/theming/l10n/es_PA.json | 1 + apps/theming/l10n/es_PE.js | 1 + apps/theming/l10n/es_PE.json | 1 + apps/theming/l10n/es_PR.js | 1 + apps/theming/l10n/es_PR.json | 1 + apps/theming/l10n/es_PY.js | 1 + apps/theming/l10n/es_PY.json | 1 + apps/theming/l10n/es_SV.js | 1 + apps/theming/l10n/es_SV.json | 1 + apps/theming/l10n/es_UY.js | 1 + apps/theming/l10n/es_UY.json | 1 + apps/user_ldap/l10n/es_CO.js | 1 + apps/user_ldap/l10n/es_CO.json | 1 + apps/user_ldap/l10n/es_CR.js | 1 + apps/user_ldap/l10n/es_CR.json | 1 + apps/user_ldap/l10n/es_DO.js | 1 + apps/user_ldap/l10n/es_DO.json | 1 + apps/user_ldap/l10n/es_EC.js | 1 + apps/user_ldap/l10n/es_EC.json | 1 + apps/user_ldap/l10n/es_GT.js | 1 + apps/user_ldap/l10n/es_GT.json | 1 + apps/user_ldap/l10n/es_HN.js | 1 + apps/user_ldap/l10n/es_HN.json | 1 + apps/user_ldap/l10n/es_NI.js | 1 + apps/user_ldap/l10n/es_NI.json | 1 + apps/user_ldap/l10n/es_PA.js | 1 + apps/user_ldap/l10n/es_PA.json | 1 + apps/user_ldap/l10n/es_PE.js | 1 + apps/user_ldap/l10n/es_PE.json | 1 + apps/user_ldap/l10n/es_PR.js | 1 + apps/user_ldap/l10n/es_PR.json | 1 + apps/user_ldap/l10n/es_PY.js | 1 + apps/user_ldap/l10n/es_PY.json | 1 + apps/user_ldap/l10n/es_SV.js | 1 + apps/user_ldap/l10n/es_SV.json | 1 + apps/user_ldap/l10n/es_UY.js | 1 + apps/user_ldap/l10n/es_UY.json | 1 + core/l10n/el.js | 2 ++ core/l10n/el.json | 2 ++ core/l10n/es.js | 2 ++ core/l10n/es.json | 2 ++ core/l10n/es_CL.js | 18 ++++++++++++++++++ core/l10n/es_CL.json | 18 ++++++++++++++++++ core/l10n/es_CO.js | 23 +++++++++++++++++++++++ core/l10n/es_CO.json | 23 +++++++++++++++++++++++ core/l10n/es_CR.js | 23 +++++++++++++++++++++++ core/l10n/es_CR.json | 23 +++++++++++++++++++++++ core/l10n/es_DO.js | 23 +++++++++++++++++++++++ core/l10n/es_DO.json | 23 +++++++++++++++++++++++ core/l10n/es_EC.js | 23 +++++++++++++++++++++++ core/l10n/es_EC.json | 23 +++++++++++++++++++++++ core/l10n/es_GT.js | 23 +++++++++++++++++++++++ core/l10n/es_GT.json | 23 +++++++++++++++++++++++ core/l10n/es_HN.js | 23 +++++++++++++++++++++++ core/l10n/es_HN.json | 23 +++++++++++++++++++++++ core/l10n/es_NI.js | 23 +++++++++++++++++++++++ core/l10n/es_NI.json | 23 +++++++++++++++++++++++ core/l10n/es_PA.js | 23 +++++++++++++++++++++++ core/l10n/es_PA.json | 23 +++++++++++++++++++++++ core/l10n/es_PE.js | 23 +++++++++++++++++++++++ core/l10n/es_PE.json | 23 +++++++++++++++++++++++ core/l10n/es_PR.js | 23 +++++++++++++++++++++++ core/l10n/es_PR.json | 23 +++++++++++++++++++++++ core/l10n/es_PY.js | 23 +++++++++++++++++++++++ core/l10n/es_PY.json | 23 +++++++++++++++++++++++ core/l10n/es_SV.js | 23 +++++++++++++++++++++++ core/l10n/es_SV.json | 23 +++++++++++++++++++++++ core/l10n/es_UY.js | 23 +++++++++++++++++++++++ core/l10n/es_UY.json | 23 +++++++++++++++++++++++ settings/l10n/cs.js | 5 +++++ settings/l10n/cs.json | 5 +++++ settings/l10n/es_CO.js | 5 +++++ settings/l10n/es_CO.json | 5 +++++ settings/l10n/es_CR.js | 5 +++++ settings/l10n/es_CR.json | 5 +++++ settings/l10n/es_DO.js | 5 +++++ settings/l10n/es_DO.json | 5 +++++ settings/l10n/es_EC.js | 5 +++++ settings/l10n/es_EC.json | 5 +++++ settings/l10n/es_GT.js | 5 +++++ settings/l10n/es_GT.json | 5 +++++ settings/l10n/es_HN.js | 5 +++++ settings/l10n/es_HN.json | 5 +++++ settings/l10n/es_NI.js | 5 +++++ settings/l10n/es_NI.json | 5 +++++ settings/l10n/es_PA.js | 5 +++++ settings/l10n/es_PA.json | 5 +++++ settings/l10n/es_PE.js | 5 +++++ settings/l10n/es_PE.json | 5 +++++ settings/l10n/es_PR.js | 5 +++++ settings/l10n/es_PR.json | 5 +++++ settings/l10n/es_PY.js | 5 +++++ settings/l10n/es_PY.json | 5 +++++ settings/l10n/es_SV.js | 5 +++++ settings/l10n/es_SV.json | 5 +++++ settings/l10n/es_UY.js | 5 +++++ settings/l10n/es_UY.json | 5 +++++ 202 files changed, 1282 insertions(+) diff --git a/apps/comments/l10n/cs.js b/apps/comments/l10n/cs.js index c4ca026906cc2..fe4cc075cd6e2 100644 --- a/apps/comments/l10n/cs.js +++ b/apps/comments/l10n/cs.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s okomentoval %2$s", "{author} commented on {file}" : "{author} okomentoval(a) {file}", "Comments for files" : "Komentáře souborů", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v “%s”, v komentáři od uživatele, který byl později smazán", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v souboru “{file}”, v komentáři od uživatele, který byl později smazán", "%1$s mentioned you in a comment on “%2$s”" : "%1$s vás zmínil(a) v komentáři u %2$s", "{user} mentioned you in a comment on “{file}”" : "{user} vás zmínil v komentáři u “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”", diff --git a/apps/comments/l10n/cs.json b/apps/comments/l10n/cs.json index c7dffa402ece6..ad07c446f41f7 100644 --- a/apps/comments/l10n/cs.json +++ b/apps/comments/l10n/cs.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s okomentoval %2$s", "{author} commented on {file}" : "{author} okomentoval(a) {file}", "Comments for files" : "Komentáře souborů", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v “%s”, v komentáři od uživatele, který byl později smazán", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Byli jste zmíněni v souboru “{file}”, v komentáři od uživatele, který byl později smazán", "%1$s mentioned you in a comment on “%2$s”" : "%1$s vás zmínil(a) v komentáři u %2$s", "{user} mentioned you in a comment on “{file}”" : "{user} vás zmínil v komentáři u “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "A (now) deleted user mentioned you in a comment on “%s”", diff --git a/apps/comments/l10n/es_CL.js b/apps/comments/l10n/es_CL.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_CL.js +++ b/apps/comments/l10n/es_CL.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_CL.json b/apps/comments/l10n/es_CL.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_CL.json +++ b/apps/comments/l10n/es_CL.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_CO.js b/apps/comments/l10n/es_CO.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_CO.js +++ b/apps/comments/l10n/es_CO.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_CO.json b/apps/comments/l10n/es_CO.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_CO.json +++ b/apps/comments/l10n/es_CO.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_CR.js b/apps/comments/l10n/es_CR.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_CR.js +++ b/apps/comments/l10n/es_CR.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_CR.json b/apps/comments/l10n/es_CR.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_CR.json +++ b/apps/comments/l10n/es_CR.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_DO.js b/apps/comments/l10n/es_DO.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_DO.js +++ b/apps/comments/l10n/es_DO.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_DO.json b/apps/comments/l10n/es_DO.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_DO.json +++ b/apps/comments/l10n/es_DO.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_EC.js b/apps/comments/l10n/es_EC.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_EC.js +++ b/apps/comments/l10n/es_EC.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_EC.json b/apps/comments/l10n/es_EC.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_EC.json +++ b/apps/comments/l10n/es_EC.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_GT.js b/apps/comments/l10n/es_GT.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_GT.js +++ b/apps/comments/l10n/es_GT.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_GT.json b/apps/comments/l10n/es_GT.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_GT.json +++ b/apps/comments/l10n/es_GT.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_HN.js b/apps/comments/l10n/es_HN.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_HN.js +++ b/apps/comments/l10n/es_HN.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_HN.json b/apps/comments/l10n/es_HN.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_HN.json +++ b/apps/comments/l10n/es_HN.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_NI.js b/apps/comments/l10n/es_NI.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_NI.js +++ b/apps/comments/l10n/es_NI.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_NI.json b/apps/comments/l10n/es_NI.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_NI.json +++ b/apps/comments/l10n/es_NI.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_PA.js b/apps/comments/l10n/es_PA.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_PA.js +++ b/apps/comments/l10n/es_PA.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_PA.json b/apps/comments/l10n/es_PA.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_PA.json +++ b/apps/comments/l10n/es_PA.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_PE.js b/apps/comments/l10n/es_PE.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_PE.js +++ b/apps/comments/l10n/es_PE.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_PE.json b/apps/comments/l10n/es_PE.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_PE.json +++ b/apps/comments/l10n/es_PE.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_PR.js b/apps/comments/l10n/es_PR.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_PR.js +++ b/apps/comments/l10n/es_PR.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_PR.json b/apps/comments/l10n/es_PR.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_PR.json +++ b/apps/comments/l10n/es_PR.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_PY.js b/apps/comments/l10n/es_PY.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_PY.js +++ b/apps/comments/l10n/es_PY.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_PY.json b/apps/comments/l10n/es_PY.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_PY.json +++ b/apps/comments/l10n/es_PY.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_SV.js b/apps/comments/l10n/es_SV.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_SV.js +++ b/apps/comments/l10n/es_SV.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_SV.json b/apps/comments/l10n/es_SV.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_SV.json +++ b/apps/comments/l10n/es_SV.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_UY.js b/apps/comments/l10n/es_UY.js index 824a5b19e630c..1ac3551617c27 100644 --- a/apps/comments/l10n/es_UY.js +++ b/apps/comments/l10n/es_UY.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/comments/l10n/es_UY.json b/apps/comments/l10n/es_UY.json index 68ab0d606f284..ad3368610d11f 100644 --- a/apps/comments/l10n/es_UY.json +++ b/apps/comments/l10n/es_UY.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s comentó en %2$s", "{author} commented on {file}" : "{author} comentó en {file}", "Comments for files" : "Comentarios de los archivos", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado", "%1$s mentioned you in a comment on “%2$s”" : "%1$s te mencionó en un comentario en “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} te mencionó en un comentario en “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un usuario (ahora) borrado te mencionó en un commentario en “%s”", diff --git a/apps/dav/l10n/cs.js b/apps/dav/l10n/cs.js index 75d906f81c3c5..2145acaa23cd2 100644 --- a/apps/dav/l10n/cs.js +++ b/apps/dav/l10n/cs.js @@ -41,6 +41,7 @@ OC.L10N.register( "A calendar event was modified" : "Událost v kalendáři byla změněna", "A calendar todo was modified" : "Úkol v kalendáři byl změněn", "Contact birthdays" : "Narozeniny kontaktů", + "%s via %s" : "%s přes %s", "Invitation canceled" : "Pozvánka zrušena", "Hello %s," : "Dobrý den %s,", "The meeting »%s« with %s was canceled." : "Setkání »%s« s %s bylo zrušeno.", diff --git a/apps/dav/l10n/cs.json b/apps/dav/l10n/cs.json index f0bae45f12780..0857d4120a59e 100644 --- a/apps/dav/l10n/cs.json +++ b/apps/dav/l10n/cs.json @@ -39,6 +39,7 @@ "A calendar event was modified" : "Událost v kalendáři byla změněna", "A calendar todo was modified" : "Úkol v kalendáři byl změněn", "Contact birthdays" : "Narozeniny kontaktů", + "%s via %s" : "%s přes %s", "Invitation canceled" : "Pozvánka zrušena", "Hello %s," : "Dobrý den %s,", "The meeting »%s« with %s was canceled." : "Setkání »%s« s %s bylo zrušeno.", diff --git a/apps/dav/l10n/es_CL.js b/apps/dav/l10n/es_CL.js index 452cd6e77b53f..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_CL.js +++ b/apps/dav/l10n/es_CL.js @@ -41,6 +41,7 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", "Invitation canceled" : "Invitación cancelada", "Hello %s," : "Hola %s,", "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", diff --git a/apps/dav/l10n/es_CL.json b/apps/dav/l10n/es_CL.json index 918fa4513bca8..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_CL.json +++ b/apps/dav/l10n/es_CL.json @@ -39,6 +39,7 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", "Invitation canceled" : "Invitación cancelada", "Hello %s," : "Hola %s,", "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", diff --git a/apps/dav/l10n/es_CO.js b/apps/dav/l10n/es_CO.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_CO.js +++ b/apps/dav/l10n/es_CO.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_CO.json b/apps/dav/l10n/es_CO.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_CO.json +++ b/apps/dav/l10n/es_CO.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_CR.js b/apps/dav/l10n/es_CR.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_CR.js +++ b/apps/dav/l10n/es_CR.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_CR.json b/apps/dav/l10n/es_CR.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_CR.json +++ b/apps/dav/l10n/es_CR.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_DO.js b/apps/dav/l10n/es_DO.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_DO.js +++ b/apps/dav/l10n/es_DO.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_DO.json b/apps/dav/l10n/es_DO.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_DO.json +++ b/apps/dav/l10n/es_DO.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_EC.js b/apps/dav/l10n/es_EC.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_EC.js +++ b/apps/dav/l10n/es_EC.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_EC.json b/apps/dav/l10n/es_EC.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_EC.json +++ b/apps/dav/l10n/es_EC.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_GT.js b/apps/dav/l10n/es_GT.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_GT.js +++ b/apps/dav/l10n/es_GT.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_GT.json b/apps/dav/l10n/es_GT.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_GT.json +++ b/apps/dav/l10n/es_GT.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_HN.js b/apps/dav/l10n/es_HN.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_HN.js +++ b/apps/dav/l10n/es_HN.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_HN.json b/apps/dav/l10n/es_HN.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_HN.json +++ b/apps/dav/l10n/es_HN.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_NI.js b/apps/dav/l10n/es_NI.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_NI.js +++ b/apps/dav/l10n/es_NI.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_NI.json b/apps/dav/l10n/es_NI.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_NI.json +++ b/apps/dav/l10n/es_NI.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_PA.js b/apps/dav/l10n/es_PA.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_PA.js +++ b/apps/dav/l10n/es_PA.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_PA.json b/apps/dav/l10n/es_PA.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_PA.json +++ b/apps/dav/l10n/es_PA.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_PE.js b/apps/dav/l10n/es_PE.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_PE.js +++ b/apps/dav/l10n/es_PE.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_PE.json b/apps/dav/l10n/es_PE.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_PE.json +++ b/apps/dav/l10n/es_PE.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_PR.js b/apps/dav/l10n/es_PR.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_PR.js +++ b/apps/dav/l10n/es_PR.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_PR.json b/apps/dav/l10n/es_PR.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_PR.json +++ b/apps/dav/l10n/es_PR.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_PY.js b/apps/dav/l10n/es_PY.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_PY.js +++ b/apps/dav/l10n/es_PY.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_PY.json b/apps/dav/l10n/es_PY.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_PY.json +++ b/apps/dav/l10n/es_PY.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_SV.js b/apps/dav/l10n/es_SV.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_SV.js +++ b/apps/dav/l10n/es_SV.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_SV.json b/apps/dav/l10n/es_SV.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_SV.json +++ b/apps/dav/l10n/es_SV.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_UY.js b/apps/dav/l10n/es_UY.js index 433949bf30fc3..ecee22ef672f5 100644 --- a/apps/dav/l10n/es_UY.js +++ b/apps/dav/l10n/es_UY.js @@ -41,6 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_UY.json b/apps/dav/l10n/es_UY.json index ea72915ea472e..2e5a62af0ead4 100644 --- a/apps/dav/l10n/es_UY.json +++ b/apps/dav/l10n/es_UY.json @@ -39,6 +39,17 @@ "A calendar event was modified" : "Un evento de un calendario fue modificado", "A calendar todo was modified" : "Un pendiente de un calendario fue modificado", "Contact birthdays" : "Cumpleaños del contacto", + "%s via %s" : "%s vía %s", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola %s,", + "The meeting »%s« with %s was canceled." : "La cita »%s« con %s fue cancelada.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s ha sido actualizada.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/files/l10n/cs.js b/apps/files/l10n/cs.js index 3005558bf5a80..8284aec814085 100644 --- a/apps/files/l10n/cs.js +++ b/apps/files/l10n/cs.js @@ -16,8 +16,11 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Není dostatek místa pro uložení, velikost souboru je {size1}, zbývá pouze {size2}", "Target folder \"{dir}\" does not exist any more" : "Cílový adresář \"{dir}\" již neexistuje", "Not enough free space" : "Nedostatek volného prostoru", + "Uploading …" : "Nahrávání ...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} z {totalSize} ({bitrate})", + "Target folder does not exist any more" : "Cílový adresář už neexistuje", + "Error when assembling chunks, status code {status}" : "Chyba při kompletaci kusů, kód chyby {status}", "Actions" : "Činnosti", "Download" : "Stáhnout", "Rename" : "Přejmenovat", @@ -76,6 +79,9 @@ OC.L10N.register( "Favorite" : "Oblíbené", "New folder" : "Nový adresář", "Upload file" : "Nahrát soubor", + "Not favorited" : "Nepřidáno do oblíbených", + "Remove from favorites" : "Odebrat z oblíbených", + "Add to favorites" : "Přidat do oblíbených", "An error occurred while trying to update the tags" : "Při pokusu o úpravu tagů nastala chyba", "Added to favorites" : "Přidán k oblíbeným", "Removed from favorites" : "Odebráno z oblíbených", @@ -121,6 +127,8 @@ OC.L10N.register( "Settings" : "Nastavení", "Show hidden files" : "Zobrazit skryté soubory", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Použijte tuto adresu pro přístup k vašim souborům přes WebDAV", + "Cancel upload" : "Zrušit nahrávání", "No files in here" : "Žádné soubory", "Upload some content or sync with your devices!" : "Nahrajte nějaký obsah nebo synchronizujte se svými přístroji!", "No entries found in this folder" : "V tomto adresáři nebylo nic nalezeno", diff --git a/apps/files/l10n/cs.json b/apps/files/l10n/cs.json index 36e7a25c009d6..350a15421699d 100644 --- a/apps/files/l10n/cs.json +++ b/apps/files/l10n/cs.json @@ -14,8 +14,11 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Není dostatek místa pro uložení, velikost souboru je {size1}, zbývá pouze {size2}", "Target folder \"{dir}\" does not exist any more" : "Cílový adresář \"{dir}\" již neexistuje", "Not enough free space" : "Nedostatek volného prostoru", + "Uploading …" : "Nahrávání ...", "…" : "…", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} z {totalSize} ({bitrate})", + "Target folder does not exist any more" : "Cílový adresář už neexistuje", + "Error when assembling chunks, status code {status}" : "Chyba při kompletaci kusů, kód chyby {status}", "Actions" : "Činnosti", "Download" : "Stáhnout", "Rename" : "Přejmenovat", @@ -74,6 +77,9 @@ "Favorite" : "Oblíbené", "New folder" : "Nový adresář", "Upload file" : "Nahrát soubor", + "Not favorited" : "Nepřidáno do oblíbených", + "Remove from favorites" : "Odebrat z oblíbených", + "Add to favorites" : "Přidat do oblíbených", "An error occurred while trying to update the tags" : "Při pokusu o úpravu tagů nastala chyba", "Added to favorites" : "Přidán k oblíbeným", "Removed from favorites" : "Odebráno z oblíbených", @@ -119,6 +125,8 @@ "Settings" : "Nastavení", "Show hidden files" : "Zobrazit skryté soubory", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Použijte tuto adresu pro přístup k vašim souborům přes WebDAV", + "Cancel upload" : "Zrušit nahrávání", "No files in here" : "Žádné soubory", "Upload some content or sync with your devices!" : "Nahrajte nějaký obsah nebo synchronizujte se svými přístroji!", "No entries found in this folder" : "V tomto adresáři nebylo nic nalezeno", diff --git a/apps/files/l10n/es_CO.js b/apps/files/l10n/es_CO.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_CO.js +++ b/apps/files/l10n/es_CO.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_CO.json b/apps/files/l10n/es_CO.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_CO.json +++ b/apps/files/l10n/es_CO.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_CR.js b/apps/files/l10n/es_CR.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_CR.js +++ b/apps/files/l10n/es_CR.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_CR.json b/apps/files/l10n/es_CR.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_CR.json +++ b/apps/files/l10n/es_CR.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_DO.js b/apps/files/l10n/es_DO.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_DO.js +++ b/apps/files/l10n/es_DO.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_DO.json b/apps/files/l10n/es_DO.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_DO.json +++ b/apps/files/l10n/es_DO.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_EC.js b/apps/files/l10n/es_EC.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_EC.js +++ b/apps/files/l10n/es_EC.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_EC.json b/apps/files/l10n/es_EC.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_EC.json +++ b/apps/files/l10n/es_EC.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_GT.js b/apps/files/l10n/es_GT.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_GT.js +++ b/apps/files/l10n/es_GT.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_GT.json b/apps/files/l10n/es_GT.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_GT.json +++ b/apps/files/l10n/es_GT.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_HN.js b/apps/files/l10n/es_HN.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_HN.js +++ b/apps/files/l10n/es_HN.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_HN.json b/apps/files/l10n/es_HN.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_HN.json +++ b/apps/files/l10n/es_HN.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_NI.js b/apps/files/l10n/es_NI.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_NI.js +++ b/apps/files/l10n/es_NI.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_NI.json b/apps/files/l10n/es_NI.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_NI.json +++ b/apps/files/l10n/es_NI.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_PA.js b/apps/files/l10n/es_PA.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_PA.js +++ b/apps/files/l10n/es_PA.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_PA.json b/apps/files/l10n/es_PA.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_PA.json +++ b/apps/files/l10n/es_PA.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_PE.js b/apps/files/l10n/es_PE.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_PE.js +++ b/apps/files/l10n/es_PE.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_PE.json b/apps/files/l10n/es_PE.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_PE.json +++ b/apps/files/l10n/es_PE.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_PR.js b/apps/files/l10n/es_PR.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_PR.js +++ b/apps/files/l10n/es_PR.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_PR.json b/apps/files/l10n/es_PR.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_PR.json +++ b/apps/files/l10n/es_PR.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_PY.js b/apps/files/l10n/es_PY.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_PY.js +++ b/apps/files/l10n/es_PY.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_PY.json b/apps/files/l10n/es_PY.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_PY.json +++ b/apps/files/l10n/es_PY.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_SV.js b/apps/files/l10n/es_SV.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_SV.js +++ b/apps/files/l10n/es_SV.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_SV.json b/apps/files/l10n/es_SV.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_SV.json +++ b/apps/files/l10n/es_SV.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_UY.js b/apps/files/l10n/es_UY.js index 831187b5e11bd..793abaf101b5b 100644 --- a/apps/files/l10n/es_UY.js +++ b/apps/files/l10n/es_UY.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -125,6 +127,7 @@ OC.L10N.register( "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/files/l10n/es_UY.json b/apps/files/l10n/es_UY.json index 374239112cad8..4083caedd5e0c 100644 --- a/apps/files/l10n/es_UY.json +++ b/apps/files/l10n/es_UY.json @@ -17,6 +17,8 @@ "Uploading …" : "Cargando...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Target folder does not exist any more" : "La carpeta destino ya no existe", + "Error when assembling chunks, status code {status}" : "Se presentó un error al ensamblar los bloques, código de estatus {status}", "Actions" : "Acciones", "Download" : "Descargar", "Rename" : "Renombrar", @@ -123,6 +125,7 @@ "Settings" : "Configuraciones ", "Show hidden files" : "Mostrar archivos ocultos", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Usa esta dirección para acceder a tus Archivos vía WebDAV", "Cancel upload" : "Cancelar carga", "No files in here" : "No hay archivos aquí", "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", diff --git a/apps/theming/l10n/cs.js b/apps/theming/l10n/cs.js index 79c35567277fc..0c77fada48263 100644 --- a/apps/theming/l10n/cs.js +++ b/apps/theming/l10n/cs.js @@ -9,12 +9,14 @@ OC.L10N.register( "The given web address is too long" : "Zadaná webová adresa je příliš dlouhá", "The given slogan is too long" : "Zadaný slogan je příliš dlouhý", "The given color is invalid" : "Zadaná barva je neplatná", + "There is no error, the file uploaded with success" : "Nenastala žádná chyba, soubor byl úspěšně nahrán", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Nahrávaný soubor přesahuje nastavení upload_max_filesize v php.ini", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Nahraný soubor překračuje nastavení MAX_FILE_SIZE, která byla zadána ve HTML formuláři", "The uploaded file was only partially uploaded" : "Nahraný soubor byl nahrán pouze částečně", "No file was uploaded" : "Nebyl nahrán žádný soubor", "Missing a temporary folder" : "Chybí adresář pro dočasné soubory", "Failed to write file to disk." : "Selhal zápis na disk", + "A PHP extension stopped the file upload." : "Rozšíření PHP zastavilo nahrávání souboru.", "No file uploaded" : "Nenahrán žádný soubor", "Unsupported image type" : "Nepodporovaný typ obrázku", "You are already using a custom theme" : "Již používáte vlastní motiv", diff --git a/apps/theming/l10n/cs.json b/apps/theming/l10n/cs.json index c5159e547b423..05da28a614683 100644 --- a/apps/theming/l10n/cs.json +++ b/apps/theming/l10n/cs.json @@ -7,12 +7,14 @@ "The given web address is too long" : "Zadaná webová adresa je příliš dlouhá", "The given slogan is too long" : "Zadaný slogan je příliš dlouhý", "The given color is invalid" : "Zadaná barva je neplatná", + "There is no error, the file uploaded with success" : "Nenastala žádná chyba, soubor byl úspěšně nahrán", "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Nahrávaný soubor přesahuje nastavení upload_max_filesize v php.ini", "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Nahraný soubor překračuje nastavení MAX_FILE_SIZE, která byla zadána ve HTML formuláři", "The uploaded file was only partially uploaded" : "Nahraný soubor byl nahrán pouze částečně", "No file was uploaded" : "Nebyl nahrán žádný soubor", "Missing a temporary folder" : "Chybí adresář pro dočasné soubory", "Failed to write file to disk." : "Selhal zápis na disk", + "A PHP extension stopped the file upload." : "Rozšíření PHP zastavilo nahrávání souboru.", "No file uploaded" : "Nenahrán žádný soubor", "Unsupported image type" : "Nepodporovaný typ obrázku", "You are already using a custom theme" : "Již používáte vlastní motiv", diff --git a/apps/theming/l10n/es_CO.js b/apps/theming/l10n/es_CO.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_CO.js +++ b/apps/theming/l10n/es_CO.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_CO.json b/apps/theming/l10n/es_CO.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_CO.json +++ b/apps/theming/l10n/es_CO.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_CR.js b/apps/theming/l10n/es_CR.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_CR.js +++ b/apps/theming/l10n/es_CR.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_CR.json b/apps/theming/l10n/es_CR.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_CR.json +++ b/apps/theming/l10n/es_CR.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_DO.js b/apps/theming/l10n/es_DO.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_DO.js +++ b/apps/theming/l10n/es_DO.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_DO.json b/apps/theming/l10n/es_DO.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_DO.json +++ b/apps/theming/l10n/es_DO.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_EC.js b/apps/theming/l10n/es_EC.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_EC.js +++ b/apps/theming/l10n/es_EC.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_EC.json b/apps/theming/l10n/es_EC.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_EC.json +++ b/apps/theming/l10n/es_EC.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_GT.js b/apps/theming/l10n/es_GT.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_GT.js +++ b/apps/theming/l10n/es_GT.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_GT.json b/apps/theming/l10n/es_GT.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_GT.json +++ b/apps/theming/l10n/es_GT.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_HN.js b/apps/theming/l10n/es_HN.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_HN.js +++ b/apps/theming/l10n/es_HN.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_HN.json b/apps/theming/l10n/es_HN.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_HN.json +++ b/apps/theming/l10n/es_HN.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_NI.js b/apps/theming/l10n/es_NI.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_NI.js +++ b/apps/theming/l10n/es_NI.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_NI.json b/apps/theming/l10n/es_NI.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_NI.json +++ b/apps/theming/l10n/es_NI.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_PA.js b/apps/theming/l10n/es_PA.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_PA.js +++ b/apps/theming/l10n/es_PA.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_PA.json b/apps/theming/l10n/es_PA.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_PA.json +++ b/apps/theming/l10n/es_PA.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_PE.js b/apps/theming/l10n/es_PE.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_PE.js +++ b/apps/theming/l10n/es_PE.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_PE.json b/apps/theming/l10n/es_PE.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_PE.json +++ b/apps/theming/l10n/es_PE.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_PR.js b/apps/theming/l10n/es_PR.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_PR.js +++ b/apps/theming/l10n/es_PR.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_PR.json b/apps/theming/l10n/es_PR.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_PR.json +++ b/apps/theming/l10n/es_PR.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_PY.js b/apps/theming/l10n/es_PY.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_PY.js +++ b/apps/theming/l10n/es_PY.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_PY.json b/apps/theming/l10n/es_PY.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_PY.json +++ b/apps/theming/l10n/es_PY.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_SV.js b/apps/theming/l10n/es_SV.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_SV.js +++ b/apps/theming/l10n/es_SV.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_SV.json b/apps/theming/l10n/es_SV.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_SV.json +++ b/apps/theming/l10n/es_SV.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/theming/l10n/es_UY.js b/apps/theming/l10n/es_UY.js index 4f98160b14211..fba2c6263c090 100644 --- a/apps/theming/l10n/es_UY.js +++ b/apps/theming/l10n/es_UY.js @@ -33,6 +33,7 @@ OC.L10N.register( "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" }, diff --git a/apps/theming/l10n/es_UY.json b/apps/theming/l10n/es_UY.json index 866eb07f7fac8..d0be021859a9c 100644 --- a/apps/theming/l10n/es_UY.json +++ b/apps/theming/l10n/es_UY.json @@ -31,6 +31,7 @@ "Login image" : "Imágen de inicio de sesión", "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", "Remove background image" : "Eliminar imagen de fondo", + "Install the Imagemagick PHP extension with support for SVG images to automatically generate favicons based on the uploaded logo and color." : "Instala la extensión Imagemagick de PHP con soporte a imagenes SVG para generar los favicons en automático con base en el logotipo cargado y el color.", "reset to default" : "restaurar a predeterminado", "Log in image" : "Imagen de inicio de sesión" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/user_ldap/l10n/es_CO.js b/apps/user_ldap/l10n/es_CO.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_CO.js +++ b/apps/user_ldap/l10n/es_CO.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_CO.json b/apps/user_ldap/l10n/es_CO.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_CO.json +++ b/apps/user_ldap/l10n/es_CO.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_CR.js b/apps/user_ldap/l10n/es_CR.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_CR.js +++ b/apps/user_ldap/l10n/es_CR.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_CR.json b/apps/user_ldap/l10n/es_CR.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_CR.json +++ b/apps/user_ldap/l10n/es_CR.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_DO.js b/apps/user_ldap/l10n/es_DO.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_DO.js +++ b/apps/user_ldap/l10n/es_DO.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_DO.json b/apps/user_ldap/l10n/es_DO.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_DO.json +++ b/apps/user_ldap/l10n/es_DO.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_EC.js b/apps/user_ldap/l10n/es_EC.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_EC.js +++ b/apps/user_ldap/l10n/es_EC.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_EC.json b/apps/user_ldap/l10n/es_EC.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_EC.json +++ b/apps/user_ldap/l10n/es_EC.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_GT.js b/apps/user_ldap/l10n/es_GT.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_GT.js +++ b/apps/user_ldap/l10n/es_GT.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_GT.json b/apps/user_ldap/l10n/es_GT.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_GT.json +++ b/apps/user_ldap/l10n/es_GT.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_HN.js b/apps/user_ldap/l10n/es_HN.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_HN.js +++ b/apps/user_ldap/l10n/es_HN.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_HN.json b/apps/user_ldap/l10n/es_HN.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_HN.json +++ b/apps/user_ldap/l10n/es_HN.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_NI.js b/apps/user_ldap/l10n/es_NI.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_NI.js +++ b/apps/user_ldap/l10n/es_NI.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_NI.json b/apps/user_ldap/l10n/es_NI.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_NI.json +++ b/apps/user_ldap/l10n/es_NI.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_PA.js b/apps/user_ldap/l10n/es_PA.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_PA.js +++ b/apps/user_ldap/l10n/es_PA.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_PA.json b/apps/user_ldap/l10n/es_PA.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_PA.json +++ b/apps/user_ldap/l10n/es_PA.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_PE.js b/apps/user_ldap/l10n/es_PE.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_PE.js +++ b/apps/user_ldap/l10n/es_PE.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_PE.json b/apps/user_ldap/l10n/es_PE.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_PE.json +++ b/apps/user_ldap/l10n/es_PE.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_PR.js b/apps/user_ldap/l10n/es_PR.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_PR.js +++ b/apps/user_ldap/l10n/es_PR.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_PR.json b/apps/user_ldap/l10n/es_PR.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_PR.json +++ b/apps/user_ldap/l10n/es_PR.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_PY.js b/apps/user_ldap/l10n/es_PY.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_PY.js +++ b/apps/user_ldap/l10n/es_PY.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_PY.json b/apps/user_ldap/l10n/es_PY.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_PY.json +++ b/apps/user_ldap/l10n/es_PY.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_SV.js b/apps/user_ldap/l10n/es_SV.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_SV.js +++ b/apps/user_ldap/l10n/es_SV.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_SV.json b/apps/user_ldap/l10n/es_SV.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_SV.json +++ b/apps/user_ldap/l10n/es_SV.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_UY.js b/apps/user_ldap/l10n/es_UY.js index 857d2b142bf9f..6c763343f5414 100644 --- a/apps/user_ldap/l10n/es_UY.js +++ b/apps/user_ldap/l10n/es_UY.js @@ -99,6 +99,7 @@ OC.L10N.register( "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/apps/user_ldap/l10n/es_UY.json b/apps/user_ldap/l10n/es_UY.json index 507545ad99ab1..762f18dd04c2f 100644 --- a/apps/user_ldap/l10n/es_UY.json +++ b/apps/user_ldap/l10n/es_UY.json @@ -97,6 +97,7 @@ "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", "Password" : "Contraseña", "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "Save Credentials" : "Guardar credenciales", "One Base DN per line" : "Un DN Base por línea", "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", "Detect Base DN" : "Detectar DN Base", diff --git a/core/l10n/el.js b/core/l10n/el.js index 5b54318fb37a2..481ef795f9086 100644 --- a/core/l10n/el.js +++ b/core/l10n/el.js @@ -257,6 +257,8 @@ OC.L10N.register( "Stay logged in" : "Μείνετε συνδεδεμένος", "Alternative Logins" : "Εναλλακτικές είσοδοι", "Account access" : "Πρόσβαση λογαριασμού", + "You are about to grant %s access to your %s account." : "Πρόκειται να δώσετε άδεια πρόσβασης στο \"%s\" στον λογαριασμό σας \" %s\".", + "Grant access" : "Παροχή άδειας πρόσβασης", "App token" : "Διακριτικό εφαρμογής", "Alternative login using app token" : "Εναλλακτική είσοδος με την χρήση του διακριτικού της εφαρμογής", "Redirecting …" : "Γίνεται ανακατεύθυνση ...", diff --git a/core/l10n/el.json b/core/l10n/el.json index 114b8eecfbc89..ef62febbff9a6 100644 --- a/core/l10n/el.json +++ b/core/l10n/el.json @@ -255,6 +255,8 @@ "Stay logged in" : "Μείνετε συνδεδεμένος", "Alternative Logins" : "Εναλλακτικές είσοδοι", "Account access" : "Πρόσβαση λογαριασμού", + "You are about to grant %s access to your %s account." : "Πρόκειται να δώσετε άδεια πρόσβασης στο \"%s\" στον λογαριασμό σας \" %s\".", + "Grant access" : "Παροχή άδειας πρόσβασης", "App token" : "Διακριτικό εφαρμογής", "Alternative login using app token" : "Εναλλακτική είσοδος με την χρήση του διακριτικού της εφαρμογής", "Redirecting …" : "Γίνεται ανακατεύθυνση ...", diff --git a/core/l10n/es.js b/core/l10n/es.js index bf597e519904d..dcad3c0318b75 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -119,11 +119,13 @@ OC.L10N.register( "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de cabeceras del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy fiable. Si no, esto es un problema de seguridad que puede permitir que un atacante disfrazar su dirección IP como visible a Nextcloud. Se puede encontrar más información en la documentación.", "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 memcached wiki about both modules." : "Memcached está configurado como caché distribuida, pero el módulo erróneo de PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached solo soporta \"memcached\" y no \"memcache\". Vea la wiki de memcached sobre ambos módulos.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no han pasado la comprobación de integridad. Se puede encontrar más información sobre cómo resolver este problema en la documentación. (Lista de archivos inválidos... / Reescanear)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "La OPcache de PHP no está bien configurada. Para mejorar el rendimiento se recomienda usar las siguientes configuraciones en el php.ini:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función PHP \"set_time_limit\" no está disponible. Esto podría resultar en scripts detenidos a mitad de ejecución, rompiendo tu instalación. Activar esta función está fuertemente recomendado.", "Error occurred while checking server setup" : "Ha ocurrido un error al revisar la configuración del servidor", "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess no funciona. Se recomienda encarecidamente que configures tu servidor web de tal manera que el directorio de datos no sea accesible, o que lo muevas fuera de la raíz de documentos del servidor web.", "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "La cabecera HTTP \"{header}\" no está configurada como \"{expected}\". Esto es un riesgo potencial de seguridad o privacidad, y se recomienda ajustar esta configuración de forma adecuada.", "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "La cabecera HTTP \"{header}\" no está configurada como \"{expected}\". Algunas características podrían no funcionar correctamente, por lo que se recomienda ajustar esta configuración.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "La cabecera HTTP \"Strict-Transport-Security\" no está configurada en al menso \"{seconds}\". Para mejorar la seguridad, se recomienda activar HSTS como se describe en los consejos de seguridad.", "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accedes al sitio de forma insegura, vía HTTP. Se aconseja fuertemente configurar tu servidor para que requiera HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", "Shared with" : "Compartido con", diff --git a/core/l10n/es.json b/core/l10n/es.json index 70b5ad81e7891..2ac56c87d6c11 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -117,11 +117,13 @@ "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de cabeceras del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy fiable. Si no, esto es un problema de seguridad que puede permitir que un atacante disfrazar su dirección IP como visible a Nextcloud. Se puede encontrar más información en la documentación.", "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 memcached wiki about both modules." : "Memcached está configurado como caché distribuida, pero el módulo erróneo de PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached solo soporta \"memcached\" y no \"memcache\". Vea la wiki de memcached sobre ambos módulos.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no han pasado la comprobación de integridad. Se puede encontrar más información sobre cómo resolver este problema en la documentación. (Lista de archivos inválidos... / Reescanear)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "La OPcache de PHP no está bien configurada. Para mejorar el rendimiento se recomienda usar las siguientes configuraciones en el php.ini:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función PHP \"set_time_limit\" no está disponible. Esto podría resultar en scripts detenidos a mitad de ejecución, rompiendo tu instalación. Activar esta función está fuertemente recomendado.", "Error occurred while checking server setup" : "Ha ocurrido un error al revisar la configuración del servidor", "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Tu directorio de datos y tus archivos son probablemente accesibles desde internet. El archivo .htaccess no funciona. Se recomienda encarecidamente que configures tu servidor web de tal manera que el directorio de datos no sea accesible, o que lo muevas fuera de la raíz de documentos del servidor web.", "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "La cabecera HTTP \"{header}\" no está configurada como \"{expected}\". Esto es un riesgo potencial de seguridad o privacidad, y se recomienda ajustar esta configuración de forma adecuada.", "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "La cabecera HTTP \"{header}\" no está configurada como \"{expected}\". Algunas características podrían no funcionar correctamente, por lo que se recomienda ajustar esta configuración.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "La cabecera HTTP \"Strict-Transport-Security\" no está configurada en al menso \"{seconds}\". Para mejorar la seguridad, se recomienda activar HSTS como se describe en los consejos de seguridad.", "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accedes al sitio de forma insegura, vía HTTP. Se aconseja fuertemente configurar tu servidor para que requiera HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", "Shared with" : "Compartido con", diff --git a/core/l10n/es_CL.js b/core/l10n/es_CL.js index ddc87edc9d6d1..7aeec13b08705 100644 --- a/core/l10n/es_CL.js +++ b/core/l10n/es_CL.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,23 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", "Shared with" : "Compartido con", "Shared by" : "Compartido por", @@ -260,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", diff --git a/core/l10n/es_CL.json b/core/l10n/es_CL.json index 527723e4689c1..6b623fc8d6ad1 100644 --- a/core/l10n/es_CL.json +++ b/core/l10n/es_CL.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,23 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", "Shared with" : "Compartido con", "Shared by" : "Compartido por", @@ -258,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", diff --git a/core/l10n/es_CO.js b/core/l10n/es_CO.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_CO.js +++ b/core/l10n/es_CO.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_CO.json b/core/l10n/es_CO.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_CO.json +++ b/core/l10n/es_CO.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_CR.js b/core/l10n/es_CR.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_CR.js +++ b/core/l10n/es_CR.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_CR.json b/core/l10n/es_CR.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_CR.json +++ b/core/l10n/es_CR.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_DO.js b/core/l10n/es_DO.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_DO.js +++ b/core/l10n/es_DO.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_DO.json b/core/l10n/es_DO.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_DO.json +++ b/core/l10n/es_DO.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_EC.js b/core/l10n/es_EC.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_EC.js +++ b/core/l10n/es_EC.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_EC.json b/core/l10n/es_EC.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_EC.json +++ b/core/l10n/es_EC.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_GT.js b/core/l10n/es_GT.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_GT.js +++ b/core/l10n/es_GT.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_GT.json b/core/l10n/es_GT.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_GT.json +++ b/core/l10n/es_GT.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_HN.js b/core/l10n/es_HN.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_HN.js +++ b/core/l10n/es_HN.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_HN.json b/core/l10n/es_HN.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_HN.json +++ b/core/l10n/es_HN.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_NI.js b/core/l10n/es_NI.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_NI.js +++ b/core/l10n/es_NI.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_NI.json b/core/l10n/es_NI.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_NI.json +++ b/core/l10n/es_NI.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_PA.js b/core/l10n/es_PA.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_PA.js +++ b/core/l10n/es_PA.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_PA.json b/core/l10n/es_PA.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_PA.json +++ b/core/l10n/es_PA.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_PE.js b/core/l10n/es_PE.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_PE.js +++ b/core/l10n/es_PE.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_PE.json b/core/l10n/es_PE.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_PE.json +++ b/core/l10n/es_PE.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_PR.js b/core/l10n/es_PR.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_PR.js +++ b/core/l10n/es_PR.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_PR.json b/core/l10n/es_PR.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_PR.json +++ b/core/l10n/es_PR.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_PY.js b/core/l10n/es_PY.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_PY.js +++ b/core/l10n/es_PY.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_PY.json b/core/l10n/es_PY.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_PY.json +++ b/core/l10n/es_PY.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_SV.js b/core/l10n/es_SV.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_SV.js +++ b/core/l10n/es_SV.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_SV.json b/core/l10n/es_SV.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_SV.json +++ b/core/l10n/es_SV.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_UY.js b/core/l10n/es_UY.js index 9df20d5a4fc2d..7aeec13b08705 100644 --- a/core/l10n/es_UY.js +++ b/core/l10n/es_UY.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -109,8 +110,26 @@ OC.L10N.register( "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -221,6 +240,7 @@ OC.L10N.register( "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -256,6 +276,8 @@ OC.L10N.register( "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -285,6 +307,7 @@ OC.L10N.register( "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/core/l10n/es_UY.json b/core/l10n/es_UY.json index 409cbae4d5ba2..6b623fc8d6ad1 100644 --- a/core/l10n/es_UY.json +++ b/core/l10n/es_UY.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Sé lo que estoy haciendo", "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", "Reset password" : "Restablecer contraseña", + "Sending email …" : "Enviando correo electrónico ...", "No" : "No", "Yes" : "Sí", "No files in here" : "No hay archivos aquí", @@ -107,8 +108,26 @@ "So-so password" : "Contraseña aceptable", "Good password" : "Buena contraseña", "Strong password" : "Contraseña fuerte", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Tu servidor web aún no esta correctamente configurado para permitir la sincronización de archivos porque la interfaz WebDAV parece estar rota. ", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información al respecto en la documentación.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "El servidor no cuenta con una conexión a Internet: No se pudieron alcanzar múltiples endpoints. Esto significa que algunas características como montar almacenamiento externo, notificaciones de actualizaciones o instalación de aplicaciones de 3ros no funcionarán correctamente. Acceder archivos de forma remota y el envío de de notificaciones por correo electrónico puede que no funcionen tampoco. Establece una conexión desde este servidor a Internet para aprovechar todas las funcionalidades.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "No se ha configurado el caché de memoria. Para mejorar el desempeño, por favor configura un memcahce, si está disponible. Puedes encontrar más información en la documentación.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom y no se recomienda por razones de seguridad. Puedes encontrar más información en la documentación.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás ejecutando PHP {version}. Actualiza tu versión de PHP para aprovechar las actualizaciones de desempeño y seguridad proporcionadas por el Grupo PHP tan pronto como tu distribución lo soporte. ", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no es el caso, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra documentación.", + "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 memcached wiki about both modules." : "Memecahced está configurado como un cache distribuido, pero un módulo equivocado de \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memcached\". Consulta el wiki de memcached en relación a ambos módulos.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no pasaron la verificación de integridad. Puedes encontrar más información de cómo resolver este problema en la documentación. (Lista de archivos inválidos.../Volver a verificar...)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "El OPcache de PHP no está configurado correctamente. Para un mejor desempeño se recomienda usar las sigueintes configuraciones en el archivo php.ini:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La función de PHP \"set_time_limit\" no está disponible. Esto podría generar que la ejecución de scripts se detenga, rompiendo su instalación. Se recomienda ámpliamente habilitar esta función. ", "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Probablemente tu directorio de datos y archivos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Se recomienda ampliamente que configures tu servidor web para que el directorio de datos no sea accesible, o bien, que muevas el directorio de datos fuera del directorio raíz del servidor web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" está establecido a \"{expected}\". Esto representa un riesgo potencial de seguridad o privacidad, y que se recomienda ajustar esta configuración. ", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "El encabezado HTTP \"{header}\" no está establecido a \"{expected}\". Puede que lgunas características no funcionen correctamente, y se recomienda ajustar esta confirguración. ", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para una seguridad mejorada, se recomienda configurar el HSTS como se describe en los consejos de seguridad.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Accediendo al sitio de forma insegura vía HTTP. Se recomienda configurar el servidor para, en su lugar, requerir HTTPS, como se describe en los consejos de seguridad.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", "Set expiration date" : "Selecciona la vigencia de tu archivo", @@ -219,6 +238,7 @@ "Trace" : "Rastrear", "Security warning" : "Advertencia de seguridad", "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the documentation." : "Para más información de como configurar correctaemente tu servidor, por favor consulta la documentación.", "Create an admin account" : "Crear una cuenta de administrador", "Username" : "Usuario", "Storage & database" : "Almacenamiento & base de datos", @@ -254,6 +274,8 @@ "Wrong password." : "Contraseña inválida. ", "Log in" : "Ingresar", "Stay logged in" : "Mantener la sesión abierta", + "Forgot password?" : "¿Olvidaste tu contraseña?", + "Back to log in" : "Regresar al inicio de sesión", "Alternative Logins" : "Accesos Alternativos", "Account access" : "Acceo de cuenta", "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", @@ -283,6 +305,7 @@ "Detailed logs" : "Bitácoras detalladas", "Update needed" : "Se requiere de una actualización", "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the documentation." : "Para más ayuda, por favor consulta la documentación.", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", diff --git a/settings/l10n/cs.js b/settings/l10n/cs.js index 4bccc5b45cf07..2b4ab0cef9f7f 100644 --- a/settings/l10n/cs.js +++ b/settings/l10n/cs.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Účet %s byl vytvořen", "Welcome aboard" : "Vítejte na palubě", "Welcome aboard %s" : "Vítej na palubě, %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Vítejte ve svém %s účtu, můžete vkládat, chránit a sdílet svoje data.", "Your username is: %s" : "Vaše uživatelské jméno je: %s", "Set your password" : "Nastavte vaše heslo", "Go to %s" : "Jít na %s", @@ -249,18 +250,22 @@ OC.L10N.register( "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou.", "Start migration" : "Spustit migraci", "Security & setup warnings" : "Upozornění zabezpečení a nastavení", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Pro bezpečnost a správný běh vaší instance je důležité mít vše správně nakonfigurováno. Abychom vám to usnadnili, provádíme pár automatických kontrol. Pro více informací, prosím, navštivte sekci Tipy & Triky a také dokumentaci.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP není nejspíše správně nastaveno pro dotazování na proměnné hodnoty systému. Test s getenv(\"PATH\") vrací pouze prázdnou odpověď.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Prosím, podívejte se v instalační dokumentaci ↗ po poznámkách o konfiguraci PHP a také po samotné konfiguraci PHP na vašem serveru, zvlášť pokud používáte php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfigurace je nastavena pouze pro čtení. Toto znemožňuje některá nastavení přes webové rozhraní. Dále musí být pro každou změnu povolen zápis do konfiguračního souboru ručně.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek znepřístupnění mnoha důležitých aplikací.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Vaše databáze neběží s úrovní izolace transakcí \"READ COMMITTED\". Toto může způsobit problémy při paralelním spouštění více akcí současně.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "Je nainstalován %1$s nižší verze než %2$s, z důvodu lepší stability a výkonu doporučujeme aktualizovat na novější verzi %1$s.", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Modul PHP 'fileinfo' chybí. Důrazně se doporučuje, aby tento modul pro získání lepších výsledků při zjišťování typu MIME byl povolen.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "Transakční zamykání souborů je vypnuto, což by mohlo vést k problémům se souběhem úloh. Povolte 'filelocking.enabled' v config.php, abyste se těmto problémům vyhnuli. Pro více informací si prohlédněte dokumentaci ↗.", "System locale can not be set to a one which supports UTF-8." : "Není možné nastavit znakovou sadu, která podporuje UTF-8.", "This means that there might be problems with certain characters in filenames." : "To znamená, že se mohou vyskytnout problémy s určitými znaky v názvech souborů.", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Velmi doporučujeme nainstalovat požadované balíčky do systému, pro podporu jednoho z následujících národních prostředí: %s.", "If your installation is not installed at 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\")" : "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwrite.cli.url\" (Je doporučena tato: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Nebylo možné spustit službu cron v CLI. Došlo k následujícím technickým chybám:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Prosím, důkladně si přečtěte průvodce instalací ↗a zkontrolujte, že v logu nejsou žádné chyby ani žádná varování.", "All checks passed." : "Všechny testy byly úspěšné.", "Background jobs" : "Úkoly na pozadí", "Last job ran %s." : "Poslední úkol proběhl: %s.", diff --git a/settings/l10n/cs.json b/settings/l10n/cs.json index 361082ead0717..c3f0698f2edf8 100644 --- a/settings/l10n/cs.json +++ b/settings/l10n/cs.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Účet %s byl vytvořen", "Welcome aboard" : "Vítejte na palubě", "Welcome aboard %s" : "Vítej na palubě, %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Vítejte ve svém %s účtu, můžete vkládat, chránit a sdílet svoje data.", "Your username is: %s" : "Vaše uživatelské jméno je: %s", "Set your password" : "Nastavte vaše heslo", "Go to %s" : "Jít na %s", @@ -247,18 +248,22 @@ "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Musíte přenést své šifrovací klíče ze staré verze šifrování (ownCloud <= 8.0) na novou.", "Start migration" : "Spustit migraci", "Security & setup warnings" : "Upozornění zabezpečení a nastavení", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Pro bezpečnost a správný běh vaší instance je důležité mít vše správně nakonfigurováno. Abychom vám to usnadnili, provádíme pár automatických kontrol. Pro více informací, prosím, navštivte sekci Tipy & Triky a také dokumentaci.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP není nejspíše správně nastaveno pro dotazování na proměnné hodnoty systému. Test s getenv(\"PATH\") vrací pouze prázdnou odpověď.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Prosím, podívejte se v instalační dokumentaci ↗ po poznámkách o konfiguraci PHP a také po samotné konfiguraci PHP na vašem serveru, zvlášť pokud používáte php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Konfigurace je nastavena pouze pro čtení. Toto znemožňuje některá nastavení přes webové rozhraní. Dále musí být pro každou změnu povolen zápis do konfiguračního souboru ručně.", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP je patrně nastaveno tak, aby odstraňovalo bloky komentářů. Toto bude mít za následek znepřístupnění mnoha důležitých aplikací.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Toto je pravděpodobně způsobeno aplikacemi pro urychlení načítání jako jsou Zend OPcache nebo eAccelerator.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Vaše databáze neběží s úrovní izolace transakcí \"READ COMMITTED\". Toto může způsobit problémy při paralelním spouštění více akcí současně.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "Je nainstalován %1$s nižší verze než %2$s, z důvodu lepší stability a výkonu doporučujeme aktualizovat na novější verzi %1$s.", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "Modul PHP 'fileinfo' chybí. Důrazně se doporučuje, aby tento modul pro získání lepších výsledků při zjišťování typu MIME byl povolen.", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "Transakční zamykání souborů je vypnuto, což by mohlo vést k problémům se souběhem úloh. Povolte 'filelocking.enabled' v config.php, abyste se těmto problémům vyhnuli. Pro více informací si prohlédněte dokumentaci ↗.", "System locale can not be set to a one which supports UTF-8." : "Není možné nastavit znakovou sadu, která podporuje UTF-8.", "This means that there might be problems with certain characters in filenames." : "To znamená, že se mohou vyskytnout problémy s určitými znaky v názvech souborů.", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Velmi doporučujeme nainstalovat požadované balíčky do systému, pro podporu jednoho z následujících národních prostředí: %s.", "If your installation is not installed at 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\")" : "Instalace mimo kořenový adresář domény a používání systémového příkazu cron může způsobit problém s generováním správné URL. Pro zabránění těmto chybám nastavte prosím správnou cestu ve svém config.php souboru v hodnotě \"overwrite.cli.url\" (Je doporučena tato: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "Nebylo možné spustit službu cron v CLI. Došlo k následujícím technickým chybám:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Prosím, důkladně si přečtěte průvodce instalací ↗a zkontrolujte, že v logu nejsou žádné chyby ani žádná varování.", "All checks passed." : "Všechny testy byly úspěšné.", "Background jobs" : "Úkoly na pozadí", "Last job ran %s." : "Poslední úkol proběhl: %s.", diff --git a/settings/l10n/es_CO.js b/settings/l10n/es_CO.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_CO.js +++ b/settings/l10n/es_CO.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_CO.json b/settings/l10n/es_CO.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_CO.json +++ b/settings/l10n/es_CO.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_CR.js b/settings/l10n/es_CR.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_CR.js +++ b/settings/l10n/es_CR.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_CR.json b/settings/l10n/es_CR.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_CR.json +++ b/settings/l10n/es_CR.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_DO.js b/settings/l10n/es_DO.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_DO.js +++ b/settings/l10n/es_DO.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_DO.json b/settings/l10n/es_DO.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_DO.json +++ b/settings/l10n/es_DO.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_EC.js b/settings/l10n/es_EC.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_EC.js +++ b/settings/l10n/es_EC.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_EC.json b/settings/l10n/es_EC.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_EC.json +++ b/settings/l10n/es_EC.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_GT.js b/settings/l10n/es_GT.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_GT.js +++ b/settings/l10n/es_GT.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_GT.json b/settings/l10n/es_GT.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_GT.json +++ b/settings/l10n/es_GT.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_HN.js b/settings/l10n/es_HN.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_HN.js +++ b/settings/l10n/es_HN.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_HN.json b/settings/l10n/es_HN.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_HN.json +++ b/settings/l10n/es_HN.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_NI.js b/settings/l10n/es_NI.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_NI.js +++ b/settings/l10n/es_NI.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_NI.json b/settings/l10n/es_NI.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_NI.json +++ b/settings/l10n/es_NI.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_PA.js b/settings/l10n/es_PA.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_PA.js +++ b/settings/l10n/es_PA.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_PA.json b/settings/l10n/es_PA.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_PA.json +++ b/settings/l10n/es_PA.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_PE.js b/settings/l10n/es_PE.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_PE.js +++ b/settings/l10n/es_PE.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_PE.json b/settings/l10n/es_PE.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_PE.json +++ b/settings/l10n/es_PE.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_PR.js b/settings/l10n/es_PR.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_PR.js +++ b/settings/l10n/es_PR.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_PR.json b/settings/l10n/es_PR.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_PR.json +++ b/settings/l10n/es_PR.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_PY.js b/settings/l10n/es_PY.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_PY.js +++ b/settings/l10n/es_PY.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_PY.json b/settings/l10n/es_PY.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_PY.json +++ b/settings/l10n/es_PY.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_SV.js b/settings/l10n/es_SV.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_SV.js +++ b/settings/l10n/es_SV.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_SV.json b/settings/l10n/es_SV.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_SV.json +++ b/settings/l10n/es_SV.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_UY.js b/settings/l10n/es_UY.js index 778fbb8c4b133..43dc7b0d4f2b6 100644 --- a/settings/l10n/es_UY.js +++ b/settings/l10n/es_UY.js @@ -72,6 +72,7 @@ OC.L10N.register( "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -251,17 +252,20 @@ OC.L10N.register( "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -297,6 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", diff --git a/settings/l10n/es_UY.json b/settings/l10n/es_UY.json index 5e12d650ac32e..a41a4c70b9b01 100644 --- a/settings/l10n/es_UY.json +++ b/settings/l10n/es_UY.json @@ -70,6 +70,7 @@ "Your %s account was created" : "Tu cuenta %s ha sido creada", "Welcome aboard" : "Bienvenido a bordo", "Welcome aboard %s" : "Bienvenido a bordo %s", + "Welcome to your %s account, you can add, protect, and share your data." : "Bienvenido a tu cuenta %s, puedes agregar, proteger y compartir tus datos.", "Your username is: %s" : "Tu Usuario es: %s", "Set your password" : "Establece tu contraseña", "Go to %s" : "Ir a %s", @@ -249,17 +250,20 @@ "Security & setup warnings" : "Advertencias de seguridad y configuración", "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the installation documentation ↗ for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la documentación de instalación ↗ para notas de configuración de PHP y la configuración de tu servidor de PHP, especialmete al usar php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the documentation ↗ for more information." : "El bloqueo de archivos transaccional está deshabilitado. Esto puede generar problemas con condiciones extremas. Habilita 'filelocking.enabled' en el archivo config.php para evitar estos problemas. Consulta la documentación ↗ para más información. ", "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", "If your installation is not installed at 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\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the installation guides ↗, and check for any errors or warnings in the log." : "Por favor verifica las guias de instalación ↗, y valida si hay algún error o advertencia en la bitácora.", "All checks passed." : "Pasaron todas las verificaciones. ", "Background jobs" : "Trabajos en segundo plano", "Last job ran %s." : "El último trabajo corrió %s.", @@ -295,6 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Para migrar a otra base de datos usa la herramienta de línea de comandos; 'occ db:convert-type', o bien consulta la documentación ↗ .", "How to do backups" : "Cómo hacer respaldos", "Advanced monitoring" : "Monitoreo avanzado", "Performance tuning" : "Optimización de rendimiento", From 65d7468bf3c15c7983d9d8e4e73513ffa1d8b973 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Fri, 1 Dec 2017 11:47:56 +0100 Subject: [PATCH 40/92] check userExists later, saves lookups for appData_INSTANCEID userids Signed-off-by: Arthur Schiwon --- apps/files_trashbin/lib/Storage.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_trashbin/lib/Storage.php b/apps/files_trashbin/lib/Storage.php index 1193d6ec5614a..5eaf502f236dd 100644 --- a/apps/files_trashbin/lib/Storage.php +++ b/apps/files_trashbin/lib/Storage.php @@ -237,7 +237,7 @@ protected function shouldMoveToTrash($path){ return false; } - if ($this->userManager->userExists($parts[1]) && $parts[2] === 'files') { + if ($parts[2] === 'files' && $this->userManager->userExists($parts[1])) { return true; } From 2c3d97cc8fadf6b0d68076bea123963b7d40d2e5 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Fri, 1 Dec 2017 16:14:51 +0100 Subject: [PATCH 41/92] check if $defaultLanguage is a valid string before we move on Signed-off-by: Bjoern Schiessle --- lib/private/L10N/Factory.php | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/private/L10N/Factory.php b/lib/private/L10N/Factory.php index 150b36cec44d3..e277a00e653d5 100644 --- a/lib/private/L10N/Factory.php +++ b/lib/private/L10N/Factory.php @@ -290,8 +290,9 @@ protected function respectDefaultLanguage($app, $lang) { // use formal version of german ("Sie" instead of "Du") if the default // language is set to 'de_DE' if possible - if (strtolower($lang) === 'de' - && strtolower($defaultLanguage) === 'de_de' && + if (is_string($defaultLanguage) && + strtolower($lang) === 'de' && + strtolower($defaultLanguage) === 'de_de' && $this->languageExists($app, 'de_DE') ) { $result = 'de_DE'; From 3578acb1445addfc186c173c4358eaa363daeda7 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Fri, 1 Dec 2017 16:15:44 +0100 Subject: [PATCH 42/92] update documentation Signed-off-by: Bjoern Schiessle --- config/config.sample.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/config/config.sample.php b/config/config.sample.php index 022b807a881a5..d329582e14c54 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -157,7 +157,11 @@ * language codes such as ``en`` for English, ``de`` for German, and ``fr`` for * French. It overrides automatic language detection on public pages like login * or shared items. User's language preferences configured under "personal -> - * language" override this setting after they have logged in. + * language" override this setting after they have logged in. Nextcloud has two + * distinguished language codes for German, 'de' and 'de_DE'. 'de' is used for + * informal German and 'de_DE' for formal German. By setting this value to 'de_DE' + * you can enforce the formal version of German unless the user has chosen + * something different explicitly. * * Defaults to ``en`` */ From cec236f0af124c96ab596709569f487e18bcc212 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Sat, 2 Dec 2017 01:10:32 +0000 Subject: [PATCH 43/92] [tx-robot] updated from transifex --- apps/comments/l10n/fr.js | 2 ++ apps/comments/l10n/fr.json | 2 ++ apps/comments/l10n/pl.js | 2 ++ apps/comments/l10n/pl.json | 2 ++ apps/dav/l10n/pl.js | 9 +++++++++ apps/dav/l10n/pl.json | 9 +++++++++ apps/files_trashbin/l10n/pt_PT.js | 2 +- apps/files_trashbin/l10n/pt_PT.json | 2 +- apps/user_ldap/l10n/sk.js | 16 ++++++++++++---- apps/user_ldap/l10n/sk.json | 16 ++++++++++++---- core/l10n/fr.js | 9 +++++++++ core/l10n/fr.json | 9 +++++++++ core/l10n/pl.js | 15 +++++++++++++++ core/l10n/pl.json | 15 +++++++++++++++ 14 files changed, 100 insertions(+), 10 deletions(-) diff --git a/apps/comments/l10n/fr.js b/apps/comments/l10n/fr.js index 06b06536f16c8..01f065c7df444 100644 --- a/apps/comments/l10n/fr.js +++ b/apps/comments/l10n/fr.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s a commenté %2$s", "{author} commented on {file}" : "{author} a commenté sur {file}", "Comments for files" : "Commentaires sur les fichiers", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Vous avez été mentionné sur \"%s\", dans un commentaire par un utilisateur qui a été supprimé depuis lors.", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Vous avez été mentionné sur \"{file}\", dans un commentaire par un utilisateur qui a été supprimé depuis lors.", "%1$s mentioned you in a comment on “%2$s”" : "%1$s vous a mentionné⋅e dans un commentaire sur “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} vous a mentionné⋅e dans un commentaire sur “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un·e utilisateur·trice (maintenant supprimé·e) vous a mentionné·e dans un commentaire sur “%s”", diff --git a/apps/comments/l10n/fr.json b/apps/comments/l10n/fr.json index 96273aabef25c..cb39e6cb2f39d 100644 --- a/apps/comments/l10n/fr.json +++ b/apps/comments/l10n/fr.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s a commenté %2$s", "{author} commented on {file}" : "{author} a commenté sur {file}", "Comments for files" : "Commentaires sur les fichiers", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Vous avez été mentionné sur \"%s\", dans un commentaire par un utilisateur qui a été supprimé depuis lors.", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Vous avez été mentionné sur \"{file}\", dans un commentaire par un utilisateur qui a été supprimé depuis lors.", "%1$s mentioned you in a comment on “%2$s”" : "%1$s vous a mentionné⋅e dans un commentaire sur “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} vous a mentionné⋅e dans un commentaire sur “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Un·e utilisateur·trice (maintenant supprimé·e) vous a mentionné·e dans un commentaire sur “%s”", diff --git a/apps/comments/l10n/pl.js b/apps/comments/l10n/pl.js index c3007a1e2de5c..a96868579bae2 100644 --- a/apps/comments/l10n/pl.js +++ b/apps/comments/l10n/pl.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s skomentował/-a %2$s", "{author} commented on {file}" : "{author} skomentował/-a w {file}‭", "Comments for files" : "Komentarze dla plików", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Zostałeś/aś wspomniany/a w \"%s\" przez użytkownika, który został usunięty", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Zostałeś/aś wspomniany/a w \"{file}\" w komentarzach przez użytkownika, który został usunięty", "%1$s mentioned you in a comment on “%2$s”" : "%1$s wspomniał/-a o Tobie w komentarzu “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} wspomniał/-a o Tobie w komentarzu “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Pewien (obecnie) usunięty użytkownik wspomniał o Tobie w komentarzu “%s”", diff --git a/apps/comments/l10n/pl.json b/apps/comments/l10n/pl.json index 50ef729dda177..e54d616c230a4 100644 --- a/apps/comments/l10n/pl.json +++ b/apps/comments/l10n/pl.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s skomentował/-a %2$s", "{author} commented on {file}" : "{author} skomentował/-a w {file}‭", "Comments for files" : "Komentarze dla plików", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Zostałeś/aś wspomniany/a w \"%s\" przez użytkownika, który został usunięty", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Zostałeś/aś wspomniany/a w \"{file}\" w komentarzach przez użytkownika, który został usunięty", "%1$s mentioned you in a comment on “%2$s”" : "%1$s wspomniał/-a o Tobie w komentarzu “%2$s”", "{user} mentioned you in a comment on “{file}”" : "{user} wspomniał/-a o Tobie w komentarzu “{file}”", "A (now) deleted user mentioned you in a comment on “%s”" : "Pewien (obecnie) usunięty użytkownik wspomniał o Tobie w komentarzu “%s”", diff --git a/apps/dav/l10n/pl.js b/apps/dav/l10n/pl.js index 6658c94370d31..6240fc9cab41b 100644 --- a/apps/dav/l10n/pl.js +++ b/apps/dav/l10n/pl.js @@ -41,8 +41,17 @@ OC.L10N.register( "A calendar event was modified" : "Zdarzenie kalendarza zostało zmodyfikowane", "A calendar todo was modified" : "Kalendarz zadań został zmieniony", "Contact birthdays" : "Urodziny kontaktu", + "%s via %s" : "%s przez %s", + "Invitation canceled" : "Zaproszenie anulowane", + "Hello %s," : "Witaj %s,", + "The meeting »%s« with %s was canceled." : "Spotkanie »%s« z %s zostało anulowane.", + "Invitation updated" : "Zaproszenie zaktualizowane", + "The meeting »%s« with %s was updated." : "Spotkanie »%s« z %s zostało zaktualizowane.", + "%s invited you to »%s«" : "%s zaprosił Cię do »%s«", "When:" : "Kiedy:", + "Where:" : "Gdzie: ", "Description:" : "Opis:", + "Link:" : "Link: ", "Contacts" : "Kontakty", "Technical details" : "Szczegóły techniczne", "Remote Address: %s" : "Adres zdalny: %s", diff --git a/apps/dav/l10n/pl.json b/apps/dav/l10n/pl.json index 988c604b9ceab..eb949a6e0522e 100644 --- a/apps/dav/l10n/pl.json +++ b/apps/dav/l10n/pl.json @@ -39,8 +39,17 @@ "A calendar event was modified" : "Zdarzenie kalendarza zostało zmodyfikowane", "A calendar todo was modified" : "Kalendarz zadań został zmieniony", "Contact birthdays" : "Urodziny kontaktu", + "%s via %s" : "%s przez %s", + "Invitation canceled" : "Zaproszenie anulowane", + "Hello %s," : "Witaj %s,", + "The meeting »%s« with %s was canceled." : "Spotkanie »%s« z %s zostało anulowane.", + "Invitation updated" : "Zaproszenie zaktualizowane", + "The meeting »%s« with %s was updated." : "Spotkanie »%s« z %s zostało zaktualizowane.", + "%s invited you to »%s«" : "%s zaprosił Cię do »%s«", "When:" : "Kiedy:", + "Where:" : "Gdzie: ", "Description:" : "Opis:", + "Link:" : "Link: ", "Contacts" : "Kontakty", "Technical details" : "Szczegóły techniczne", "Remote Address: %s" : "Adres zdalny: %s", diff --git a/apps/files_trashbin/l10n/pt_PT.js b/apps/files_trashbin/l10n/pt_PT.js index fbf8401925115..2cacf2fbe6860 100644 --- a/apps/files_trashbin/l10n/pt_PT.js +++ b/apps/files_trashbin/l10n/pt_PT.js @@ -14,7 +14,7 @@ OC.L10N.register( "No deleted files" : "Sem ficheiros eliminados", "You will be able to recover deleted files from here" : "Poderá recuperar ficheiros eliminados a partir daqui", "No entries found in this folder" : "Não foram encontradas entradas nesta pasta", - "Select all" : "Selecionar todos", + "Select all" : "Selecionar tudo", "Name" : "Nome", "Deleted" : "Eliminado" }, diff --git a/apps/files_trashbin/l10n/pt_PT.json b/apps/files_trashbin/l10n/pt_PT.json index d4fe15313f90a..8fb47b3a30114 100644 --- a/apps/files_trashbin/l10n/pt_PT.json +++ b/apps/files_trashbin/l10n/pt_PT.json @@ -12,7 +12,7 @@ "No deleted files" : "Sem ficheiros eliminados", "You will be able to recover deleted files from here" : "Poderá recuperar ficheiros eliminados a partir daqui", "No entries found in this folder" : "Não foram encontradas entradas nesta pasta", - "Select all" : "Selecionar todos", + "Select all" : "Selecionar tudo", "Name" : "Nome", "Deleted" : "Eliminado" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/user_ldap/l10n/sk.js b/apps/user_ldap/l10n/sk.js index 05ec82cd481e4..2b41ebd1a8532 100644 --- a/apps/user_ldap/l10n/sk.js +++ b/apps/user_ldap/l10n/sk.js @@ -8,6 +8,11 @@ OC.L10N.register( "No data specified" : "Nie sú vybraté dáta", " Could not set configuration %s" : "Nemôžem nastaviť konfiguráciu %s", "Action does not exist" : "Takáto akcia neexistuje", + "Very weak password" : "Veľmi slabé heslo", + "Weak password" : "Slabé heslo", + "So-so password" : "Priemerné heslo", + "Good password" : "Dobré heslo", + "Strong password" : "Silné heslo", "The Base DN appears to be wrong" : "Základné DN je chybné", "Testing configuration…" : "Overujú sa nastavenia...", "Configuration incorrect" : "Nesprávna konfigurácia", @@ -40,6 +45,10 @@ OC.L10N.register( "Please provide a login name to test against" : "Zadajte prihlasovacie meno na otestovanie", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Pole skupín bolo vypnuté, pretože LDAP / AD server nepodporuje memberOf.", "Password change rejected. Hint: " : "Zmena hesla zamietnutá. Vodítko:", + "Please login with the new password" : "Prihláste sa prosím novým heslom", + "Your password will expire tomorrow." : "Vaše heslo expiruje zajtra.", + "Your password will expire today." : "Vaše heslo expiruje dnes.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Vaše heslo expiruje o %n deň.","Vaše heslo expiruje o %n dni.","Vaše heslo expiruje o %n dní."], "LDAP / AD integration" : "Spolupráca s LDAP/AD", "_%s group found_::_%s groups found_" : ["%s nájdená skupina","%s nájdené skupiny","%s nájdených skupín"], "_%s user found_::_%s users found_" : ["%s nájdený používateľ","%s nájdení používatelia","%s nájdených používateľov"], @@ -59,9 +68,7 @@ OC.L10N.register( "When logging in, %s will find the user based on the following attributes:" : "Pri prihlasovaní, %s bude vyhľadávať používateľov na základe týchto atribútov:", "LDAP / AD Username:" : "Používateľské meno LDAP / AD:", "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", - "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Povoliť prihlásenie prostredníctvom emailu. Povolené atribúty sú Mail a mailPrimaryAddress.", "Other Attributes:" : "Iné atribúty:", - "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Určuje použitý filter, pri pokuse o prihlásenie. %%uid nahrádza používateľské meno v činnosti prihlásenia. Napríklad: \"uid=%%uid\"", "Test Loginname" : "Testovacie prihlasovacie meno", "Verify settings" : "Overiť nastavenia", "1. Server" : "1. Server", @@ -87,7 +94,8 @@ OC.L10N.register( "Saving" : "Ukladá sa", "Back" : "Späť", "Continue" : "Pokračovať", - "LDAP" : "LDAP", + "New password" : "Nové heslo", + "Wrong password." : "Nesprávne heslo.", "Server" : "Server", "Users" : "Používatelia", "Login Attributes" : "Prihlasovacie atribúty", @@ -142,9 +150,9 @@ OC.L10N.register( "Clear Groupname-LDAP Group Mapping" : "Zrušiť mapovanie názvov LDAP skupín", "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Chýba zástupný znak %uid. Bude nahradený prihlasovacím menom pri požiadavke do LDAP / AD.", "Verify settings and count groups" : "Overiť nastavenia a spočítať skupiny", - "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Povoliť prihlásenie prostredníctvom LDAP / AD používateľského mena, ktoré má zadanú hodnotu v atribútoch uid alebo samaccountname.", "Add a new and blank configuration" : "Pridať novú prázdnu konfiguráciu", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Môžete vynechať protokol, okrem prípadu, kedy sa vyžaduje SSL. Vtedy začnite s ldaps://", + "LDAP" : "LDAP", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "Upozornenie: Aplikácie user_ldap a user_webdavauth sú navzájom nekompatibilné. Môžete zaznamenať neočakávané správanie. Požiadajte prosím vášho systémového administrátora pre zakázanie jedného z nich.", "in bytes" : "v bajtoch" }, diff --git a/apps/user_ldap/l10n/sk.json b/apps/user_ldap/l10n/sk.json index e8617fe177391..ea8a50dc92fa3 100644 --- a/apps/user_ldap/l10n/sk.json +++ b/apps/user_ldap/l10n/sk.json @@ -6,6 +6,11 @@ "No data specified" : "Nie sú vybraté dáta", " Could not set configuration %s" : "Nemôžem nastaviť konfiguráciu %s", "Action does not exist" : "Takáto akcia neexistuje", + "Very weak password" : "Veľmi slabé heslo", + "Weak password" : "Slabé heslo", + "So-so password" : "Priemerné heslo", + "Good password" : "Dobré heslo", + "Strong password" : "Silné heslo", "The Base DN appears to be wrong" : "Základné DN je chybné", "Testing configuration…" : "Overujú sa nastavenia...", "Configuration incorrect" : "Nesprávna konfigurácia", @@ -38,6 +43,10 @@ "Please provide a login name to test against" : "Zadajte prihlasovacie meno na otestovanie", "The group box was disabled, because the LDAP / AD server does not support memberOf." : "Pole skupín bolo vypnuté, pretože LDAP / AD server nepodporuje memberOf.", "Password change rejected. Hint: " : "Zmena hesla zamietnutá. Vodítko:", + "Please login with the new password" : "Prihláste sa prosím novým heslom", + "Your password will expire tomorrow." : "Vaše heslo expiruje zajtra.", + "Your password will expire today." : "Vaše heslo expiruje dnes.", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["Vaše heslo expiruje o %n deň.","Vaše heslo expiruje o %n dni.","Vaše heslo expiruje o %n dní."], "LDAP / AD integration" : "Spolupráca s LDAP/AD", "_%s group found_::_%s groups found_" : ["%s nájdená skupina","%s nájdené skupiny","%s nájdených skupín"], "_%s user found_::_%s users found_" : ["%s nájdený používateľ","%s nájdení používatelia","%s nájdených používateľov"], @@ -57,9 +66,7 @@ "When logging in, %s will find the user based on the following attributes:" : "Pri prihlasovaní, %s bude vyhľadávať používateľov na základe týchto atribútov:", "LDAP / AD Username:" : "Používateľské meno LDAP / AD:", "LDAP / AD Email Address:" : "LDAP / AD emailová adresa:", - "Allows login against an email attribute. Mail and mailPrimaryAddress will be allowed." : "Povoliť prihlásenie prostredníctvom emailu. Povolené atribúty sú Mail a mailPrimaryAddress.", "Other Attributes:" : "Iné atribúty:", - "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" : "Určuje použitý filter, pri pokuse o prihlásenie. %%uid nahrádza používateľské meno v činnosti prihlásenia. Napríklad: \"uid=%%uid\"", "Test Loginname" : "Testovacie prihlasovacie meno", "Verify settings" : "Overiť nastavenia", "1. Server" : "1. Server", @@ -85,7 +92,8 @@ "Saving" : "Ukladá sa", "Back" : "Späť", "Continue" : "Pokračovať", - "LDAP" : "LDAP", + "New password" : "Nové heslo", + "Wrong password." : "Nesprávne heslo.", "Server" : "Server", "Users" : "Používatelia", "Login Attributes" : "Prihlasovacie atribúty", @@ -140,9 +148,9 @@ "Clear Groupname-LDAP Group Mapping" : "Zrušiť mapovanie názvov LDAP skupín", "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Chýba zástupný znak %uid. Bude nahradený prihlasovacím menom pri požiadavke do LDAP / AD.", "Verify settings and count groups" : "Overiť nastavenia a spočítať skupiny", - "Allows login against the LDAP / AD username, which is either uid or samaccountname and will be detected." : "Povoliť prihlásenie prostredníctvom LDAP / AD používateľského mena, ktoré má zadanú hodnotu v atribútoch uid alebo samaccountname.", "Add a new and blank configuration" : "Pridať novú prázdnu konfiguráciu", "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Môžete vynechať protokol, okrem prípadu, kedy sa vyžaduje SSL. Vtedy začnite s ldaps://", + "LDAP" : "LDAP", "Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "Upozornenie: Aplikácie user_ldap a user_webdavauth sú navzájom nekompatibilné. Môžete zaznamenať neočakávané správanie. Požiadajte prosím vášho systémového administrátora pre zakázanie jedného z nich.", "in bytes" : "v bajtoch" },"pluralForm" :"nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;" diff --git a/core/l10n/fr.js b/core/l10n/fr.js index 1975b911da23d..b1468ce3217e4 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -110,8 +110,17 @@ OC.L10N.register( "So-so password" : "Mot de passe tout juste acceptable", "Good password" : "Mot de passe de sécurité suffisante", "Strong password" : "Mot de passe fort", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas encore correctement configuré pour la synchronisation de fichiers parce que l'interface WebDAV semble ne pas fonctionner.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "La configuration du serveur web ne permet pas d'atteindre \"{url}\". Vous trouverez plus d'informations dans la documentation.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom n'est pas lisible par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Vous utilisez actuellement PHP {version}. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.", "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 memcached wiki about both modules." : "\"memcached\" est configuré comme cache distribué, mais le mauvais module PHP \"memcache\" est installé. \\OC\\Memcache\\Memcached ne prend en charge que \"memcached\" et non \"memcache\". Consulter le wiki de memcached à propos de ces deux modules.", "Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou de le déplacer hors de la racine du serveur web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Ceci constitue un risque potentiel relatif à la sécurité et à la vie privée étant donné qu'il est recommandé d'ajuster ce paramètre.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Certaines fonctionnalités peuvent ne pas fonctionner correctement étant donné qu'il est recommandé d'ajuster ce paramètre.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée à au moins \"{seconds}\" secondes. Pour renforcer la sécurité, nous recommandons d'activer HSTS comme décrit dans nos conseils de sécurisation.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos conseils de sécurisation.", "Shared" : "Partagé", "Shared with" : "Partagé avec", "Shared by" : "Partagé par", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index c49acd7ca9e08..b39ac9f91d5df 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -108,8 +108,17 @@ "So-so password" : "Mot de passe tout juste acceptable", "Good password" : "Mot de passe de sécurité suffisante", "Strong password" : "Mot de passe fort", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas encore correctement configuré pour la synchronisation de fichiers parce que l'interface WebDAV semble ne pas fonctionner.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "La configuration du serveur web ne permet pas d'atteindre \"{url}\". Vous trouverez plus d'informations dans la documentation.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom n'est pas lisible par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Vous utilisez actuellement PHP {version}. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.", "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 memcached wiki about both modules." : "\"memcached\" est configuré comme cache distribué, mais le mauvais module PHP \"memcache\" est installé. \\OC\\Memcache\\Memcached ne prend en charge que \"memcached\" et non \"memcache\". Consulter le wiki de memcached à propos de ces deux modules.", "Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou de le déplacer hors de la racine du serveur web.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Ceci constitue un risque potentiel relatif à la sécurité et à la vie privée étant donné qu'il est recommandé d'ajuster ce paramètre.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Certaines fonctionnalités peuvent ne pas fonctionner correctement étant donné qu'il est recommandé d'ajuster ce paramètre.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée à au moins \"{seconds}\" secondes. Pour renforcer la sécurité, nous recommandons d'activer HSTS comme décrit dans nos conseils de sécurisation.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos conseils de sécurisation.", "Shared" : "Partagé", "Shared with" : "Partagé avec", "Shared by" : "Partagé par", diff --git a/core/l10n/pl.js b/core/l10n/pl.js index ef1b2ae409c79..fe3136d99dc0a 100644 --- a/core/l10n/pl.js +++ b/core/l10n/pl.js @@ -110,8 +110,23 @@ OC.L10N.register( "So-so password" : "Mało skomplikowane hasło", "Good password" : "Dobre hasło", "Strong password" : "Silne hasło", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Serwer WWW nie jest jeszcze na tyle poprawnie skonfigurowany, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Twój serwer WWW nie jest poprawnie skonfigurowany aby poprawnie wyświetlić \"{url}\". Więcej informacji można znaleźć w naszej dokumentacji.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Serwer nie ma aktywnego połączenia z Internetem. Wiele połączeń nie może być osiągniętych. Oznacza to, że część funkcji takich jak zewnętrzny magazyn, powiadomienia o aktualizacjach lub instalacja aplikacji firm trzecich nie będzie działała. Dostęp zdalny do plików oraz wysyłanie powiadomień mailowych również może nie działać. Sugerujemy udostępnienie połączenia z Internetem temu serwerowi jeśli chcesz mieć pełną funkcjonalność.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Nie skonfigurowano pamięci cache. Jeśli to możliwe skonfiguruj pamięć cache, aby zwiększyć wydajność. Więcej informacji można znaleźć w naszej dokumentacji.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP nie może czytać z /dev/urandom co jest wymagane ze względów bezpieczeństwa. Więcej informacji można znaleźć w naszej dokumentacji.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Posiadasz aktualnie PHP w wersji {version}. Aby skorzystać z aktualizacji dotyczących wydajności i bezpieczeństwa otrzymanych z PHP Group zachęcamy do podniesienia wersji PHP, kiedy tylko Twoja dystrybucja będzie je wspierała.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Konfiguracja nagłówków reverse proxy jest niepoprawna albo łączysz się do Nextclouda przez zaufane proxy. Jeśli nie łączysz się z zaufanego proxy, to jest to problem bezpieczeństwa i atakujący może podszyć się pod adres IP jako widoczny dla Nextclouda. Więcej informacji można znaleźć w naszej dokumentacji.", "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 memcached wiki about both modules." : "Jako cache jest skonfigurowane \"memcached\", ale błędny moduł PHP \"memcache\" jest zainstalowany. \\OC\\Memcache\\Memcached wspiera tylko \"memcached\", a nie \"memcache\". Sprawdź memcached wiki o obu tych modułach.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Niektóre pliki nie przeszły sprawdzania spójności. Dalsze informacje jak to naprawić mogą być znalezione w naszej dokumentacji. (Lista niepoprawnych plików... / Skanowanie ponowne…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "PHP OPcache nie jest prawidłowo skonfigurowany Dla lepszej wydajności zalecamy użycie następujących ustawień w php.ini: ", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "Funkcja PHP \"set_time_limit\" nie jest dostępna. Może to powodować zatrzymanie skryptów w podczas działania i w efekcie przerwanie instalacji. Silnie rekomendujemy włączenie tej funkcji.", "Error occurred while checking server setup" : "Pojawił się błąd podczas sprawdzania ustawień serwera", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Twój katalog z danymi i twoje pliki prawdopodobnie są dostępne przez Internet. Plik .htaccess nie działa. Usilnie zalecamy, żebyś tak skonfigurował swój serwer, żeby katalog z danymi nie był dalej dostępny lub przenieś swój katalog z danymi poza katalog root serwera webowego.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Nagłówek HTTP {header} nie jest skonfigurowany, aby pasował do {expected}. Jest to poterncjalne zagrożenie prywatności oraz bezpieczeństwa i zalecamy poprawienie tego ustawienia.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "Nagłówek HTTP {header} nie jest skonfigurowany, aby pasował do {expected}. Jest to poterncjalne zagrożenie prywatności oraz bezpieczeństwa i zalecamy poprawienie tego ustawienia.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "Nagłówek HTTP \"Strict-Transport-Security\" nie jest ustawiony na przynajmniej \"{seconds}\" sekund. Dla zwiększenia bezpieczeństwa zalecamy ustawienie HSTS tak jak opisaliśmy to w naszych wskazówkach dotyczących bezpieczeństwa.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Dostęp do tej strony jest za pośrednictwem protokołu HTTP. Zalecamy skonfigurowanie dostępu do serwera za pomocą protokołu HTTPS zamiast HTTP, jak to opisano w naszych wskazówkach bezpieczeństwa.", "Shared" : "Udostępniono", "Shared with" : "Współdzielone z", "Shared by" : "Współdzielone przez", diff --git a/core/l10n/pl.json b/core/l10n/pl.json index 0fcb430eff643..f13d11a17d86e 100644 --- a/core/l10n/pl.json +++ b/core/l10n/pl.json @@ -108,8 +108,23 @@ "So-so password" : "Mało skomplikowane hasło", "Good password" : "Dobre hasło", "Strong password" : "Silne hasło", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Serwer WWW nie jest jeszcze na tyle poprawnie skonfigurowany, aby umożliwić synchronizację plików, ponieważ interfejs WebDAV wydaje się być uszkodzony.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Twój serwer WWW nie jest poprawnie skonfigurowany aby poprawnie wyświetlić \"{url}\". Więcej informacji można znaleźć w naszej dokumentacji.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Serwer nie ma aktywnego połączenia z Internetem. Wiele połączeń nie może być osiągniętych. Oznacza to, że część funkcji takich jak zewnętrzny magazyn, powiadomienia o aktualizacjach lub instalacja aplikacji firm trzecich nie będzie działała. Dostęp zdalny do plików oraz wysyłanie powiadomień mailowych również może nie działać. Sugerujemy udostępnienie połączenia z Internetem temu serwerowi jeśli chcesz mieć pełną funkcjonalność.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Nie skonfigurowano pamięci cache. Jeśli to możliwe skonfiguruj pamięć cache, aby zwiększyć wydajność. Więcej informacji można znaleźć w naszej dokumentacji.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP nie może czytać z /dev/urandom co jest wymagane ze względów bezpieczeństwa. Więcej informacji można znaleźć w naszej dokumentacji.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Posiadasz aktualnie PHP w wersji {version}. Aby skorzystać z aktualizacji dotyczących wydajności i bezpieczeństwa otrzymanych z PHP Group zachęcamy do podniesienia wersji PHP, kiedy tylko Twoja dystrybucja będzie je wspierała.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Konfiguracja nagłówków reverse proxy jest niepoprawna albo łączysz się do Nextclouda przez zaufane proxy. Jeśli nie łączysz się z zaufanego proxy, to jest to problem bezpieczeństwa i atakujący może podszyć się pod adres IP jako widoczny dla Nextclouda. Więcej informacji można znaleźć w naszej dokumentacji.", "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 memcached wiki about both modules." : "Jako cache jest skonfigurowane \"memcached\", ale błędny moduł PHP \"memcache\" jest zainstalowany. \\OC\\Memcache\\Memcached wspiera tylko \"memcached\", a nie \"memcache\". Sprawdź memcached wiki o obu tych modułach.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Niektóre pliki nie przeszły sprawdzania spójności. Dalsze informacje jak to naprawić mogą być znalezione w naszej dokumentacji. (Lista niepoprawnych plików... / Skanowanie ponowne…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "PHP OPcache nie jest prawidłowo skonfigurowany Dla lepszej wydajności zalecamy użycie następujących ustawień w php.ini: ", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "Funkcja PHP \"set_time_limit\" nie jest dostępna. Może to powodować zatrzymanie skryptów w podczas działania i w efekcie przerwanie instalacji. Silnie rekomendujemy włączenie tej funkcji.", "Error occurred while checking server setup" : "Pojawił się błąd podczas sprawdzania ustawień serwera", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Twój katalog z danymi i twoje pliki prawdopodobnie są dostępne przez Internet. Plik .htaccess nie działa. Usilnie zalecamy, żebyś tak skonfigurował swój serwer, żeby katalog z danymi nie był dalej dostępny lub przenieś swój katalog z danymi poza katalog root serwera webowego.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Nagłówek HTTP {header} nie jest skonfigurowany, aby pasował do {expected}. Jest to poterncjalne zagrożenie prywatności oraz bezpieczeństwa i zalecamy poprawienie tego ustawienia.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "Nagłówek HTTP {header} nie jest skonfigurowany, aby pasował do {expected}. Jest to poterncjalne zagrożenie prywatności oraz bezpieczeństwa i zalecamy poprawienie tego ustawienia.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "Nagłówek HTTP \"Strict-Transport-Security\" nie jest ustawiony na przynajmniej \"{seconds}\" sekund. Dla zwiększenia bezpieczeństwa zalecamy ustawienie HSTS tak jak opisaliśmy to w naszych wskazówkach dotyczących bezpieczeństwa.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Dostęp do tej strony jest za pośrednictwem protokołu HTTP. Zalecamy skonfigurowanie dostępu do serwera za pomocą protokołu HTTPS zamiast HTTP, jak to opisano w naszych wskazówkach bezpieczeństwa.", "Shared" : "Udostępniono", "Shared with" : "Współdzielone z", "Shared by" : "Współdzielone przez", From bd1e357eefee5ddfbb3b3567b0eae4f49bc22b75 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Sun, 3 Dec 2017 01:10:22 +0000 Subject: [PATCH 44/92] [tx-robot] updated from transifex --- apps/user_ldap/l10n/sk.js | 3 +++ apps/user_ldap/l10n/sk.json | 3 +++ core/l10n/ru.js | 5 +++++ core/l10n/ru.json | 5 +++++ 4 files changed, 16 insertions(+) diff --git a/apps/user_ldap/l10n/sk.js b/apps/user_ldap/l10n/sk.js index 2b41ebd1a8532..0abdc64532787 100644 --- a/apps/user_ldap/l10n/sk.js +++ b/apps/user_ldap/l10n/sk.js @@ -3,6 +3,7 @@ OC.L10N.register( { "Failed to clear the mappings." : "Nepodarilo sa vymazať mapovania.", "Failed to delete the server configuration" : "Zlyhalo zmazanie nastavenia servera.", + "Valid configuration, connection established!" : "Platná konfigurácia, spojenie nadviazané!", "No action specified" : "Nie je vybraná akcia", "No configuration specified" : "Nie je určená konfigurácia", "No data specified" : "Nie sú vybraté dáta", @@ -73,6 +74,7 @@ OC.L10N.register( "Verify settings" : "Overiť nastavenia", "1. Server" : "1. Server", "%s. Server:" : "%s. Server:", + "Add a new configuration" : "Pridať novú konfiguráciu", "Copy current configuration into new directory binding" : "Skopírovať súčasnú konfiguráciu do nového adresárového pripojenia", "Delete the current configuration" : "Vymazať súčasnú konfiguráciu", "Host" : "Hostiteľ", @@ -96,6 +98,7 @@ OC.L10N.register( "Continue" : "Pokračovať", "New password" : "Nové heslo", "Wrong password." : "Nesprávne heslo.", + "Cancel" : "Zrušiť", "Server" : "Server", "Users" : "Používatelia", "Login Attributes" : "Prihlasovacie atribúty", diff --git a/apps/user_ldap/l10n/sk.json b/apps/user_ldap/l10n/sk.json index ea8a50dc92fa3..3ecf301e2ed81 100644 --- a/apps/user_ldap/l10n/sk.json +++ b/apps/user_ldap/l10n/sk.json @@ -1,6 +1,7 @@ { "translations": { "Failed to clear the mappings." : "Nepodarilo sa vymazať mapovania.", "Failed to delete the server configuration" : "Zlyhalo zmazanie nastavenia servera.", + "Valid configuration, connection established!" : "Platná konfigurácia, spojenie nadviazané!", "No action specified" : "Nie je vybraná akcia", "No configuration specified" : "Nie je určená konfigurácia", "No data specified" : "Nie sú vybraté dáta", @@ -71,6 +72,7 @@ "Verify settings" : "Overiť nastavenia", "1. Server" : "1. Server", "%s. Server:" : "%s. Server:", + "Add a new configuration" : "Pridať novú konfiguráciu", "Copy current configuration into new directory binding" : "Skopírovať súčasnú konfiguráciu do nového adresárového pripojenia", "Delete the current configuration" : "Vymazať súčasnú konfiguráciu", "Host" : "Hostiteľ", @@ -94,6 +96,7 @@ "Continue" : "Pokračovať", "New password" : "Nové heslo", "Wrong password." : "Nesprávne heslo.", + "Cancel" : "Zrušiť", "Server" : "Server", "Users" : "Používatelia", "Login Attributes" : "Prihlasovacie atribúty", diff --git a/core/l10n/ru.js b/core/l10n/ru.js index 3cdb7a5b65725..5eb555fbd9c20 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -110,8 +110,13 @@ OC.L10N.register( "So-so password" : "Так себе пароль", "Good password" : "Хороший пароль", "Strong password" : "Надёжный пароль", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Ваш веб-сервер ещё не настроен должным образом для синхронизации файлов — интерфейс WebDAV, кажется, испорчен.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Ваш веб-сервер не настроен должным образом для разрешения «{url}». Дополнительная информация может быть найдена в нашей документации.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Этот сервер не подключён к Интернету: множество конечных устройств не могут быть доступны. Это означает, что не будут работать некоторые функции, такие как подключение внешнего хранилища, уведомления об обновлениях или установка сторонних приложений. Так же могут не работать удалённый доступ к файлам и отправка уведомлений по электронной почте. Для использования всех возможностей рекомендуем разрешить серверу доступ в Интернет, ", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информация доступна в документации.", "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 memcached wiki about both modules." : "Memcached настроен на распределенный кеш, но установлен неподдерживаемый модуль PHP «memcache». \\OC\\Memcache\\Memcached поддерживает только модуль «memcached», но не «memcache». Дополнительная информации на wiki странице memcached об обоих модулях.", "Error occurred while checking server setup" : "Произошла ошибка при проверке настроек сервера", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "Заголовок HTTP «Strict-Transport-Security» должен быть настроен как минимум на «{seconds}» секунд. Для улучшения безопасности рекомендуется включить HSTS согласно нашим подсказкам по безопасности.", "Shared" : "Общий доступ", "Shared with" : "Общий доступ", "Shared by" : "Доступ предоставлен", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index fd7130968d713..87817ec066983 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -108,8 +108,13 @@ "So-so password" : "Так себе пароль", "Good password" : "Хороший пароль", "Strong password" : "Надёжный пароль", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Ваш веб-сервер ещё не настроен должным образом для синхронизации файлов — интерфейс WebDAV, кажется, испорчен.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Ваш веб-сервер не настроен должным образом для разрешения «{url}». Дополнительная информация может быть найдена в нашей документации.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Этот сервер не подключён к Интернету: множество конечных устройств не могут быть доступны. Это означает, что не будут работать некоторые функции, такие как подключение внешнего хранилища, уведомления об обновлениях или установка сторонних приложений. Так же могут не работать удалённый доступ к файлам и отправка уведомлений по электронной почте. Для использования всех возможностей рекомендуем разрешить серверу доступ в Интернет, ", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информация доступна в документации.", "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 memcached wiki about both modules." : "Memcached настроен на распределенный кеш, но установлен неподдерживаемый модуль PHP «memcache». \\OC\\Memcache\\Memcached поддерживает только модуль «memcached», но не «memcache». Дополнительная информации на wiki странице memcached об обоих модулях.", "Error occurred while checking server setup" : "Произошла ошибка при проверке настроек сервера", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "Заголовок HTTP «Strict-Transport-Security» должен быть настроен как минимум на «{seconds}» секунд. Для улучшения безопасности рекомендуется включить HSTS согласно нашим подсказкам по безопасности.", "Shared" : "Общий доступ", "Shared with" : "Общий доступ", "Shared by" : "Доступ предоставлен", From 72bb7c30745b6e9c170b108e9b0840a1373e3453 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Sun, 3 Dec 2017 12:02:29 +0100 Subject: [PATCH 45/92] Fix PHP doc for API docs Signed-off-by: Morris Jobke --- lib/private/Hooks/EmitterTrait.php | 2 +- lib/private/Support/CrashReport/Registry.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/private/Hooks/EmitterTrait.php b/lib/private/Hooks/EmitterTrait.php index cb061d4b998f6..da8b8460d0a60 100644 --- a/lib/private/Hooks/EmitterTrait.php +++ b/lib/private/Hooks/EmitterTrait.php @@ -25,7 +25,7 @@ trait EmitterTrait { /** - * @var (callable[])[] $listeners + * @var callable[][] $listeners */ protected $listeners = array(); diff --git a/lib/private/Support/CrashReport/Registry.php b/lib/private/Support/CrashReport/Registry.php index 670cea3da0e13..5eb78965c19f2 100644 --- a/lib/private/Support/CrashReport/Registry.php +++ b/lib/private/Support/CrashReport/Registry.php @@ -29,7 +29,7 @@ class Registry implements IRegistry { - /** @var array */ + /** @var IReporter[] */ private $reporters = []; /** From 567757c793faed6925a538571a9e4f5b8b396bfd Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Mon, 4 Dec 2017 01:10:30 +0000 Subject: [PATCH 46/92] [tx-robot] updated from transifex --- apps/comments/l10n/ru.js | 2 ++ apps/comments/l10n/ru.json | 2 ++ apps/theming/l10n/el.js | 1 + apps/theming/l10n/el.json | 1 + core/l10n/lt_LT.js | 3 +++ core/l10n/lt_LT.json | 3 +++ core/l10n/ru.js | 2 ++ core/l10n/ru.json | 2 ++ core/l10n/tr.js | 5 +++++ core/l10n/tr.json | 5 +++++ 10 files changed, 26 insertions(+) diff --git a/apps/comments/l10n/ru.js b/apps/comments/l10n/ru.js index f358db180dde4..fd8ae519de6e0 100644 --- a/apps/comments/l10n/ru.js +++ b/apps/comments/l10n/ru.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s прокомментировано на %2$s", "{author} commented on {file}" : "{author} прокомментировал {file}", "Comments for files" : "Комментарии к файлам", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Вы были упомянуты в комментарии к файлу «%s» пользователем, учётная запись которого была удалена", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Вы были упомянуты в комментарии к файлу «{file}» пользователем, учётная запись которого была удалена", "%1$s mentioned you in a comment on “%2$s”" : "%1$s упомянул вас в комментарии к \"%2$s\"", "{user} mentioned you in a comment on “{file}”" : "{user} упомянул вас в комментарии к “{file}”.", "A (now) deleted user mentioned you in a comment on “%s”" : "Пользователь (удалённый в настоящее время) упомянул вас в комментарии к “%s”.", diff --git a/apps/comments/l10n/ru.json b/apps/comments/l10n/ru.json index 16515f18e64f5..5a5298cd12478 100644 --- a/apps/comments/l10n/ru.json +++ b/apps/comments/l10n/ru.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s прокомментировано на %2$s", "{author} commented on {file}" : "{author} прокомментировал {file}", "Comments for files" : "Комментарии к файлам", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Вы были упомянуты в комментарии к файлу «%s» пользователем, учётная запись которого была удалена", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Вы были упомянуты в комментарии к файлу «{file}» пользователем, учётная запись которого была удалена", "%1$s mentioned you in a comment on “%2$s”" : "%1$s упомянул вас в комментарии к \"%2$s\"", "{user} mentioned you in a comment on “{file}”" : "{user} упомянул вас в комментарии к “{file}”.", "A (now) deleted user mentioned you in a comment on “%s”" : "Пользователь (удалённый в настоящее время) упомянул вас в комментарии к “%s”.", diff --git a/apps/theming/l10n/el.js b/apps/theming/l10n/el.js index 94ff0484dd7b8..fbe6f15a97c98 100644 --- a/apps/theming/l10n/el.js +++ b/apps/theming/l10n/el.js @@ -9,6 +9,7 @@ OC.L10N.register( "The given web address is too long" : "Η διεύθυνση ιστοσελίδας που δόθηκε είναι πολύ μεγάλη.", "The given slogan is too long" : "Το ρητό που δόθηκε είναι πολύ μεγάλο", "The given color is invalid" : "Δόθηκε μη έγκυρο χρώμα", + "There is no error, the file uploaded with success" : "Δεν υπάρχει σφάλμα, το αρχείο μεταφορτώθηκε με επιτυχία", "No file uploaded" : "Δεν έχει μεταφορτωθεί αρχείο", "Unsupported image type" : "Μη υποστηριζόμενος τύπος εικόνας", "You are already using a custom theme" : "Χρησιμοποιείτε ήδη προσαρμοσμένο θέμα", diff --git a/apps/theming/l10n/el.json b/apps/theming/l10n/el.json index 23ba15d4720d8..776b1c9d15370 100644 --- a/apps/theming/l10n/el.json +++ b/apps/theming/l10n/el.json @@ -7,6 +7,7 @@ "The given web address is too long" : "Η διεύθυνση ιστοσελίδας που δόθηκε είναι πολύ μεγάλη.", "The given slogan is too long" : "Το ρητό που δόθηκε είναι πολύ μεγάλο", "The given color is invalid" : "Δόθηκε μη έγκυρο χρώμα", + "There is no error, the file uploaded with success" : "Δεν υπάρχει σφάλμα, το αρχείο μεταφορτώθηκε με επιτυχία", "No file uploaded" : "Δεν έχει μεταφορτωθεί αρχείο", "Unsupported image type" : "Μη υποστηριζόμενος τύπος εικόνας", "You are already using a custom theme" : "Χρησιμοποιείτε ήδη προσαρμοσμένο θέμα", diff --git a/core/l10n/lt_LT.js b/core/l10n/lt_LT.js index e45bf19bdb3d0..1215ac92d6640 100644 --- a/core/l10n/lt_LT.js +++ b/core/l10n/lt_LT.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Aš žinau ką darau", "Password can not be changed. Please contact your administrator." : "Slaptažodis negali būti pakeistas, susisiekite su savo administratoriumi.", "Reset password" : "Atstatyti slaptažodį", + "Sending email …" : "Siunčiamas el. laiškas ...", "No" : "Ne", "Yes" : "Taip", "No files in here" : "Čia failų nėra", @@ -109,6 +110,8 @@ OC.L10N.register( "So-so password" : "Neblogas slaptažodis", "Good password" : "Geras slaptažodis", "Strong password" : "Stiprus slaptažodis", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Jūsų svetainės serveris nėra tinkamai sukonfiguruotas, Failų sinchronizavimas negalimas, nes neveikia WebDAV interfeisas.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Jūsų svetainės serveris nėra sukonfiguruotas atpažinti \"{url}\". Daugiau informacijos rasite dokumentacijoje.", "Error occurred while checking server setup" : "Tikrinant serverio sąranką, įvyko klaida", "Shared" : "Dalinamasi", "Error setting expiration date" : "Klaida nustatant dalinimosi pabaigos laiką", diff --git a/core/l10n/lt_LT.json b/core/l10n/lt_LT.json index 26add476ba947..5a32e29d098d7 100644 --- a/core/l10n/lt_LT.json +++ b/core/l10n/lt_LT.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Aš žinau ką darau", "Password can not be changed. Please contact your administrator." : "Slaptažodis negali būti pakeistas, susisiekite su savo administratoriumi.", "Reset password" : "Atstatyti slaptažodį", + "Sending email …" : "Siunčiamas el. laiškas ...", "No" : "Ne", "Yes" : "Taip", "No files in here" : "Čia failų nėra", @@ -107,6 +108,8 @@ "So-so password" : "Neblogas slaptažodis", "Good password" : "Geras slaptažodis", "Strong password" : "Stiprus slaptažodis", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Jūsų svetainės serveris nėra tinkamai sukonfiguruotas, Failų sinchronizavimas negalimas, nes neveikia WebDAV interfeisas.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Jūsų svetainės serveris nėra sukonfiguruotas atpažinti \"{url}\". Daugiau informacijos rasite dokumentacijoje.", "Error occurred while checking server setup" : "Tikrinant serverio sąranką, įvyko klaida", "Shared" : "Dalinamasi", "Error setting expiration date" : "Klaida nustatant dalinimosi pabaigos laiką", diff --git a/core/l10n/ru.js b/core/l10n/ru.js index 5eb555fbd9c20..c528876c28dfd 100644 --- a/core/l10n/ru.js +++ b/core/l10n/ru.js @@ -114,6 +114,8 @@ OC.L10N.register( "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Ваш веб-сервер не настроен должным образом для разрешения «{url}». Дополнительная информация может быть найдена в нашей документации.", "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Этот сервер не подключён к Интернету: множество конечных устройств не могут быть доступны. Это означает, что не будут работать некоторые функции, такие как подключение внешнего хранилища, уведомления об обновлениях или установка сторонних приложений. Так же могут не работать удалённый доступ к файлам и отправка уведомлений по электронной почте. Для использования всех возможностей рекомендуем разрешить серверу доступ в Интернет, ", "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информация доступна в документации.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP не имеет доступа на чтение к /dev/urandom, что крайне нежелательно по соображениям безопасности. Дополнительную информацию можно найти в нашей документации .", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Вы используете PHP {version}. Рекомендуется обновить версию PHP, чтобы воспользоваться улучшениями производительности и безопасности, внедрёнными PHP Group сразу, как только новая версия будет доступна в Вашем дистрибутиве. ", "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 memcached wiki about both modules." : "Memcached настроен на распределенный кеш, но установлен неподдерживаемый модуль PHP «memcache». \\OC\\Memcache\\Memcached поддерживает только модуль «memcached», но не «memcache». Дополнительная информации на wiki странице memcached об обоих модулях.", "Error occurred while checking server setup" : "Произошла ошибка при проверке настроек сервера", "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "Заголовок HTTP «Strict-Transport-Security» должен быть настроен как минимум на «{seconds}» секунд. Для улучшения безопасности рекомендуется включить HSTS согласно нашим подсказкам по безопасности.", diff --git a/core/l10n/ru.json b/core/l10n/ru.json index 87817ec066983..c44e029612d44 100644 --- a/core/l10n/ru.json +++ b/core/l10n/ru.json @@ -112,6 +112,8 @@ "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Ваш веб-сервер не настроен должным образом для разрешения «{url}». Дополнительная информация может быть найдена в нашей документации.", "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Этот сервер не подключён к Интернету: множество конечных устройств не могут быть доступны. Это означает, что не будут работать некоторые функции, такие как подключение внешнего хранилища, уведомления об обновлениях или установка сторонних приложений. Так же могут не работать удалённый доступ к файлам и отправка уведомлений по электронной почте. Для использования всех возможностей рекомендуем разрешить серверу доступ в Интернет, ", "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Не настроена система кеширования. Для увеличения производительности сервера, по возможности, настройте memcache. Более подробная информация доступна в документации.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP не имеет доступа на чтение к /dev/urandom, что крайне нежелательно по соображениям безопасности. Дополнительную информацию можно найти в нашей документации .", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Вы используете PHP {version}. Рекомендуется обновить версию PHP, чтобы воспользоваться улучшениями производительности и безопасности, внедрёнными PHP Group сразу, как только новая версия будет доступна в Вашем дистрибутиве. ", "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 memcached wiki about both modules." : "Memcached настроен на распределенный кеш, но установлен неподдерживаемый модуль PHP «memcache». \\OC\\Memcache\\Memcached поддерживает только модуль «memcached», но не «memcache». Дополнительная информации на wiki странице memcached об обоих модулях.", "Error occurred while checking server setup" : "Произошла ошибка при проверке настроек сервера", "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "Заголовок HTTP «Strict-Transport-Security» должен быть настроен как минимум на «{seconds}» секунд. Для улучшения безопасности рекомендуется включить HSTS согласно нашим подсказкам по безопасности.", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index 4bd73db73b7ad..eb0d364e409c4 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -110,6 +110,11 @@ OC.L10N.register( "So-so password" : "Parola idare eder", "Good password" : "Parola iyi", "Strong password" : "Parola güçlü", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Web sunucunuz dosya eşitlemesi için doğru şekilde ayarlanmamış. WebDAV arabirimi sorunlu görünüyor.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Web sunucunuz \"{url}\" adresi çözümlemesi için doğru şekilde ayarlanmamış. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Birden çok uç noktaya erişilemez. Bu durumda dış depolama alanı bağlama, güncelleme bildirimleri ya da üçüncü taraf uygulamalarını kurmak gibi bazı özellikler çalışmaz. Dosyalara uzaktan erişim ve bildirim e-postalarının gönderilmesi işlemleri de yapılamaz. Tüm bu özelliklerin kullanılabilmesi için sunucuyu İnternet üzerine bağlamanız önerilir.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Henüz bir ön bellek yapılandırılmamış. Olabiliyorsa başarımı arttırmak için memcache önbellek ayarlarını yapın. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "Güvenlik nedeniyle kullanılması önerilen /dev/urandom klasörü PHP tarafından okunamıyor. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "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 memcached wiki about both modules." : "Memcached dağıtık bellek olarak yapılandırılmış ancak kurulmuş PHP \"memcache\" modülü yanlış. \\OC\\Memcache\\Memcached yalnız \"memcache\" modülünü değil \"memcached\" mdoülünü destekler. İki modül hakkında ayrıntılı bilgi almak için memcached wiki sayfasına bakabilirsiniz.", "Error occurred while checking server setup" : "Sunucu ayarları denetlenirken sorun çıktı", "Shared" : "Paylaşılmış", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index 07f127d5f8364..863428fb00ab4 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -108,6 +108,11 @@ "So-so password" : "Parola idare eder", "Good password" : "Parola iyi", "Strong password" : "Parola güçlü", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Web sunucunuz dosya eşitlemesi için doğru şekilde ayarlanmamış. WebDAV arabirimi sorunlu görünüyor.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Web sunucunuz \"{url}\" adresi çözümlemesi için doğru şekilde ayarlanmamış. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Birden çok uç noktaya erişilemez. Bu durumda dış depolama alanı bağlama, güncelleme bildirimleri ya da üçüncü taraf uygulamalarını kurmak gibi bazı özellikler çalışmaz. Dosyalara uzaktan erişim ve bildirim e-postalarının gönderilmesi işlemleri de yapılamaz. Tüm bu özelliklerin kullanılabilmesi için sunucuyu İnternet üzerine bağlamanız önerilir.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Henüz bir ön bellek yapılandırılmamış. Olabiliyorsa başarımı arttırmak için memcache önbellek ayarlarını yapın. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "Güvenlik nedeniyle kullanılması önerilen /dev/urandom klasörü PHP tarafından okunamıyor. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "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 memcached wiki about both modules." : "Memcached dağıtık bellek olarak yapılandırılmış ancak kurulmuş PHP \"memcache\" modülü yanlış. \\OC\\Memcache\\Memcached yalnız \"memcache\" modülünü değil \"memcached\" mdoülünü destekler. İki modül hakkında ayrıntılı bilgi almak için memcached wiki sayfasına bakabilirsiniz.", "Error occurred while checking server setup" : "Sunucu ayarları denetlenirken sorun çıktı", "Shared" : "Paylaşılmış", From c87d6892531c75c7d34bd4493f4569c8ab828c0e Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 4 Dec 2017 15:16:39 +0100 Subject: [PATCH 47/92] delay calculating the shared cache root until it's used Signed-off-by: Robin Appelman --- apps/files_sharing/lib/Cache.php | 44 ++++++++++++------- lib/private/Files/Cache/Wrapper/CacheJail.php | 23 ++++++---- 2 files changed, 41 insertions(+), 26 deletions(-) diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php index e08da0d73e578..352001ecbd4c1 100644 --- a/apps/files_sharing/lib/Cache.php +++ b/apps/files_sharing/lib/Cache.php @@ -64,23 +64,29 @@ public function __construct($storage, ICacheEntry $sourceRootInfo) { $this->sourceRootInfo = $sourceRootInfo; $this->numericId = $sourceRootInfo->getStorageId(); - $absoluteRoot = $this->sourceRootInfo->getPath(); - - // the sourceRootInfo path is the absolute path of the folder in the "real" storage - // in the case where a folder is shared from a Jail we need to ensure that the share Jail - // has it's root set relative to the source Jail - $currentStorage = $storage->getSourceStorage(); - if ($currentStorage->instanceOfStorage(Jail::class)) { - /** @var Jail $currentStorage */ - $absoluteRoot = $currentStorage->getJailedPath($absoluteRoot); - } - parent::__construct( null, - $absoluteRoot + null ); } + protected function getRoot() { + if (is_null($this->root)) { + $absoluteRoot = $this->sourceRootInfo->getPath(); + + // the sourceRootInfo path is the absolute path of the folder in the "real" storage + // in the case where a folder is shared from a Jail we need to ensure that the share Jail + // has it's root set relative to the source Jail + $currentStorage = $this->storage->getSourceStorage(); + if ($currentStorage->instanceOfStorage(Jail::class)) { + /** @var Jail $currentStorage */ + $absoluteRoot = $currentStorage->getJailedPath($absoluteRoot); + } + $this->root = $absoluteRoot; + } + return $this->root; + } + public function getCache() { if (is_null($this->cache)) { $sourceStorage = $this->storage->getSourceStorage(); @@ -104,7 +110,7 @@ public function getNumericStorageId() { public function get($file) { if ($this->rootUnchanged && ($file === '' || $file === $this->sourceRootInfo->getId())) { - return $this->formatCacheEntry(clone $this->sourceRootInfo); + return $this->formatCacheEntry(clone $this->sourceRootInfo, ''); } return parent::get($file); } @@ -129,16 +135,20 @@ public function moveFromCache(\OCP\Files\Cache\ICache $sourceCache, $sourcePath, return parent::moveFromCache($sourceCache, $sourcePath, $targetPath); } - protected function formatCacheEntry($entry) { - $path = isset($entry['path']) ? $entry['path'] : ''; - $entry = parent::formatCacheEntry($entry); + protected function formatCacheEntry($entry, $path = null) { + if (is_null($path)) { + $path = isset($entry['path']) ? $entry['path'] : ''; + $entry['path'] = $this->getJailedPath($path); + } else { + $entry['path'] = $path; + } $sharePermissions = $this->storage->getPermissions($path); if (isset($entry['permissions'])) { $entry['permissions'] &= $sharePermissions; } else { $entry['permissions'] = $sharePermissions; } - $entry['uid_owner'] = $this->storage->getOwner($path); + $entry['uid_owner'] = $this->storage->getOwner(''); $entry['displayname_owner'] = $this->getOwnerDisplayName(); if ($path === '') { $entry['is_share_mount_point'] = true; diff --git a/lib/private/Files/Cache/Wrapper/CacheJail.php b/lib/private/Files/Cache/Wrapper/CacheJail.php index f14166ae840e1..357851bedd529 100644 --- a/lib/private/Files/Cache/Wrapper/CacheJail.php +++ b/lib/private/Files/Cache/Wrapper/CacheJail.php @@ -27,6 +27,7 @@ */ namespace OC\Files\Cache\Wrapper; + use OC\Files\Cache\Cache; use OCP\Files\Cache\ICacheEntry; use OCP\Files\Search\ISearchQuery; @@ -49,11 +50,15 @@ public function __construct($cache, $root) { $this->root = $root; } + protected function getRoot() { + return $this->root; + } + protected function getSourcePath($path) { if ($path === '') { - return $this->root; + return $this->getRoot(); } else { - return $this->root . '/' . ltrim($path, '/'); + return $this->getRoot() . '/' . ltrim($path, '/'); } } @@ -62,13 +67,13 @@ protected function getSourcePath($path) { * @return null|string the jailed path or null if the path is outside the jail */ protected function getJailedPath($path) { - if ($this->root === '') { + if ($this->getRoot() === '') { return $path; } - $rootLength = strlen($this->root) + 1; - if ($path === $this->root) { + $rootLength = strlen($this->getRoot()) + 1; + if ($path === $this->getRoot()) { return ''; - } else if (substr($path, 0, $rootLength) === $this->root . '/') { + } else if (substr($path, 0, $rootLength) === $this->getRoot() . '/') { return substr($path, $rootLength); } else { return null; @@ -87,8 +92,8 @@ protected function formatCacheEntry($entry) { } protected function filterCacheEntry($entry) { - $rootLength = strlen($this->root) + 1; - return ($entry['path'] === $this->root) or (substr($entry['path'], 0, $rootLength) === $this->root . '/'); + $rootLength = strlen($this->getRoot()) + 1; + return ($entry['path'] === $this->getRoot()) or (substr($entry['path'], 0, $rootLength) === $this->getRoot() . '/'); } /** @@ -190,7 +195,7 @@ protected function getMoveInfo($path) { * remove all entries for files that are stored on the storage from the cache */ public function clear() { - $this->getCache()->remove($this->root); + $this->getCache()->remove($this->getRoot()); } /** From c8a29ec94287855bcd02aad6e315a9656ba0183d Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Thu, 30 Nov 2017 21:29:06 +0100 Subject: [PATCH 48/92] A failed storage is a not available storage We have to double check. Since getting the info of the root returns a generic entry. But actually the stroage is not available. Else we get very weird sync and web behavior. Signed-off-by: Roeland Jago Douma --- apps/dav/lib/Connector/Sabre/ObjectTree.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/apps/dav/lib/Connector/Sabre/ObjectTree.php b/apps/dav/lib/Connector/Sabre/ObjectTree.php index 41bfceeab967b..d05f0857ec9e1 100644 --- a/apps/dav/lib/Connector/Sabre/ObjectTree.php +++ b/apps/dav/lib/Connector/Sabre/ObjectTree.php @@ -29,6 +29,7 @@ namespace OCA\DAV\Connector\Sabre; +use OC\Files\Storage\FailedStorage; use OCA\DAV\Connector\Sabre\Exception\Forbidden; use OCA\DAV\Connector\Sabre\Exception\InvalidPath; use OCA\DAV\Connector\Sabre\Exception\FileLocked; @@ -154,6 +155,10 @@ public function getNodeForPath($path) { // read from cache try { $info = $this->fileView->getFileInfo($path); + + if ($info->getStorage()->instanceOfStorage(FailedStorage::class)) { + throw new StorageNotAvailableException(); + } } catch (StorageNotAvailableException $e) { throw new \Sabre\DAV\Exception\ServiceUnavailable('Storage is temporarily not available'); } catch (StorageInvalidException $e) { From d2fe30d464adac9b3a4dc300aad135d1cf682017 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Fri, 1 Dec 2017 12:34:37 +0100 Subject: [PATCH 49/92] Fix tests Signed-off-by: Roeland Jago Douma --- apps/dav/lib/Connector/Sabre/ObjectTree.php | 2 +- apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/apps/dav/lib/Connector/Sabre/ObjectTree.php b/apps/dav/lib/Connector/Sabre/ObjectTree.php index d05f0857ec9e1..25db1d5028c30 100644 --- a/apps/dav/lib/Connector/Sabre/ObjectTree.php +++ b/apps/dav/lib/Connector/Sabre/ObjectTree.php @@ -156,7 +156,7 @@ public function getNodeForPath($path) { try { $info = $this->fileView->getFileInfo($path); - if ($info->getStorage()->instanceOfStorage(FailedStorage::class)) { + if ($info instanceof \OCP\Files\FileInfo && $info->getStorage()->instanceOfStorage(FailedStorage::class)) { throw new StorageNotAvailableException(); } } catch (StorageNotAvailableException $e) { diff --git a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php index a8fbcb39a85d4..cd575e4ff3c19 100644 --- a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php @@ -174,6 +174,8 @@ public function testGetNodeForPath( $fileInfo->expects($this->once()) ->method('getName') ->will($this->returnValue($outputFileName)); + $fileInfo->method('getStorage') + ->willReturn($this->createMock(\OC\Files\Storage\Common::class)); $view->expects($this->once()) ->method('getFileInfo') From 046eb0c635cbfe3ceb21da8f13a2159ec12264e1 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Mon, 4 Dec 2017 16:34:53 +0100 Subject: [PATCH 50/92] add retry wrapper when reading files from swift Signed-off-by: Robin Appelman --- apps/files_external/lib/Lib/Storage/Swift.php | 3 ++- lib/private/Files/ObjectStore/Swift.php | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/apps/files_external/lib/Lib/Storage/Swift.php b/apps/files_external/lib/Lib/Storage/Swift.php index 970ade02ceac1..f07087e903d30 100644 --- a/apps/files_external/lib/Lib/Storage/Swift.php +++ b/apps/files_external/lib/Lib/Storage/Swift.php @@ -43,6 +43,7 @@ use Guzzle\Http\Exception\ClientErrorResponseException; use Icewind\Streams\CallbackWrapper; use Icewind\Streams\IteratorDirectory; +use Icewind\Streams\RetryWrapper; use OpenCloud; use OpenCloud\Common\Exceptions; use OpenCloud\OpenStack; @@ -389,7 +390,7 @@ public function fopen($path, $mode) { stream_context_set_option($stream, 'swift','content', $streamInterface); if(!strrpos($streamInterface ->getMetaData('wrapper_data')[0], '404 Not Found')) { - return $stream; + return RetryWrapper::wrap($stream); } return false; } catch (\Guzzle\Http\Exception\BadResponseException $e) { diff --git a/lib/private/Files/ObjectStore/Swift.php b/lib/private/Files/ObjectStore/Swift.php index 2ee3a2d62d374..ecfbe136e4c0e 100644 --- a/lib/private/Files/ObjectStore/Swift.php +++ b/lib/private/Files/ObjectStore/Swift.php @@ -26,6 +26,7 @@ namespace OC\Files\ObjectStore; use Guzzle\Http\Exception\ClientErrorResponseException; +use Icewind\Streams\RetryWrapper; use OCP\Files\ObjectStore\IObjectStore; use OCP\Files\StorageAuthException; use OCP\Files\StorageNotAvailableException; @@ -264,7 +265,7 @@ public function readObject($urn) { // save the object content in the context of the stream to prevent it being gc'd until the stream is closed stream_context_set_option($stream, 'swift', 'content', $objectContent); - return $stream; + RetryWrapper::wrap($stream); } /** From a62cc27058de20e67911b9c15aa1d3bb2fe46904 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 4 Dec 2017 22:39:06 +0100 Subject: [PATCH 51/92] Fix syntax error Signed-off-by: Morris Jobke --- core/css/icons.scss | 1 + 1 file changed, 1 insertion(+) diff --git a/core/css/icons.scss b/core/css/icons.scss index 625196c8eb37f..fbf36e2fbbcf0 100644 --- a/core/css/icons.scss +++ b/core/css/icons.scss @@ -93,6 +93,7 @@ img, object, video, button, textarea, input, select, div[contenteditable=true] { filter: invert(100%); &.icon-shadow { filter: invert(100%) drop-shadow(1px 1px 4px $color-box-shadow); + } } /* ICONS -------------------------------------------------------------------- */ From 041dc6b3e8c3d12dc3134019df5540ec228289ea Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 4 Dec 2017 23:13:23 +0100 Subject: [PATCH 52/92] Fix typos in config.sample.php Signed-off-by: Morris Jobke --- config/config.sample.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/config/config.sample.php b/config/config.sample.php index adb0c125b1eaa..14e093600b3a1 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -817,7 +817,6 @@ * @see appcodechecker */ - /** * Previews * @@ -1094,8 +1093,8 @@ * * WARNING: FAILOVER_DISTRIBUTE is a not recommended setting and we strongly * suggest to not use it if you use Redis for file locking. Due to the way Redis - * is synchronised it could happen, that the read for an existing lock is - * scheduled to a slave that is not fully synchronised with the connected master + * is synchronized it could happen, that the read for an existing lock is + * scheduled to a slave that is not fully synchronized with the connected master * which then causes a FileLocked exception. * * See https://redis.io/topics/cluster-spec for details about the Redis cluster From f25d55c9728b36202e5d75621b0e2a3d5b654ad3 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Tue, 5 Dec 2017 01:10:20 +0000 Subject: [PATCH 53/92] [tx-robot] updated from transifex --- apps/comments/l10n/tr.js | 2 ++ apps/comments/l10n/tr.json | 2 ++ apps/dav/l10n/es.js | 2 +- apps/dav/l10n/es.json | 2 +- core/l10n/tr.js | 10 ++++++++++ core/l10n/tr.json | 10 ++++++++++ settings/l10n/es.js | 40 +++++++++++++++++++------------------- settings/l10n/es.json | 40 +++++++++++++++++++------------------- 8 files changed, 66 insertions(+), 42 deletions(-) diff --git a/apps/comments/l10n/tr.js b/apps/comments/l10n/tr.js index 26974ee8bb842..bed5cff1caf5c 100644 --- a/apps/comments/l10n/tr.js +++ b/apps/comments/l10n/tr.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s, %2$s için yorum yaptı", "{author} commented on {file}" : "{author}, {file} hakkında yorum yaptı", "Comments for files" : "Dosyalar için yorumlar", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "\"%s\" hakkında bir yorumda silinmiş bir kullanıcı tarafından anıldınız", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "“{file}” hakkında bir yorumda silinmiş bir kullanıcı tarafından anıldınız", "%1$s mentioned you in a comment on “%2$s”" : "%1$s, “%2$s” hakkındaki bir yorumda sizden bahsetti", "{user} mentioned you in a comment on “{file}”" : "{user}, “{file}” hakkındaki bir yorumda sizden bahsetti", "A (now) deleted user mentioned you in a comment on “%s”" : "Bir (artık) silinmiş kullanıcı “%s” hakkındaki bir yorumda sizden bahsetti", diff --git a/apps/comments/l10n/tr.json b/apps/comments/l10n/tr.json index 68f90faca2307..c8c8d7bc3f745 100644 --- a/apps/comments/l10n/tr.json +++ b/apps/comments/l10n/tr.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s, %2$s için yorum yaptı", "{author} commented on {file}" : "{author}, {file} hakkında yorum yaptı", "Comments for files" : "Dosyalar için yorumlar", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "\"%s\" hakkında bir yorumda silinmiş bir kullanıcı tarafından anıldınız", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "“{file}” hakkında bir yorumda silinmiş bir kullanıcı tarafından anıldınız", "%1$s mentioned you in a comment on “%2$s”" : "%1$s, “%2$s” hakkındaki bir yorumda sizden bahsetti", "{user} mentioned you in a comment on “{file}”" : "{user}, “{file}” hakkındaki bir yorumda sizden bahsetti", "A (now) deleted user mentioned you in a comment on “%s”" : "Bir (artık) silinmiş kullanıcı “%s” hakkındaki bir yorumda sizden bahsetti", diff --git a/apps/dav/l10n/es.js b/apps/dav/l10n/es.js index cb67f8774b6f1..24daea7ca82a4 100644 --- a/apps/dav/l10n/es.js +++ b/apps/dav/l10n/es.js @@ -55,7 +55,7 @@ OC.L10N.register( "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", - "Request ID: %s" : "ID de la solicitud: %s", + "Request ID: %s" : "ID de solicitud: %s", "CalDAV server" : "Servidor CalDAV", "Send invitations to attendees" : "Enviar invitaciones a los asistentes", "Please make sure to properly set up the email settings above." : "Por favor, asegúrate de que las configuraciones de correo de arriba son correctas" diff --git a/apps/dav/l10n/es.json b/apps/dav/l10n/es.json index 7d3abca51cbdf..573a49dd8f115 100644 --- a/apps/dav/l10n/es.json +++ b/apps/dav/l10n/es.json @@ -53,7 +53,7 @@ "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", - "Request ID: %s" : "ID de la solicitud: %s", + "Request ID: %s" : "ID de solicitud: %s", "CalDAV server" : "Servidor CalDAV", "Send invitations to attendees" : "Enviar invitaciones a los asistentes", "Please make sure to properly set up the email settings above." : "Por favor, asegúrate de que las configuraciones de correo de arriba son correctas" diff --git a/core/l10n/tr.js b/core/l10n/tr.js index eb0d364e409c4..ec4fe7484491c 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -115,8 +115,18 @@ OC.L10N.register( "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Birden çok uç noktaya erişilemez. Bu durumda dış depolama alanı bağlama, güncelleme bildirimleri ya da üçüncü taraf uygulamalarını kurmak gibi bazı özellikler çalışmaz. Dosyalara uzaktan erişim ve bildirim e-postalarının gönderilmesi işlemleri de yapılamaz. Tüm bu özelliklerin kullanılabilmesi için sunucuyu İnternet üzerine bağlamanız önerilir.", "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Henüz bir ön bellek yapılandırılmamış. Olabiliyorsa başarımı arttırmak için memcache önbellek ayarlarını yapın. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "Güvenlik nedeniyle kullanılması önerilen /dev/urandom klasörü PHP tarafından okunamıyor. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Şu anda PHP {version} sürümünü kullanıyorsunuz. Kullandığınız dağıtım desteklediği zaman PHP sürümünüzü güncelleyerek PHP grubu tarafından sağlanan başarım ve güvenlik geliştirmelerinden faydalanın.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Ters vekil sunucu üst bilgi yapılandırmanız doğru değil ya da Nextcloud üzerine güvenilen bir vekil sunucudan erişiyorsunuz. Böyle değil ise bu bir güvenlik sorunudur ve bir saldırganın IP adresini Nextcolud sunucusuna farklı göstermesine izin verebilir. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "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 memcached wiki about both modules." : "Memcached dağıtık bellek olarak yapılandırılmış ancak kurulmuş PHP \"memcache\" modülü yanlış. \\OC\\Memcache\\Memcached yalnız \"memcache\" modülünü değil \"memcached\" mdoülünü destekler. İki modül hakkında ayrıntılı bilgi almak için memcached wiki sayfasına bakabilirsiniz.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Bazı dosyalar bütünlük denetiminden geçemedi. Bu sorunun çözümü ile ilgili bilgi almak için belgelere bakabilirsiniz. (Geçersiz dosyaların listesi… / Yeniden Tara…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "PHP OPcache doğru şekilde ayarlanmamış. Daha iyi sonuç almak için php.ini dosyasında şu ayarların kullanılması önerilir:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "\"set_time_limit\" PHP işlevi kullanılamıyor. Bu durum betiklerin yürütme sırasında durmasına, ve kurulumunuzun çalışmamasına neden olabilir. Bu işlevin etkinleştirilmesi önemle önerilir.", "Error occurred while checking server setup" : "Sunucu ayarları denetlenirken sorun çıktı", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Veri klasörünüz ve dosyalarınız İnternet üzerinden erişime açık olabilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak veri klasörüne erişimi engellemeniz ya da veri klasörünü web sunucu kök klasörü dışına taşımanız önemle önerilir.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "\"{header}\" HTTP üst bilgisi \"{expected}\" şeklinde ayarlanmamış. Bu durum olası bir güvenlik ya da gizlilik riski oluşturduğundan bu ayarın belirtildiği gibi yapılması önerilir.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "\"{header}\" HTTP üst bilgisi \"{expected}\" şeklinde ayarlanmamış. Bu durum bazı özelliklerin düzgün çalışmasını engelleyebileceğinden bu ayarın belirtildiği gibi yapılması önerilir.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "\"Strict-Transport-Security\" HTTP üst bilgisi en azından\"{seconds}\" saniyedir ayarlanmamış. Gelişmiş güvenlik sağlamak için güvenlik ipuçlarında anlatıldığı şekilde HSTS özelliğinin etkinleştirilmesi önerilir.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Siteye HTTP üzerinden erişiliyor. Sunucunuzu güvenlik ipuçlarında anlatıldığı şekilde HTTPS kullanımı gerekecek şekilde yapılandırmanız önemle önerilir.", "Shared" : "Paylaşılmış", "Shared with" : "Paylaşılanlar", "Shared by" : "Paylaşan", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index 863428fb00ab4..3ac2276117a04 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -113,8 +113,18 @@ "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Birden çok uç noktaya erişilemez. Bu durumda dış depolama alanı bağlama, güncelleme bildirimleri ya da üçüncü taraf uygulamalarını kurmak gibi bazı özellikler çalışmaz. Dosyalara uzaktan erişim ve bildirim e-postalarının gönderilmesi işlemleri de yapılamaz. Tüm bu özelliklerin kullanılabilmesi için sunucuyu İnternet üzerine bağlamanız önerilir.", "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Henüz bir ön bellek yapılandırılmamış. Olabiliyorsa başarımı arttırmak için memcache önbellek ayarlarını yapın. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "Güvenlik nedeniyle kullanılması önerilen /dev/urandom klasörü PHP tarafından okunamıyor. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Şu anda PHP {version} sürümünü kullanıyorsunuz. Kullandığınız dağıtım desteklediği zaman PHP sürümünüzü güncelleyerek PHP grubu tarafından sağlanan başarım ve güvenlik geliştirmelerinden faydalanın.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Ters vekil sunucu üst bilgi yapılandırmanız doğru değil ya da Nextcloud üzerine güvenilen bir vekil sunucudan erişiyorsunuz. Böyle değil ise bu bir güvenlik sorunudur ve bir saldırganın IP adresini Nextcolud sunucusuna farklı göstermesine izin verebilir. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "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 memcached wiki about both modules." : "Memcached dağıtık bellek olarak yapılandırılmış ancak kurulmuş PHP \"memcache\" modülü yanlış. \\OC\\Memcache\\Memcached yalnız \"memcache\" modülünü değil \"memcached\" mdoülünü destekler. İki modül hakkında ayrıntılı bilgi almak için memcached wiki sayfasına bakabilirsiniz.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Bazı dosyalar bütünlük denetiminden geçemedi. Bu sorunun çözümü ile ilgili bilgi almak için belgelere bakabilirsiniz. (Geçersiz dosyaların listesi… / Yeniden Tara…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "PHP OPcache doğru şekilde ayarlanmamış. Daha iyi sonuç almak için php.ini dosyasında şu ayarların kullanılması önerilir:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "\"set_time_limit\" PHP işlevi kullanılamıyor. Bu durum betiklerin yürütme sırasında durmasına, ve kurulumunuzun çalışmamasına neden olabilir. Bu işlevin etkinleştirilmesi önemle önerilir.", "Error occurred while checking server setup" : "Sunucu ayarları denetlenirken sorun çıktı", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Veri klasörünüz ve dosyalarınız İnternet üzerinden erişime açık olabilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak veri klasörüne erişimi engellemeniz ya da veri klasörünü web sunucu kök klasörü dışına taşımanız önemle önerilir.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "\"{header}\" HTTP üst bilgisi \"{expected}\" şeklinde ayarlanmamış. Bu durum olası bir güvenlik ya da gizlilik riski oluşturduğundan bu ayarın belirtildiği gibi yapılması önerilir.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "\"{header}\" HTTP üst bilgisi \"{expected}\" şeklinde ayarlanmamış. Bu durum bazı özelliklerin düzgün çalışmasını engelleyebileceğinden bu ayarın belirtildiği gibi yapılması önerilir.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "\"Strict-Transport-Security\" HTTP üst bilgisi en azından\"{seconds}\" saniyedir ayarlanmamış. Gelişmiş güvenlik sağlamak için güvenlik ipuçlarında anlatıldığı şekilde HSTS özelliğinin etkinleştirilmesi önerilir.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Siteye HTTP üzerinden erişiliyor. Sunucunuzu güvenlik ipuçlarında anlatıldığı şekilde HTTPS kullanımı gerekecek şekilde yapılandırmanız önemle önerilir.", "Shared" : "Paylaşılmış", "Shared with" : "Paylaşılanlar", "Shared by" : "Paylaşan", diff --git a/settings/l10n/es.js b/settings/l10n/es.js index 4b9e2c57a6e8d..8b5d2c82f05f4 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -1,16 +1,16 @@ OC.L10N.register( "settings", { - "{actor} changed your password" : "{actor} cambió su contraseña", - "You changed your password" : "Usted ha cambiado su contraseña", - "Your password was reset by an administrator" : "Su contraseña ha sido restablecida por un administrador", - "{actor} changed your email address" : "{actor} cambió su dirección de correo electrónico", - "You changed your email address" : "Ha cambiado su cuenta de correo", - "Your email address was changed by an administrator" : "Su cuenta de correo ha sido cambiada por un administrador", + "{actor} changed your password" : "{actor} cambió tu contraseña", + "You changed your password" : "Has cambiado tu contraseña", + "Your password was reset by an administrator" : "Tu contraseña ha sido restablecida por un administrador", + "{actor} changed your email address" : "{actor} cambió tu dirección de correo electrónico", + "You changed your email address" : "Has cambiado tu cuenta de correo", + "Your email address was changed by an administrator" : "Tu cuenta de correo ha sido cambiada por un administrador", "Security" : "Seguridad", - "You successfully logged in using two-factor authentication (%1$s)" : "Te has identificado con éxito usando autenticación en dos pasos (%1$s)", - "A login attempt using two-factor authentication failed (%1$s)" : "Ha fallado un intento de identificación usando autenticación en dos pasos (%1$s)", - "Your password or email was modified" : "Su contraseña o dirección de correo electrónico fue modificado", + "You successfully logged in using two-factor authentication (%1$s)" : "Te has identificado con éxito usando la autenticación en dos pasos (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "Ha fallado un intento de identificación usando la autenticación en dos pasos (%1$s)", + "Your password or email was modified" : "Tu contraseña o dirección de correo fue modificada", "Your apps" : "Tus apps", "Updates" : "Actualizaciones", "Enabled apps" : "Apps habilitadas", @@ -21,13 +21,13 @@ OC.L10N.register( "No user supplied" : "No se especificó un usuario", "Unable to change password" : "No se ha podido cambiar la contraseña", "Authentication error" : "Error de autenticación", - "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor provea una contraseña de administración para recuperación; de otra forma toda la información de los usuarios será perdida.", - "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor compruebe la contraseña e inténtelo de nuevo.", - "Backend doesn't support password change, but the user's encryption key was updated." : "El backend no permite cambiar la contraseña, pero la clava de cifrado ha sido actualizada.", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor provee una contraseña de recuperación para administración; de otra forma toda la información de los usuarios se perderá.", + "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor comprueba la contraseña e inténtalo de nuevo.", + "Backend doesn't support password change, but the user's encryption key was updated." : "El sistema no permite cambiar la contraseña, pero la clave de cifrado ha sido actualizada.", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando y actualizando aplicaciones vía app store o Nube compartida Federada", - "Federated Cloud Sharing" : "Compartido en Cloud Federado", - "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión desactualizada %s (%s). Por favor, actualice su sistema operativo o funciones tales como %s no funcionará de forma fiable.", - "A problem occurred, please check your log files (Error: %s)" : "Ocurrió un problema, por favor verifique los archivos de registro (Error: %s)", + "Federated Cloud Sharing" : "Compartido en Nube Federada", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión desactualizada %s (%s). Por favor, actualiza tu sistema operativo o las funciones tales como %s no funcionarán de forma fiable.", + "A problem occurred, please check your log files (Error: %s)" : "Ocurrió un problema, por favor verifica los archivos de registro (Error: %s)", "Migration Completed" : "Migración finalizada", "Group already exists." : "El grupo ya existe.", "Unable to add group." : "No se pudo agregar el grupo.", @@ -35,10 +35,10 @@ OC.L10N.register( "Invalid SMTP password." : "Contraseña SMTP inválida", "Email setting test" : "Prueba de configuración de correo", "Well done, %s!" : "¡Bien hecho, %s!", - "If you received this email, the email configuration seems to be correct." : "Si recibe este correo, la configuración de correo parece ser correcta.", + "If you received this email, the email configuration seems to be correct." : "Si recibes este correo, la configuración de correo parece ser correcta.", "Email could not be sent. Check your mail server log" : "No se ha podido enviar el correo. Comprueba el registro del servidor de correo", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ha ocurrido un problema al enviar el mensaje de correo electrónico. Revisa tu configuración. (Error: %s)", - "You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.", + "You need to set your user email before being able to send test emails." : "Tienes que configurar tu dirección de correo electrónico antes de poder enviar mensajes de prueba.", "Invalid mail address" : "Dirección de correo inválida", "No valid group selected" : "No se ha seleccionado un grupo válido", "A user with that name already exists." : "Ya existe un usuario con ese nombre.", @@ -336,7 +336,7 @@ OC.L10N.register( "Link https://…" : "Enlace https://...", "Twitter" : "Twitter", "Twitter handle @…" : "Usuario de Twitter @...", - "You are member of the following groups:" : "Es miembro de los siguientes grupos:", + "You are member of the following groups:" : "Eres miembro de los siguientes grupos:", "Language" : "Idioma", "Help translate" : "Ayúdanos a traducir", "Password" : "Contraseña", @@ -432,7 +432,7 @@ OC.L10N.register( "For password recovery and notifications" : "Para la recuperación de contraseña y notificaciones", "Your website" : "La dirección de su sitio web", "Your Twitter handle" : "Su usuario de Twitter", - "Get the apps to sync your files" : "Obtener las aplicaciones para sincronizar sus archivos", + "Get the apps to sync your files" : "Obtener las aplicaciones para sincronizar tus archivos", "Desktop client" : "Cliente de escritorio", "Android app" : "Aplicación de Android", "iOS app" : "La aplicación de iOS", @@ -453,7 +453,7 @@ OC.L10N.register( "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Contraseñas específicas para los clientes web, de escritorio y móviles, y también apps que tienen actualmente acceso a tu cuenta.", "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aquí puedes generar contraseñas individuales para apps para que no tengas que dar tu propia contraseña. También puedes revocarlas individualmente.", "Follow us on Google+!" : "¡Síguenos en Google+!", - "Follow us on Twitter!" : "¡Síguenos en Twitter", + "Follow us on Twitter!" : "¡Síguenos en Twitter!", "Check out our blog!" : "¡Lee nuestro blog!" }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/es.json b/settings/l10n/es.json index fb83fe140f5fe..86dcac45e1f72 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -1,14 +1,14 @@ { "translations": { - "{actor} changed your password" : "{actor} cambió su contraseña", - "You changed your password" : "Usted ha cambiado su contraseña", - "Your password was reset by an administrator" : "Su contraseña ha sido restablecida por un administrador", - "{actor} changed your email address" : "{actor} cambió su dirección de correo electrónico", - "You changed your email address" : "Ha cambiado su cuenta de correo", - "Your email address was changed by an administrator" : "Su cuenta de correo ha sido cambiada por un administrador", + "{actor} changed your password" : "{actor} cambió tu contraseña", + "You changed your password" : "Has cambiado tu contraseña", + "Your password was reset by an administrator" : "Tu contraseña ha sido restablecida por un administrador", + "{actor} changed your email address" : "{actor} cambió tu dirección de correo electrónico", + "You changed your email address" : "Has cambiado tu cuenta de correo", + "Your email address was changed by an administrator" : "Tu cuenta de correo ha sido cambiada por un administrador", "Security" : "Seguridad", - "You successfully logged in using two-factor authentication (%1$s)" : "Te has identificado con éxito usando autenticación en dos pasos (%1$s)", - "A login attempt using two-factor authentication failed (%1$s)" : "Ha fallado un intento de identificación usando autenticación en dos pasos (%1$s)", - "Your password or email was modified" : "Su contraseña o dirección de correo electrónico fue modificado", + "You successfully logged in using two-factor authentication (%1$s)" : "Te has identificado con éxito usando la autenticación en dos pasos (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "Ha fallado un intento de identificación usando la autenticación en dos pasos (%1$s)", + "Your password or email was modified" : "Tu contraseña o dirección de correo fue modificada", "Your apps" : "Tus apps", "Updates" : "Actualizaciones", "Enabled apps" : "Apps habilitadas", @@ -19,13 +19,13 @@ "No user supplied" : "No se especificó un usuario", "Unable to change password" : "No se ha podido cambiar la contraseña", "Authentication error" : "Error de autenticación", - "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor provea una contraseña de administración para recuperación; de otra forma toda la información de los usuarios será perdida.", - "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor compruebe la contraseña e inténtelo de nuevo.", - "Backend doesn't support password change, but the user's encryption key was updated." : "El backend no permite cambiar la contraseña, pero la clava de cifrado ha sido actualizada.", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor provee una contraseña de recuperación para administración; de otra forma toda la información de los usuarios se perderá.", + "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor comprueba la contraseña e inténtalo de nuevo.", + "Backend doesn't support password change, but the user's encryption key was updated." : "El sistema no permite cambiar la contraseña, pero la clave de cifrado ha sido actualizada.", "installing and updating apps via the app store or Federated Cloud Sharing" : "instalando y actualizando aplicaciones vía app store o Nube compartida Federada", - "Federated Cloud Sharing" : "Compartido en Cloud Federado", - "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión desactualizada %s (%s). Por favor, actualice su sistema operativo o funciones tales como %s no funcionará de forma fiable.", - "A problem occurred, please check your log files (Error: %s)" : "Ocurrió un problema, por favor verifique los archivos de registro (Error: %s)", + "Federated Cloud Sharing" : "Compartido en Nube Federada", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión desactualizada %s (%s). Por favor, actualiza tu sistema operativo o las funciones tales como %s no funcionarán de forma fiable.", + "A problem occurred, please check your log files (Error: %s)" : "Ocurrió un problema, por favor verifica los archivos de registro (Error: %s)", "Migration Completed" : "Migración finalizada", "Group already exists." : "El grupo ya existe.", "Unable to add group." : "No se pudo agregar el grupo.", @@ -33,10 +33,10 @@ "Invalid SMTP password." : "Contraseña SMTP inválida", "Email setting test" : "Prueba de configuración de correo", "Well done, %s!" : "¡Bien hecho, %s!", - "If you received this email, the email configuration seems to be correct." : "Si recibe este correo, la configuración de correo parece ser correcta.", + "If you received this email, the email configuration seems to be correct." : "Si recibes este correo, la configuración de correo parece ser correcta.", "Email could not be sent. Check your mail server log" : "No se ha podido enviar el correo. Comprueba el registro del servidor de correo", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ha ocurrido un problema al enviar el mensaje de correo electrónico. Revisa tu configuración. (Error: %s)", - "You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.", + "You need to set your user email before being able to send test emails." : "Tienes que configurar tu dirección de correo electrónico antes de poder enviar mensajes de prueba.", "Invalid mail address" : "Dirección de correo inválida", "No valid group selected" : "No se ha seleccionado un grupo válido", "A user with that name already exists." : "Ya existe un usuario con ese nombre.", @@ -334,7 +334,7 @@ "Link https://…" : "Enlace https://...", "Twitter" : "Twitter", "Twitter handle @…" : "Usuario de Twitter @...", - "You are member of the following groups:" : "Es miembro de los siguientes grupos:", + "You are member of the following groups:" : "Eres miembro de los siguientes grupos:", "Language" : "Idioma", "Help translate" : "Ayúdanos a traducir", "Password" : "Contraseña", @@ -430,7 +430,7 @@ "For password recovery and notifications" : "Para la recuperación de contraseña y notificaciones", "Your website" : "La dirección de su sitio web", "Your Twitter handle" : "Su usuario de Twitter", - "Get the apps to sync your files" : "Obtener las aplicaciones para sincronizar sus archivos", + "Get the apps to sync your files" : "Obtener las aplicaciones para sincronizar tus archivos", "Desktop client" : "Cliente de escritorio", "Android app" : "Aplicación de Android", "iOS app" : "La aplicación de iOS", @@ -451,7 +451,7 @@ "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Contraseñas específicas para los clientes web, de escritorio y móviles, y también apps que tienen actualmente acceso a tu cuenta.", "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aquí puedes generar contraseñas individuales para apps para que no tengas que dar tu propia contraseña. También puedes revocarlas individualmente.", "Follow us on Google+!" : "¡Síguenos en Google+!", - "Follow us on Twitter!" : "¡Síguenos en Twitter", + "Follow us on Twitter!" : "¡Síguenos en Twitter!", "Check out our blog!" : "¡Lee nuestro blog!" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file From a73f86912f572bd177d504e45e911e91dfcbd67a Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Tue, 5 Dec 2017 09:58:15 +0100 Subject: [PATCH 54/92] Remove unused variables Signed-off-by: Morris Jobke --- apps/dav/lib/Server.php | 3 --- 1 file changed, 3 deletions(-) diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php index 14f6f4e49eb73..8267c656988c1 100644 --- a/apps/dav/lib/Server.php +++ b/apps/dav/lib/Server.php @@ -77,11 +77,8 @@ public function __construct(IRequest $request, $baseUri) { $this->request = $request; $this->baseUri = $baseUri; $logger = \OC::$server->getLogger(); - $mailer = \OC::$server->getMailer(); $dispatcher = \OC::$server->getEventDispatcher(); - $timezone = new TimeFactory(); $sendInvitations = \OC::$server->getConfig()->getAppValue('dav', 'sendInvitations', 'yes') === 'yes'; - $l10nFactory = \OC::$server->getL10NFactory(); $root = new RootCollection(); $this->server = new \OCA\DAV\Connector\Sabre\Server(new CachingTree($root)); From 9505c564476051ec358a428fc8eb22263634b4fc Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Wed, 6 Dec 2017 01:10:23 +0000 Subject: [PATCH 55/92] [tx-robot] updated from transifex --- apps/comments/l10n/de.js | 2 ++ apps/comments/l10n/de.json | 2 ++ apps/comments/l10n/de_DE.js | 2 ++ apps/comments/l10n/de_DE.json | 2 ++ apps/files_external/l10n/zh_TW.js | 4 ++++ apps/files_external/l10n/zh_TW.json | 4 ++++ apps/files_sharing/l10n/lt_LT.js | 6 +++--- apps/files_sharing/l10n/lt_LT.json | 6 +++--- core/l10n/de.js | 6 ++++++ core/l10n/de.json | 6 ++++++ core/l10n/de_DE.js | 6 ++++++ core/l10n/de_DE.json | 6 ++++++ core/l10n/fr.js | 6 ++++++ core/l10n/fr.json | 6 ++++++ core/l10n/ja.js | 2 ++ core/l10n/ja.json | 2 ++ core/l10n/sk.js | 2 ++ core/l10n/sk.json | 2 ++ core/l10n/zh_CN.js | 11 +++++++++++ core/l10n/zh_CN.json | 11 +++++++++++ 20 files changed, 88 insertions(+), 6 deletions(-) diff --git a/apps/comments/l10n/de.js b/apps/comments/l10n/de.js index 5a911dc296995..0d41f70a44cfd 100644 --- a/apps/comments/l10n/de.js +++ b/apps/comments/l10n/de.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s kommentierte %2$s", "{author} commented on {file}" : "{author} hat {file} kommentiert", "Comments for files" : "Kommentare für Dateien", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt", "%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Dich in einem Kommentar zu “%2$s” erwähnt ", "{user} mentioned you in a comment on “{file}”" : "{user} hat Dich in einem Kommentar zu “{file}” erwähnt ", "A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu \"%s\" erwähnt", diff --git a/apps/comments/l10n/de.json b/apps/comments/l10n/de.json index 94fcb0fddc38e..808326070ed74 100644 --- a/apps/comments/l10n/de.json +++ b/apps/comments/l10n/de.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s kommentierte %2$s", "{author} commented on {file}" : "{author} hat {file} kommentiert", "Comments for files" : "Kommentare für Dateien", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt", "%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Dich in einem Kommentar zu “%2$s” erwähnt ", "{user} mentioned you in a comment on “{file}”" : "{user} hat Dich in einem Kommentar zu “{file}” erwähnt ", "A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu \"%s\" erwähnt", diff --git a/apps/comments/l10n/de_DE.js b/apps/comments/l10n/de_DE.js index 884dc2475b930..a9c908b142a01 100644 --- a/apps/comments/l10n/de_DE.js +++ b/apps/comments/l10n/de_DE.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s kommentierte %2$s", "{author} commented on {file}" : "{author} hat {file} kommentiert", "Comments for files" : "Kommentare für Dateien", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt", "%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Sie in einem Kommentar zu “%2$s” erwähnt.", "{user} mentioned you in a comment on “{file}”" : "{user} hat Sie in einem Kommentar zu “{file}” erwähnt", "A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu \"%s\" erwähnt", diff --git a/apps/comments/l10n/de_DE.json b/apps/comments/l10n/de_DE.json index f13722054a996..e80f3194951d3 100644 --- a/apps/comments/l10n/de_DE.json +++ b/apps/comments/l10n/de_DE.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s kommentierte %2$s", "{author} commented on {file}" : "{author} hat {file} kommentiert", "Comments for files" : "Kommentare für Dateien", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt", "%1$s mentioned you in a comment on “%2$s”" : "%1$s hat Sie in einem Kommentar zu “%2$s” erwähnt.", "{user} mentioned you in a comment on “{file}”" : "{user} hat Sie in einem Kommentar zu “{file}” erwähnt", "A (now) deleted user mentioned you in a comment on “%s”" : "Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu \"%s\" erwähnt", diff --git a/apps/files_external/l10n/zh_TW.js b/apps/files_external/l10n/zh_TW.js index 8e4f1b9669ac1..03310bc05b4fc 100644 --- a/apps/files_external/l10n/zh_TW.js +++ b/apps/files_external/l10n/zh_TW.js @@ -12,6 +12,7 @@ OC.L10N.register( "Error generating key pair" : "產生金鑰對錯誤", "All users. Type to select user or group." : "所有人都可以使用,或者選擇特定使用者、群組", "(group)" : "(群組)", + "Compatibility with Mac NFD encoding (slow)" : "與Mac的NFD編碼格式相容(較慢)", "Admin defined" : "管理者定義", "Are you sure you want to delete this external storage" : "您確定要刪除額外的空間?", "Delete storage?" : "刪除空間", @@ -19,11 +20,14 @@ OC.L10N.register( "Saving..." : "儲存中...", "Save" : "儲存", "Empty response from the server" : "服務器没有回應", + "Couldn't access. Please log out and in again to activate this mount point" : "無法存取,請登出後重新登入來啟用這個掛載點。", "Couldn't get the information from the remote server: {code} {type}" : "無法從遠程伺服器上獲取資料 : {code} {type}", "Couldn't get the list of external mount points: {type}" : "無法得到外部掛載點的列表: {type}", "There was an error with message: " : "錯誤信息:", "External mount error" : "外部掛載錯誤", "external-storage" : "外部儲存", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "無法取得Windows網路磁碟掛載點清單:伺服器無回應。", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "有些外部掛載位置設定無法連線,請點(多個)紅色橫幅了解詳情。", "Username" : "使用者名稱", "Password" : "密碼", "Credentials saved" : "已儲存憑證", diff --git a/apps/files_external/l10n/zh_TW.json b/apps/files_external/l10n/zh_TW.json index 21a8d621c5b66..ea089f80a33dd 100644 --- a/apps/files_external/l10n/zh_TW.json +++ b/apps/files_external/l10n/zh_TW.json @@ -10,6 +10,7 @@ "Error generating key pair" : "產生金鑰對錯誤", "All users. Type to select user or group." : "所有人都可以使用,或者選擇特定使用者、群組", "(group)" : "(群組)", + "Compatibility with Mac NFD encoding (slow)" : "與Mac的NFD編碼格式相容(較慢)", "Admin defined" : "管理者定義", "Are you sure you want to delete this external storage" : "您確定要刪除額外的空間?", "Delete storage?" : "刪除空間", @@ -17,11 +18,14 @@ "Saving..." : "儲存中...", "Save" : "儲存", "Empty response from the server" : "服務器没有回應", + "Couldn't access. Please log out and in again to activate this mount point" : "無法存取,請登出後重新登入來啟用這個掛載點。", "Couldn't get the information from the remote server: {code} {type}" : "無法從遠程伺服器上獲取資料 : {code} {type}", "Couldn't get the list of external mount points: {type}" : "無法得到外部掛載點的列表: {type}", "There was an error with message: " : "錯誤信息:", "External mount error" : "外部掛載錯誤", "external-storage" : "外部儲存", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "無法取得Windows網路磁碟掛載點清單:伺服器無回應。", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "有些外部掛載位置設定無法連線,請點(多個)紅色橫幅了解詳情。", "Username" : "使用者名稱", "Password" : "密碼", "Credentials saved" : "已儲存憑證", diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js index d4826d8aaaf46..190ccc6f6de11 100644 --- a/apps/files_sharing/l10n/lt_LT.js +++ b/apps/files_sharing/l10n/lt_LT.js @@ -4,7 +4,7 @@ OC.L10N.register( "Shared with you" : "Bendrinama su jumis", "Shared with others" : "Bendrinama su kitais", "Shared by link" : "Bendrinama per nuorodą", - "Nothing shared with you yet" : "Niekas nebendrinama", + "Nothing shared with you yet" : "Kol kas su jumis niekas nebendrinama", "Files and folders others share with you will show up here" : "Čia rodomi failai ir aplankai, kuriuos kiti bendrina su jumis", "Nothing shared yet" : "Kol kas nieko nebendrinama", "Files and folders you share will show up here" : "Čia rodomi failai ir aplankai, kuriuos bendrinate", @@ -12,14 +12,14 @@ OC.L10N.register( "Files and folders you share by link will show up here" : "Jūsų bendrinami failai ir aplankai rodomi čia", "You can upload into this folder" : "Galite įkelti į šį aplanką", "No compatible server found at {remote}" : "Nerasta jokio suderinamo serverio ties {remote}", - "Invalid server URL" : "Neteisingas serverio adresas", + "Invalid server URL" : "Neteisingas serverio URL adresas", "Failed to add the public link to your Nextcloud" : "Nepavyko pridėti viešosios nuorodos į jūsų Nextcloud", "Share" : "Dalintis", "No expiration date set" : "Dalinimosi pabaigos data yra nenustatyta", "Shared by" : "Bendrina", "Sharing" : "Dalinamasi", "File shares" : "Bendrinami duomenys", - "Downloaded via public link" : "Atsiųsti per viešą nuorodą", + "Downloaded via public link" : "Atsisiųsta per viešą nuorodą", "Downloaded by {email}" : "Parsisiųsta į {email}", "{file} downloaded via public link" : "{file} parsisiųsta per nuorodą", "{email} downloaded {file}" : "{email} atsisiuntė {file}", diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json index 2f82d3586bfb2..5b6e8a5ec0fe0 100644 --- a/apps/files_sharing/l10n/lt_LT.json +++ b/apps/files_sharing/l10n/lt_LT.json @@ -2,7 +2,7 @@ "Shared with you" : "Bendrinama su jumis", "Shared with others" : "Bendrinama su kitais", "Shared by link" : "Bendrinama per nuorodą", - "Nothing shared with you yet" : "Niekas nebendrinama", + "Nothing shared with you yet" : "Kol kas su jumis niekas nebendrinama", "Files and folders others share with you will show up here" : "Čia rodomi failai ir aplankai, kuriuos kiti bendrina su jumis", "Nothing shared yet" : "Kol kas nieko nebendrinama", "Files and folders you share will show up here" : "Čia rodomi failai ir aplankai, kuriuos bendrinate", @@ -10,14 +10,14 @@ "Files and folders you share by link will show up here" : "Jūsų bendrinami failai ir aplankai rodomi čia", "You can upload into this folder" : "Galite įkelti į šį aplanką", "No compatible server found at {remote}" : "Nerasta jokio suderinamo serverio ties {remote}", - "Invalid server URL" : "Neteisingas serverio adresas", + "Invalid server URL" : "Neteisingas serverio URL adresas", "Failed to add the public link to your Nextcloud" : "Nepavyko pridėti viešosios nuorodos į jūsų Nextcloud", "Share" : "Dalintis", "No expiration date set" : "Dalinimosi pabaigos data yra nenustatyta", "Shared by" : "Bendrina", "Sharing" : "Dalinamasi", "File shares" : "Bendrinami duomenys", - "Downloaded via public link" : "Atsiųsti per viešą nuorodą", + "Downloaded via public link" : "Atsisiųsta per viešą nuorodą", "Downloaded by {email}" : "Parsisiųsta į {email}", "{file} downloaded via public link" : "{file} parsisiųsta per nuorodą", "{email} downloaded {file}" : "{email} atsisiuntė {file}", diff --git a/core/l10n/de.js b/core/l10n/de.js index 3bd8483bd9c4c..6beb30d3a56f3 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -110,6 +110,12 @@ OC.L10N.register( "So-so password" : "Passables Passwort", "Good password" : "Gutes Passwort", "Strong password" : "Starkes Passwort", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Dein Webserver ist noch nicht hinreichend für Datei-Synchronisation konfiguriert, da die WebDAV-Schnittstelle vermutlich nicht funktioniert.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Dein Web-Server ist nicht richtig eingerichtet um \"{url}\" aufzulösen. Weitere Informationen findest du in der Dokumentation.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen exernen Speichers, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stelle eine Internet-Verbindung für diesen Server her.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Du verwendest derzeit PHP {version}. Upgrade deine PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald diese Deine Distribution unterstützt.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP-Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", "Shared" : "Geteilt", diff --git a/core/l10n/de.json b/core/l10n/de.json index 5fac6ae752813..a410bdec112b0 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -108,6 +108,12 @@ "So-so password" : "Passables Passwort", "Good password" : "Gutes Passwort", "Strong password" : "Starkes Passwort", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Dein Webserver ist noch nicht hinreichend für Datei-Synchronisation konfiguriert, da die WebDAV-Schnittstelle vermutlich nicht funktioniert.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Dein Web-Server ist nicht richtig eingerichtet um \"{url}\" aufzulösen. Weitere Informationen findest du in der Dokumentation.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen exernen Speichers, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stelle eine Internet-Verbindung für diesen Server her.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Du verwendest derzeit PHP {version}. Upgrade deine PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald diese Deine Distribution unterstützt.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP-Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", "Shared" : "Geteilt", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 67b16d8ff9092..5bedf1cabe2e1 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -110,6 +110,12 @@ OC.L10N.register( "So-so password" : "Passables Passwort", "Good password" : "Gutes Passwort", "Strong password" : "Starkes Passwort", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Ihr Webserver ist noch nicht hinreichend für Datei-Synchronisation konfiguriert. Die WebDAV-Schnittstelle ist vermutlich defekt.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Ihr Webserver ist nicht richtig konfiguriert um \"{url}\" aufzulösen. Weitere Informationen hierzu finden Sie in der Dokumentation.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen exernen Speichers, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stellen Sie bitte eine Internet-Verbindung für diesen Server her.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Sie verwenden im Moment PHP {version}. Upgraden Sie Ihre PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald Ihre Distribution diese unterstützt.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", "Shared" : "Geteilt", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index bb1af0b64a26a..6ecf522ada7ac 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -108,6 +108,12 @@ "So-so password" : "Passables Passwort", "Good password" : "Gutes Passwort", "Strong password" : "Starkes Passwort", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Ihr Webserver ist noch nicht hinreichend für Datei-Synchronisation konfiguriert. Die WebDAV-Schnittstelle ist vermutlich defekt.", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "Ihr Webserver ist nicht richtig konfiguriert um \"{url}\" aufzulösen. Weitere Informationen hierzu finden Sie in der Dokumentation.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Dieser Server hat keine funktionierende Internetverbindung: Mehrere Ziele konnten nicht erreicht werden. Dies bedeutet, dass einige Funktionen, wie das Einhängen exernen Speichers, Benachrichtigungen über Updates oder die Installation von Drittanbieter-Apps nicht funktionieren. Der Zugriff auf entfernte Dateien und das Senden von E-Mail-Benachrichtigungen wird wahrscheinlich ebenfalls nicht funktionieren. Um alle Funktionen nutzen zu können, stellen Sie bitte eine Internet-Verbindung für diesen Server her.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Sie verwenden im Moment PHP {version}. Upgraden Sie Ihre PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald Ihre Distribution diese unterstützt.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", "Shared" : "Geteilt", diff --git a/core/l10n/fr.js b/core/l10n/fr.js index b1468ce3217e4..5de19e4ea6bce 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -112,9 +112,15 @@ OC.L10N.register( "Strong password" : "Mot de passe fort", "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas encore correctement configuré pour la synchronisation de fichiers parce que l'interface WebDAV semble ne pas fonctionner.", "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "La configuration du serveur web ne permet pas d'atteindre \"{url}\". Vous trouverez plus d'informations dans la documentation.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Ce serveur ne peut se connecter à Internet : plusieurs point finaux ne peuvent être atteints. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que l'envoi de notifications par mail peuvent aussi être indisponibles. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Aucun cache mémoire n'est configuré. Si possible, configurez un \"memcache\" pour améliorer les performances. Pour plus d'informations consultez la documentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom n'est pas lisible par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Vous utilisez actuellement PHP {version}. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuration des entêtes du proxy inverse est incorrecte, ou vous accédez à Nextcloud depuis un proxy de confiance. Si vous n'êtes pas en train d’accéder à Nextcloud depuis un proxy de confiance, il y a un problème de sécurité qui peut permettre à un attaquant d'usurper l'adresse IP affichée à Nextcloud. Vous trouverez plus d'informations dans notre documentation.", "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 memcached wiki about both modules." : "\"memcached\" est configuré comme cache distribué, mais le mauvais module PHP \"memcache\" est installé. \\OC\\Memcache\\Memcached ne prend en charge que \"memcached\" et non \"memcache\". Consulter le wiki de memcached à propos de ces deux modules.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Des fichiers n'ont pas passé la vérification d’intégrité. Vous trouverez plus d'information sur comment résoudre ce problème dans notre documentation. (Liste des fichiers invalides… / Rescanner…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "Le PHP OPcache n'est pas correctement configuré. Pour de meilleure performance nous recommandons d'utiliser les paramètres suivant dans le php.ini :", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La fonction PHP \"set_time_limit\" n'est pas disponible. Cela pourrait entraîner l'arrêt des scripts à mi-exécution en bloquant votre installation. Nous vous recommandons vivement d'activer cette fonction.", "Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur", "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou de le déplacer hors de la racine du serveur web.", "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Ceci constitue un risque potentiel relatif à la sécurité et à la vie privée étant donné qu'il est recommandé d'ajuster ce paramètre.", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index b39ac9f91d5df..2b302a3fac2d0 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -110,9 +110,15 @@ "Strong password" : "Mot de passe fort", "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Votre serveur web n'est pas encore correctement configuré pour la synchronisation de fichiers parce que l'interface WebDAV semble ne pas fonctionner.", "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "La configuration du serveur web ne permet pas d'atteindre \"{url}\". Vous trouverez plus d'informations dans la documentation.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "Ce serveur ne peut se connecter à Internet : plusieurs point finaux ne peuvent être atteints. Cela signifie que certaines fonctionnalités, telles que le montage de supports de stockage distants, les notifications de mises à jour ou l'installation d'applications tierces ne fonctionneront pas. L'accès aux fichiers à distance, ainsi que l'envoi de notifications par mail peuvent aussi être indisponibles. Il est recommandé d'activer la connexion internet pour ce serveur si vous souhaitez disposer de l'ensemble des fonctionnalités offertes.", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Aucun cache mémoire n'est configuré. Si possible, configurez un \"memcache\" pour améliorer les performances. Pour plus d'informations consultez la documentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom n'est pas lisible par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Vous utilisez actuellement PHP {version}. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuration des entêtes du proxy inverse est incorrecte, ou vous accédez à Nextcloud depuis un proxy de confiance. Si vous n'êtes pas en train d’accéder à Nextcloud depuis un proxy de confiance, il y a un problème de sécurité qui peut permettre à un attaquant d'usurper l'adresse IP affichée à Nextcloud. Vous trouverez plus d'informations dans notre documentation.", "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 memcached wiki about both modules." : "\"memcached\" est configuré comme cache distribué, mais le mauvais module PHP \"memcache\" est installé. \\OC\\Memcache\\Memcached ne prend en charge que \"memcached\" et non \"memcache\". Consulter le wiki de memcached à propos de ces deux modules.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Des fichiers n'ont pas passé la vérification d’intégrité. Vous trouverez plus d'information sur comment résoudre ce problème dans notre documentation. (Liste des fichiers invalides… / Rescanner…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "Le PHP OPcache n'est pas correctement configuré. Pour de meilleure performance nous recommandons d'utiliser les paramètres suivant dans le php.ini :", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "La fonction PHP \"set_time_limit\" n'est pas disponible. Cela pourrait entraîner l'arrêt des scripts à mi-exécution en bloquant votre installation. Nous vous recommandons vivement d'activer cette fonction.", "Error occurred while checking server setup" : "Une erreur s'est produite lors de la vérification de la configuration du serveur", "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Votre dossier de données et vos fichiers sont probablement accessibles depuis internet. Le fichier .htaccess ne fonctionne pas. Nous vous recommandons vivement de configurer votre serveur web de façon à ce que ce dossier de données ne soit plus accessible, ou de le déplacer hors de la racine du serveur web.", "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "L'en-tête HTTP \"{header}\" n'est pas configurée pour être égale à \"{expected}\". Ceci constitue un risque potentiel relatif à la sécurité et à la vie privée étant donné qu'il est recommandé d'ajuster ce paramètre.", diff --git a/core/l10n/ja.js b/core/l10n/ja.js index 98bb49846d24c..2bfad5c411969 100644 --- a/core/l10n/ja.js +++ b/core/l10n/ja.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "どういう操作をしているか理解しています", "Password can not be changed. Please contact your administrator." : "パスワードは変更できません。管理者に問い合わせてください。", "Reset password" : "パスワードをリセット", + "Sending email …" : "メールを送信中 ...", "No" : "いいえ", "Yes" : "はい", "No files in here" : "ここにはファイルがありません", @@ -253,6 +254,7 @@ OC.L10N.register( "Wrong password." : "パスワードが間違っています。", "Log in" : "ログイン", "Stay logged in" : "ログインしたままにする", + "Forgot password?" : "パスワードをお忘れですか?", "Alternative Logins" : "代替ログイン", "Account access" : "アカウントによるアクセス許可", "You are about to grant %s access to your %s account." : "%s アカウントに あなたのアカウント %s へのアクセスを許可", diff --git a/core/l10n/ja.json b/core/l10n/ja.json index 8818cc16cdf6d..57bd08a40dc65 100644 --- a/core/l10n/ja.json +++ b/core/l10n/ja.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "どういう操作をしているか理解しています", "Password can not be changed. Please contact your administrator." : "パスワードは変更できません。管理者に問い合わせてください。", "Reset password" : "パスワードをリセット", + "Sending email …" : "メールを送信中 ...", "No" : "いいえ", "Yes" : "はい", "No files in here" : "ここにはファイルがありません", @@ -251,6 +252,7 @@ "Wrong password." : "パスワードが間違っています。", "Log in" : "ログイン", "Stay logged in" : "ログインしたままにする", + "Forgot password?" : "パスワードをお忘れですか?", "Alternative Logins" : "代替ログイン", "Account access" : "アカウントによるアクセス許可", "You are about to grant %s access to your %s account." : "%s アカウントに あなたのアカウント %s へのアクセスを許可", diff --git a/core/l10n/sk.js b/core/l10n/sk.js index 04b8d5fcba52c..9ccc0489846cf 100644 --- a/core/l10n/sk.js +++ b/core/l10n/sk.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "Viem, čo robím", "Password can not be changed. Please contact your administrator." : "Heslo nemožno zmeniť. Kontaktujte prosím vášho administrátora.", "Reset password" : "Obnovenie hesla", + "Sending email …" : "Posielam email …", "No" : "Nie", "Yes" : "Áno", "No files in here" : "Nie sú tu žiadne súbory", @@ -260,6 +261,7 @@ OC.L10N.register( "Wrong password." : "Nesprávne heslo.", "Log in" : "Prihlásiť sa", "Stay logged in" : "Zostať prihlásený", + "Forgot password?" : "Zabudli ste heslo?", "Alternative Logins" : "Alternatívne prihlásenie", "Account access" : "Prístup k účtu", "You are about to grant %s access to your %s account." : "Chystáte sa udeliť %s prístup k svojmu %s účtu.", diff --git a/core/l10n/sk.json b/core/l10n/sk.json index fe9333cc31c1d..6ed9f04b8fd9e 100644 --- a/core/l10n/sk.json +++ b/core/l10n/sk.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "Viem, čo robím", "Password can not be changed. Please contact your administrator." : "Heslo nemožno zmeniť. Kontaktujte prosím vášho administrátora.", "Reset password" : "Obnovenie hesla", + "Sending email …" : "Posielam email …", "No" : "Nie", "Yes" : "Áno", "No files in here" : "Nie sú tu žiadne súbory", @@ -258,6 +259,7 @@ "Wrong password." : "Nesprávne heslo.", "Log in" : "Prihlásiť sa", "Stay logged in" : "Zostať prihlásený", + "Forgot password?" : "Zabudli ste heslo?", "Alternative Logins" : "Alternatívne prihlásenie", "Account access" : "Prístup k účtu", "You are about to grant %s access to your %s account." : "Chystáte sa udeliť %s prístup k svojmu %s účtu.", diff --git a/core/l10n/zh_CN.js b/core/l10n/zh_CN.js index 02c750ab1c126..8c83f358ced5a 100644 --- a/core/l10n/zh_CN.js +++ b/core/l10n/zh_CN.js @@ -81,6 +81,7 @@ OC.L10N.register( "I know what I'm doing" : "我知道我在做什么", "Password can not be changed. Please contact your administrator." : "无法修改密码, 请联系管理员.", "Reset password" : "重置密码", + "Sending email …" : "正在发送邮件…", "No" : "否", "Yes" : "是", "No files in here" : "未找到文件", @@ -109,6 +110,12 @@ OC.L10N.register( "So-so password" : "一般强度的密码", "Good password" : "较强的密码", "Strong password" : "强密码", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "您的网页服务器没有正确设置允许文件同步,因为 WebDAV 接口看起来无法正常工作。", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "您的网页服务器未正确设置以解析“{url}”。更多信息请参见文档。", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "此服务器没有可用的互联网连接:多个节点无法访问。这意味着某些功能比如挂载外部存储,更新通知以及安装第三方应用将无法工作。远程访问文件和发送通知邮件可能也不工作。启用这台服务器上的互联网连接以享用所有功能。", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP 无法访问 /dev/urandom,出于安全原因这是强烈不推荐的。更多信息请参见文档。", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "您当前正在运行 PHP 版本 {version}。我们建议您尽快在您的发行版支持新版本的时候进行升级,以获得来自 PHP 官方的性能和安全的提升。", "Error occurred while checking server setup" : "检查服务器设置时出错", "Shared" : "已共享", "Error setting expiration date" : "设置过期日期时出错", @@ -256,9 +263,12 @@ OC.L10N.register( "Wrong password." : "密码错误", "Log in" : "登录", "Stay logged in" : "保持登录", + "Forgot password?" : "忘记密码?", + "Back to log in" : "返回登录", "Alternative Logins" : "其他登录方式", "Account access" : "账户访问", "You are about to grant %s access to your %s account." : "你将分配 %s 访问权限给你的 %s 账户。", + "Grant access" : "授权访问", "App token" : "App 令牌", "Alternative login using app token" : "使用应用程序令牌替代登录", "Redirecting …" : "正在转向...", @@ -284,6 +294,7 @@ OC.L10N.register( "Detailed logs" : "详细日志", "Update needed" : "需要更新", "Please use the command line updater because you have a big instance with more than 50 users." : "请使用命令行更新,因为您有一个超过50个用户的大型实例。", + "For help, see the documentation." : "获取更多帮助,请查看文档。", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "我知道继续通过Web UI进行更新的风险,请求超时运行,并可能导致数据丢失,但我有一个备份,并知道如何恢复。", "Upgrade via web on my own risk" : "通过网络升级的风险", "This %s instance is currently in maintenance mode, which may take a while." : "该实例 %s 当前处于维护模式, 这将花费一些时间.", diff --git a/core/l10n/zh_CN.json b/core/l10n/zh_CN.json index 79b2619847fbf..93893093a8262 100644 --- a/core/l10n/zh_CN.json +++ b/core/l10n/zh_CN.json @@ -79,6 +79,7 @@ "I know what I'm doing" : "我知道我在做什么", "Password can not be changed. Please contact your administrator." : "无法修改密码, 请联系管理员.", "Reset password" : "重置密码", + "Sending email …" : "正在发送邮件…", "No" : "否", "Yes" : "是", "No files in here" : "未找到文件", @@ -107,6 +108,12 @@ "So-so password" : "一般强度的密码", "Good password" : "较强的密码", "Strong password" : "强密码", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "您的网页服务器没有正确设置允许文件同步,因为 WebDAV 接口看起来无法正常工作。", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "您的网页服务器未正确设置以解析“{url}”。更多信息请参见文档。", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. Establish a connection from this server to the Internet to enjoy all features." : "此服务器没有可用的互联网连接:多个节点无法访问。这意味着某些功能比如挂载外部存储,更新通知以及安装第三方应用将无法工作。远程访问文件和发送通知邮件可能也不工作。启用这台服务器上的互联网连接以享用所有功能。", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "内存缓存未配置,为了提升使用体验,请尽量配置内存缓存。更多信息请参见文档。", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP 无法访问 /dev/urandom,出于安全原因这是强烈不推荐的。更多信息请参见文档。", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "您当前正在运行 PHP 版本 {version}。我们建议您尽快在您的发行版支持新版本的时候进行升级,以获得来自 PHP 官方的性能和安全的提升。", "Error occurred while checking server setup" : "检查服务器设置时出错", "Shared" : "已共享", "Error setting expiration date" : "设置过期日期时出错", @@ -254,9 +261,12 @@ "Wrong password." : "密码错误", "Log in" : "登录", "Stay logged in" : "保持登录", + "Forgot password?" : "忘记密码?", + "Back to log in" : "返回登录", "Alternative Logins" : "其他登录方式", "Account access" : "账户访问", "You are about to grant %s access to your %s account." : "你将分配 %s 访问权限给你的 %s 账户。", + "Grant access" : "授权访问", "App token" : "App 令牌", "Alternative login using app token" : "使用应用程序令牌替代登录", "Redirecting …" : "正在转向...", @@ -282,6 +292,7 @@ "Detailed logs" : "详细日志", "Update needed" : "需要更新", "Please use the command line updater because you have a big instance with more than 50 users." : "请使用命令行更新,因为您有一个超过50个用户的大型实例。", + "For help, see the documentation." : "获取更多帮助,请查看文档。", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "我知道继续通过Web UI进行更新的风险,请求超时运行,并可能导致数据丢失,但我有一个备份,并知道如何恢复。", "Upgrade via web on my own risk" : "通过网络升级的风险", "This %s instance is currently in maintenance mode, which may take a while." : "该实例 %s 当前处于维护模式, 这将花费一些时间.", From 7d529c081a5b379b7058d194970dc79c3b49357f Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Thu, 7 Dec 2017 01:10:37 +0000 Subject: [PATCH 56/92] [tx-robot] updated from transifex --- apps/files/l10n/et_EE.js | 9 +++++++ apps/files/l10n/et_EE.json | 9 +++++++ apps/files_external/l10n/zh_TW.js | 8 ++++++ apps/files_external/l10n/zh_TW.json | 8 ++++++ apps/oauth2/l10n/et_EE.js | 11 ++++++++ apps/oauth2/l10n/et_EE.json | 9 +++++++ apps/theming/l10n/af.js | 6 +++++ apps/theming/l10n/af.json | 6 +++++ core/l10n/et_EE.js | 39 ++++++++++++++++++++++++++++- core/l10n/et_EE.json | 39 ++++++++++++++++++++++++++++- settings/l10n/et_EE.js | 13 ++++++++++ settings/l10n/et_EE.json | 13 ++++++++++ 12 files changed, 168 insertions(+), 2 deletions(-) create mode 100644 apps/oauth2/l10n/et_EE.js create mode 100644 apps/oauth2/l10n/et_EE.json diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js index 46ddc73101c99..8bb56696fc179 100644 --- a/apps/files/l10n/et_EE.js +++ b/apps/files/l10n/et_EE.js @@ -16,11 +16,14 @@ OC.L10N.register( "Not enough free space, you are uploading {size1} but only {size2} is left" : "Pole piisavalt vaba ruumi. Sa laadid üles {size1}, kuid ainult {size2} on saadaval.", "Target folder \"{dir}\" does not exist any more" : "Kausta \"{dir}\" pole enam olemas", "Not enough free space" : "Pole piisavalt vaba ruumi", + "Uploading …" : "Üleslaadminie ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{loadedSize} ({bitrate})", + "Target folder does not exist any more" : "Sihtkataloogi pole enam olemas", "Actions" : "Tegevused", "Download" : "Lae alla", "Rename" : "Nimeta ümber", + "Move or copy" : "Liiguta või kopeeri", "Target folder" : "Sihtkaust", "Delete" : "Kustuta", "Disconnect storage" : "Ühenda andmehoidla lahti.", @@ -35,6 +38,8 @@ OC.L10N.register( "This directory is unavailable, please check the logs or contact the administrator" : "See kaust pole saadaval. Palun kontrolli logifaile või võta ühendust administraatoriga", "Could not move \"{file}\", target exists" : "\"{file}\" liigutamine ebaõnnestus, fail on juba olemas", "Could not move \"{file}\"" : "\"{file}\" liigutamine ebaõnnestus", + "Could not copy \"{file}\", target exists" : "\"{file}\" kopeerimine ebaõnnestus, sihtfail on juba olemas", + "Could not copy \"{file}\"" : "\"{file}\" kopeerimine ebaõnnestus", "{newName} already exists" : "{newName} on juba olemas", "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" ümbernimetamine ebaõnnestus, seda pole enam olemas", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{targetName}\" on juba \"{dir}\" kaustas kasutusel. Palun valige teine nimi.", @@ -71,6 +76,8 @@ OC.L10N.register( "Favorite" : "Lemmik", "New folder" : "Uus kaust", "Upload file" : "Lae fail üles", + "Remove from favorites" : "Eemalda lemmikutest", + "Add to favorites" : "Lisa lemmikutesse", "An error occurred while trying to update the tags" : "Siltide uuendamisel tekkis tõrge", "Added to favorites" : "Lemmikutesse lisatud", "Removed from favorites" : "Lemmikutest eemaldatud", @@ -116,6 +123,8 @@ OC.L10N.register( "Settings" : "Seaded", "Show hidden files" : "Näita peidetud faile", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Kasuta seda aadressi, et oma failidele WebDAV kaudu ligi pääseda", + "Cancel upload" : "Tühista üleslaadimine", "No files in here" : "Siin ei ole faile", "Upload some content or sync with your devices!" : "Laadi sisu üles või süngi oma seadmetega!", "No entries found in this folder" : "Selles kaustast ei leitud kirjeid", diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json index 0b2919ef2ba2c..0b45f837a0ee1 100644 --- a/apps/files/l10n/et_EE.json +++ b/apps/files/l10n/et_EE.json @@ -14,11 +14,14 @@ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Pole piisavalt vaba ruumi. Sa laadid üles {size1}, kuid ainult {size2} on saadaval.", "Target folder \"{dir}\" does not exist any more" : "Kausta \"{dir}\" pole enam olemas", "Not enough free space" : "Pole piisavalt vaba ruumi", + "Uploading …" : "Üleslaadminie ...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{loadedSize} ({bitrate})", + "Target folder does not exist any more" : "Sihtkataloogi pole enam olemas", "Actions" : "Tegevused", "Download" : "Lae alla", "Rename" : "Nimeta ümber", + "Move or copy" : "Liiguta või kopeeri", "Target folder" : "Sihtkaust", "Delete" : "Kustuta", "Disconnect storage" : "Ühenda andmehoidla lahti.", @@ -33,6 +36,8 @@ "This directory is unavailable, please check the logs or contact the administrator" : "See kaust pole saadaval. Palun kontrolli logifaile või võta ühendust administraatoriga", "Could not move \"{file}\", target exists" : "\"{file}\" liigutamine ebaõnnestus, fail on juba olemas", "Could not move \"{file}\"" : "\"{file}\" liigutamine ebaõnnestus", + "Could not copy \"{file}\", target exists" : "\"{file}\" kopeerimine ebaõnnestus, sihtfail on juba olemas", + "Could not copy \"{file}\"" : "\"{file}\" kopeerimine ebaõnnestus", "{newName} already exists" : "{newName} on juba olemas", "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" ümbernimetamine ebaõnnestus, seda pole enam olemas", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{targetName}\" on juba \"{dir}\" kaustas kasutusel. Palun valige teine nimi.", @@ -69,6 +74,8 @@ "Favorite" : "Lemmik", "New folder" : "Uus kaust", "Upload file" : "Lae fail üles", + "Remove from favorites" : "Eemalda lemmikutest", + "Add to favorites" : "Lisa lemmikutesse", "An error occurred while trying to update the tags" : "Siltide uuendamisel tekkis tõrge", "Added to favorites" : "Lemmikutesse lisatud", "Removed from favorites" : "Lemmikutest eemaldatud", @@ -114,6 +121,8 @@ "Settings" : "Seaded", "Show hidden files" : "Näita peidetud faile", "WebDAV" : "WebDAV", + "Use this address to access your Files via WebDAV" : "Kasuta seda aadressi, et oma failidele WebDAV kaudu ligi pääseda", + "Cancel upload" : "Tühista üleslaadimine", "No files in here" : "Siin ei ole faile", "Upload some content or sync with your devices!" : "Laadi sisu üles või süngi oma seadmetega!", "No entries found in this folder" : "Selles kaustast ei leitud kirjeid", diff --git a/apps/files_external/l10n/zh_TW.js b/apps/files_external/l10n/zh_TW.js index 03310bc05b4fc..b0cc604426c69 100644 --- a/apps/files_external/l10n/zh_TW.js +++ b/apps/files_external/l10n/zh_TW.js @@ -28,10 +28,13 @@ OC.L10N.register( "external-storage" : "外部儲存", "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "無法取得Windows網路磁碟掛載點清單:伺服器無回應。", "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "有些外部掛載位置設定無法連線,請點(多個)紅色橫幅了解詳情。", + "Please enter the credentials for the {mount} mount" : "請輸入認證來進行掛載{掛載來源}", "Username" : "使用者名稱", "Password" : "密碼", "Credentials saved" : "已儲存憑證", "Credentials saving failed" : "憑證儲存失敗", + "Credentials required" : "需要憑證訊息", + "Storage with ID \"%d\" not found" : "沒有找到使用者 \"%d\" 的儲存空間 ", "Invalid backend or authentication mechanism class" : "無效的後端處理或是驗證方式", "Invalid mount point" : "無效的掛載點", "Objectstore forbidden" : "物件儲存禁止存取", @@ -42,12 +45,15 @@ OC.L10N.register( "Unsatisfied authentication mechanism parameters" : "無法滿足驗證機制所需的參數條件", "Insufficient data: %s" : "資料不足: %s", "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "使用者\"%d\"無法對此儲存位置進行編輯", "Access key" : "存取金鑰", "Secret key" : "私密金鑰", "Builtin" : "公告", "None" : "無", + "OAuth1" : "OAuth1", "App key" : "App 金鑰", "App secret" : "App 密碼", + "OAuth2" : "OAuth2", "Client ID" : "客戶端ID", "Client secret" : "客戶端密碼", "OpenStack" : "OpenStack", @@ -96,6 +102,7 @@ OC.L10N.register( "Enable sharing" : "啟動分享", "Check for changes" : "檢查變動", "Never" : "絕不", + "Once every direct access" : "在每次進行存取動作時", "Folder name" : "資料夾名稱", "External storage" : "外部儲存", "Authentication" : "驗證", @@ -113,6 +120,7 @@ OC.L10N.register( "Dropbox App Configuration" : "Dropbox 應用設置", "Google Drive App Configuration" : "Google Drive 應用設置", "Storage with id \"%i\" not found" : "沒有找到編號 \"%i\" 的儲存空間 ", + "Storage with id \"%i\" is not user editable" : "使用者\"%i\"無法對此儲存位置進行編輯", "Dropbox" : "Dropbox", "Google Drive" : "Google 雲端硬碟" }, diff --git a/apps/files_external/l10n/zh_TW.json b/apps/files_external/l10n/zh_TW.json index ea089f80a33dd..aebcada96f97c 100644 --- a/apps/files_external/l10n/zh_TW.json +++ b/apps/files_external/l10n/zh_TW.json @@ -26,10 +26,13 @@ "external-storage" : "外部儲存", "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "無法取得Windows網路磁碟掛載點清單:伺服器無回應。", "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "有些外部掛載位置設定無法連線,請點(多個)紅色橫幅了解詳情。", + "Please enter the credentials for the {mount} mount" : "請輸入認證來進行掛載{掛載來源}", "Username" : "使用者名稱", "Password" : "密碼", "Credentials saved" : "已儲存憑證", "Credentials saving failed" : "憑證儲存失敗", + "Credentials required" : "需要憑證訊息", + "Storage with ID \"%d\" not found" : "沒有找到使用者 \"%d\" 的儲存空間 ", "Invalid backend or authentication mechanism class" : "無效的後端處理或是驗證方式", "Invalid mount point" : "無效的掛載點", "Objectstore forbidden" : "物件儲存禁止存取", @@ -40,12 +43,15 @@ "Unsatisfied authentication mechanism parameters" : "無法滿足驗證機制所需的參數條件", "Insufficient data: %s" : "資料不足: %s", "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "使用者\"%d\"無法對此儲存位置進行編輯", "Access key" : "存取金鑰", "Secret key" : "私密金鑰", "Builtin" : "公告", "None" : "無", + "OAuth1" : "OAuth1", "App key" : "App 金鑰", "App secret" : "App 密碼", + "OAuth2" : "OAuth2", "Client ID" : "客戶端ID", "Client secret" : "客戶端密碼", "OpenStack" : "OpenStack", @@ -94,6 +100,7 @@ "Enable sharing" : "啟動分享", "Check for changes" : "檢查變動", "Never" : "絕不", + "Once every direct access" : "在每次進行存取動作時", "Folder name" : "資料夾名稱", "External storage" : "外部儲存", "Authentication" : "驗證", @@ -111,6 +118,7 @@ "Dropbox App Configuration" : "Dropbox 應用設置", "Google Drive App Configuration" : "Google Drive 應用設置", "Storage with id \"%i\" not found" : "沒有找到編號 \"%i\" 的儲存空間 ", + "Storage with id \"%i\" is not user editable" : "使用者\"%i\"無法對此儲存位置進行編輯", "Dropbox" : "Dropbox", "Google Drive" : "Google 雲端硬碟" },"pluralForm" :"nplurals=1; plural=0;" diff --git a/apps/oauth2/l10n/et_EE.js b/apps/oauth2/l10n/et_EE.js new file mode 100644 index 0000000000000..8cba010336baa --- /dev/null +++ b/apps/oauth2/l10n/et_EE.js @@ -0,0 +1,11 @@ +OC.L10N.register( + "oauth2", + { + "OAuth 2.0 clients" : "OAuth 2.0 kliendid", + "Name" : "Nimi", + "Redirection URI" : "Suunamise URI", + "Secret" : "Saladus", + "Add client" : "Lisa klient", + "Add" : "Lisa" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/oauth2/l10n/et_EE.json b/apps/oauth2/l10n/et_EE.json new file mode 100644 index 0000000000000..cbe3238027fdd --- /dev/null +++ b/apps/oauth2/l10n/et_EE.json @@ -0,0 +1,9 @@ +{ "translations": { + "OAuth 2.0 clients" : "OAuth 2.0 kliendid", + "Name" : "Nimi", + "Redirection URI" : "Suunamise URI", + "Secret" : "Saladus", + "Add client" : "Lisa klient", + "Add" : "Lisa" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/apps/theming/l10n/af.js b/apps/theming/l10n/af.js index 039358f40274c..2ea5095c8c224 100644 --- a/apps/theming/l10n/af.js +++ b/apps/theming/l10n/af.js @@ -9,6 +9,12 @@ OC.L10N.register( "The given web address is too long" : "Die gegewe webadres is te lank", "The given slogan is too long" : "Gegewe slagspreuk is te lank", "The given color is invalid" : "Die gegewe kleur is ongeldig", + "There is no error, the file uploaded with success" : "Geen fout is teëgekom nie, die lêer is met suksesvol opgelaai", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die opgelaaide lêer oorskry die upload_max_filesize riglyn in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die opgelaaide lêer oorskry die MAX_FILE_SIZE riglyn wat in die HTML vorm gespesifiseer is", + "The uploaded file was only partially uploaded" : "Die opgelaaide lêer is slegs gedeeltelik opgelaai", + "No file was uploaded" : "Geen lêer is opgelaai", + "Missing a temporary folder" : "Ontbrekende tydelike gids", "No file uploaded" : "Geen lêer opgelaai", "Unsupported image type" : "Onondersteunde beeldtipe", "You are already using a custom theme" : "U gebruik reeds ’n pasgemaakte tema", diff --git a/apps/theming/l10n/af.json b/apps/theming/l10n/af.json index 5e8b0df0e69dc..ea36d75cc18fb 100644 --- a/apps/theming/l10n/af.json +++ b/apps/theming/l10n/af.json @@ -7,6 +7,12 @@ "The given web address is too long" : "Die gegewe webadres is te lank", "The given slogan is too long" : "Gegewe slagspreuk is te lank", "The given color is invalid" : "Die gegewe kleur is ongeldig", + "There is no error, the file uploaded with success" : "Geen fout is teëgekom nie, die lêer is met suksesvol opgelaai", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "Die opgelaaide lêer oorskry die upload_max_filesize riglyn in php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Die opgelaaide lêer oorskry die MAX_FILE_SIZE riglyn wat in die HTML vorm gespesifiseer is", + "The uploaded file was only partially uploaded" : "Die opgelaaide lêer is slegs gedeeltelik opgelaai", + "No file was uploaded" : "Geen lêer is opgelaai", + "Missing a temporary folder" : "Ontbrekende tydelike gids", "No file uploaded" : "Geen lêer opgelaai", "Unsupported image type" : "Onondersteunde beeldtipe", "You are already using a custom theme" : "U gebruik reeds ’n pasgemaakte tema", diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js index fb8971158f812..98b9ed285e68f 100644 --- a/core/l10n/et_EE.js +++ b/core/l10n/et_EE.js @@ -30,6 +30,7 @@ OC.L10N.register( "Repair warning: " : "Paranda hoiatus:", "Repair error: " : "Paranda viga:", "Please use the command line updater because automatic updating is disabled in the config.php." : "Palun kasutage uuendamiseks käsurida, kuna automaatne uuendamine on config.php failis välja lülitatud.", + "[%d / %d]: Checking table %s" : "[%d / %d]: Kontrollin tabelit %s", "Turned on maintenance mode" : "Hooldusrežiim sisse lülitatud", "Turned off maintenance mode" : "Hooldusrežiim välja lülitatud", "Maintenance mode is kept active" : "Hooldusrežiim on aktiivne", @@ -44,6 +45,7 @@ OC.L10N.register( "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Kontrollitakse, kas %s andmebaasi skeemi saab uuendada (see võib võtta kaua aega sõltuvalt andmebaasi suuruses)", "Checked database schema update for apps" : "Andmebaasi skeemi uuendus rakendustele on kontrollitud", "Updated \"%s\" to %s" : "Uuendatud \"%s\" -> %s", + "Reset log level" : "Lähtesta logi tase", "Starting code integrity check" : "Koodi terviklikkuse kontrolli alustamine", "Finished code integrity check" : "Koodi terviklikkuse kontrolli lõpp", "%s (3rdparty)" : "%s (3nda osapoole arendaja)", @@ -56,6 +58,9 @@ OC.L10N.register( "There was an error loading your contacts" : "Kontaktide laadimisel tekkis tõrge", "Loading your contacts …" : "Sinu kontaktide laadimine ...", "Looking for {term} …" : "Otsin {term} …", + "There were problems with the code integrity check. More information…" : "Koodi terviklikkuse kontrollis ilmnes viga. Rohkem infot …", + "No action available" : "Ühtegi tegevust pole saadaval", + "Error fetching contact actions" : "Viga kontakti toimingute laadimisel", "Settings" : "Seaded", "Connection to server lost" : "Ühendus serveriga katkes", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Tõrge lehe laadimisel, ümberlaadimine %n sekundi pärast","Tõrge lehe laadimisel, ümberlaadimine %n sekundi pärast"], @@ -74,11 +79,13 @@ OC.L10N.register( "I know what I'm doing" : "Ma tean mida teen", "Password can not be changed. Please contact your administrator." : "Parooli ei saa muuta. Palun kontakteeru oma süsteemihalduriga.", "Reset password" : "Nulli parool", + "Sending email …" : "Saadan kirja ...", "No" : "Ei", "Yes" : "Jah", "No files in here" : "Siin ei ole faile", "Choose" : "Vali", "Copy" : "Kopeeri", + "Move" : "Liiguta", "Error loading file picker template: {error}" : "Viga failivalija malli laadimisel: {error}", "OK" : "OK", "Error loading message template: {error}" : "Viga sõnumi malli laadimisel: {error}", @@ -94,13 +101,18 @@ OC.L10N.register( "({count} selected)" : "({count} valitud)", "Error loading file exists template" : "Viga faili olemasolu malli laadimisel", "Pending" : "Ootel", + "Copy to {folder}" : "Kopeeri {kausta}", + "Move to {folder}" : "Liiguta {kausta}", "Very weak password" : "Väga nõrk parool", "Weak password" : "Nõrk parool", "So-so password" : "Enam-vähem sobiv parool", "Good password" : "Hea parool", "Strong password" : "Väga hea parool", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Sinu veebiserver pole veel piisavalt korralikult seadistatud, et lubada failide sünkroniseerimist, kuna WebDAV liides paistab olevat katki.", "Error occurred while checking server setup" : "Serveri seadete kontrolimisel tekkis viga", "Shared" : "Jagatud", + "Shared with" : "Jagatud", + "Shared by" : "Jagas", "Error setting expiration date" : "Viga aegumise kuupäeva määramisel", "The public link will expire no later than {days} days after it is created" : "Avalik link aegub mitte hiljem kui pärast {days} päeva selle loomist", "Set expiration date" : "Määra aegumise kuupäev", @@ -125,7 +137,10 @@ OC.L10N.register( "File drop (upload only)" : "Faili lohistamine (ainult üleslaadimine)", "Shared with you and the group {group} by {owner}" : "Jagatud sinu ja {group} grupiga {owner} poolt", "Shared with you by {owner}" : "Sinuga jagas {owner}", + "Choose a password for the mail share" : "Vali parool e-postiga jagamisel", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} lingiga jagatud", "group" : "grupp", + "remote" : "kaug", "email" : "e-post", "shared by {sharer}" : "jagatud kasutajalt {sharer}", "Unshare" : "Lõpeta jagamine", @@ -137,12 +152,16 @@ OC.L10N.register( "Access control" : "Ligipääsukontroll", "Could not unshare" : "Jagamise lõpetamine ebaõnnestus", "Error while sharing" : "Viga jagamisel", + "Share details could not be loaded for this item." : "Selle üksuse jagamise detaile ei õnnestunud laadida.", + "This list is maybe truncated - please refine your search term to see more results." : "See nimekiri võib olla kärbitud - palun täpsusta oma otsingut, et näha rohkem tulemusi.", "No users or groups found for {search}" : "Otsingu {search} põhjal kasutajaid ega gruppe ei leitud", "No users found for {search}" : "Otsingu {search} põhjal kasutajaid ei leitud", "An error occurred. Please try again" : "Tekkis tõrge. Palun proovi uuesti", "{sharee} (group)" : "{sharee} (group)", "{sharee} (remote)" : "{sharee} (mujal serveris)", + "{sharee} (email)" : "{sharee} (email)", "Share" : "Jaga", + "Share with other people by entering a user or group or an email address." : "Jaga teiste inimestega, sisestades kasutaja, grupi või e-posti aadressi.", "Name or email address..." : "Nimi või e-posti aadress", "Name..." : "Nimi...", "Error" : "Viga", @@ -153,6 +172,7 @@ OC.L10N.register( "({scope})" : "({scope})", "Delete" : "Kustuta", "Rename" : "Nimeta ümber", + "Collaborative tags" : "Koostöö sildid", "No tags found" : "Märgendeid ei leitud", "unknown text" : "tundmatu tekst", "Hello world!" : "Tere maailm!", @@ -161,11 +181,15 @@ OC.L10N.register( "Hello {name}" : "Tere, {name}", "new" : "uus", "_download %n file_::_download %n files_" : ["laadi alla %n fail","laadi alla %n faili"], + "The update is in progress, leaving this page might interrupt the process in some environments." : "Värskendus on käimas, lahkudes sellelt lehelt võib protsessi mõnes keskkonnas katkestada.", "Update to {version}" : "Uuenda versioonile {version}", "An error occurred." : "Tekkis tõrge.", "Please reload the page." : "Palun laadi see uuesti.", + "The update was unsuccessful. For more information check our forum post covering this issue." : "Uuendus ebaõnnestus. Täiendavat infot vaata meie foorumi postituses .", + "The update was unsuccessful. Please report this issue to the Nextcloud community." : "Uuendus ebaõnnestus. Palun teavita probleemist Nextcloudi kogukonda.", "Continue to Nextcloud" : "Edasi Nextcloudi", "Searching other places" : "Otsi teistest kohtadest", + "No search results in other folders for {tag}{filter}{endtag}" : "Teistest kaustadest ei leitud {tag}{filter}{endtag}", "Personal" : "Isiklik", "Users" : "Kasutajad", "Apps" : "Rakendused", @@ -203,8 +227,11 @@ OC.L10N.register( "Database name" : "Andmebasi nimi", "Database tablespace" : "Andmebaasi tabeliruum", "Database host" : "Andmebaasi host", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Palun sisesta pordi number koos hostinimega (nt. localhost: 5432).", "Performance warning" : "Kiiruse hoiatus", "SQLite will be used as database." : "Andmebaasina kasutatakse SQLite", + "For larger installations we recommend to choose a different database backend." : "Suuremate paigalduste jaoks soovitame valida teise andmebaasi.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Eriti kui tasutad töölaua rakendust failide sünkroonimiseks on SQLite andmebaas ebasoovitav.", "Finish setup" : "Lõpeta seadistamine", "Finishing …" : "Lõpetamine ...", "Need help?" : "Vajad abi?", @@ -212,6 +239,7 @@ OC.L10N.register( "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "See rakendus vajab toimimiseks JavaScripti. Palun {linkstart}luba JavaScript{linkend} ning laadi see leht uuesti.", "More apps" : "Veel rakendusi", "Search" : "Otsi", + "Reset search" : "Lähtesta otsing", "Confirm your password" : "Kinnita oma parool", "Server side authentication failed!" : "Serveripoolne autentimine ebaõnnestus!", "Please contact your administrator." : "Palun kontakteeru oma süsteemihalduriga.", @@ -221,14 +249,21 @@ OC.L10N.register( "Wrong password." : "Vale parool.", "Log in" : "Logi sisse", "Stay logged in" : "Püsi sisselogituna", + "Forgot password?" : "Unustasid parooli?", "Alternative Logins" : "Alternatiivsed sisselogimisviisid", "Account access" : "Konto ligipääs", + "You are about to grant %s access to your %s account." : "Sa oled andmas %s ligipääsu oma %s kontole.", + "Grant access" : "Anna ligipääs", "Redirecting …" : "Ümbersuunamine ...", "New password" : "Uus parool", "New Password" : "Uus parool", "Two-factor authentication" : "Kaheastmeline autentimine", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "Täiustatud turvalisus on teie konto jaoks lubatud. Palun autentida teise teguri abil.", "Cancel log in" : "Katkesta sisselogimine", + "Use backup code" : "Kasuta varu koodi", + "Error while validating your second factor" : "Teise faktori valideerimise viga", "Access through untrusted domain" : "Ligipääs läbi ebausaldusväärse domeeni", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Palun võtke ühendust oma administraatoriga. Kui olete administraator, muutke konfiguratsioonis config/config.php sätet \"trusted_domains\", nagu näidis config.sample.php failis.", "Add \"%s\" as trusted domain" : "Lisa \"%s\" usaldusväärse domeenina", "App update required" : "Rakenduse uuendus on nõutud", "%s will be updated to version %s" : "%s uuendatakse versioonile %s", @@ -250,6 +285,7 @@ OC.L10N.register( "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.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Sinu failid on krüpteeritud. Kui sa pole taastamise võtit veel määranud, siis pole präast parooli taastamist mingit võimalust sinu andmeid tagasi saada.
Kui sa pole kindel, mida teha, siis palun väta enne jätkamist ühendust oma administaatoriga.
Oled sa kindel, et sa soovid jätkata?", "Ok" : "Ok", "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Sinu veebiserver pole veel piisavalt korralikult seadistatud, et lubada failide sünkroniseerimist, kuna WebDAV liides paistab olevat katki.", + "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our documentation." : "Sinu veebiserver pole veel piisavalt korralikult seadistatud, et lahendada aadressi \"{url}\". Lisateavet leiate meie dokumendist .", "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Serveril puudub toimiv internetiühendus: mitmete lõpp-punktidega ei saavutatud ühendust. See tähendab, et mõned funktsionaalsused, nagu näiteks väliste andmehoidlate ühendamine, teavitused uuendustest või kolmandate osapoolte rakenduste paigaldamine ei tööta. Eemalt failidele ligipääs ning teadete saatmine emailiga ei pruugi samuti toimida. Kui soovid täielikku funktsionaalsust, siis soovitame serverile tagada ligipääs internetti.", "Shared with {recipients}" : "Jagatud {recipients}", "Error while unsharing" : "Viga jagamise lõpetamisel", @@ -289,6 +325,7 @@ OC.L10N.register( "You are accessing the server from an untrusted domain." : "Sa kasutad serverit usalduseta asukohast", "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." : "Palun võtke ühendust administraatoriga. Kui te olete administraator, siis seadistage \"trusted_domains\" failis config/config.php. Näidisseadistus on olemas failis 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." : "Sõltuvalt sinu seadetest võib ka administraator kasutada allolevat nuppu, et seda domeeni usaldusväärseks märkida.", - "For help, see the documentation." : "Abiinfo saamiseks vaata dokumentatsiooni." + "For help, see the documentation." : "Abiinfo saamiseks vaata dokumentatsiooni.", + "You are about to grant \"%s\" access to your %s account." : "Sa oled andmas \"%s\" ligipääsu oma %s kontole." }, "nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json index 465696e665a76..a10dda6140c95 100644 --- a/core/l10n/et_EE.json +++ b/core/l10n/et_EE.json @@ -28,6 +28,7 @@ "Repair warning: " : "Paranda hoiatus:", "Repair error: " : "Paranda viga:", "Please use the command line updater because automatic updating is disabled in the config.php." : "Palun kasutage uuendamiseks käsurida, kuna automaatne uuendamine on config.php failis välja lülitatud.", + "[%d / %d]: Checking table %s" : "[%d / %d]: Kontrollin tabelit %s", "Turned on maintenance mode" : "Hooldusrežiim sisse lülitatud", "Turned off maintenance mode" : "Hooldusrežiim välja lülitatud", "Maintenance mode is kept active" : "Hooldusrežiim on aktiivne", @@ -42,6 +43,7 @@ "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Kontrollitakse, kas %s andmebaasi skeemi saab uuendada (see võib võtta kaua aega sõltuvalt andmebaasi suuruses)", "Checked database schema update for apps" : "Andmebaasi skeemi uuendus rakendustele on kontrollitud", "Updated \"%s\" to %s" : "Uuendatud \"%s\" -> %s", + "Reset log level" : "Lähtesta logi tase", "Starting code integrity check" : "Koodi terviklikkuse kontrolli alustamine", "Finished code integrity check" : "Koodi terviklikkuse kontrolli lõpp", "%s (3rdparty)" : "%s (3nda osapoole arendaja)", @@ -54,6 +56,9 @@ "There was an error loading your contacts" : "Kontaktide laadimisel tekkis tõrge", "Loading your contacts …" : "Sinu kontaktide laadimine ...", "Looking for {term} …" : "Otsin {term} …", + "There were problems with the code integrity check. More information…" : "Koodi terviklikkuse kontrollis ilmnes viga. Rohkem infot …", + "No action available" : "Ühtegi tegevust pole saadaval", + "Error fetching contact actions" : "Viga kontakti toimingute laadimisel", "Settings" : "Seaded", "Connection to server lost" : "Ühendus serveriga katkes", "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Tõrge lehe laadimisel, ümberlaadimine %n sekundi pärast","Tõrge lehe laadimisel, ümberlaadimine %n sekundi pärast"], @@ -72,11 +77,13 @@ "I know what I'm doing" : "Ma tean mida teen", "Password can not be changed. Please contact your administrator." : "Parooli ei saa muuta. Palun kontakteeru oma süsteemihalduriga.", "Reset password" : "Nulli parool", + "Sending email …" : "Saadan kirja ...", "No" : "Ei", "Yes" : "Jah", "No files in here" : "Siin ei ole faile", "Choose" : "Vali", "Copy" : "Kopeeri", + "Move" : "Liiguta", "Error loading file picker template: {error}" : "Viga failivalija malli laadimisel: {error}", "OK" : "OK", "Error loading message template: {error}" : "Viga sõnumi malli laadimisel: {error}", @@ -92,13 +99,18 @@ "({count} selected)" : "({count} valitud)", "Error loading file exists template" : "Viga faili olemasolu malli laadimisel", "Pending" : "Ootel", + "Copy to {folder}" : "Kopeeri {kausta}", + "Move to {folder}" : "Liiguta {kausta}", "Very weak password" : "Väga nõrk parool", "Weak password" : "Nõrk parool", "So-so password" : "Enam-vähem sobiv parool", "Good password" : "Hea parool", "Strong password" : "Väga hea parool", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "Sinu veebiserver pole veel piisavalt korralikult seadistatud, et lubada failide sünkroniseerimist, kuna WebDAV liides paistab olevat katki.", "Error occurred while checking server setup" : "Serveri seadete kontrolimisel tekkis viga", "Shared" : "Jagatud", + "Shared with" : "Jagatud", + "Shared by" : "Jagas", "Error setting expiration date" : "Viga aegumise kuupäeva määramisel", "The public link will expire no later than {days} days after it is created" : "Avalik link aegub mitte hiljem kui pärast {days} päeva selle loomist", "Set expiration date" : "Määra aegumise kuupäev", @@ -123,7 +135,10 @@ "File drop (upload only)" : "Faili lohistamine (ainult üleslaadimine)", "Shared with you and the group {group} by {owner}" : "Jagatud sinu ja {group} grupiga {owner} poolt", "Shared with you by {owner}" : "Sinuga jagas {owner}", + "Choose a password for the mail share" : "Vali parool e-postiga jagamisel", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} lingiga jagatud", "group" : "grupp", + "remote" : "kaug", "email" : "e-post", "shared by {sharer}" : "jagatud kasutajalt {sharer}", "Unshare" : "Lõpeta jagamine", @@ -135,12 +150,16 @@ "Access control" : "Ligipääsukontroll", "Could not unshare" : "Jagamise lõpetamine ebaõnnestus", "Error while sharing" : "Viga jagamisel", + "Share details could not be loaded for this item." : "Selle üksuse jagamise detaile ei õnnestunud laadida.", + "This list is maybe truncated - please refine your search term to see more results." : "See nimekiri võib olla kärbitud - palun täpsusta oma otsingut, et näha rohkem tulemusi.", "No users or groups found for {search}" : "Otsingu {search} põhjal kasutajaid ega gruppe ei leitud", "No users found for {search}" : "Otsingu {search} põhjal kasutajaid ei leitud", "An error occurred. Please try again" : "Tekkis tõrge. Palun proovi uuesti", "{sharee} (group)" : "{sharee} (group)", "{sharee} (remote)" : "{sharee} (mujal serveris)", + "{sharee} (email)" : "{sharee} (email)", "Share" : "Jaga", + "Share with other people by entering a user or group or an email address." : "Jaga teiste inimestega, sisestades kasutaja, grupi või e-posti aadressi.", "Name or email address..." : "Nimi või e-posti aadress", "Name..." : "Nimi...", "Error" : "Viga", @@ -151,6 +170,7 @@ "({scope})" : "({scope})", "Delete" : "Kustuta", "Rename" : "Nimeta ümber", + "Collaborative tags" : "Koostöö sildid", "No tags found" : "Märgendeid ei leitud", "unknown text" : "tundmatu tekst", "Hello world!" : "Tere maailm!", @@ -159,11 +179,15 @@ "Hello {name}" : "Tere, {name}", "new" : "uus", "_download %n file_::_download %n files_" : ["laadi alla %n fail","laadi alla %n faili"], + "The update is in progress, leaving this page might interrupt the process in some environments." : "Värskendus on käimas, lahkudes sellelt lehelt võib protsessi mõnes keskkonnas katkestada.", "Update to {version}" : "Uuenda versioonile {version}", "An error occurred." : "Tekkis tõrge.", "Please reload the page." : "Palun laadi see uuesti.", + "The update was unsuccessful. For more information check our forum post covering this issue." : "Uuendus ebaõnnestus. Täiendavat infot vaata meie foorumi postituses .", + "The update was unsuccessful. Please report this issue to the Nextcloud community." : "Uuendus ebaõnnestus. Palun teavita probleemist Nextcloudi kogukonda.", "Continue to Nextcloud" : "Edasi Nextcloudi", "Searching other places" : "Otsi teistest kohtadest", + "No search results in other folders for {tag}{filter}{endtag}" : "Teistest kaustadest ei leitud {tag}{filter}{endtag}", "Personal" : "Isiklik", "Users" : "Kasutajad", "Apps" : "Rakendused", @@ -201,8 +225,11 @@ "Database name" : "Andmebasi nimi", "Database tablespace" : "Andmebaasi tabeliruum", "Database host" : "Andmebaasi host", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Palun sisesta pordi number koos hostinimega (nt. localhost: 5432).", "Performance warning" : "Kiiruse hoiatus", "SQLite will be used as database." : "Andmebaasina kasutatakse SQLite", + "For larger installations we recommend to choose a different database backend." : "Suuremate paigalduste jaoks soovitame valida teise andmebaasi.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Eriti kui tasutad töölaua rakendust failide sünkroonimiseks on SQLite andmebaas ebasoovitav.", "Finish setup" : "Lõpeta seadistamine", "Finishing …" : "Lõpetamine ...", "Need help?" : "Vajad abi?", @@ -210,6 +237,7 @@ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "See rakendus vajab toimimiseks JavaScripti. Palun {linkstart}luba JavaScript{linkend} ning laadi see leht uuesti.", "More apps" : "Veel rakendusi", "Search" : "Otsi", + "Reset search" : "Lähtesta otsing", "Confirm your password" : "Kinnita oma parool", "Server side authentication failed!" : "Serveripoolne autentimine ebaõnnestus!", "Please contact your administrator." : "Palun kontakteeru oma süsteemihalduriga.", @@ -219,14 +247,21 @@ "Wrong password." : "Vale parool.", "Log in" : "Logi sisse", "Stay logged in" : "Püsi sisselogituna", + "Forgot password?" : "Unustasid parooli?", "Alternative Logins" : "Alternatiivsed sisselogimisviisid", "Account access" : "Konto ligipääs", + "You are about to grant %s access to your %s account." : "Sa oled andmas %s ligipääsu oma %s kontole.", + "Grant access" : "Anna ligipääs", "Redirecting …" : "Ümbersuunamine ...", "New password" : "Uus parool", "New Password" : "Uus parool", "Two-factor authentication" : "Kaheastmeline autentimine", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "Täiustatud turvalisus on teie konto jaoks lubatud. Palun autentida teise teguri abil.", "Cancel log in" : "Katkesta sisselogimine", + "Use backup code" : "Kasuta varu koodi", + "Error while validating your second factor" : "Teise faktori valideerimise viga", "Access through untrusted domain" : "Ligipääs läbi ebausaldusväärse domeeni", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Palun võtke ühendust oma administraatoriga. Kui olete administraator, muutke konfiguratsioonis config/config.php sätet \"trusted_domains\", nagu näidis config.sample.php failis.", "Add \"%s\" as trusted domain" : "Lisa \"%s\" usaldusväärse domeenina", "App update required" : "Rakenduse uuendus on nõutud", "%s will be updated to version %s" : "%s uuendatakse versioonile %s", @@ -248,6 +283,7 @@ "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.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Sinu failid on krüpteeritud. Kui sa pole taastamise võtit veel määranud, siis pole präast parooli taastamist mingit võimalust sinu andmeid tagasi saada.
Kui sa pole kindel, mida teha, siis palun väta enne jätkamist ühendust oma administaatoriga.
Oled sa kindel, et sa soovid jätkata?", "Ok" : "Ok", "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Sinu veebiserver pole veel piisavalt korralikult seadistatud, et lubada failide sünkroniseerimist, kuna WebDAV liides paistab olevat katki.", + "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our documentation." : "Sinu veebiserver pole veel piisavalt korralikult seadistatud, et lahendada aadressi \"{url}\". Lisateavet leiate meie dokumendist .", "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Serveril puudub toimiv internetiühendus: mitmete lõpp-punktidega ei saavutatud ühendust. See tähendab, et mõned funktsionaalsused, nagu näiteks väliste andmehoidlate ühendamine, teavitused uuendustest või kolmandate osapoolte rakenduste paigaldamine ei tööta. Eemalt failidele ligipääs ning teadete saatmine emailiga ei pruugi samuti toimida. Kui soovid täielikku funktsionaalsust, siis soovitame serverile tagada ligipääs internetti.", "Shared with {recipients}" : "Jagatud {recipients}", "Error while unsharing" : "Viga jagamise lõpetamisel", @@ -287,6 +323,7 @@ "You are accessing the server from an untrusted domain." : "Sa kasutad serverit usalduseta asukohast", "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." : "Palun võtke ühendust administraatoriga. Kui te olete administraator, siis seadistage \"trusted_domains\" failis config/config.php. Näidisseadistus on olemas failis 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." : "Sõltuvalt sinu seadetest võib ka administraator kasutada allolevat nuppu, et seda domeeni usaldusväärseks märkida.", - "For help, see the documentation." : "Abiinfo saamiseks vaata dokumentatsiooni." + "For help, see the documentation." : "Abiinfo saamiseks vaata dokumentatsiooni.", + "You are about to grant \"%s\" access to your %s account." : "Sa oled andmas \"%s\" ligipääsu oma %s kontole." },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/settings/l10n/et_EE.js b/settings/l10n/et_EE.js index dafda4cefc12a..a6ef5991e7041 100644 --- a/settings/l10n/et_EE.js +++ b/settings/l10n/et_EE.js @@ -4,7 +4,14 @@ OC.L10N.register( "{actor} changed your password" : "{actor} muutis sinu parooli", "You changed your password" : "Sa muutsid oma parooli", "Your password was reset by an administrator" : "Administraator lähtestas sinu parooli", + "{actor} changed your email address" : "{actor} muutis sinu e-posti aadressi", "You changed your email address" : "Sa muutsid oma e-posti aadressi", + "Your email address was changed by an administrator" : "Administraator muutis sinu e-posti aadressi", + "Security" : "Turvalisus", + "Updates" : "Uuendused", + "Enabled apps" : "Lubatud rakendused", + "Disabled apps" : "Keelatud rakendused", + "App bundles" : "Rakenduste kogumikud", "Wrong password" : "Vale parool", "Saved" : "Salvestatud", "No user supplied" : "Kasutajat ei sisestatud", @@ -15,12 +22,18 @@ OC.L10N.register( "Group already exists." : "Grupp on juba olemas.", "Unable to add group." : "Gruppi lisamine ebaõnnestus.", "Unable to delete group." : "Grupi kustutamineebaõnnestus.", + "Invalid SMTP password." : "Vale SMTP parool.", + "Email setting test" : "E-posti sätete kontroll", + "Email could not be sent. Check your mail server log" : "E-posti ei saanud saata. Kontrollige oma meiliserveri logi", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "E-posti saatmisel ilmnes viga. Palun kontrollige seadeid. (Viga: %s)", "You need to set your user email before being able to send test emails." : "Pead seadistama oma e-postienne kui on võimalik saata test-kirju.", "Invalid mail address" : "Vigane e-posti aadress", "A user with that name already exists." : "Selle nimega kasutaja on juba olemas.", "Unable to create user." : "Kasutaja loomine ebaõnnestus.", "Unable to delete user." : "Kasutaja kustutamine ebaõnnestus.", + "Settings saved" : "Seaded salvestatud", "Unable to change full name" : "Täispika nime muutmine ebaõnnestus", + "Unable to change email address" : "E-posti aadressi muutmine ebaõnnestus", "Your full name has been changed." : "Sinu täispikk nimi on muudetud.", "Forbidden" : "Keelatud", "Invalid user" : "Vigane kasutaja", diff --git a/settings/l10n/et_EE.json b/settings/l10n/et_EE.json index 1aeef3c65e730..768f6ee14739b 100644 --- a/settings/l10n/et_EE.json +++ b/settings/l10n/et_EE.json @@ -2,7 +2,14 @@ "{actor} changed your password" : "{actor} muutis sinu parooli", "You changed your password" : "Sa muutsid oma parooli", "Your password was reset by an administrator" : "Administraator lähtestas sinu parooli", + "{actor} changed your email address" : "{actor} muutis sinu e-posti aadressi", "You changed your email address" : "Sa muutsid oma e-posti aadressi", + "Your email address was changed by an administrator" : "Administraator muutis sinu e-posti aadressi", + "Security" : "Turvalisus", + "Updates" : "Uuendused", + "Enabled apps" : "Lubatud rakendused", + "Disabled apps" : "Keelatud rakendused", + "App bundles" : "Rakenduste kogumikud", "Wrong password" : "Vale parool", "Saved" : "Salvestatud", "No user supplied" : "Kasutajat ei sisestatud", @@ -13,12 +20,18 @@ "Group already exists." : "Grupp on juba olemas.", "Unable to add group." : "Gruppi lisamine ebaõnnestus.", "Unable to delete group." : "Grupi kustutamineebaõnnestus.", + "Invalid SMTP password." : "Vale SMTP parool.", + "Email setting test" : "E-posti sätete kontroll", + "Email could not be sent. Check your mail server log" : "E-posti ei saanud saata. Kontrollige oma meiliserveri logi", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "E-posti saatmisel ilmnes viga. Palun kontrollige seadeid. (Viga: %s)", "You need to set your user email before being able to send test emails." : "Pead seadistama oma e-postienne kui on võimalik saata test-kirju.", "Invalid mail address" : "Vigane e-posti aadress", "A user with that name already exists." : "Selle nimega kasutaja on juba olemas.", "Unable to create user." : "Kasutaja loomine ebaõnnestus.", "Unable to delete user." : "Kasutaja kustutamine ebaõnnestus.", + "Settings saved" : "Seaded salvestatud", "Unable to change full name" : "Täispika nime muutmine ebaõnnestus", + "Unable to change email address" : "E-posti aadressi muutmine ebaõnnestus", "Your full name has been changed." : "Sinu täispikk nimi on muudetud.", "Forbidden" : "Keelatud", "Invalid user" : "Vigane kasutaja", From 9b1f3b969e8c273d86901432421189295383d81f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Thu, 7 Dec 2017 04:59:29 +0100 Subject: [PATCH 57/92] Fix Enter sending comment instead of adding autocomplete item to message MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the autocomplete popover is shown the At.js plugin listens on the message input field for key down events, and when Enter is pressed it adds the selected item to the message. However, as "_onTypeComment" also handles key down events for the message input field, when Enter was pressed the comment was submitted and At.js had no chance to add the item before that happened. Now when Enter is pressed and the autocomplete popover is shown the comment is not submitted, and thus At.js adds the selected item to the message as expected. Signed-off-by: Daniel Calviño Sánchez --- apps/comments/js/commentstabview.js | 7 ++- apps/comments/tests/js/commentstabviewSpec.js | 45 +++++++++++++++++++ 2 files changed, 50 insertions(+), 2 deletions(-) diff --git a/apps/comments/js/commentstabview.js b/apps/comments/js/commentstabview.js index 0d752877b04d9..2ab6349d98aa9 100644 --- a/apps/comments/js/commentstabview.js +++ b/apps/comments/js/commentstabview.js @@ -517,8 +517,11 @@ $field.toggleClass('error', limitExceeded); $submitButton.prop('disabled', limitExceeded); - // Submits form with Enter, but Shift+Enter is a new line - if (ev.keyCode === 13 && !ev.shiftKey) { + // Submits form with Enter, but Shift+Enter is a new line. If the + // autocomplete popover is being shown Enter does not submit the + // form either; it will be handled by At.js which will add the + // currently selected item to the message. + if (ev.keyCode === 13 && !ev.shiftKey && !$field.atwho('isSelecting')) { $submitButton.click(); ev.preventDefault(); } diff --git a/apps/comments/tests/js/commentstabviewSpec.js b/apps/comments/tests/js/commentstabviewSpec.js index d4456728f02ab..813b2a72eae99 100644 --- a/apps/comments/tests/js/commentstabviewSpec.js +++ b/apps/comments/tests/js/commentstabviewSpec.js @@ -271,6 +271,51 @@ describe('OCA.Comments.CommentsTabView tests', function() { }); expect(keydownEvent.isDefaultPrevented()).toEqual(true); }); + it('creates a new mention when typing enter in the autocomplete popover', function() { + var autoCompleteStub = sinon.stub(view, '_onAutoComplete'); + autoCompleteStub.callsArgWith(1, [{"id":"userId", "label":"User Name", "source":"users"}]); + + // Force the autocomplete to be initialized + view._initAutoComplete($newCommentForm.find('.message')); + + // PhantomJS does not seem to handle typing in a contenteditable, so + // some tricks are needed to show the autocomplete popover. + // + // Instead of sending key events to type "@u" the characters are + // programatically set in the input field. + $newCommentForm.find('.message').text('Mention to @u'); + + // When focusing on the input field the caret is not guaranteed to + // be at the end; instead of calling "focus()" on the input field + // the caret is explicitly set at the end of the input field, that + // is, after "@u". + var range = document.createRange(); + range.selectNodeContents($newCommentForm.find('.message')[0]); + range.collapse(false); + var selection = window.getSelection(); + selection.removeAllRanges(); + selection.addRange(range); + + // As PhantomJS does not handle typing in a contenteditable the key + // typed here is in practice ignored by At.js, but despite that it + // will cause the popover to be shown. + $newCommentForm.find('.message').trigger(new $.Event('keydown', {keyCode: 's'})); + $newCommentForm.find('.message').trigger(new $.Event('keyup', {keyCode: 's'})); + + expect(autoCompleteStub.calledOnce).toEqual(true); + + var keydownEvent = new $.Event('keydown', {keyCode: 13}); + $newCommentForm.find('.message').trigger(keydownEvent); + + expect(createStub.calledOnce).toEqual(false); + expect($newCommentForm.find('.message').html()).toContain('Mention to User Name'); + expect($newCommentForm.find('.message').text()).not.toContain('@'); + // In this case the default behaviour is prevented by the + // "onKeydown" event handler of At.js. + expect(keydownEvent.isDefaultPrevented()).toEqual(true); + }); it('creates a new line when typing shift+enter', function() { $newCommentForm.find('.message').text('New message'); var keydownEvent = new $.Event('keydown', {keyCode: 13, shiftKey: true}); From 991190b9946442c685d5d58530fe602e008f9a4b Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 7 Dec 2017 17:49:33 +0100 Subject: [PATCH 58/92] ensure that users are cached when they are retrieved Signed-off-by: Arthur Schiwon --- apps/user_ldap/lib/Access.php | 17 ++-- apps/user_ldap/lib/Helper.php | 2 +- apps/user_ldap/tests/AccessTest.php | 116 ++++++++++++++++++++++++++++ 3 files changed, 128 insertions(+), 7 deletions(-) diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php index 07583798e4639..d1c738719b120 100644 --- a/apps/user_ldap/lib/Access.php +++ b/apps/user_ldap/lib/Access.php @@ -830,6 +830,7 @@ public function fetchListOfUsers($filter, $attr, $limit = null, $offset = null, $recordsToUpdate = array_filter($ldapRecords, function($record) use ($isBackgroundJobModeAjax) { $newlyMapped = false; $uid = $this->dn2ocname($record['dn'][0], null, true, $newlyMapped, $record); + $this->cacheUserExists($uid); return ($uid !== false) && ($newlyMapped || $isBackgroundJobModeAjax); }); } @@ -854,7 +855,6 @@ public function batchApplyUserAttributes(array $ldapRecords){ if($ocName === false) { continue; } - $this->cacheUserExists($ocName); $user = $this->userManager->get($ocName); if($user instanceof OfflineUser) { $user->unmark(); @@ -1019,11 +1019,15 @@ private function invokeLDAPMethod() { /** * retrieved. Results will according to the order in the array. + * + * @param $filter + * @param $base + * @param null $attr * @param int $limit optional, maximum results to be counted * @param int $offset optional, a starting point * @return array|false array with the search result as first value and pagedSearchOK as * second | false if not successful - * @throws \OC\ServerNotAvailableException + * @throws ServerNotAvailableException */ private function executeSearch($filter, $base, &$attr = null, $limit = null, $offset = null) { if(!is_null($attr) && !is_array($attr)) { @@ -1169,6 +1173,7 @@ private function countEntriesInSearchResults($searchResults) { /** * Executes an LDAP search + * * @param string $filter the LDAP filter for the search * @param array $base an array containing the LDAP subtree(s) that shall be searched * @param string|string[] $attr optional, array, one or more attributes that shall be @@ -1176,6 +1181,7 @@ private function countEntriesInSearchResults($searchResults) { * @param int $offset * @param bool $skipHandling * @return array with the search result + * @throws ServerNotAvailableException */ public function search($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) { $limitPerPage = intval($this->connection->ldapPagingSize); @@ -1189,12 +1195,12 @@ public function search($filter, $base, $attr = null, $limit = null, $offset = nu * loops through until we get $continue equals true and * $findings['count'] < $limit */ - $findings = array(); + $findings = []; $savedoffset = $offset; do { $search = $this->executeSearch($filter, $base, $attr, $limitPerPage, $offset); if($search === false) { - return array(); + return []; } list($sr, $pagedSearchOK) = $search; $cr = $this->connection->getConnectionResource(); @@ -1231,7 +1237,7 @@ public function search($filter, $base, $attr = null, $limit = null, $offset = nu } if(!is_null($attr)) { - $selection = array(); + $selection = []; $i = 0; foreach($findings as $item) { if(!is_array($item)) { @@ -1239,7 +1245,6 @@ public function search($filter, $base, $attr = null, $limit = null, $offset = nu } $item = \OCP\Util::mb_array_change_key_case($item, MB_CASE_LOWER, 'UTF-8'); foreach($attr as $key) { - $key = mb_strtolower($key, 'UTF-8'); if(isset($item[$key])) { if(is_array($item[$key]) && isset($item[$key]['count'])) { unset($item[$key]['count']); diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php index a433ea8e4a78a..3157a7ab09d88 100644 --- a/apps/user_ldap/lib/Helper.php +++ b/apps/user_ldap/lib/Helper.php @@ -229,7 +229,7 @@ public function setLDAPProvider() { /** * sanitizes a DN received from the LDAP server * @param array $dn the DN in question - * @return array the sanitized DN + * @return array|string the sanitized DN */ public function sanitizeDN($dn) { //treating multiple base DNs diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php index 6c250ff320f3f..d0693fe50e15a 100644 --- a/apps/user_ldap/tests/AccessTest.php +++ b/apps/user_ldap/tests/AccessTest.php @@ -60,6 +60,8 @@ * @package OCA\User_LDAP\Tests */ class AccessTest extends TestCase { + /** @var UserMapping|\PHPUnit_Framework_MockObject_MockObject */ + protected $userMapper; /** @var Connection|\PHPUnit_Framework_MockObject_MockObject */ private $connection; /** @var LDAP|\PHPUnit_Framework_MockObject_MockObject */ @@ -79,6 +81,7 @@ public function setUp() { $this->userManager = $this->createMock(Manager::class); $this->helper = $this->createMock(Helper::class); $this->config = $this->createMock(IConfig::class); + $this->userMapper = $this->createMock(UserMapping::class); $this->access = new Access( $this->connection, @@ -87,6 +90,7 @@ public function setUp() { $this->helper, $this->config ); + $this->access->setUserMapper($this->userMapper); } private function getConnectorAndLdapMock() { @@ -217,6 +221,7 @@ public function dnInputDataProvider() { /** * @dataProvider dnInputDataProvider + * @param array $case */ public function testStringResemblesDN($case) { list($lw, $con, $um, $helper) = $this->getConnectorAndLdapMock(); @@ -440,6 +445,7 @@ public function testSetPasswordWithDisabledChanges() { ->method('__get') ->willReturn(false); + /** @noinspection PhpUnhandledExceptionInspection */ $this->access->setPassword('CN=foo', 'MyPassword'); } @@ -458,6 +464,7 @@ public function testSetPasswordWithLdapNotAvailable() { ->with($connection) ->willReturn(false); + /** @noinspection PhpUnhandledExceptionInspection */ $this->assertFalse($this->access->setPassword('CN=foo', 'MyPassword')); } @@ -485,6 +492,7 @@ public function testSetPasswordWithRejectedChange() { ->with($connection, 'CN=foo', 'MyPassword') ->willThrowException(new ConstraintViolationException()); + /** @noinspection PhpUnhandledExceptionInspection */ $this->access->setPassword('CN=foo', 'MyPassword'); } @@ -508,6 +516,114 @@ public function testSetPassword() { ->with($connection, 'CN=foo', 'MyPassword') ->willReturn(true); + /** @noinspection PhpUnhandledExceptionInspection */ $this->assertTrue($this->access->setPassword('CN=foo', 'MyPassword')); } + + protected function prepareMocksForSearchTests( + $base, + $fakeConnection, + $fakeSearchResultResource, + $fakeLdapEntries + ) { + $this->connection + ->expects($this->any()) + ->method('getConnectionResource') + ->willReturn($fakeConnection); + $this->connection->expects($this->any()) + ->method('__get') + ->willReturnCallback(function($key) use ($base) { + if(stripos($key, 'base') !== false) { + return $base; + } + return null; + }); + + $this->ldap + ->expects($this->any()) + ->method('isResource') + ->willReturnCallback(function ($resource) use ($fakeConnection) { + return $resource === $fakeConnection; + }); + $this->ldap + ->expects($this->any()) + ->method('errno') + ->willReturn(0); + $this->ldap + ->expects($this->once()) + ->method('search') + ->willReturn([$fakeSearchResultResource]); + $this->ldap + ->expects($this->exactly(count($base))) + ->method('getEntries') + ->willReturn($fakeLdapEntries); + + $this->helper->expects($this->any()) + ->method('sanitizeDN') + ->willReturnArgument(0); + } + + public function testSearchNoPagedSearch() { + // scenario: no pages search, 1 search base + $filter = 'objectClass=nextcloudUser'; + $base = ['ou=zombies,dc=foobar,dc=nextcloud,dc=com']; + + $fakeConnection = new \stdClass(); + $fakeSearchResultResource = new \stdClass(); + $fakeLdapEntries = [ + 'count' => 2, + [ + 'dn' => 'uid=sgarth,' . $base[0], + ], + [ + 'dn' => 'uid=wwilson,' . $base[0], + ] + ]; + + $expected = $fakeLdapEntries; + unset($expected['count']); + + $this->prepareMocksForSearchTests($base, $fakeConnection, $fakeSearchResultResource, $fakeLdapEntries); + + /** @noinspection PhpUnhandledExceptionInspection */ + $result = $this->access->search($filter, $base); + $this->assertSame($expected, $result); + } + + public function testFetchListOfUsers() { + $filter = 'objectClass=nextcloudUser'; + $base = ['ou=zombies,dc=foobar,dc=nextcloud,dc=com']; + $attrs = ['dn', 'uid']; + + $fakeConnection = new \stdClass(); + $fakeSearchResultResource = new \stdClass(); + $fakeLdapEntries = [ + 'count' => 2, + [ + 'dn' => 'uid=sgarth,' . $base[0], + 'uid' => [ 'sgarth' ], + ], + [ + 'dn' => 'uid=wwilson,' . $base[0], + 'uid' => [ 'wwilson' ], + ] + ]; + $expected = $fakeLdapEntries; + unset($expected['count']); + array_walk($expected, function(&$v) { + $v['dn'] = [$v['dn']]; // dn is translated into an array internally for consistency + }); + + $this->prepareMocksForSearchTests($base, $fakeConnection, $fakeSearchResultResource, $fakeLdapEntries); + + $this->connection->expects($this->exactly($fakeLdapEntries['count'])) + ->method('writeToCache') + ->with($this->stringStartsWith('userExists'), true); + + /** @noinspection PhpUnhandledExceptionInspection */ + $list = $this->access->fetchListOfUsers($filter, $attrs); + $this->assertSame($expected, $list); + } + + } From 27f14eee26af750e9e246668e761a9bf98b17fee Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Thu, 7 Dec 2017 22:02:54 +0100 Subject: [PATCH 59/92] don't cache user, if no internal user id was retrieved/assigned Signed-off-by: Arthur Schiwon --- apps/user_ldap/lib/Access.php | 17 ++++++++++------- apps/user_ldap/tests/AccessTest.php | 7 +++++++ 2 files changed, 17 insertions(+), 7 deletions(-) diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php index d1c738719b120..95710cd37f2fb 100644 --- a/apps/user_ldap/lib/Access.php +++ b/apps/user_ldap/lib/Access.php @@ -527,6 +527,7 @@ public function dn2username($fdn, $ldapName = null) { * @param bool|null $newlyMapped * @param array|null $record * @return false|string with with the name to use in Nextcloud + * @throws \Exception */ public function dn2ocname($fdn, $ldapName = null, $isUser = true, &$newlyMapped = null, array $record = null) { $newlyMapped = false; @@ -586,7 +587,7 @@ public function dn2ocname($fdn, $ldapName = null, $isUser = true, &$newlyMapped // outside of core user management will still cache the user as non-existing. $originalTTL = $this->connection->ldapCacheTTL; $this->connection->setConfiguration(array('ldapCacheTTL' => 0)); - if(($isUser && !\OCP\User::userExists($intName)) + if(($isUser && $intName !== '' && !\OCP\User::userExists($intName)) || (!$isUser && !\OC::$server->getGroupManager()->groupExists($intName))) { if($mapper->map($fdn, $intName, $uuid)) { $this->connection->setConfiguration(array('ldapCacheTTL' => $originalTTL)); @@ -830,7 +831,9 @@ public function fetchListOfUsers($filter, $attr, $limit = null, $offset = null, $recordsToUpdate = array_filter($ldapRecords, function($record) use ($isBackgroundJobModeAjax) { $newlyMapped = false; $uid = $this->dn2ocname($record['dn'][0], null, true, $newlyMapped, $record); - $this->cacheUserExists($uid); + if(is_string($uid)) { + $this->cacheUserExists($uid); + } return ($uid !== false) && ($newlyMapped || $isBackgroundJobModeAjax); }); } @@ -1022,7 +1025,7 @@ private function invokeLDAPMethod() { * * @param $filter * @param $base - * @param null $attr + * @param string[]|string|null $attr * @param int $limit optional, maximum results to be counted * @param int $offset optional, a starting point * @return array|false array with the search result as first value and pagedSearchOK as @@ -1106,6 +1109,7 @@ private function processPagedSearchStatus($sr, $filter, $base, $iFoundItems, $li /** * executes an LDAP search, but counts the results only + * * @param string $filter the LDAP filter for the search * @param array $base an array containing the LDAP subtree(s) that shall be searched * @param string|string[] $attr optional, array, one or more attributes that shall be @@ -1115,7 +1119,7 @@ private function processPagedSearchStatus($sr, $filter, $base, $iFoundItems, $li * @param bool $skipHandling indicates whether the pages search operation is * completed * @return int|false Integer or false if the search could not be initialized - * + * @throws ServerNotAvailableException */ private function count($filter, $base, $attr = null, $limit = null, $offset = null, $skipHandling = false) { \OCP\Util::writeLog('user_ldap', 'Count filter: '.print_r($filter, true), \OCP\Util::DEBUG); @@ -1130,8 +1134,7 @@ private function count($filter, $base, $attr = null, $limit = null, $offset = nu $this->connection->getConnectionResource(); do { - $search = $this->executeSearch($filter, $base, $attr, - $limitPerPage, $offset); + $search = $this->executeSearch($filter, $base, $attr, $limitPerPage, $offset); if($search === false) { return $counter > 0 ? $counter : false; } @@ -1286,7 +1289,7 @@ public function search($filter, $base, $attr = null, $limit = null, $offset = nu */ public function sanitizeUsername($name) { if($this->connection->ldapIgnoreNamingRules) { - return $name; + return trim($name); } // Transliteration diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php index d0693fe50e15a..cbb695d779a0c 100644 --- a/apps/user_ldap/tests/AccessTest.php +++ b/apps/user_ldap/tests/AccessTest.php @@ -620,6 +620,13 @@ public function testFetchListOfUsers() { ->method('writeToCache') ->with($this->stringStartsWith('userExists'), true); + $this->userMapper->expects($this->exactly($fakeLdapEntries['count'])) + ->method('getNameByDN') + ->willReturnCallback(function($fdn) { + $parts = ldap_explode_dn($fdn, false); + return $parts[0]; + }); + /** @noinspection PhpUnhandledExceptionInspection */ $list = $this->access->fetchListOfUsers($filter, $attrs); $this->assertSame($expected, $list); From ef2b0969dd022ed900d01a7567c52635773d6509 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Fri, 8 Dec 2017 01:10:13 +0000 Subject: [PATCH 60/92] [tx-robot] updated from transifex --- apps/files_sharing/l10n/nl.js | 6 ++--- apps/files_sharing/l10n/nl.json | 6 ++--- apps/files_versions/l10n/nb.js | 2 +- apps/files_versions/l10n/nb.json | 2 +- apps/systemtags/l10n/et_EE.js | 38 +++++++++++++++++++++++++++++++- apps/systemtags/l10n/et_EE.json | 38 +++++++++++++++++++++++++++++++- apps/user_ldap/l10n/nb.js | 2 +- apps/user_ldap/l10n/nb.json | 2 +- core/l10n/de.js | 9 ++++++++ core/l10n/de.json | 9 ++++++++ core/l10n/de_DE.js | 9 ++++++++ core/l10n/de_DE.json | 9 ++++++++ core/l10n/et_EE.js | 6 +++-- core/l10n/et_EE.json | 6 +++-- 14 files changed, 128 insertions(+), 16 deletions(-) diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js index e9d07a4999bc0..0101742c42022 100644 --- a/apps/files_sharing/l10n/nl.js +++ b/apps/files_sharing/l10n/nl.js @@ -1,13 +1,13 @@ OC.L10N.register( "files_sharing", { - "Shared with you" : "Gedeeld met jouw", + "Shared with you" : "Gedeeld met jou", "Shared with others" : "Gedeeld met anderen", "Shared by link" : "Gedeeld via een link", - "Nothing shared with you yet" : "Nog niets met u gedeeld", + "Nothing shared with you yet" : "Nog niets met je gedeeld", "Files and folders others share with you will show up here" : "Bestanden en mappen die anderen met je delen, worden hier getoond", "Nothing shared yet" : "Nog niets gedeeld", - "Files and folders you share will show up here" : "Bestanden en mappen die u deelt, worden hier getoond", + "Files and folders you share will show up here" : "Bestanden en mappen die je deelt, worden hier getoond", "No shared links" : "Geen gedeelde links", "Files and folders you share by link will show up here" : "Bestanden en mappen die je via links deelt, worden hier getoond", "You can upload into this folder" : "Je kunt uploaden naar deze map", diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json index d2faa20d31b1b..b9415ec2bbc7b 100644 --- a/apps/files_sharing/l10n/nl.json +++ b/apps/files_sharing/l10n/nl.json @@ -1,11 +1,11 @@ { "translations": { - "Shared with you" : "Gedeeld met jouw", + "Shared with you" : "Gedeeld met jou", "Shared with others" : "Gedeeld met anderen", "Shared by link" : "Gedeeld via een link", - "Nothing shared with you yet" : "Nog niets met u gedeeld", + "Nothing shared with you yet" : "Nog niets met je gedeeld", "Files and folders others share with you will show up here" : "Bestanden en mappen die anderen met je delen, worden hier getoond", "Nothing shared yet" : "Nog niets gedeeld", - "Files and folders you share will show up here" : "Bestanden en mappen die u deelt, worden hier getoond", + "Files and folders you share will show up here" : "Bestanden en mappen die je deelt, worden hier getoond", "No shared links" : "Geen gedeelde links", "Files and folders you share by link will show up here" : "Bestanden en mappen die je via links deelt, worden hier getoond", "You can upload into this folder" : "Je kunt uploaden naar deze map", diff --git a/apps/files_versions/l10n/nb.js b/apps/files_versions/l10n/nb.js index 40eecd966c390..b15f9e8083455 100644 --- a/apps/files_versions/l10n/nb.js +++ b/apps/files_versions/l10n/nb.js @@ -4,7 +4,7 @@ OC.L10N.register( "Could not revert: %s" : "Klarte ikke å tilbakeføre: %s", "Versions" : "Versjoner", "Failed to revert {file} to revision {timestamp}." : "Klarte ikke å tilbakeføre {file} til revisjon {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n byte"], + "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Restore" : "Gjenopprett", "No earlier versions available" : "Ingen tidligere versjoner tilgjengelige", "More versions …" : "Flere versjoner…", diff --git a/apps/files_versions/l10n/nb.json b/apps/files_versions/l10n/nb.json index 479d4037ec882..4c178b7a81f10 100644 --- a/apps/files_versions/l10n/nb.json +++ b/apps/files_versions/l10n/nb.json @@ -2,7 +2,7 @@ "Could not revert: %s" : "Klarte ikke å tilbakeføre: %s", "Versions" : "Versjoner", "Failed to revert {file} to revision {timestamp}." : "Klarte ikke å tilbakeføre {file} til revisjon {timestamp}.", - "_%n byte_::_%n bytes_" : ["%n byte","%n byte"], + "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], "Restore" : "Gjenopprett", "No earlier versions available" : "Ingen tidligere versjoner tilgjengelige", "More versions …" : "Flere versjoner…", diff --git a/apps/systemtags/l10n/et_EE.js b/apps/systemtags/l10n/et_EE.js index 9852a8adaf12c..a7af5717495e6 100644 --- a/apps/systemtags/l10n/et_EE.js +++ b/apps/systemtags/l10n/et_EE.js @@ -2,12 +2,48 @@ OC.L10N.register( "systemtags", { "Tags" : "Sildid", + "Update" : "Uuenda", + "Create" : "Loo", + "Select tag…" : "Vali silt...", "Tagged files" : "Sildistatud failid", "Select tags to filter by" : "Vali sildid, mille järgi filtreerida", + "No tags found" : "Silte ei leitud", + "Please select tags to filter by" : "Palun vali sildid, mille järgi filtreerida", + "No files found for the selected tags" : "Valitud siltidega ei leitud ühtegi faili", + "Added system tag %1$s" : "Lisas süsteemi sildi %1$s", + "Added system tag {systemtag}" : "Lisas süsteemi sildi {systemtag}", + "%1$s added system tag %2$s" : "%1$s lisas süsteemi sildi %2$s", + "{actor} added system tag {systemtag}" : "{actor} lisas süsteemi sildi {systemtag}", + "Removed system tag %1$s" : "Eemaldas süsteemi sildi %1$s", + "Removed system tag {systemtag}" : "Eemaldas süsteemi sildi {systemtag}", + "%1$s removed system tag %2$s" : "%1$s eemaldas süsteemi sildi %2$s", + "{actor} removed system tag {systemtag}" : "{actor} eemaldas süsteemi sildi {systemtag}", + "You created system tag %1$s" : "Sa lõid süsteemi sildi %1$s", + "You created system tag {systemtag}" : "Sa lõid süsteemi sildi {systemtag}", + "%1$s created system tag %2$s" : "%1$s lõi süsteemi sildi %2$s", + "{actor} created system tag {systemtag}" : "{actor} lõi süsteemi sildi {systemtag}", + "You deleted system tag %1$s" : "Sa kustutasid süsteemi sildi %1$s", + "You deleted system tag {systemtag}" : "Sa kustutasid süsteemi sildi {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s kustutas süsteemi sildi %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} kustutas süsteemi sildi {systemtag}", + "You added system tag {systemtag} to {file}" : "Sa lisasid süsteemi sildi {systemtag} failile {file}", + "{actor} added system tag {systemtag} to {file}" : "{actor} lisas süsteemi sildi {systemtag} failile {file}", + "You removed system tag {systemtag} from {file}" : "Sa eemaldasid süsteemi sildi {systemtag} {file} faililt", + "{actor} removed system tag {systemtag} from {file}" : "{actor} eemaldas süsteemi sildi {systemtag} {file} faililt", + "%s (restricted)" : "%s (piiratud)", "%s (invisible)" : "%s (nähtamatu)", + "System tags for a file have been modified" : "Süsteemi sildid sellele failile on muudetud", + "Collaborative tags" : "Koostöö sildid", + "Create and edit collaborative tags. These tags affect all users." : "Loo ja muuda koostöö silte. Need sildid kohalduvad kõigile kasutajatele.", + "Select tag …" : "Vali silt ...", + "Name" : "Nimi", + "Delete" : "Kustuta", + "Public" : "Avalik", + "Restricted" : "Piiratud", + "Invisible" : "Nähtamatu", + "Reset" : "Lähtesta", "No files in here" : "Siin ei ole faile", "No entries found in this folder" : "Selles kaustast ei leitud kirjeid", - "Name" : "Nimi", "Size" : "Suurus", "Modified" : "Muudetud" }, diff --git a/apps/systemtags/l10n/et_EE.json b/apps/systemtags/l10n/et_EE.json index 94d6ec71d47a9..6afc7567dfc08 100644 --- a/apps/systemtags/l10n/et_EE.json +++ b/apps/systemtags/l10n/et_EE.json @@ -1,11 +1,47 @@ { "translations": { "Tags" : "Sildid", + "Update" : "Uuenda", + "Create" : "Loo", + "Select tag…" : "Vali silt...", "Tagged files" : "Sildistatud failid", "Select tags to filter by" : "Vali sildid, mille järgi filtreerida", + "No tags found" : "Silte ei leitud", + "Please select tags to filter by" : "Palun vali sildid, mille järgi filtreerida", + "No files found for the selected tags" : "Valitud siltidega ei leitud ühtegi faili", + "Added system tag %1$s" : "Lisas süsteemi sildi %1$s", + "Added system tag {systemtag}" : "Lisas süsteemi sildi {systemtag}", + "%1$s added system tag %2$s" : "%1$s lisas süsteemi sildi %2$s", + "{actor} added system tag {systemtag}" : "{actor} lisas süsteemi sildi {systemtag}", + "Removed system tag %1$s" : "Eemaldas süsteemi sildi %1$s", + "Removed system tag {systemtag}" : "Eemaldas süsteemi sildi {systemtag}", + "%1$s removed system tag %2$s" : "%1$s eemaldas süsteemi sildi %2$s", + "{actor} removed system tag {systemtag}" : "{actor} eemaldas süsteemi sildi {systemtag}", + "You created system tag %1$s" : "Sa lõid süsteemi sildi %1$s", + "You created system tag {systemtag}" : "Sa lõid süsteemi sildi {systemtag}", + "%1$s created system tag %2$s" : "%1$s lõi süsteemi sildi %2$s", + "{actor} created system tag {systemtag}" : "{actor} lõi süsteemi sildi {systemtag}", + "You deleted system tag %1$s" : "Sa kustutasid süsteemi sildi %1$s", + "You deleted system tag {systemtag}" : "Sa kustutasid süsteemi sildi {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s kustutas süsteemi sildi %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} kustutas süsteemi sildi {systemtag}", + "You added system tag {systemtag} to {file}" : "Sa lisasid süsteemi sildi {systemtag} failile {file}", + "{actor} added system tag {systemtag} to {file}" : "{actor} lisas süsteemi sildi {systemtag} failile {file}", + "You removed system tag {systemtag} from {file}" : "Sa eemaldasid süsteemi sildi {systemtag} {file} faililt", + "{actor} removed system tag {systemtag} from {file}" : "{actor} eemaldas süsteemi sildi {systemtag} {file} faililt", + "%s (restricted)" : "%s (piiratud)", "%s (invisible)" : "%s (nähtamatu)", + "System tags for a file have been modified" : "Süsteemi sildid sellele failile on muudetud", + "Collaborative tags" : "Koostöö sildid", + "Create and edit collaborative tags. These tags affect all users." : "Loo ja muuda koostöö silte. Need sildid kohalduvad kõigile kasutajatele.", + "Select tag …" : "Vali silt ...", + "Name" : "Nimi", + "Delete" : "Kustuta", + "Public" : "Avalik", + "Restricted" : "Piiratud", + "Invisible" : "Nähtamatu", + "Reset" : "Lähtesta", "No files in here" : "Siin ei ole faile", "No entries found in this folder" : "Selles kaustast ei leitud kirjeid", - "Name" : "Nimi", "Size" : "Suurus", "Modified" : "Muudetud" },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/apps/user_ldap/l10n/nb.js b/apps/user_ldap/l10n/nb.js index c9cc167e637d3..4094c18f6d7bd 100644 --- a/apps/user_ldap/l10n/nb.js +++ b/apps/user_ldap/l10n/nb.js @@ -177,7 +177,7 @@ OC.L10N.register( "User Home Folder Naming Rule" : "Navneregel for brukers hjemmemappe", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "La stå tom for brukernavn (forvalg). Ellers, spesifiser en LDAP/AD attributt.", "Internal Username" : "Internt brukernavn", - "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Som forvalg vil det interne brukernavnet opprettes fra UUID-attributten. Det sørger for at brukernavnet er unikt og at tegnene ikke må konverteres. Det interne brukernavnet har en begrensning i at bare disse tegnene tillates: [ a-zA-Z0-9_.@- ]. Andre tegn erstattes av deres motsatser i ASCII, eller blir sett bort fra. Ved kollisjoner vil et nummer bli lagt til/økt. Det interne brukernavnet brukes til å identifisere en bruker internt. Det er også forvalgt navn for brukerens hjemmemappe. Det er også en del av URL-er annensteds hen, for eksempel alle *DAV-tjenester. Med denne innstillingen, kan forvalgt oppførsel overstyres. La stå tom for forvalgt oppførsel. Endringer vil bare ha effekt på nylig knyttede (tillagte) LDAP-brukere.", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Som forvalg vil det interne brukernavnet opprettes fra UUID-attributten. Det sørger for at brukernavnet er unikt og at tegnene ikke må konverteres. Det interne brukernavnet har en begrensning i at bare disse tegnene tillates: [ a-zA-Z0-9_.@- ]. Andre tegn erstattes av deres motsatser i ASCII, eller blir sett bort fra. Ved kollisjoner vil et nummer bli lagt til/økt. Det interne brukernavnet brukes til å identifisere en bruker internt. Det er også forvalgt navn for brukerens hjemmemappe. Det er også en del av URL-er eksternt, for eksempel alle *DAV-tjenester. Med denne innstillingen, kan forvalgt oppførsel overstyres. La stå tom for forvalgt oppførsel. Endringer vil bare ha effekt på nylig knyttede (tillagte) LDAP-brukere.", "Internal Username Attribute:" : "Attributt for internt brukernavn:", "Override UUID detection" : "Overstyr UUID-påvisning", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Som forvalg blir UUID-attributten påvist automatisk. UUID-attributten brukes til å identifisere LDAP-brukere og -grupper unikt. Det interne brukernavnet vil også bli laget basert på UUID, hvis ikke annet er spesifisert ovenfor. Du kan overstyre innstillingen og oppgi den attributten du ønsker. Du må forsikre deg om at din valgte attributt kan hentes ut både for brukere og for grupper og at den er unik. La stå tomt for forvalgt ppførsel. Endringer vil kun påvirke nylig tilknyttede (opprettede) LDAP-brukere og -grupper.", diff --git a/apps/user_ldap/l10n/nb.json b/apps/user_ldap/l10n/nb.json index 50474b35c3c0f..3596b16b8400d 100644 --- a/apps/user_ldap/l10n/nb.json +++ b/apps/user_ldap/l10n/nb.json @@ -175,7 +175,7 @@ "User Home Folder Naming Rule" : "Navneregel for brukers hjemmemappe", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "La stå tom for brukernavn (forvalg). Ellers, spesifiser en LDAP/AD attributt.", "Internal Username" : "Internt brukernavn", - "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Som forvalg vil det interne brukernavnet opprettes fra UUID-attributten. Det sørger for at brukernavnet er unikt og at tegnene ikke må konverteres. Det interne brukernavnet har en begrensning i at bare disse tegnene tillates: [ a-zA-Z0-9_.@- ]. Andre tegn erstattes av deres motsatser i ASCII, eller blir sett bort fra. Ved kollisjoner vil et nummer bli lagt til/økt. Det interne brukernavnet brukes til å identifisere en bruker internt. Det er også forvalgt navn for brukerens hjemmemappe. Det er også en del av URL-er annensteds hen, for eksempel alle *DAV-tjenester. Med denne innstillingen, kan forvalgt oppførsel overstyres. La stå tom for forvalgt oppførsel. Endringer vil bare ha effekt på nylig knyttede (tillagte) LDAP-brukere.", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Som forvalg vil det interne brukernavnet opprettes fra UUID-attributten. Det sørger for at brukernavnet er unikt og at tegnene ikke må konverteres. Det interne brukernavnet har en begrensning i at bare disse tegnene tillates: [ a-zA-Z0-9_.@- ]. Andre tegn erstattes av deres motsatser i ASCII, eller blir sett bort fra. Ved kollisjoner vil et nummer bli lagt til/økt. Det interne brukernavnet brukes til å identifisere en bruker internt. Det er også forvalgt navn for brukerens hjemmemappe. Det er også en del av URL-er eksternt, for eksempel alle *DAV-tjenester. Med denne innstillingen, kan forvalgt oppførsel overstyres. La stå tom for forvalgt oppførsel. Endringer vil bare ha effekt på nylig knyttede (tillagte) LDAP-brukere.", "Internal Username Attribute:" : "Attributt for internt brukernavn:", "Override UUID detection" : "Overstyr UUID-påvisning", "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Som forvalg blir UUID-attributten påvist automatisk. UUID-attributten brukes til å identifisere LDAP-brukere og -grupper unikt. Det interne brukernavnet vil også bli laget basert på UUID, hvis ikke annet er spesifisert ovenfor. Du kan overstyre innstillingen og oppgi den attributten du ønsker. Du må forsikre deg om at din valgte attributt kan hentes ut både for brukere og for grupper og at den er unik. La stå tomt for forvalgt ppførsel. Endringer vil kun påvirke nylig tilknyttede (opprettede) LDAP-brukere og -grupper.", diff --git a/core/l10n/de.js b/core/l10n/de.js index 6beb30d3a56f3..52914c84e9fc5 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -116,8 +116,17 @@ OC.L10N.register( "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Du verwendest derzeit PHP {version}. Upgrade deine PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald diese Deine Distribution unterstützt.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Die Reverse-Proxy-Header-Konfiguration ist fehlerhaft oder Sie greifen auf Nextcloud über einen vertrauenswürdigen Proxy zu. Ist dies nicht der Fall, dann besteht ein Sicherheitsproblem, das einem Angreifer erlaubt die IP-Adresse, die für Nextcloud sichtbar ist, auszuspähen. Weitere Informationen hierzu finde sich in der Dokumentation.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP-Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Einige Dateien haben die Integritätsprüfung nicht bestanden. Weiterführende Informationen befinden sich in unserer Dokumentation. (Liste der ungültigen Dateien… / Erneut analysieren…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "Der PHP-OPcache ist nicht richtig konfiguriert. Für eine bessere Leistung empfiehlt es sich folgende Einstellungen in der php.ini vorzunehmen:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "Die PHP-Funktion \"set_time_limit\" ist nicht verfügbar. Dies kann in angehaltenen Scripten oder einer fehlerhaften Installation resultieren. Es wird dringend empfohlen, diese Funktion zu aktivieren.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass du es aus dem Dokument-Root-Verzeichnis des Webservers bewegst.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Einige Funktionen funktionieren möglicherweise nicht richtig. Daher wird empfohlen, diese Einstellung zu ändern.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "Der \"Strict-Transport-Security\" HTTP-Header ist nicht auf mindestens \"{seconds}\" Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen erläutert ist.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Der Zugriff auf diese Site erfolgt über HTTP. Es wird dringend geraten, Ihren Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in den Sicherheitshinweisen beschrieben ist.", "Shared" : "Geteilt", "Shared with" : "Geteilt mit", "Shared by" : "Geteilt von", diff --git a/core/l10n/de.json b/core/l10n/de.json index a410bdec112b0..90ceaa5c01ca2 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -114,8 +114,17 @@ "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Du verwendest derzeit PHP {version}. Upgrade deine PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald diese Deine Distribution unterstützt.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Die Reverse-Proxy-Header-Konfiguration ist fehlerhaft oder Sie greifen auf Nextcloud über einen vertrauenswürdigen Proxy zu. Ist dies nicht der Fall, dann besteht ein Sicherheitsproblem, das einem Angreifer erlaubt die IP-Adresse, die für Nextcloud sichtbar ist, auszuspähen. Weitere Informationen hierzu finde sich in der Dokumentation.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP-Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Einige Dateien haben die Integritätsprüfung nicht bestanden. Weiterführende Informationen befinden sich in unserer Dokumentation. (Liste der ungültigen Dateien… / Erneut analysieren…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "Der PHP-OPcache ist nicht richtig konfiguriert. Für eine bessere Leistung empfiehlt es sich folgende Einstellungen in der php.ini vorzunehmen:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "Die PHP-Funktion \"set_time_limit\" ist nicht verfügbar. Dies kann in angehaltenen Scripten oder einer fehlerhaften Installation resultieren. Es wird dringend empfohlen, diese Funktion zu aktivieren.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Dein Datenverzeichnis und deine Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, deinen Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass du es aus dem Dokument-Root-Verzeichnis des Webservers bewegst.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Einige Funktionen funktionieren möglicherweise nicht richtig. Daher wird empfohlen, diese Einstellung zu ändern.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "Der \"Strict-Transport-Security\" HTTP-Header ist nicht auf mindestens \"{seconds}\" Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen erläutert ist.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Der Zugriff auf diese Site erfolgt über HTTP. Es wird dringend geraten, Ihren Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in den Sicherheitshinweisen beschrieben ist.", "Shared" : "Geteilt", "Shared with" : "Geteilt mit", "Shared by" : "Geteilt von", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 5bedf1cabe2e1..6e41c395e2a73 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -116,8 +116,17 @@ OC.L10N.register( "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Sie verwenden im Moment PHP {version}. Upgraden Sie Ihre PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald Ihre Distribution diese unterstützt.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Die Reverse-Proxy-Header-Konfiguration ist fehlerhaft oder Sie greifen auf Nextcloud über einen vertrauenswürdigen Proxy zu. Ist dies nicht der Fall, dann besteht ein Sicherheitsproblem, das einem Angreifer erlaubt die IP-Adresse, die für Nextcloud sichtbar ist, auszuspähen. Weitere Informationen hierzu finde sich in der Dokumentation.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Einige Dateien haben die Integritätsprüfung nicht bestanden. Weiterführende Informationen befinden sich in unserer Dokumentation. (Liste der ungültigen Dateien … / Erneut analysieren…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "Der PHP-OPcache ist nicht richtig konfiguriert. Für eine bessere Leistung empfiehlt es sich folgende Einstellungen in der php.ini vorzunehmen:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "Die PHP-Funktion \"set_time_limit\" ist nicht verfügbar. Dies kann in angehaltenen Scripten oder einer fehlerhaften Installation resultieren. Es wird dringend empfohlen, diese Funktion zu aktivieren.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Einige Funktionen funktionieren möglicherweise nicht richtig. Daher wird empfohlen, diese Einstellung zu ändern.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "Der \"Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens \"{seconds}“ Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen erläutert ist.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Der Zugriff auf diese Site erfolgt über HTTP. Es wird dringend geraten, den Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in den Sicherheitshinweisen beschrieben ist.", "Shared" : "Geteilt", "Shared with" : "Geteilt mit", "Shared by" : "Geteilt von", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index 6ecf522ada7ac..132b60757ecc1 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -114,8 +114,17 @@ "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Sie verwenden im Moment PHP {version}. Upgraden Sie Ihre PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald Ihre Distribution diese unterstützt.", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Die Reverse-Proxy-Header-Konfiguration ist fehlerhaft oder Sie greifen auf Nextcloud über einen vertrauenswürdigen Proxy zu. Ist dies nicht der Fall, dann besteht ein Sicherheitsproblem, das einem Angreifer erlaubt die IP-Adresse, die für Nextcloud sichtbar ist, auszuspähen. Weitere Informationen hierzu finde sich in der Dokumentation.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Einige Dateien haben die Integritätsprüfung nicht bestanden. Weiterführende Informationen befinden sich in unserer Dokumentation. (Liste der ungültigen Dateien … / Erneut analysieren…)", + "The PHP OPcache is not properly configured. For better performance it is recommended to use the following settings in the php.ini:" : "Der PHP-OPcache ist nicht richtig konfiguriert. Für eine bessere Leistung empfiehlt es sich folgende Einstellungen in der php.ini vorzunehmen:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. Enabling this function is strongly recommended." : "Die PHP-Funktion \"set_time_limit\" ist nicht verfügbar. Dies kann in angehaltenen Scripten oder einer fehlerhaften Installation resultieren. Es wird dringend empfohlen, diese Funktion zu aktivieren.", "Error occurred while checking server setup" : "Fehler beim Überprüfen der Servereinrichtung", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "Ihr Datenverzeichnis und Ihre Dateien sind wahrscheinlich vom Internet aus erreichbar. Die .htaccess-Datei funktioniert nicht. Es wird dringend empfohlen, Ihren Webserver dahingehend zu konfigurieren, dass das Datenverzeichnis nicht mehr vom Internet aus erreichbar ist oder dass Sie es aus dem Document-Root-Verzeichnis des Webservers herausverschieben.", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Dies ist ein potentielles Sicherheitsrisiko und es wird empfohlen, diese Einstellung zu ändern.", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "Der „{header}“-HTTP-Header ist nicht so konfiguriert, dass er „{expected}“ entspricht. Einige Funktionen funktionieren möglicherweise nicht richtig. Daher wird empfohlen, diese Einstellung zu ändern.", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "Der \"Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens \"{seconds}“ Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen erläutert ist.", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "Der Zugriff auf diese Site erfolgt über HTTP. Es wird dringend geraten, den Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in den Sicherheitshinweisen beschrieben ist.", "Shared" : "Geteilt", "Shared with" : "Geteilt mit", "Shared by" : "Geteilt von", diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js index 98b9ed285e68f..2df47c8e9d038 100644 --- a/core/l10n/et_EE.js +++ b/core/l10n/et_EE.js @@ -101,8 +101,8 @@ OC.L10N.register( "({count} selected)" : "({count} valitud)", "Error loading file exists template" : "Viga faili olemasolu malli laadimisel", "Pending" : "Ootel", - "Copy to {folder}" : "Kopeeri {kausta}", - "Move to {folder}" : "Liiguta {kausta}", + "Copy to {folder}" : "Kopeeri {folder}", + "Move to {folder}" : "Liiguta {folder}", "Very weak password" : "Väga nõrk parool", "Weak password" : "Nõrk parool", "So-so password" : "Enam-vähem sobiv parool", @@ -250,6 +250,7 @@ OC.L10N.register( "Log in" : "Logi sisse", "Stay logged in" : "Püsi sisselogituna", "Forgot password?" : "Unustasid parooli?", + "Back to log in" : "Tagasi sisselogimise lehele", "Alternative Logins" : "Alternatiivsed sisselogimisviisid", "Account access" : "Konto ligipääs", "You are about to grant %s access to your %s account." : "Sa oled andmas %s ligipääsu oma %s kontole.", @@ -276,6 +277,7 @@ OC.L10N.register( "Detailed logs" : "Üksikasjalikud logid", "Update needed" : "Uuendamine vajaliik", "Please use the command line updater because you have a big instance with more than 50 users." : "Palun kasutage uuendamiseks käsurida, kuna teil on suur instants rohkem kui 50 kasutajaga.", + "For help, see the documentation." : "Abi saamiseks vaata dokumentatsiooni.", "Upgrade via web on my own risk" : "Uuenda veebi kaudu omal vastutusel", "This %s instance is currently in maintenance mode, which may take a while." : "See %s instants on hetkel haldusrežiimis, mis võib kesta mõnda aega.", "This page will refresh itself when the %s instance is available again." : "Se leht laetakse uuesti, kui %s instantsi on uuesti saadaval.", diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json index a10dda6140c95..37b1201eea6d2 100644 --- a/core/l10n/et_EE.json +++ b/core/l10n/et_EE.json @@ -99,8 +99,8 @@ "({count} selected)" : "({count} valitud)", "Error loading file exists template" : "Viga faili olemasolu malli laadimisel", "Pending" : "Ootel", - "Copy to {folder}" : "Kopeeri {kausta}", - "Move to {folder}" : "Liiguta {kausta}", + "Copy to {folder}" : "Kopeeri {folder}", + "Move to {folder}" : "Liiguta {folder}", "Very weak password" : "Väga nõrk parool", "Weak password" : "Nõrk parool", "So-so password" : "Enam-vähem sobiv parool", @@ -248,6 +248,7 @@ "Log in" : "Logi sisse", "Stay logged in" : "Püsi sisselogituna", "Forgot password?" : "Unustasid parooli?", + "Back to log in" : "Tagasi sisselogimise lehele", "Alternative Logins" : "Alternatiivsed sisselogimisviisid", "Account access" : "Konto ligipääs", "You are about to grant %s access to your %s account." : "Sa oled andmas %s ligipääsu oma %s kontole.", @@ -274,6 +275,7 @@ "Detailed logs" : "Üksikasjalikud logid", "Update needed" : "Uuendamine vajaliik", "Please use the command line updater because you have a big instance with more than 50 users." : "Palun kasutage uuendamiseks käsurida, kuna teil on suur instants rohkem kui 50 kasutajaga.", + "For help, see the documentation." : "Abi saamiseks vaata dokumentatsiooni.", "Upgrade via web on my own risk" : "Uuenda veebi kaudu omal vastutusel", "This %s instance is currently in maintenance mode, which may take a while." : "See %s instants on hetkel haldusrežiimis, mis võib kesta mõnda aega.", "This page will refresh itself when the %s instance is available again." : "Se leht laetakse uuesti, kui %s instantsi on uuesti saadaval.", From ace96a406a4fea0dcc07abd003495da34b5fa71c Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 4 Dec 2017 22:49:01 +0100 Subject: [PATCH 61/92] Show hint that PHP 5.6 will not be supported in Nextcloud 14 anymore Signed-off-by: Morris Jobke --- core/js/setupchecks.js | 6 ++++++ settings/Controller/CheckSetupController.php | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/core/js/setupchecks.js b/core/js/setupchecks.js index c952c0a9a4840..44bf33dd7117c 100644 --- a/core/js/setupchecks.js +++ b/core/js/setupchecks.js @@ -122,6 +122,12 @@ type: OC.SetupChecks.MESSAGE_TYPE_INFO }); } + if(data.phpSupported && data.phpSupported.version.substr(0, 3) === '5.6') { + messages.push({ + msg: t('core', 'You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14.'), + type: OC.SetupChecks.MESSAGE_TYPE_INFO + }); + } if(!data.forwardedForHeadersWorking) { messages.push({ msg: t('core', 'The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation.', {docLink: data.reverseProxyDocs}), diff --git a/settings/Controller/CheckSetupController.php b/settings/Controller/CheckSetupController.php index ccaaaeaf601d1..5b7953bf392c5 100644 --- a/settings/Controller/CheckSetupController.php +++ b/settings/Controller/CheckSetupController.php @@ -238,7 +238,7 @@ private function isUsedTlsLibOutdated() { * @return bool */ protected function isPhpOutdated() { - if (version_compare(PHP_VERSION, '5.5.0') === -1) { + if (version_compare(PHP_VERSION, '7.0.0', '<')) { return true; } From 81f34e224c0e28ebc37ecd9bd7ea7e607fb98486 Mon Sep 17 00:00:00 2001 From: Abijeet Date: Sun, 3 Dec 2017 18:26:54 +0530 Subject: [PATCH 62/92] Allows adding of hex color to the theme-color Fixes #7158. Adds a # on the color if missing. Increased maxlength, added hash:true for jscolor, and adding a # if not present on the change event. Since the input element now allows a hex code, changed values to hexcode. In addition, added a function to get RGB array from hex or rgb values. Calling it in both methods and using it to perform comparison. Also changed the way we were determining whether the jscolor component had loaded. Changed the control to use data-jscolor rather than defining opts in the class. Signed-off-by: Abijeet --- apps/theming/js/settings-admin.js | 6 ++- apps/theming/templates/settings-admin.php | 2 +- tests/acceptance/features/app-theming.feature | 12 ++--- .../features/bootstrap/ThemingAppContext.php | 50 ++++++++++--------- 4 files changed, 39 insertions(+), 31 deletions(-) diff --git a/apps/theming/js/settings-admin.js b/apps/theming/js/settings-admin.js index 44a799a19b4e8..7df1bbf11254b 100644 --- a/apps/theming/js/settings-admin.js +++ b/apps/theming/js/settings-admin.js @@ -206,7 +206,11 @@ $(document).ready(function () { }); $('#theming-color').change(function (e) { - setThemingValue('color', '#' + $(this).val()); + var color = $(this).val(); + if (color.indexOf('#') !== 0) { + color = '#' + color; + } + setThemingValue('color', color); }); $('.theme-undo').click(function (e) { diff --git a/apps/theming/templates/settings-admin.php b/apps/theming/templates/settings-admin.php index c7451e595d7ed..1b8ed87bb0ded 100644 --- a/apps/theming/templates/settings-admin.php +++ b/apps/theming/templates/settings-admin.php @@ -62,7 +62,7 @@
diff --git a/tests/acceptance/features/app-theming.feature b/tests/acceptance/features/app-theming.feature index 9f5ac3f6a422e..375e2bc1cae64 100644 --- a/tests/acceptance/features/app-theming.feature +++ b/tests/acceptance/features/app-theming.feature @@ -5,19 +5,19 @@ Feature: app-theming And I visit the settings page And I open the "Theming" section And I see that the color selector in the Theming app has loaded - And I see that the header color is "0082C9" - When I set the "Color" parameter in the Theming app to "C9C9C9" + And I see that the header color is "#0082C9" + When I set the "Color" parameter in the Theming app to "#C9C9C9" Then I see that the parameters in the Theming app are eventually saved - And I see that the header color is "C9C9C9" + And I see that the header color is "#C9C9C9" Scenario: resetting the color updates the header color Given I am logged in as the admin And I visit the settings page And I open the "Theming" section And I see that the color selector in the Theming app has loaded - And I set the "Color" parameter in the Theming app to "C9C9C9" + And I set the "Color" parameter in the Theming app to "#C9C9C9" And I see that the parameters in the Theming app are eventually saved - And I see that the header color is "C9C9C9" + And I see that the header color is "#C9C9C9" When I reset the "Color" parameter in the Theming app to its default value Then I see that the parameters in the Theming app are eventually saved - And I see that the header color is "0082C9" + And I see that the header color is "#0082C9" diff --git a/tests/acceptance/features/bootstrap/ThemingAppContext.php b/tests/acceptance/features/bootstrap/ThemingAppContext.php index a36ce7b297e2f..e8a8a301ed721 100644 --- a/tests/acceptance/features/bootstrap/ThemingAppContext.php +++ b/tests/acceptance/features/bootstrap/ThemingAppContext.php @@ -84,24 +84,23 @@ public function iSetTheParameterInTheThemingAppToItsDefaultValue($parameterName) * @Then I see that the color selector in the Theming app has loaded */ public function iSeeThatTheColorSelectorInTheThemingAppHasLoaded() { - // When the color selector is loaded it removes the leading '#' from the - // value property of the input field object it is linked to, and changes - // the background color of the input field to that value. The only way - // to know that the color selector has loaded is to look for any of - // those changes. + // Checking if the color selector has loaded by getting the background color + // of the input element. If the value present in the element matches the + // background of the input element, it means the color element has been + // initialized. PHPUnit_Framework_Assert::assertTrue($this->actor->find(self::inputFieldFor("Color"), 10)->isVisible()); $actor = $this->actor; $colorSelectorLoadedCallback = function() use($actor) { - $colorSelectorValue = $actor->getSession()->evaluateScript("return $('#theming-color')[0].value;"); - - if ($colorSelectorValue[0] === '#') { - return false; + $colorSelectorValue = $this->getRGBArray($actor->getSession()->evaluateScript("return $('#theming-color')[0].value;")); + $inputBgColor = $this->getRGBArray($actor->getSession()->evaluateScript("return $('#theming-color').css('background-color');")); + if ($colorSelectorValue == $inputBgColor) { + return true; } - return true; + return false; }; if (!Utils::waitFor($colorSelectorLoadedCallback, $timeout = 10 * $this->actor->getFindTimeoutMultiplier(), $timeoutStep = 1)) { @@ -109,24 +108,29 @@ public function iSeeThatTheColorSelectorInTheThemingAppHasLoaded() { } } + private function getRGBArray ($color) { + if (preg_match("/rgb\(\s*(\d+),\s*(\d+),\s*(\d+)\)/", $color, $matches)) { + // Already an RGB (R, G, B) color + // Convert from "rgb(R, G, B)" string to RGB array + $tmpColor = array_splice($matches, 1); + } else if ($color[0] === '#') { + $color = substr($color, 1); + // HEX Color, convert to RGB array. + $tmpColor = sscanf($color, "%02X%02X%02X"); + } else { + PHPUnit_Framework_Assert::fail("The acceptance test does not know how to handle the color string : '$color'. " + . "Please provide # before HEX colors in your features."); + } + return $tmpColor; + } + /** * @Then I see that the header color is :color */ public function iSeeThatTheHeaderColorIs($color) { $headerColor = $this->actor->getSession()->evaluateScript("return $('#header').css('background-color');"); - - if ($headerColor[0] === '#') { - $headerColor = substr($headerColor, 1); - } else if (preg_match("/rgb\(\s*(\d+),\s*(\d+),\s*(\d+)\)/", $headerColor, $matches)) { - // Convert from hex string to RGB array - $color = sscanf($color, "%02X%02X%02X"); - - // Convert from "rgb(R, G, B)" string to RGB array - $headerColor = array_splice($matches, 1); - } else { - PHPUnit_Framework_Assert::fail("The acceptance test does not know how to handle the color string returned by the browser: $headerColor"); - } - + $headerColor = $this->getRGBArray($headerColor); + $color = $this->getRGBArray($color); PHPUnit_Framework_Assert::assertEquals($color, $headerColor); } From 8ffd4428bbe5791e5353bd9d60d0a3127adcb332 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 8 Dec 2017 12:28:41 +0100 Subject: [PATCH 63/92] Fallback to "default" and check if directory exists Signed-off-by: Morris Jobke --- config/config.sample.php | 3 ++- lib/private/legacy/util.php | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/config/config.sample.php b/config/config.sample.php index 59fb1d136100a..0e69264b0db47 100644 --- a/config/config.sample.php +++ b/config/config.sample.php @@ -244,7 +244,7 @@ * skeleton files. * ``{lang}`` can be used as a placeholder for the language of the user. * If the directory does not exist, it falls back to non dialect (from ``de_DE`` - * to ``de``). If that does not exist either, it falls back to ``en`` + * to ``de``). If that does not exist either, it falls back to ``default`` * * Defaults to ``core/skeleton`` in the Nextcloud directory. */ @@ -866,6 +866,7 @@ /** * custom path for LibreOffice/OpenOffice binary * + * * Defaults to ``''`` (empty string) */ 'preview_libreoffice_path' => '/usr/bin/libreoffice', diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php index b9a7706eaf71f..eb833862edce5 100644 --- a/lib/private/legacy/util.php +++ b/lib/private/legacy/util.php @@ -389,7 +389,10 @@ public static function copySkeleton($userId, \OCP\Files\Folder $userDirectory) { $skeletonDirectory = str_replace('{lang}', substr($userLang, 0, $dialectStart), $plainSkeletonDirectory); } if ($dialectStart === false || !file_exists($skeletonDirectory)) { - $skeletonDirectory = str_replace('{lang}', 'en', $plainSkeletonDirectory); + $skeletonDirectory = str_replace('{lang}', 'default', $plainSkeletonDirectory); + } + if (!file_exists($skeletonDirectory)) { + $skeletonDirectory = ''; } } From 555fe7047f3140bcc5a46a961a160f59d25662d2 Mon Sep 17 00:00:00 2001 From: Bjoern Schiessle Date: Fri, 8 Dec 2017 13:29:33 +0100 Subject: [PATCH 64/92] fix tests Signed-off-by: Bjoern Schiessle --- tests/Core/Controller/ClientFlowLoginControllerTest.php | 8 -------- 1 file changed, 8 deletions(-) diff --git a/tests/Core/Controller/ClientFlowLoginControllerTest.php b/tests/Core/Controller/ClientFlowLoginControllerTest.php index d2dec68573758..216738632233e 100644 --- a/tests/Core/Controller/ClientFlowLoginControllerTest.php +++ b/tests/Core/Controller/ClientFlowLoginControllerTest.php @@ -158,10 +158,6 @@ public function testShowAuthPickerPageWithOcsHeader() { ->expects($this->once()) ->method('getName') ->willReturn('ExampleCloud'); - $this->request - ->expects($this->once()) - ->method('getServerProtocol') - ->willReturn('http'); $this->request ->expects($this->once()) ->method('getServerHost') @@ -218,10 +214,6 @@ public function testShowAuthPickerPageWithOauth() { ->expects($this->once()) ->method('getName') ->willReturn('ExampleCloud'); - $this->request - ->expects($this->once()) - ->method('getServerProtocol') - ->willReturn('http'); $this->request ->expects($this->once()) ->method('getServerHost') From 66f523e13ff98aef8cdca9f449df7353dcf60da7 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 8 Dec 2017 16:24:31 +0100 Subject: [PATCH 65/92] Better center the letter and use semibold font type Signed-off-by: Morris Jobke --- lib/private/Avatar.php | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/private/Avatar.php b/lib/private/Avatar.php index 583a83f5166ed..5893daa180431 100644 --- a/lib/private/Avatar.php +++ b/lib/private/Avatar.php @@ -246,13 +246,14 @@ private function generateAvatar($userDisplayName, $size) { $white = imagecolorallocate($im, 255, 255, 255); imagefilledrectangle($im, 0, 0, $size, $size, $background); - $font = __DIR__ . '/../../core/fonts/OpenSans-Light.woff'; + $font = __DIR__ . '/../../core/fonts/OpenSans-Semibold.woff'; $fontSize = $size * 0.4; $box = imagettfbbox($fontSize, 0, $font, $text); $x = ($size - ($box[2] - $box[0])) / 2; $y = ($size - ($box[1] - $box[7])) / 2; + $x += 1; $y -= $box[7]; imagettftext($im, $fontSize, 0, $x, $y, $white, $font, $text); From ac2c26ffcbe63e64156fc7e0b0be4e3466430dcf Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Tue, 26 Sep 2017 17:11:58 +0200 Subject: [PATCH 66/92] Add api clients for talking to remote clouds Signed-off-by: Robin Appelman --- lib/composer/composer/autoload_classmap.php | 6 + lib/composer/composer/autoload_static.php | 6 + lib/private/Remote/Api/ApiBase.php | 96 ++++++++++++++ lib/private/Remote/Api/NotFoundException.php | 27 ++++ lib/private/Remote/Api/OCS.php | 66 ++++++++++ lib/private/Remote/Credentials.php | 53 ++++++++ lib/private/Remote/Instance.php | 127 +++++++++++++++++++ lib/private/Remote/User.php | 124 ++++++++++++++++++ 8 files changed, 505 insertions(+) create mode 100644 lib/private/Remote/Api/ApiBase.php create mode 100644 lib/private/Remote/Api/NotFoundException.php create mode 100644 lib/private/Remote/Api/OCS.php create mode 100644 lib/private/Remote/Credentials.php create mode 100644 lib/private/Remote/Instance.php create mode 100644 lib/private/Remote/User.php diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 81dad9890b504..129d36c7da4f9 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -779,6 +779,12 @@ 'OC\\Preview\\WatcherConnector' => $baseDir . '/lib/private/Preview/WatcherConnector.php', 'OC\\Preview\\XBitmap' => $baseDir . '/lib/private/Preview/XBitmap.php', 'OC\\RedisFactory' => $baseDir . '/lib/private/RedisFactory.php', + 'OC\\Remote\\Api\\ApiBase' => $baseDir . '/lib/private/Remote/Api/ApiBase.php', + 'OC\\Remote\\Api\\NotFoundException' => $baseDir . '/lib/private/Remote/Api/NotFoundException.php', + 'OC\\Remote\\Api\\OCS' => $baseDir . '/lib/private/Remote/Api/OCS.php', + 'OC\\Remote\\Credentials' => $baseDir . '/lib/private/Remote/Credentials.php', + 'OC\\Remote\\Instance' => $baseDir . '/lib/private/Remote/Instance.php', + 'OC\\Remote\\User' => $baseDir . '/lib/private/Remote/User.php', 'OC\\Repair' => $baseDir . '/lib/private/Repair.php', 'OC\\RepairException' => $baseDir . '/lib/private/RepairException.php', 'OC\\Repair\\CleanTags' => $baseDir . '/lib/private/Repair/CleanTags.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index b926100365b9d..e7eafdeb428f3 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -809,6 +809,12 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Preview\\WatcherConnector' => __DIR__ . '/../../..' . '/lib/private/Preview/WatcherConnector.php', 'OC\\Preview\\XBitmap' => __DIR__ . '/../../..' . '/lib/private/Preview/XBitmap.php', 'OC\\RedisFactory' => __DIR__ . '/../../..' . '/lib/private/RedisFactory.php', + 'OC\\Remote\\Api\\ApiBase' => __DIR__ . '/../../..' . '/lib/private/Remote/Api/ApiBase.php', + 'OC\\Remote\\Api\\NotFoundException' => __DIR__ . '/../../..' . '/lib/private/Remote/Api/NotFoundException.php', + 'OC\\Remote\\Api\\OCS' => __DIR__ . '/../../..' . '/lib/private/Remote/Api/OCS.php', + 'OC\\Remote\\Credentials' => __DIR__ . '/../../..' . '/lib/private/Remote/Credentials.php', + 'OC\\Remote\\Instance' => __DIR__ . '/../../..' . '/lib/private/Remote/Instance.php', + 'OC\\Remote\\User' => __DIR__ . '/../../..' . '/lib/private/Remote/User.php', 'OC\\Repair' => __DIR__ . '/../../..' . '/lib/private/Repair.php', 'OC\\RepairException' => __DIR__ . '/../../..' . '/lib/private/RepairException.php', 'OC\\Repair\\CleanTags' => __DIR__ . '/../../..' . '/lib/private/Repair/CleanTags.php', diff --git a/lib/private/Remote/Api/ApiBase.php b/lib/private/Remote/Api/ApiBase.php new file mode 100644 index 0000000000000..907d88a11d943 --- /dev/null +++ b/lib/private/Remote/Api/ApiBase.php @@ -0,0 +1,96 @@ + + * + * @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 . + * + */ + +namespace OC\Remote\Api; + +use OC\Remote\Credentials; +use OC\Remote\Instance; +use OCP\Http\Client\IClientService; + +class ApiBase { + /** @var Instance */ + private $instance; + /** @var Credentials */ + private $credentials; + /** @var IClientService */ + private $clientService; + + public function __construct(Instance $instance, Credentials $credentials, IClientService $clientService) { + $this->instance = $instance; + $this->credentials = $credentials; + $this->clientService = $clientService; + } + + protected function getHttpClient() { + return $this->clientService->newClient(); + } + + protected function addDefaultHeaders(array $headers) { + return array_merge([ + 'OCS-APIREQUEST' => 'true', + 'Accept' => 'application/json' + ], $headers); + } + + /** + * @param string $method + * @param string $url + * @param array $body + * @param array $query + * @param array $headers + * @return resource|string + */ + protected function request($method, $url, array $body = [], array $query = [], array $headers = []) { + $fullUrl = trim($this->instance->getFullUrl(), '/') . '/' . $url; + $options = [ + 'query' => $query, + 'headers' => $this->addDefaultHeaders($headers), + 'auth' => [$this->credentials->getUsername(), $this->credentials->getPassword()] + ]; + if ($body) { + $options['body'] = $body; + } + + $client = $this->getHttpClient(); + + switch ($method) { + case 'get': + $response = $client->get($fullUrl, $options); + break; + case 'post': + $response = $client->post($fullUrl, $options); + break; + case 'put': + $response = $client->put($fullUrl, $options); + break; + case 'delete': + $response = $client->delete($fullUrl, $options); + break; + case 'options': + $response = $client->options($fullUrl, $options); + break; + default: + throw new \InvalidArgumentException('Invalid method ' . $method); + } + + return $response->getBody(); + } +} diff --git a/lib/private/Remote/Api/NotFoundException.php b/lib/private/Remote/Api/NotFoundException.php new file mode 100644 index 0000000000000..e660beb70d065 --- /dev/null +++ b/lib/private/Remote/Api/NotFoundException.php @@ -0,0 +1,27 @@ + + * + * @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 . + * + */ + +namespace OC\Remote\Api; + + +class NotFoundException extends \Exception { + +} diff --git a/lib/private/Remote/Api/OCS.php b/lib/private/Remote/Api/OCS.php new file mode 100644 index 0000000000000..d7027ad3f4b41 --- /dev/null +++ b/lib/private/Remote/Api/OCS.php @@ -0,0 +1,66 @@ + + * + * @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 . + * + */ + +namespace OC\Remote\Api; + + +use OC\ForbiddenException; +use OC\Remote\User; +use OCP\API; + +class OCS extends ApiBase { + /** + * @param string $method + * @param string $url + * @param array $body + * @param array $query + * @param array $headers + * @return array + * @throws ForbiddenException + * @throws NotFoundException + * @throws \Exception + */ + protected function request($method, $url, array $body = [], array $query = [], array $headers = []) { + $response = json_decode(parent::request($method, '/ocs/v2.php/' . $url, $body, $query, $headers), true); + if (!isset($result['ocs']) || !isset($result['ocs']['meta'])) { + throw new \Exception('Invalid ocs response'); + } + if ($response['ocs']['meta']['statuscode'] === API::RESPOND_UNAUTHORISED) { + throw new ForbiddenException(); + } + if ($response['ocs']['meta']['statuscode'] === API::RESPOND_NOT_FOUND) { + throw new NotFoundException(); + } + if ($response['ocs']['meta']['status'] !== 'ok') { + throw new \Exception('Unknown ocs error ' . $response['ocs']['meta']['message']); + } + + return $response['ocs']['data']; + } + + public function getUser($userId) { + return new User($this->request('get', 'cloud/users/' . $userId)); + } + + public function getCapabilities() { + return $this->request('get', 'cloud/capabilities'); + } +} diff --git a/lib/private/Remote/Credentials.php b/lib/private/Remote/Credentials.php new file mode 100644 index 0000000000000..3537df3fdc07b --- /dev/null +++ b/lib/private/Remote/Credentials.php @@ -0,0 +1,53 @@ + + * + * @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 . + * + */ + +namespace OC\Remote; + + +class Credentials { + /** @var string */ + private $user; + /** @var string */ + private $password; + + /** + * @param string $user + * @param string $password + */ + public function __construct($user, $password) { + $this->user = $user; + $this->password = $password; + } + + /** + * @return string + */ + public function getUsername() { + return $this->user; + } + + /** + * @return string + */ + public function getPassword() { + return $this->password; + } +} diff --git a/lib/private/Remote/Instance.php b/lib/private/Remote/Instance.php new file mode 100644 index 0000000000000..3e8f22f4df414 --- /dev/null +++ b/lib/private/Remote/Instance.php @@ -0,0 +1,127 @@ + + * + * @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 . + * + */ + +namespace OC\Remote; + +use OCP\Http\Client\IClientService; +use OCP\ICache; + +/** + * Provides some basic info about a remote Nextcloud instance + */ +class Instance { + /** @var string */ + private $url; + + /** @var ICache */ + private $cache; + + /** @var IClientService */ + private $clientService; + + private $status; + + /** + * @param string $url + * @param ICache $cache + * @param IClientService $clientService + */ + public function __construct($url, ICache $cache, IClientService $clientService) { + $url = str_replace('https://', '', $url); + $this->url = str_replace('http://', '', $url); + $this->cache = $cache; + $this->clientService = $clientService; + } + + /** + * @return string The url of the remote server without protocol + */ + public function getUrl() { + return $this->url; + } + + /** + * @return string The of of the remote server with protocol + */ + public function getFullUrl() { + return $this->getProtocol() . '://' . $this->getUrl(); + } + + /** + * @return string The full version string in '13.1.2.3' format + */ + public function getVersion() { + $status = $this->getStatus(); + return $status['version']; + } + + /** + * @return string 'http' or 'https' + */ + public function getProtocol() { + $status = $this->getStatus(); + return $status['protocol']; + } + + /** + * Check that the remote server is installed and not in maintenance mode + * + * @return bool + */ + public function isActive() { + $status = $this->getStatus(); + return $status['installed'] && !$status['maintenance']; + } + + private function getStatus() { + if ($this->status) { + return $this->status; + } + $key = 'remote/' . $this->url . '/status'; + $status = $this->cache->get($key); + if (!$status) { + $response = $this->downloadStatus('https://' . $this->getUrl() . '/status.php'); + $protocol = 'https'; + if (!$response) { + $response = $this->downloadStatus('http://' . $this->getUrl() . '/status.php'); + $protocol = 'http'; + } + $status = json_decode($response, true); + if ($status) { + $status['protocol'] = $protocol; + } + if ($status) { + $this->cache->set($key, $status, 5 * 60); + $this->status = $status; + } + } + return $status; + } + + private function downloadStatus($url) { + try { + $request = $this->clientService->newClient()->get($url); + return $request->getBody(); + } catch (\Exception $e) { + return false; + } + } +} diff --git a/lib/private/Remote/User.php b/lib/private/Remote/User.php new file mode 100644 index 0000000000000..1fd0521f60d25 --- /dev/null +++ b/lib/private/Remote/User.php @@ -0,0 +1,124 @@ + + * + * @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 . + * + */ + +namespace OC\Remote; + + +class User { + /** @var array */ + private $data; + + public function __construct(array $data) { + $this->data = $data; + } + + + /** + * @return string + */ + public function getUserId() { + return $this->data['id']; + } + + /** + * @return string + */ + public function getEmail() { + return $this->data['email']; + } + + /** + * @return string + */ + public function getDisplayName() { + return $this->data['displayname']; + } + + /** + * @return string + */ + public function getPhone() { + return $this->data['phone']; + } + + /** + * @return string + */ + public function getAddress() { + return $this->data['address']; + } + + /** + * @return string + */ + public function getWebsite() { + return $this->data['website']; + } + + /** + * @return string + */ + public function getTwitter() { + return isset($this->data['twitter']) ? $this->data['twitter'] : ''; + } + + /** + * @return string[] + */ + public function getGroups() { + return $this->data['groups']; + } + + /** + * @return string + */ + public function getLanguage() { + return $this->data['language']; + } + + /** + * @return int + */ + public function getUsedSpace() { + return $this->data['quota']['used']; + } + + /** + * @return int + */ + public function getFreeSpace() { + return $this->data['quota']['free']; + } + + /** + * @return int + */ + public function getTotalSpace() { + return $this->data['quota']['total']; + } + + /** + * @return int + */ + public function getQuota() { + return $this->data['quota']['quota']; + } +} From 74b5ce8fd4311f0d6f6a59e0636d343807b79d74 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 27 Sep 2017 17:46:24 +0200 Subject: [PATCH 67/92] Some tests for the remote cloud api Signed-off-by: Robin Appelman --- .drone.yml | 10 ++ build/integration/config/behat.yml | 13 +- .../features/bootstrap/BasicStructure.php | 5 + .../features/bootstrap/RemoteContext.php | 147 ++++++++++++++++++ .../remoteapi_features/remote.feature | 37 +++++ lib/private/Remote/Api/OCS.php | 21 ++- lib/private/Remote/Instance.php | 3 + 7 files changed, 232 insertions(+), 4 deletions(-) create mode 100644 build/integration/features/bootstrap/RemoteContext.php create mode 100644 build/integration/remoteapi_features/remote.feature diff --git a/.drone.yml b/.drone.yml index 186969ccd066d..986c03e20d3e3 100644 --- a/.drone.yml +++ b/.drone.yml @@ -599,6 +599,15 @@ pipeline: when: matrix: TESTS: integration-trashbin + integration-remote-api: + image: nextcloudci/integration-php7.0:integration-php7.0-6 + commands: + - ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int + - cd build/integration + - ./run.sh remoteapi_features/remote.feature + when: + matrix: + TESTS: integration-remote-api acceptance-access-levels: image: nextcloudci/integration-php7.0:integration-php7.0-6 commands: @@ -801,6 +810,7 @@ matrix: - TESTS: integration-transfer-ownership-features - TESTS: integration-ldap-features - TESTS: integration-trashbin + - TESTS: integration-remote-api - TESTS: acceptance TESTS-ACCEPTANCE: access-levels - TESTS: acceptance diff --git a/build/integration/config/behat.yml b/build/integration/config/behat.yml index 3573f9d6a6b93..428d4d45b78cb 100644 --- a/build/integration/config/behat.yml +++ b/build/integration/config/behat.yml @@ -85,7 +85,18 @@ default: - admin - admin regular_user_password: what_for - + remoteapi: + paths: + - %paths.base%/../remoteapi_features + contexts: + - FeatureContext: + baseUrl: http://localhost:8080/ocs/ + admin: + - admin + - admin + regular_user_password: 123456 + - RemoteContext: + remote: http://localhost:8080 extensions: jarnaiz\JUnitFormatter\JUnitFormatterExtension: filename: report.xml diff --git a/build/integration/features/bootstrap/BasicStructure.php b/build/integration/features/bootstrap/BasicStructure.php index 03392ff66197e..f2449242bee0b 100644 --- a/build/integration/features/bootstrap/BasicStructure.php +++ b/build/integration/features/bootstrap/BasicStructure.php @@ -62,6 +62,11 @@ trait BasicStructure { /** @var string */ private $requestToken; + protected $adminUser; + protected $regularUser; + protected $localBaseUrl; + protected $remoteBaseUrl; + public function __construct($baseUrl, $admin, $regular_user_password) { // Initialize your context here diff --git a/build/integration/features/bootstrap/RemoteContext.php b/build/integration/features/bootstrap/RemoteContext.php new file mode 100644 index 0000000000000..7e413021381b0 --- /dev/null +++ b/build/integration/features/bootstrap/RemoteContext.php @@ -0,0 +1,147 @@ + + * + * @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 . + * + */ + +use Behat\Behat\Context\Context; + +require __DIR__ . '/../../vendor/autoload.php'; + +/** + * Remote context. + */ +class RemoteContext implements Context { + /** @var \OC\Remote\Instance */ + protected $remoteInstance; + + /** @var \OC\Remote\Credentials */ + protected $credentails; + + /** @var \OC\Remote\User */ + protected $userResult; + + protected $remoteUrl; + + protected $lastException; + + public function __construct($remote) { + require_once __DIR__ . '/../../../../lib/base.php'; + $this->remoteUrl = $remote; + } + + protected function getApiClient() { + return new \OC\Remote\Api\OCS($this->remoteInstance, $this->credentails, \OC::$server->getHTTPClientService()); + } + + /** + * @Given /^using remote server "(REMOTE|NON_EXISTING)"$/ + * + * @param string $remoteServer "NON_EXISTING" or "REMOTE" + */ + public function selectRemoteInstance($remoteServer) { + if ($remoteServer == "REMOTE") { + $baseUri = $this->remoteUrl; + } else { + $baseUri = 'nonexistingnextcloudserver.local'; + } + $this->lastException = null; + try { + $this->remoteInstance = new \OC\Remote\Instance($baseUri, \OC::$server->getMemCacheFactory()->createLocal(), \OC::$server->getHTTPClientService()); + // trigger the status request + $this->remoteInstance->getProtocol(); + } catch (\Exception $e) { + $this->lastException = $e; + } + } + + /** + * @Then /^the remote version should be "([^"]*)"$/ + * @param string $version + */ + public function theRemoteVersionShouldBe($version) { + if ($version === '__current_version__') { + $version = \OC::$server->getConfig()->getSystemValue('version', '0.0.0.0'); + } + + PHPUnit_Framework_Assert::assertEquals($version, $this->remoteInstance->getVersion()); + } + + /** + * @Then /^the remote protocol should be "([^"]*)"$/ + * @param string $protocol + */ + public function theRemoteProtocolShouldBe($protocol) { + PHPUnit_Framework_Assert::assertEquals($protocol, $this->remoteInstance->getProtocol()); + } + + /** + * @Given /^using credentials "([^"]*)", "([^"]*)"/ + * @param string $user + * @param string $password + */ + public function usingCredentials($user, $password) { + $this->credentails = new \OC\Remote\Credentials($user, $password); + } + + /** + * @When /^getting the remote user info for "([^"]*)"$/ + * @param string $user + */ + public function remoteUserInfo($user) { + $this->lastException = null; + try { + $this->userResult = $this->getApiClient()->getUser($user); + } catch (\Exception $e) { + $this->lastException = $e; + } + } + + /** + * @Then /^the remote user should have userid "([^"]*)"$/ + * @param string $user + */ + public function remoteUserId($user) { + PHPUnit_Framework_Assert::assertEquals($user, $this->userResult->getUserId()); + } + + /** + * @Then /^the request should throw a "([^"]*)"$/ + * @param string $class + */ + public function lastError($class) { + PHPUnit_Framework_Assert::assertEquals($class, get_class($this->lastException)); + } + + /** + * @Then /^the capability "([^"]*)" is "([^"]*)"$/ + * @param string $key + * @param string $value + */ + public function hasCapability($key, $value) { + $capabilities = $this->getApiClient()->getCapabilities(); + $current = $capabilities; + $parts = explode('.', $key); + foreach ($parts as $part) { + if ($current !== null) { + $current = isset($current[$part]) ? $current[$part] : null; + } + } + PHPUnit_Framework_Assert::assertEquals($value, $current); + } +} diff --git a/build/integration/remoteapi_features/remote.feature b/build/integration/remoteapi_features/remote.feature new file mode 100644 index 0000000000000..72daf8226cd9d --- /dev/null +++ b/build/integration/remoteapi_features/remote.feature @@ -0,0 +1,37 @@ +Feature: remote + + Scenario: Get status of remote server + Given using remote server "REMOTE" + Then the remote version should be "__current_version__" + And the remote protocol should be "http" + + Scenario: Get status of a non existing server + Given using remote server "NON_EXISTING" + Then the request should throw a "OC\Remote\Api\NotFoundException" + + Scenario: Get user info for a remote user + Given using remote server "REMOTE" + And user "user0" exists + And using credentials "user0", "123456" + When getting the remote user info for "user0" + Then the remote user should have userid "user0" + + Scenario: Get user info for a non existing remote user + Given using remote server "REMOTE" + And user "user0" exists + And using credentials "user0", "123456" + When getting the remote user info for "user_non_existing" + Then the request should throw a "OC\Remote\Api\NotFoundException" + + Scenario: Get user info with invalid credentials + Given using remote server "REMOTE" + And user "user0" exists + And using credentials "user0", "invalid" + When getting the remote user info for "user0" + Then the request should throw a "OC\ForbiddenException" + + Scenario: Get capability of remote server + Given using remote server "REMOTE" + And user "user0" exists + And using credentials "user0", "invalid" + Then the capability "theming.name" is "Nextcloud" diff --git a/lib/private/Remote/Api/OCS.php b/lib/private/Remote/Api/OCS.php index d7027ad3f4b41..f02538ad03b39 100644 --- a/lib/private/Remote/Api/OCS.php +++ b/lib/private/Remote/Api/OCS.php @@ -22,6 +22,7 @@ namespace OC\Remote\Api; +use GuzzleHttp\Exception\ClientException; use OC\ForbiddenException; use OC\Remote\User; use OCP\API; @@ -39,8 +40,18 @@ class OCS extends ApiBase { * @throws \Exception */ protected function request($method, $url, array $body = [], array $query = [], array $headers = []) { - $response = json_decode(parent::request($method, '/ocs/v2.php/' . $url, $body, $query, $headers), true); - if (!isset($result['ocs']) || !isset($result['ocs']['meta'])) { + try { + $response = json_decode(parent::request($method, '/ocs/v2.php/' . $url, $body, $query, $headers), true); + } catch (ClientException $e) { + if ($e->getResponse()->getStatusCode() === 404) { + throw new NotFoundException(); + } else if ($e->getResponse()->getStatusCode() === 403 || $e->getResponse()->getStatusCode() === 401) { + throw new ForbiddenException(); + } else { + throw $e; + } + } + if (!isset($response['ocs']) || !isset($response['ocs']['meta'])) { throw new \Exception('Invalid ocs response'); } if ($response['ocs']['meta']['statuscode'] === API::RESPOND_UNAUTHORISED) { @@ -60,7 +71,11 @@ public function getUser($userId) { return new User($this->request('get', 'cloud/users/' . $userId)); } + /** + * @return array The capabilities in the form of [$appId => [$capability => $value]] + */ public function getCapabilities() { - return $this->request('get', 'cloud/capabilities'); + $result = $this->request('get', 'cloud/capabilities'); + return $result['capabilities']; } } diff --git a/lib/private/Remote/Instance.php b/lib/private/Remote/Instance.php index 3e8f22f4df414..f61fbe202ab83 100644 --- a/lib/private/Remote/Instance.php +++ b/lib/private/Remote/Instance.php @@ -21,6 +21,7 @@ namespace OC\Remote; +use OC\Remote\Api\NotFoundException; use OCP\Http\Client\IClientService; use OCP\ICache; @@ -111,6 +112,8 @@ private function getStatus() { if ($status) { $this->cache->set($key, $status, 5 * 60); $this->status = $status; + } else { + throw new NotFoundException('Remote server not found at address ' . $this->url); } } return $status; From 5133a31d3c713e3e3c562e6fcd131ed2738d8798 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Wed, 4 Oct 2017 16:21:50 +0200 Subject: [PATCH 68/92] Add public api for remote api Signed-off-by: Robin Appelman --- lib/composer/composer/autoload_classmap.php | 11 ++ lib/composer/composer/autoload_static.php | 11 ++ lib/private/Remote/Api/ApiBase.php | 10 +- lib/private/Remote/Api/ApiCollection.php | 48 ++++++++ lib/private/Remote/Api/ApiFactory.php | 40 +++++++ lib/private/Remote/Api/OCS.php | 4 +- lib/private/Remote/Credentials.php | 4 +- lib/private/Remote/Instance.php | 3 +- lib/private/Remote/InstanceFactory.php | 41 +++++++ lib/private/Remote/User.php | 4 +- lib/private/Server.php | 27 +++++ lib/public/IServerContainer.php | 12 ++ lib/public/Remote/Api/IApiCollection.php | 43 +++++++ lib/public/Remote/Api/IApiFactory.php | 39 +++++++ lib/public/Remote/Api/ICapabilitiesApi.php | 34 ++++++ lib/public/Remote/Api/IUserApi.php | 37 ++++++ lib/public/Remote/ICredentials.php | 43 +++++++ lib/public/Remote/IInstance.php | 66 +++++++++++ lib/public/Remote/IInstanceFactory.php | 35 ++++++ lib/public/Remote/IUser.php | 120 ++++++++++++++++++++ 20 files changed, 623 insertions(+), 9 deletions(-) create mode 100644 lib/private/Remote/Api/ApiCollection.php create mode 100644 lib/private/Remote/Api/ApiFactory.php create mode 100644 lib/private/Remote/InstanceFactory.php create mode 100644 lib/public/Remote/Api/IApiCollection.php create mode 100644 lib/public/Remote/Api/IApiFactory.php create mode 100644 lib/public/Remote/Api/ICapabilitiesApi.php create mode 100644 lib/public/Remote/Api/IUserApi.php create mode 100644 lib/public/Remote/ICredentials.php create mode 100644 lib/public/Remote/IInstance.php create mode 100644 lib/public/Remote/IInstanceFactory.php create mode 100644 lib/public/Remote/IUser.php diff --git a/lib/composer/composer/autoload_classmap.php b/lib/composer/composer/autoload_classmap.php index 129d36c7da4f9..b3fb04ff6d96b 100644 --- a/lib/composer/composer/autoload_classmap.php +++ b/lib/composer/composer/autoload_classmap.php @@ -246,6 +246,14 @@ 'OCP\\OCS\\IDiscoveryService' => $baseDir . '/lib/public/OCS/IDiscoveryService.php', 'OCP\\PreConditionNotMetException' => $baseDir . '/lib/public/PreConditionNotMetException.php', 'OCP\\Preview\\IProvider' => $baseDir . '/lib/public/Preview/IProvider.php', + 'OCP\\Remote\\Api\\IApiCollection' => $baseDir . '/lib/public/Remote/Api/IApiCollection.php', + 'OCP\\Remote\\Api\\IApiFactory' => $baseDir . '/lib/public/Remote/Api/IApiFactory.php', + 'OCP\\Remote\\Api\\ICapabilitiesApi' => $baseDir . '/lib/public/Remote/Api/ICapabilitiesApi.php', + 'OCP\\Remote\\Api\\IUserApi' => $baseDir . '/lib/public/Remote/Api/IUserApi.php', + 'OCP\\Remote\\ICredentials' => $baseDir . '/lib/public/Remote/ICredentials.php', + 'OCP\\Remote\\IInstance' => $baseDir . '/lib/public/Remote/IInstance.php', + 'OCP\\Remote\\IInstanceFactory' => $baseDir . '/lib/public/Remote/IInstanceFactory.php', + 'OCP\\Remote\\IUser' => $baseDir . '/lib/public/Remote/IUser.php', 'OCP\\Response' => $baseDir . '/lib/public/Response.php', 'OCP\\RichObjectStrings\\Definitions' => $baseDir . '/lib/public/RichObjectStrings/Definitions.php', 'OCP\\RichObjectStrings\\IValidator' => $baseDir . '/lib/public/RichObjectStrings/IValidator.php', @@ -780,10 +788,13 @@ 'OC\\Preview\\XBitmap' => $baseDir . '/lib/private/Preview/XBitmap.php', 'OC\\RedisFactory' => $baseDir . '/lib/private/RedisFactory.php', 'OC\\Remote\\Api\\ApiBase' => $baseDir . '/lib/private/Remote/Api/ApiBase.php', + 'OC\\Remote\\Api\\ApiCollection' => $baseDir . '/lib/private/Remote/Api/ApiCollection.php', + 'OC\\Remote\\Api\\ApiFactory' => $baseDir . '/lib/private/Remote/Api/ApiFactory.php', 'OC\\Remote\\Api\\NotFoundException' => $baseDir . '/lib/private/Remote/Api/NotFoundException.php', 'OC\\Remote\\Api\\OCS' => $baseDir . '/lib/private/Remote/Api/OCS.php', 'OC\\Remote\\Credentials' => $baseDir . '/lib/private/Remote/Credentials.php', 'OC\\Remote\\Instance' => $baseDir . '/lib/private/Remote/Instance.php', + 'OC\\Remote\\InstanceFactory' => $baseDir . '/lib/private/Remote/InstanceFactory.php', 'OC\\Remote\\User' => $baseDir . '/lib/private/Remote/User.php', 'OC\\Repair' => $baseDir . '/lib/private/Repair.php', 'OC\\RepairException' => $baseDir . '/lib/private/RepairException.php', diff --git a/lib/composer/composer/autoload_static.php b/lib/composer/composer/autoload_static.php index e7eafdeb428f3..a905134ce9fee 100644 --- a/lib/composer/composer/autoload_static.php +++ b/lib/composer/composer/autoload_static.php @@ -276,6 +276,14 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OCP\\OCS\\IDiscoveryService' => __DIR__ . '/../../..' . '/lib/public/OCS/IDiscoveryService.php', 'OCP\\PreConditionNotMetException' => __DIR__ . '/../../..' . '/lib/public/PreConditionNotMetException.php', 'OCP\\Preview\\IProvider' => __DIR__ . '/../../..' . '/lib/public/Preview/IProvider.php', + 'OCP\\Remote\\Api\\IApiCollection' => __DIR__ . '/../../..' . '/lib/public/Remote/Api/IApiCollection.php', + 'OCP\\Remote\\Api\\IApiFactory' => __DIR__ . '/../../..' . '/lib/public/Remote/Api/IApiFactory.php', + 'OCP\\Remote\\Api\\ICapabilitiesApi' => __DIR__ . '/../../..' . '/lib/public/Remote/Api/ICapabilitiesApi.php', + 'OCP\\Remote\\Api\\IUserApi' => __DIR__ . '/../../..' . '/lib/public/Remote/Api/IUserApi.php', + 'OCP\\Remote\\ICredentials' => __DIR__ . '/../../..' . '/lib/public/Remote/ICredentials.php', + 'OCP\\Remote\\IInstance' => __DIR__ . '/../../..' . '/lib/public/Remote/IInstance.php', + 'OCP\\Remote\\IInstanceFactory' => __DIR__ . '/../../..' . '/lib/public/Remote/IInstanceFactory.php', + 'OCP\\Remote\\IUser' => __DIR__ . '/../../..' . '/lib/public/Remote/IUser.php', 'OCP\\Response' => __DIR__ . '/../../..' . '/lib/public/Response.php', 'OCP\\RichObjectStrings\\Definitions' => __DIR__ . '/../../..' . '/lib/public/RichObjectStrings/Definitions.php', 'OCP\\RichObjectStrings\\IValidator' => __DIR__ . '/../../..' . '/lib/public/RichObjectStrings/IValidator.php', @@ -810,10 +818,13 @@ class ComposerStaticInit53792487c5a8370acc0b06b1a864ff4c 'OC\\Preview\\XBitmap' => __DIR__ . '/../../..' . '/lib/private/Preview/XBitmap.php', 'OC\\RedisFactory' => __DIR__ . '/../../..' . '/lib/private/RedisFactory.php', 'OC\\Remote\\Api\\ApiBase' => __DIR__ . '/../../..' . '/lib/private/Remote/Api/ApiBase.php', + 'OC\\Remote\\Api\\ApiCollection' => __DIR__ . '/../../..' . '/lib/private/Remote/Api/ApiCollection.php', + 'OC\\Remote\\Api\\ApiFactory' => __DIR__ . '/../../..' . '/lib/private/Remote/Api/ApiFactory.php', 'OC\\Remote\\Api\\NotFoundException' => __DIR__ . '/../../..' . '/lib/private/Remote/Api/NotFoundException.php', 'OC\\Remote\\Api\\OCS' => __DIR__ . '/../../..' . '/lib/private/Remote/Api/OCS.php', 'OC\\Remote\\Credentials' => __DIR__ . '/../../..' . '/lib/private/Remote/Credentials.php', 'OC\\Remote\\Instance' => __DIR__ . '/../../..' . '/lib/private/Remote/Instance.php', + 'OC\\Remote\\InstanceFactory' => __DIR__ . '/../../..' . '/lib/private/Remote/InstanceFactory.php', 'OC\\Remote\\User' => __DIR__ . '/../../..' . '/lib/private/Remote/User.php', 'OC\\Repair' => __DIR__ . '/../../..' . '/lib/private/Repair.php', 'OC\\RepairException' => __DIR__ . '/../../..' . '/lib/private/RepairException.php', diff --git a/lib/private/Remote/Api/ApiBase.php b/lib/private/Remote/Api/ApiBase.php index 907d88a11d943..64153a9311f81 100644 --- a/lib/private/Remote/Api/ApiBase.php +++ b/lib/private/Remote/Api/ApiBase.php @@ -21,19 +21,19 @@ namespace OC\Remote\Api; -use OC\Remote\Credentials; -use OC\Remote\Instance; use OCP\Http\Client\IClientService; +use OCP\Remote\ICredentials; +use OCP\Remote\IInstance; class ApiBase { - /** @var Instance */ + /** @var IInstance */ private $instance; - /** @var Credentials */ + /** @var ICredentials */ private $credentials; /** @var IClientService */ private $clientService; - public function __construct(Instance $instance, Credentials $credentials, IClientService $clientService) { + public function __construct(IInstance $instance, ICredentials $credentials, IClientService $clientService) { $this->instance = $instance; $this->credentials = $credentials; $this->clientService = $clientService; diff --git a/lib/private/Remote/Api/ApiCollection.php b/lib/private/Remote/Api/ApiCollection.php new file mode 100644 index 0000000000000..41b1bac0e0857 --- /dev/null +++ b/lib/private/Remote/Api/ApiCollection.php @@ -0,0 +1,48 @@ + + * + * @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 . + * + */ + +namespace OC\Remote\Api; + + +use OCP\Http\Client\IClientService; +use OCP\Remote\Api\IApiCollection; +use OCP\Remote\ICredentials; +use OCP\Remote\IInstance; + +class ApiCollection implements IApiCollection { + private $instance; + private $credentials; + private $clientService; + + public function __construct(IInstance $instance, ICredentials $credentials, IClientService $clientService) { + $this->instance = $instance; + $this->credentials = $credentials; + $this->clientService = $clientService; + } + + public function getCapabilitiesApi() { + return new OCS($this->instance, $this->credentials, $this->clientService); + } + + public function getUserApi() { + return new OCS($this->instance, $this->credentials, $this->clientService); + } +} diff --git a/lib/private/Remote/Api/ApiFactory.php b/lib/private/Remote/Api/ApiFactory.php new file mode 100644 index 0000000000000..ea084c188f1bf --- /dev/null +++ b/lib/private/Remote/Api/ApiFactory.php @@ -0,0 +1,40 @@ + + * + * @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 . + * + */ + +namespace OC\Remote\Api; + + +use OCP\Http\Client\IClientService; +use OCP\Remote\Api\IApiFactory; +use OCP\Remote\ICredentials; +use OCP\Remote\IInstance; + +class ApiFactory implements IApiFactory { + private $clientService; + + public function __construct(IClientService $clientService) { + $this->clientService = $clientService; + } + + public function getApiCollection(IInstance $instance, ICredentials $credentials) { + return new ApiCollection($instance, $credentials, $this->clientService); + } +} diff --git a/lib/private/Remote/Api/OCS.php b/lib/private/Remote/Api/OCS.php index f02538ad03b39..427a5adcd9673 100644 --- a/lib/private/Remote/Api/OCS.php +++ b/lib/private/Remote/Api/OCS.php @@ -26,8 +26,10 @@ use OC\ForbiddenException; use OC\Remote\User; use OCP\API; +use OCP\Remote\Api\ICapabilitiesApi; +use OCP\Remote\Api\IUserApi; -class OCS extends ApiBase { +class OCS extends ApiBase implements ICapabilitiesApi, IUserApi { /** * @param string $method * @param string $url diff --git a/lib/private/Remote/Credentials.php b/lib/private/Remote/Credentials.php index 3537df3fdc07b..419b8b21c95c8 100644 --- a/lib/private/Remote/Credentials.php +++ b/lib/private/Remote/Credentials.php @@ -22,7 +22,9 @@ namespace OC\Remote; -class Credentials { +use OCP\Remote\ICredentials; + +class Credentials implements ICredentials { /** @var string */ private $user; /** @var string */ diff --git a/lib/private/Remote/Instance.php b/lib/private/Remote/Instance.php index f61fbe202ab83..ab0081d86cfcd 100644 --- a/lib/private/Remote/Instance.php +++ b/lib/private/Remote/Instance.php @@ -24,11 +24,12 @@ use OC\Remote\Api\NotFoundException; use OCP\Http\Client\IClientService; use OCP\ICache; +use OCP\Remote\IInstance; /** * Provides some basic info about a remote Nextcloud instance */ -class Instance { +class Instance implements IInstance { /** @var string */ private $url; diff --git a/lib/private/Remote/InstanceFactory.php b/lib/private/Remote/InstanceFactory.php new file mode 100644 index 0000000000000..3b99bc61825b2 --- /dev/null +++ b/lib/private/Remote/InstanceFactory.php @@ -0,0 +1,41 @@ + + * + * @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 . + * + */ + +namespace OC\Remote; + + +use OCP\Http\Client\IClientService; +use OCP\ICache; +use OCP\Remote\IInstanceFactory; + +class InstanceFactory implements IInstanceFactory { + private $cache; + private $clientService; + + public function __construct(ICache $cache, IClientService $clientService) { + $this->cache = $cache; + $this->clientService = $clientService; + } + + public function getInstance($url) { + return new Instance($url, $this->cache, $this->clientService); + } +} diff --git a/lib/private/Remote/User.php b/lib/private/Remote/User.php index 1fd0521f60d25..f8d278afdac1a 100644 --- a/lib/private/Remote/User.php +++ b/lib/private/Remote/User.php @@ -22,7 +22,9 @@ namespace OC\Remote; -class User { +use OCP\Remote\IUser; + +class User implements IUser { /** @var array */ private $data; diff --git a/lib/private/Server.php b/lib/private/Server.php index 0c6338f6a4c87..f4f7cb75ad1d8 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -89,6 +89,8 @@ use OC\Memcache\Factory; use OC\Notification\Manager; use OC\OCS\DiscoveryService; +use OC\Remote\Api\ApiFactory; +use OC\Remote\InstanceFactory; use OC\Repair\NC11\CleanPreviewsBackgroundJob; use OC\RichObjectStrings\Validator; use OC\Security\Bruteforce\Throttler; @@ -123,6 +125,8 @@ use OCP\ITempManager; use OCP\Contacts\ContactsMenu\IActionFactory; use OCP\Lock\ILockingProvider; +use OCP\Remote\Api\IApiFactory; +use OCP\Remote\IInstanceFactory; use OCP\RichObjectStrings\IValidator; use OCP\Security\IContentSecurityPolicyManager; use OCP\Share; @@ -1109,6 +1113,15 @@ public function __construct($webRoot, \OC\Config $config) { $c->getConfig() ); }); + + $this->registerService(IApiFactory::class, function(Server $c) { + return new ApiFactory($c->getHTTPClientService()); + }); + + $this->registerService(IInstanceFactory::class, function(Server $c) { + $memcacheFactory = $c->getMemCacheFactory(); + return new InstanceFactory($memcacheFactory->createLocal('remoteinstance.'), $c->getHTTPClientService()); + }); } /** @@ -1878,4 +1891,18 @@ public function getLockdownManager() { public function getCloudIdManager() { return $this->query(ICloudIdManager::class); } + + /** + * @return \OCP\Remote\Api\IApiFactory + */ + public function getRemoteApiFactory() { + return $this->query(IApiFactory::class); + } + + /** + * @return \OCP\Remote\IInstanceFactory + */ + public function getRemoteInstanceFactory() { + return $this->query(IInstanceFactory::class); + } } diff --git a/lib/public/IServerContainer.php b/lib/public/IServerContainer.php index 8c33a765d5e23..851a3c7e2bb51 100644 --- a/lib/public/IServerContainer.php +++ b/lib/public/IServerContainer.php @@ -541,4 +541,16 @@ public function getDateTimeFormatter(); * @since 12.0.0 */ public function getCloudIdManager(); + + /** + * @return \OCP\Remote\Api\IApiFactory + * @since 13.0.0 + */ + public function getRemoteApiFactory(); + + /** + * @return \OCP\Remote\IInstanceFactory + * @since 13.0.0 + */ + public function getRemoteInstanceFactory(); } diff --git a/lib/public/Remote/Api/IApiCollection.php b/lib/public/Remote/Api/IApiCollection.php new file mode 100644 index 0000000000000..c2bb11114d13f --- /dev/null +++ b/lib/public/Remote/Api/IApiCollection.php @@ -0,0 +1,43 @@ + + * + * @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 . + * + */ + +namespace OCP\Remote\Api; + +/** + * Provides access to the various apis of a remote instance + * + * @since 13.0.0 + */ +interface IApiCollection { + /** + * @return IUserApi + * + * @since 13.0.0 + */ + public function getUserApi(); + + /** + * @return ICapabilitiesApi + * + * @since 13.0.0 + */ + public function getCapabilitiesApi(); +} diff --git a/lib/public/Remote/Api/IApiFactory.php b/lib/public/Remote/Api/IApiFactory.php new file mode 100644 index 0000000000000..f1830f4c04a17 --- /dev/null +++ b/lib/public/Remote/Api/IApiFactory.php @@ -0,0 +1,39 @@ + + * + * @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 . + * + */ + +namespace OCP\Remote\Api; + +use OCP\Remote\ICredentials; +use OCP\Remote\IInstance; + +/** + * @since 13.0.0 + */ +interface IApiFactory { + /** + * @param IInstance $instance + * @param ICredentials $credentials + * @return IApiCollection + * + * @since 13.0.0 + */ + public function getApiCollection(IInstance $instance, ICredentials $credentials); +} diff --git a/lib/public/Remote/Api/ICapabilitiesApi.php b/lib/public/Remote/Api/ICapabilitiesApi.php new file mode 100644 index 0000000000000..855be7b520b5f --- /dev/null +++ b/lib/public/Remote/Api/ICapabilitiesApi.php @@ -0,0 +1,34 @@ + + * + * @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 . + * + */ + +namespace OCP\Remote\Api; + +/** + * @since 13.0.0 + */ +interface ICapabilitiesApi { + /** + * @return array The capabilities in the form of [$appId => [$capability => $value]] + * + * @since 13.0.0 + */ + public function getCapabilities(); +} diff --git a/lib/public/Remote/Api/IUserApi.php b/lib/public/Remote/Api/IUserApi.php new file mode 100644 index 0000000000000..9fa05dee01a8f --- /dev/null +++ b/lib/public/Remote/Api/IUserApi.php @@ -0,0 +1,37 @@ + + * + * @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 . + * + */ + +namespace OCP\Remote\Api; + +use OCP\Remote\IUser; + +/** + * @since 13.0.0 + */ +interface IUserApi { + /** + * @param string $userId + * @return IUser + * + * @since 13.0.0 + */ + public function getUser($userId); +} diff --git a/lib/public/Remote/ICredentials.php b/lib/public/Remote/ICredentials.php new file mode 100644 index 0000000000000..587bb4d5930da --- /dev/null +++ b/lib/public/Remote/ICredentials.php @@ -0,0 +1,43 @@ + + * + * @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 . + * + */ + +namespace OCP\Remote; + +/** + * The credentials for a remote user + * + * @since 13.0.0 + */ +interface ICredentials { + /** + * @return string + * + * @since 13.0.0 + */ + public function getUsername(); + + /** + * @return string + * + * @since 13.0.0 + */ + public function getPassword(); +} diff --git a/lib/public/Remote/IInstance.php b/lib/public/Remote/IInstance.php new file mode 100644 index 0000000000000..08973308abab3 --- /dev/null +++ b/lib/public/Remote/IInstance.php @@ -0,0 +1,66 @@ + + * + * @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 . + * + */ + +namespace OCP\Remote; + +/** + * Provides some basic info about a remote Nextcloud instance + * + * @since 13.0.0 + */ +interface IInstance { + /** + * @return string The url of the remote server without protocol + * + * @since 13.0.0 + */ + public function getUrl(); + + /** + * @return string The of of the remote server with protocol + * + * @since 13.0.0 + */ + public function getFullUrl(); + + /** + * @return string The full version string in '13.1.2.3' format + * + * @since 13.0.0 + */ + public function getVersion(); + + /** + * @return string 'http' or 'https' + * + * @since 13.0.0 + */ + public function getProtocol(); + + /** + * Check that the remote server is installed and not in maintenance mode + * + * @since 13.0.0 + * + * @return bool + */ + public function isActive(); +} diff --git a/lib/public/Remote/IInstanceFactory.php b/lib/public/Remote/IInstanceFactory.php new file mode 100644 index 0000000000000..22ac85563f35a --- /dev/null +++ b/lib/public/Remote/IInstanceFactory.php @@ -0,0 +1,35 @@ + + * + * @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 . + * + */ + +namespace OCP\Remote; + +/** + * @since 13.0.0 + */ +interface IInstanceFactory { + /** + * @param $url + * @return IInstance + * + * @since 13.0.0 + */ + public function getInstance($url); +} diff --git a/lib/public/Remote/IUser.php b/lib/public/Remote/IUser.php new file mode 100644 index 0000000000000..c34531d3847f6 --- /dev/null +++ b/lib/public/Remote/IUser.php @@ -0,0 +1,120 @@ + + * + * @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 . + * + */ + +namespace OCP\Remote; + +/** + * User info for a remote user + * + * @since 13.0.0 + */ +interface IUser { + /** + * @return string + * + * @since 13.0.0 + */ + public function getUserId(); + + /** + * @return string + * + * @since 13.0.0 + */ + public function getEmail(); + + /** + * @return string + * + * @since 13.0.0 + */ + public function getDisplayName(); + + /** + * @return string + * + * @since 13.0.0 + */ + public function getPhone(); + + /** + * @return string + * + * @since 13.0.0 + */ + public function getAddress(); + + /** + * @return string + * + * @since 13.0.0 + */ + public function getWebsite(); + + /** + * @return string + * + * @since 13.0.0 + */ + public function getTwitter(); + + /** + * @return string[] + * + * @since 13.0.0 + */ + public function getGroups(); + + /** + * @return string + * + * @since 13.0.0 + */ + public function getLanguage(); + + /** + * @return int + * + * @since 13.0.0 + */ + public function getUsedSpace(); + + /** + * @return int + * + * @since 13.0.0 + */ + public function getFreeSpace(); + + /** + * @return int + * + * @since 13.0.0 + */ + public function getTotalSpace(); + + /** + * @return int + * + * @since 13.0.0 + */ + public function getQuota(); +} From 8b01176f60ee85582d467ca9b66aa8fbecd3e54d Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 19 Oct 2017 13:50:27 +0200 Subject: [PATCH 69/92] add more typehints Signed-off-by: Robin Appelman --- lib/private/Remote/Api/ApiBase.php | 1 + lib/private/Remote/Api/ApiCollection.php | 3 +++ lib/private/Remote/Api/ApiFactory.php | 1 + lib/private/Remote/Instance.php | 9 +++++++++ lib/private/Remote/InstanceFactory.php | 2 ++ lib/public/Remote/IInstanceFactory.php | 2 +- 6 files changed, 17 insertions(+), 1 deletion(-) diff --git a/lib/private/Remote/Api/ApiBase.php b/lib/private/Remote/Api/ApiBase.php index 64153a9311f81..70292a977f4d1 100644 --- a/lib/private/Remote/Api/ApiBase.php +++ b/lib/private/Remote/Api/ApiBase.php @@ -57,6 +57,7 @@ protected function addDefaultHeaders(array $headers) { * @param array $query * @param array $headers * @return resource|string + * @throws \InvalidArgumentException */ protected function request($method, $url, array $body = [], array $query = [], array $headers = []) { $fullUrl = trim($this->instance->getFullUrl(), '/') . '/' . $url; diff --git a/lib/private/Remote/Api/ApiCollection.php b/lib/private/Remote/Api/ApiCollection.php index 41b1bac0e0857..5ce97621dbb6d 100644 --- a/lib/private/Remote/Api/ApiCollection.php +++ b/lib/private/Remote/Api/ApiCollection.php @@ -28,8 +28,11 @@ use OCP\Remote\IInstance; class ApiCollection implements IApiCollection { + /** @var IInstance */ private $instance; + /** @var ICredentials */ private $credentials; + /** @var IClientService */ private $clientService; public function __construct(IInstance $instance, ICredentials $credentials, IClientService $clientService) { diff --git a/lib/private/Remote/Api/ApiFactory.php b/lib/private/Remote/Api/ApiFactory.php index ea084c188f1bf..19b8e8eb50cd3 100644 --- a/lib/private/Remote/Api/ApiFactory.php +++ b/lib/private/Remote/Api/ApiFactory.php @@ -28,6 +28,7 @@ use OCP\Remote\IInstance; class ApiFactory implements IApiFactory { + /** @var IClientService */ private $clientService; public function __construct(IClientService $clientService) { diff --git a/lib/private/Remote/Instance.php b/lib/private/Remote/Instance.php index ab0081d86cfcd..0ed301ae868eb 100644 --- a/lib/private/Remote/Instance.php +++ b/lib/private/Remote/Instance.php @@ -39,6 +39,7 @@ class Instance implements IInstance { /** @var IClientService */ private $clientService; + /** @var array|null */ private $status; /** @@ -93,6 +94,10 @@ public function isActive() { return $status['installed'] && !$status['maintenance']; } + /** + * @return array + * @throws NotFoundException + */ private function getStatus() { if ($this->status) { return $this->status; @@ -120,6 +125,10 @@ private function getStatus() { return $status; } + /** + * @param string $url + * @return bool|string + */ private function downloadStatus($url) { try { $request = $this->clientService->newClient()->get($url); diff --git a/lib/private/Remote/InstanceFactory.php b/lib/private/Remote/InstanceFactory.php index 3b99bc61825b2..72baa433615e0 100644 --- a/lib/private/Remote/InstanceFactory.php +++ b/lib/private/Remote/InstanceFactory.php @@ -27,7 +27,9 @@ use OCP\Remote\IInstanceFactory; class InstanceFactory implements IInstanceFactory { + /** @var ICache */ private $cache; + /** @var IClientService */ private $clientService; public function __construct(ICache $cache, IClientService $clientService) { diff --git a/lib/public/Remote/IInstanceFactory.php b/lib/public/Remote/IInstanceFactory.php index 22ac85563f35a..6aae463a89761 100644 --- a/lib/public/Remote/IInstanceFactory.php +++ b/lib/public/Remote/IInstanceFactory.php @@ -26,7 +26,7 @@ */ interface IInstanceFactory { /** - * @param $url + * @param string $url * @return IInstance * * @since 13.0.0 From 78a24e3b8148a03a12bf5c93b5a19cb252ea6323 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 19 Oct 2017 14:05:02 +0200 Subject: [PATCH 70/92] validate user response Signed-off-by: Robin Appelman --- lib/private/Remote/Api/OCS.php | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/private/Remote/Api/OCS.php b/lib/private/Remote/Api/OCS.php index 427a5adcd9673..5ce56621a71ab 100644 --- a/lib/private/Remote/Api/OCS.php +++ b/lib/private/Remote/Api/OCS.php @@ -70,7 +70,14 @@ protected function request($method, $url, array $body = [], array $query = [], a } public function getUser($userId) { - return new User($this->request('get', 'cloud/users/' . $userId)); + $result = $this->request('get', 'cloud/users/' . $userId); + $keys = ['id', 'email', 'displayname', 'phone', 'address', 'website', 'groups', 'language', 'quota']; + foreach ($keys as $key) { + if (!isset($result[$key])) { + throw new \Exception('Invalid user response, expected field ' . $key . ' not found'); + } + } + return new User($result); } /** From f1eb55fad77c25e63c90e4c132b16262c56d9cdf Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Thu, 19 Oct 2017 15:36:39 +0200 Subject: [PATCH 71/92] refuse to use http if we know a remote has https Signed-off-by: Robin Appelman --- lib/private/Remote/Instance.php | 7 ++ tests/lib/Remote/InstanceTest.php | 128 ++++++++++++++++++++++++++++++ 2 files changed, 135 insertions(+) create mode 100644 tests/lib/Remote/InstanceTest.php diff --git a/lib/private/Remote/Instance.php b/lib/private/Remote/Instance.php index 0ed301ae868eb..3e77226edad65 100644 --- a/lib/private/Remote/Instance.php +++ b/lib/private/Remote/Instance.php @@ -97,19 +97,26 @@ public function isActive() { /** * @return array * @throws NotFoundException + * @throws \Exception */ private function getStatus() { if ($this->status) { return $this->status; } $key = 'remote/' . $this->url . '/status'; + $httpsKey = 'remote/' . $this->url . '/https'; $status = $this->cache->get($key); if (!$status) { $response = $this->downloadStatus('https://' . $this->getUrl() . '/status.php'); $protocol = 'https'; if (!$response) { + if ($status = $this->cache->get($httpsKey)) { + throw new \Exception('refusing to connect to remote instance(' . $this->url . ') over http that was previously accessible over https'); + } $response = $this->downloadStatus('http://' . $this->getUrl() . '/status.php'); $protocol = 'http'; + } else { + $this->cache->set($httpsKey, true, 60 * 60 * 24 * 365); } $status = json_decode($response, true); if ($status) { diff --git a/tests/lib/Remote/InstanceTest.php b/tests/lib/Remote/InstanceTest.php new file mode 100644 index 0000000000000..5cce2323095b4 --- /dev/null +++ b/tests/lib/Remote/InstanceTest.php @@ -0,0 +1,128 @@ + + * + * @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 . + * + */ + +namespace Test\Remote; + + +use OC\Memcache\ArrayCache; +use OC\Remote\Instance; +use OCP\Http\Client\IClient; +use OCP\Http\Client\IClientService; +use OCP\Http\Client\IResponse; +use OCP\ICache; +use Test\TestCase; + +class InstanceTest extends TestCase { + /** @var IClientService|\PHPUnit_Framework_MockObject_MockObject */ + private $clientService; + /** @var IClient|\PHPUnit_Framework_MockObject_MockObject */ + private $client; + /** @var ICache */ + private $cache; + private $expectedRequests = []; + + protected function setUp() { + parent::setUp(); + + $this->cache = new ArrayCache(); + + $this->clientService = $this->createMock(IClientService::class); + $this->client = $this->createMock(IClient::class); + $this->clientService->expects($this->any()) + ->method('newClient') + ->willReturn($this->client); + $this->client->expects($this->any()) + ->method('get') + ->willReturnCallback(function ($url) { + if (!isset($this->expectedRequests[$url])) { + throw new \Exception('unexpected request'); + } + $result = $this->expectedRequests[$url]; + + if ($result instanceof \Exception) { + throw $result; + } else { + $response = $this->createMock(IResponse::class); + $response->expects($this->any()) + ->method('getBody') + ->willReturn($result); + return $response; + } + }); + } + + /** + * @param string $url + * @param string|\Exception $result + */ + protected function expectRequest($url, $result) { + $this->expectedRequests[$url] = $result; + } + + public function testBasicStatus() { + $instance = new Instance('example.com', $this->cache, $this->clientService); + $this->expectRequest('https://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + + $this->assertEquals(true, $instance->isActive()); + $this->assertEquals('13.0.0.5', $instance->getVersion()); + $this->assertEquals('https', $instance->getProtocol()); + $this->assertEquals('https://example.com', $instance->getFullUrl()); + } + + public function testHttpFallback() { + $instance = new Instance('example.com', $this->cache, $this->clientService); + $this->expectRequest('https://example.com/status.php', new \Exception()); + $this->expectRequest('http://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + + $this->assertEquals('http', $instance->getProtocol()); + $this->assertEquals('http://example.com', $instance->getFullUrl()); + } + + public function testRerequestHttps() { + $instance = new Instance('example.com', $this->cache, $this->clientService); + $this->expectRequest('https://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + + $this->assertEquals('https', $instance->getProtocol()); + $this->assertEquals(true, $instance->isActive()); + + $this->cache->remove('remote/example.com/status'); + $this->expectRequest('https://example.com/status.php', '{"installed":true,"maintenance":true,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + $instance2 = new Instance('example.com', $this->cache, $this->clientService); + $this->assertEquals('https', $instance2->getProtocol()); + $this->assertEquals(false, $instance2->isActive()); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage refusing to connect to remote instance(example.com) over http that was previously accessible over https + */ + public function testPreventDowngradeAttach() { + $instance = new Instance('example.com', $this->cache, $this->clientService); + $this->expectRequest('https://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + + $this->assertEquals('https', $instance->getProtocol()); + + $this->expectRequest('https://example.com/status.php', new \Exception()); + $this->cache->remove('remote/example.com/status'); + $instance2 = new Instance('example.com', $this->cache, $this->clientService); + $instance2->getProtocol(); + } +} From 5ce69e7c426059474c1ac59a2086ac66f672e8b8 Mon Sep 17 00:00:00 2001 From: Robin Appelman Date: Fri, 20 Oct 2017 17:48:49 +0200 Subject: [PATCH 72/92] Add some more tests for ocs remote api Signed-off-by: Robin Appelman --- lib/private/Remote/Api/OCS.php | 21 ++-- lib/private/Remote/User.php | 12 +++ tests/lib/Remote/Api/OCSTest.php | 95 +++++++++++++++++++ tests/lib/Remote/InstanceTest.php | 69 ++++---------- tests/lib/Traits/ClientServiceTrait.php | 121 ++++++++++++++++++++++++ 5 files changed, 259 insertions(+), 59 deletions(-) create mode 100644 tests/lib/Remote/Api/OCSTest.php create mode 100644 tests/lib/Traits/ClientServiceTrait.php diff --git a/lib/private/Remote/Api/OCS.php b/lib/private/Remote/Api/OCS.php index 5ce56621a71ab..a3a1530281041 100644 --- a/lib/private/Remote/Api/OCS.php +++ b/lib/private/Remote/Api/OCS.php @@ -43,7 +43,7 @@ class OCS extends ApiBase implements ICapabilitiesApi, IUserApi { */ protected function request($method, $url, array $body = [], array $query = [], array $headers = []) { try { - $response = json_decode(parent::request($method, '/ocs/v2.php/' . $url, $body, $query, $headers), true); + $response = json_decode(parent::request($method, 'ocs/v2.php/' . $url, $body, $query, $headers), true); } catch (ClientException $e) { if ($e->getResponse()->getStatusCode() === 404) { throw new NotFoundException(); @@ -69,14 +69,23 @@ protected function request($method, $url, array $body = [], array $query = [], a return $response['ocs']['data']; } - public function getUser($userId) { - $result = $this->request('get', 'cloud/users/' . $userId); - $keys = ['id', 'email', 'displayname', 'phone', 'address', 'website', 'groups', 'language', 'quota']; + /** + * @param array $data + * @param string $type + * @param string[] $keys + * @throws \Exception + */ + private function checkResponseArray(array $data, $type, array $keys) { foreach ($keys as $key) { - if (!isset($result[$key])) { - throw new \Exception('Invalid user response, expected field ' . $key . ' not found'); + if (!array_key_exists($key, $data)) { + throw new \Exception('Invalid ' . $type . ' response, expected field ' . $key . ' not found'); } } + } + + public function getUser($userId) { + $result = $this->request('get', 'cloud/users/' . $userId); + $this->checkResponseArray($result, 'user', User::EXPECTED_KEYS); return new User($result); } diff --git a/lib/private/Remote/User.php b/lib/private/Remote/User.php index f8d278afdac1a..1f31965f5e75b 100644 --- a/lib/private/Remote/User.php +++ b/lib/private/Remote/User.php @@ -25,6 +25,18 @@ use OCP\Remote\IUser; class User implements IUser { + const EXPECTED_KEYS = [ + 'id', + 'email', + 'displayname', + 'phone', + 'address', + 'website', + 'groups', + 'language', + 'quota' + ]; + /** @var array */ private $data; diff --git a/tests/lib/Remote/Api/OCSTest.php b/tests/lib/Remote/Api/OCSTest.php new file mode 100644 index 0000000000000..5bdc0c21a9ccf --- /dev/null +++ b/tests/lib/Remote/Api/OCSTest.php @@ -0,0 +1,95 @@ + + * + * @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 . + * + */ + +namespace Test\Remote\Api; + +use OC\Memcache\ArrayCache; +use OC\Remote\Api\OCS; +use OC\Remote\Credentials; +use OC\Remote\InstanceFactory; +use OCP\Remote\IInstanceFactory; +use Test\TestCase; +use Test\Traits\ClientServiceTrait; + +class OCSTest extends TestCase { + use ClientServiceTrait; + + /** @var IInstanceFactory */ + private $instanceFactory; + + protected function setUp() { + parent::setUp(); + + $this->instanceFactory = new InstanceFactory(new ArrayCache(), $this->getClientService()); + $this->expectGetRequest('https://example.com/status.php', + '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + } + + protected function getOCSClient() { + return new OCS( + $this->instanceFactory->getInstance('example.com'), + new Credentials('user', 'pass'), + $this->getClientService() + ); + } + + protected function getOCSUrl($url) { + return 'https://example.com/ocs/v2.php/' . $url; + } + + public function testGetUser() { + $client = $this->getOCSClient(); + + $this->expectGetRequest($this->getOCSUrl('cloud/users/user'), + '{"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"}, + "data":{"id":"user","quota":{"free":5366379387,"used":2329733,"total":5368709120,"relative":0.040000000000000001,"quota":5368709120}, + "email":null,"displayname":"test","phone":"","address":"","website":"","twitter":"","groups":["Test","Test1"],"language":"en"}}}'); + + $user = $client->getUser('user'); + $this->assertEquals('user', $user->getUserId()); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage Invalid user response, expected field email not found + */ + public function testGetUserInvalidResponse() { + $client = $this->getOCSClient(); + + $this->expectGetRequest($this->getOCSUrl('cloud/users/user'), + '{"ocs":{"meta":{"status":"ok","statuscode":200,"message":"OK"}, + "data":{"id":"user"}}}'); + + $client->getUser('user'); + } + + /** + * @expectedException \OC\ForbiddenException + */ + public function testInvalidPassword() { + $client = $this->getOCSClient(); + + $this->expectGetRequest($this->getOCSUrl('cloud/users/user'), + '{"ocs":{"meta":{"status":"failure","statuscode":997,"message":"Current user is not logged in"},"data":[]}}'); + + $client->getUser('user'); + } +} diff --git a/tests/lib/Remote/InstanceTest.php b/tests/lib/Remote/InstanceTest.php index 5cce2323095b4..9fc4cfc017797 100644 --- a/tests/lib/Remote/InstanceTest.php +++ b/tests/lib/Remote/InstanceTest.php @@ -24,62 +24,25 @@ use OC\Memcache\ArrayCache; use OC\Remote\Instance; -use OCP\Http\Client\IClient; -use OCP\Http\Client\IClientService; -use OCP\Http\Client\IResponse; use OCP\ICache; use Test\TestCase; +use Test\Traits\ClientServiceTrait; class InstanceTest extends TestCase { - /** @var IClientService|\PHPUnit_Framework_MockObject_MockObject */ - private $clientService; - /** @var IClient|\PHPUnit_Framework_MockObject_MockObject */ - private $client; + use ClientServiceTrait; + /** @var ICache */ private $cache; - private $expectedRequests = []; protected function setUp() { parent::setUp(); $this->cache = new ArrayCache(); - - $this->clientService = $this->createMock(IClientService::class); - $this->client = $this->createMock(IClient::class); - $this->clientService->expects($this->any()) - ->method('newClient') - ->willReturn($this->client); - $this->client->expects($this->any()) - ->method('get') - ->willReturnCallback(function ($url) { - if (!isset($this->expectedRequests[$url])) { - throw new \Exception('unexpected request'); - } - $result = $this->expectedRequests[$url]; - - if ($result instanceof \Exception) { - throw $result; - } else { - $response = $this->createMock(IResponse::class); - $response->expects($this->any()) - ->method('getBody') - ->willReturn($result); - return $response; - } - }); - } - - /** - * @param string $url - * @param string|\Exception $result - */ - protected function expectRequest($url, $result) { - $this->expectedRequests[$url] = $result; } public function testBasicStatus() { - $instance = new Instance('example.com', $this->cache, $this->clientService); - $this->expectRequest('https://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + $instance = new Instance('example.com', $this->cache, $this->getClientService()); + $this->expectGetRequest('https://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); $this->assertEquals(true, $instance->isActive()); $this->assertEquals('13.0.0.5', $instance->getVersion()); @@ -88,24 +51,24 @@ public function testBasicStatus() { } public function testHttpFallback() { - $instance = new Instance('example.com', $this->cache, $this->clientService); - $this->expectRequest('https://example.com/status.php', new \Exception()); - $this->expectRequest('http://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + $instance = new Instance('example.com', $this->cache, $this->getClientService()); + $this->expectGetRequest('https://example.com/status.php', new \Exception()); + $this->expectGetRequest('http://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); $this->assertEquals('http', $instance->getProtocol()); $this->assertEquals('http://example.com', $instance->getFullUrl()); } public function testRerequestHttps() { - $instance = new Instance('example.com', $this->cache, $this->clientService); - $this->expectRequest('https://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + $instance = new Instance('example.com', $this->cache, $this->getClientService()); + $this->expectGetRequest('https://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); $this->assertEquals('https', $instance->getProtocol()); $this->assertEquals(true, $instance->isActive()); $this->cache->remove('remote/example.com/status'); - $this->expectRequest('https://example.com/status.php', '{"installed":true,"maintenance":true,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); - $instance2 = new Instance('example.com', $this->cache, $this->clientService); + $this->expectGetRequest('https://example.com/status.php', '{"installed":true,"maintenance":true,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + $instance2 = new Instance('example.com', $this->cache, $this->getClientService()); $this->assertEquals('https', $instance2->getProtocol()); $this->assertEquals(false, $instance2->isActive()); } @@ -115,14 +78,14 @@ public function testRerequestHttps() { * @expectedExceptionMessage refusing to connect to remote instance(example.com) over http that was previously accessible over https */ public function testPreventDowngradeAttach() { - $instance = new Instance('example.com', $this->cache, $this->clientService); - $this->expectRequest('https://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); + $instance = new Instance('example.com', $this->cache, $this->getClientService()); + $this->expectGetRequest('https://example.com/status.php', '{"installed":true,"maintenance":false,"needsDbUpgrade":false,"version":"13.0.0.5","versionstring":"13.0.0 alpha","edition":"","productname":"Nextcloud"}'); $this->assertEquals('https', $instance->getProtocol()); - $this->expectRequest('https://example.com/status.php', new \Exception()); + $this->expectGetRequest('https://example.com/status.php', new \Exception()); $this->cache->remove('remote/example.com/status'); - $instance2 = new Instance('example.com', $this->cache, $this->clientService); + $instance2 = new Instance('example.com', $this->cache, $this->getClientService()); $instance2->getProtocol(); } } diff --git a/tests/lib/Traits/ClientServiceTrait.php b/tests/lib/Traits/ClientServiceTrait.php new file mode 100644 index 0000000000000..d4f540e6c3627 --- /dev/null +++ b/tests/lib/Traits/ClientServiceTrait.php @@ -0,0 +1,121 @@ + + * + * @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 . + * + */ + +namespace Test\Traits; + + +use OCP\Http\Client\IClient; +use OCP\Http\Client\IClientService; +use OCP\Http\Client\IResponse; + +trait ClientServiceTrait { + /** @var IClientService|\PHPUnit_Framework_MockObject_MockObject */ + private $clientService; + /** @var IClient|\PHPUnit_Framework_MockObject_MockObject */ + private $client; + private $expectedGetRequests = []; + private $expectedPostRequests = []; + + /** + * Wrapper to be forward compatible to phpunit 5.4+ + * + * @param string $originalClassName + * @return \PHPUnit_Framework_MockObject_MockObject + */ + abstract protected function createMock($originalClassName); + + /** + * Returns a matcher that matches when the method is executed + * zero or more times. + * + * @return \PHPUnit_Framework_MockObject_Matcher_AnyInvokedCount + * + * @since Method available since Release 3.0.0 + */ + abstract public function any(); + + protected function setUpClientServiceTrait() { + $this->clientService = $this->createMock(IClientService::class); + $this->client = $this->createMock(IClient::class); + $this->clientService->expects($this->any()) + ->method('newClient') + ->willReturn($this->client); + $this->client->expects($this->any()) + ->method('get') + ->willReturnCallback(function ($url) { + if (!isset($this->expectedGetRequests[$url])) { + throw new \Exception('unexpected request: ' . $url); + } + $result = $this->expectedGetRequests[$url]; + + if ($result instanceof \Exception) { + throw $result; + } else { + $response = $this->createMock(IResponse::class); + $response->expects($this->any()) + ->method('getBody') + ->willReturn($result); + return $response; + } + }); + $this->client->expects($this->any()) + ->method('post') + ->willReturnCallback(function ($url) { + if (!isset($this->expectedPostRequests[$url])) { + throw new \Exception('unexpected request: ' . $url); + } + $result = $this->expectedPostRequests[$url]; + + if ($result instanceof \Exception) { + throw $result; + } else { + $response = $this->createMock(IResponse::class); + $response->expects($this->any()) + ->method('getBody') + ->willReturn($result); + return $response; + } + }); + } + + /** + * @param string $url + * @param string|\Exception $result + */ + protected function expectGetRequest($url, $result) { + $this->expectedGetRequests[$url] = $result; + } + + /** + * @param string $url + * @param string|\Exception $result + */ + protected function expectPostRequest($url, $result) { + $this->expectedPostRequests[$url] = $result; + } + + /** + * @return IClientService|\PHPUnit_Framework_MockObject_MockObject + */ + protected function getClientService() { + return $this->clientService; + } +} From b70b38ce31cf7ba63aeec8a3f417ac1c138c9ec9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Calvi=C3=B1o=20S=C3=A1nchez?= Date: Fri, 8 Dec 2017 18:55:38 +0100 Subject: [PATCH 73/92] Fix constructor spy in unit test with Sinon 4.1.3 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a constructor is spied using Sinon it is wrapped by a proxy function, which calls the original constructor when invoked. When "new Foo()" is executed a "Foo" object is created, "Foo" is invoked with the object as "this", and the object is returned as the result of the whole "new" expression. Before Sinon 4.1.3 the proxy called the original constructor directly using the "thisValue" of the spied call; "thisValue" was the object created by the "new" operator that called the proxy. The proxy assigned "thisValue" to "returnValue", so it was also the value returned by the proxy and, in turn, the value returned by the whole "new" expression. Since Sinon 4.1.3 (see pull request 1626) the proxy calls the original constructor using "new" instead of directly. The "thisValue" created by the outermost "new" (the one that called the proxy) is no longer used by the original constructor; the internal "new" creates a new object, which is the one passed to the original constructor and returned by the internal "new" expression. This object is also the value returned by the proxy ("returnValue") and, in turn, the value returned by the whole outermost "new" expression. Thus, now "returnValue" should be used instead of "thisValue" to get the object created by the spied constructor. Signed-off-by: Daniel Calviño Sánchez --- apps/files_sharing/tests/js/shareSpec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_sharing/tests/js/shareSpec.js b/apps/files_sharing/tests/js/shareSpec.js index 893525f756698..91060f6a73596 100644 --- a/apps/files_sharing/tests/js/shareSpec.js +++ b/apps/files_sharing/tests/js/shareSpec.js @@ -498,7 +498,7 @@ describe('OCA.Sharing.Util tests', function() { var changeHandler = sinon.stub(); fileInfoModel.on('change', changeHandler); - shareTabSpy.getCall(0).thisValue.trigger('sharesChanged', shareModel); + shareTabSpy.getCall(0).returnValue.trigger('sharesChanged', shareModel); expect(changeHandler.calledOnce).toEqual(true); expect(changeHandler.getCall(0).args[0].changed).toEqual({ From 855acc727bcbb0d3862ff6ec0a7efa14d885abbf Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Sat, 9 Dec 2017 01:10:24 +0000 Subject: [PATCH 74/92] [tx-robot] updated from transifex --- apps/comments/l10n/et_EE.js | 2 +- apps/comments/l10n/et_EE.json | 2 +- apps/dav/l10n/et_EE.js | 58 +++++++++++++++++ apps/dav/l10n/et_EE.json | 56 ++++++++++++++++ settings/l10n/et_EE.js | 119 ++++++++++++++++++++++++++++++++-- settings/l10n/et_EE.json | 119 ++++++++++++++++++++++++++++++++-- 6 files changed, 344 insertions(+), 12 deletions(-) create mode 100644 apps/dav/l10n/et_EE.js create mode 100644 apps/dav/l10n/et_EE.json diff --git a/apps/comments/l10n/et_EE.js b/apps/comments/l10n/et_EE.js index 65c259eedaadd..225b114998200 100644 --- a/apps/comments/l10n/et_EE.js +++ b/apps/comments/l10n/et_EE.js @@ -25,7 +25,7 @@ OC.L10N.register( "You commented on {file}" : "Sa kommenteerisid faili {file}", "%1$s commented on %2$s" : "%1$s kommenteeris %2$s", "{author} commented on {file}" : "{author} kommenteeris faili {file}", - "Comments for files" : "kommentaari ffailidele", + "Comments for files" : "Kommentaarid failidele", "%1$s mentioned you in a comment on “%2$s”" : "%1$s mainis sind \"%2$s\" kommentaaris", "{user} mentioned you in a comment on “{file}”" : "{user} mainis sind faili “{file}” kommentaaris", "A (now) deleted user mentioned you in a comment on “%s”" : "Kustutatud kasutaja mainis sind \"%s\" kommentaaris", diff --git a/apps/comments/l10n/et_EE.json b/apps/comments/l10n/et_EE.json index f178cfa7e08be..f57ca8383d7f5 100644 --- a/apps/comments/l10n/et_EE.json +++ b/apps/comments/l10n/et_EE.json @@ -23,7 +23,7 @@ "You commented on {file}" : "Sa kommenteerisid faili {file}", "%1$s commented on %2$s" : "%1$s kommenteeris %2$s", "{author} commented on {file}" : "{author} kommenteeris faili {file}", - "Comments for files" : "kommentaari ffailidele", + "Comments for files" : "Kommentaarid failidele", "%1$s mentioned you in a comment on “%2$s”" : "%1$s mainis sind \"%2$s\" kommentaaris", "{user} mentioned you in a comment on “{file}”" : "{user} mainis sind faili “{file}” kommentaaris", "A (now) deleted user mentioned you in a comment on “%s”" : "Kustutatud kasutaja mainis sind \"%s\" kommentaaris", diff --git a/apps/dav/l10n/et_EE.js b/apps/dav/l10n/et_EE.js new file mode 100644 index 0000000000000..b824c261a4436 --- /dev/null +++ b/apps/dav/l10n/et_EE.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "dav", + { + "Calendar" : "Kalender", + "Todos" : "Ülesanded", + "Personal" : "Isiklik", + "{actor} created calendar {calendar}" : "{actor} lõi kalendri {calendar}", + "You created calendar {calendar}" : "Sa lõid kalendri {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} kustutas kalendri {calendar}", + "You deleted calendar {calendar}" : "Sa kustutasid kalendri {calendar}", + "{actor} updated calendar {calendar}" : "{actor} uuendas kalendrit {calendar}", + "You updated calendar {calendar}" : "Sa uuendasid kalendrit {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} jagas kalendrit {calendar} sinuga", + "You shared calendar {calendar} with {user}" : "Sa jagasid kalendrit {calendar} kasutajaga {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} jagas kalendrit {calendar} kasutajaga {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} lõpetas sinuga kalendri {calendar} jagamise", + "You unshared calendar {calendar} from {user}" : "Sa lõpetasid kalendri {calendar} jagamise kasutajaga {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} lõpetas kalendri {calendar} jagamise kasutajaga {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} lõpetas iseendaga kalendri {calendar} jagamise", + "You shared calendar {calendar} with group {group}" : "Sa jagasid kalendrit {calendar} grupiga {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} jagas kalendrit {calendar} grupiga {group}", + "You unshared calendar {calendar} from group {group}" : "Sa lõpetasid kalendri {calendar} jagamise grupiga {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} lõpetas kalendri {calendar} jagamise grupiga {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor} lõi sündmuse {event} kalendrisse {calendar}", + "You created event {event} in calendar {calendar}" : "Sa lõid sündmuse {event} kalendrisse {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} kustutas sündmuse {event} kalendrist {calendar}", + "You deleted event {event} from calendar {calendar}" : "Sa kustutasid sündmuse {event} kalendrist {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} uuendas sündmust {event} kalendris {calendar}", + "You updated event {event} in calendar {calendar}" : "Sa uuendasid sündmust {event} kalendris {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} lõi ülesande {todo} nimekirjas {calendar}", + "You created todo {todo} in list {calendar}" : "Sa lõid ülesande {todo} nimekirjas {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} kustutas ülesande {todo} nimekirjast {calendar}", + "You deleted todo {todo} from list {calendar}" : "Sa kustutasid ülesande {todo} nimekirjast {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} uuendas ülesande {todo} nimekirjas {calendar}", + "You updated todo {todo} in list {calendar}" : "Sa uuendasid ülesande {todo} nimekirjas {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} lõpetas ülesande {todo} nimekirjas {calendar}", + "You solved todo {todo} in list {calendar}" : "Sa lõpetasid ülesande {todo} nimekirjas {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} taasavas ülesande {todo} nimekirjas {calendar}", + "You reopened todo {todo} in list {calendar}" : "Sa taasavasid ülesande {todo} nimekirjas {calendar}", + "A calendar was modified" : " Kalendrit muudeti", + "A calendar event was modified" : "Kalendri sündmust muudeti", + "A calendar todo was modified" : "Kalendri ülesannet muudeti", + "Contact birthdays" : "Kontaktide sünnipäevad", + "Invitation canceled" : "Kutse on tühistatud", + "Hello %s," : "Tere %s,", + "The meeting »%s« with %s was canceled." : "Koosolek »%s« osaleja(te)ga %s tühistati.", + "Invitation updated" : "Kutse uuendatud", + "The meeting »%s« with %s was updated." : "Koosolek »%s« osaleja(te)ga %s uuendati.", + "When:" : "Millal:", + "Where:" : "Kus:", + "Description:" : "Kirjeldus:", + "Link:" : "Link:", + "Contacts" : "Kontaktid", + "Technical details" : "Tehnilised detailid", + "CalDAV server" : "CalDAV server", + "Send invitations to attendees" : "Saada osalejatele kutsed" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/et_EE.json b/apps/dav/l10n/et_EE.json new file mode 100644 index 0000000000000..cecdd0dfe2df2 --- /dev/null +++ b/apps/dav/l10n/et_EE.json @@ -0,0 +1,56 @@ +{ "translations": { + "Calendar" : "Kalender", + "Todos" : "Ülesanded", + "Personal" : "Isiklik", + "{actor} created calendar {calendar}" : "{actor} lõi kalendri {calendar}", + "You created calendar {calendar}" : "Sa lõid kalendri {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} kustutas kalendri {calendar}", + "You deleted calendar {calendar}" : "Sa kustutasid kalendri {calendar}", + "{actor} updated calendar {calendar}" : "{actor} uuendas kalendrit {calendar}", + "You updated calendar {calendar}" : "Sa uuendasid kalendrit {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} jagas kalendrit {calendar} sinuga", + "You shared calendar {calendar} with {user}" : "Sa jagasid kalendrit {calendar} kasutajaga {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} jagas kalendrit {calendar} kasutajaga {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} lõpetas sinuga kalendri {calendar} jagamise", + "You unshared calendar {calendar} from {user}" : "Sa lõpetasid kalendri {calendar} jagamise kasutajaga {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} lõpetas kalendri {calendar} jagamise kasutajaga {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} lõpetas iseendaga kalendri {calendar} jagamise", + "You shared calendar {calendar} with group {group}" : "Sa jagasid kalendrit {calendar} grupiga {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} jagas kalendrit {calendar} grupiga {group}", + "You unshared calendar {calendar} from group {group}" : "Sa lõpetasid kalendri {calendar} jagamise grupiga {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} lõpetas kalendri {calendar} jagamise grupiga {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor} lõi sündmuse {event} kalendrisse {calendar}", + "You created event {event} in calendar {calendar}" : "Sa lõid sündmuse {event} kalendrisse {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} kustutas sündmuse {event} kalendrist {calendar}", + "You deleted event {event} from calendar {calendar}" : "Sa kustutasid sündmuse {event} kalendrist {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} uuendas sündmust {event} kalendris {calendar}", + "You updated event {event} in calendar {calendar}" : "Sa uuendasid sündmust {event} kalendris {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} lõi ülesande {todo} nimekirjas {calendar}", + "You created todo {todo} in list {calendar}" : "Sa lõid ülesande {todo} nimekirjas {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} kustutas ülesande {todo} nimekirjast {calendar}", + "You deleted todo {todo} from list {calendar}" : "Sa kustutasid ülesande {todo} nimekirjast {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} uuendas ülesande {todo} nimekirjas {calendar}", + "You updated todo {todo} in list {calendar}" : "Sa uuendasid ülesande {todo} nimekirjas {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} lõpetas ülesande {todo} nimekirjas {calendar}", + "You solved todo {todo} in list {calendar}" : "Sa lõpetasid ülesande {todo} nimekirjas {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} taasavas ülesande {todo} nimekirjas {calendar}", + "You reopened todo {todo} in list {calendar}" : "Sa taasavasid ülesande {todo} nimekirjas {calendar}", + "A calendar was modified" : " Kalendrit muudeti", + "A calendar event was modified" : "Kalendri sündmust muudeti", + "A calendar todo was modified" : "Kalendri ülesannet muudeti", + "Contact birthdays" : "Kontaktide sünnipäevad", + "Invitation canceled" : "Kutse on tühistatud", + "Hello %s," : "Tere %s,", + "The meeting »%s« with %s was canceled." : "Koosolek »%s« osaleja(te)ga %s tühistati.", + "Invitation updated" : "Kutse uuendatud", + "The meeting »%s« with %s was updated." : "Koosolek »%s« osaleja(te)ga %s uuendati.", + "When:" : "Millal:", + "Where:" : "Kus:", + "Description:" : "Kirjeldus:", + "Link:" : "Link:", + "Contacts" : "Kontaktid", + "Technical details" : "Tehnilised detailid", + "CalDAV server" : "CalDAV server", + "Send invitations to attendees" : "Saada osalejatele kutsed" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/settings/l10n/et_EE.js b/settings/l10n/et_EE.js index a6ef5991e7041..d134bdc2601a9 100644 --- a/settings/l10n/et_EE.js +++ b/settings/l10n/et_EE.js @@ -8,6 +8,8 @@ OC.L10N.register( "You changed your email address" : "Sa muutsid oma e-posti aadressi", "Your email address was changed by an administrator" : "Administraator muutis sinu e-posti aadressi", "Security" : "Turvalisus", + "Your password or email was modified" : "Sinu parooli või e-posti aadressi muudeti", + "Your apps" : "Sinu rakendused", "Updates" : "Uuendused", "Enabled apps" : "Lubatud rakendused", "Disabled apps" : "Keelatud rakendused", @@ -18,19 +20,25 @@ OC.L10N.register( "Unable to change password" : "Ei suuda parooli muuta", "Authentication error" : "Autentimise viga", "Wrong admin recovery password. Please check the password and try again." : "Vale administraatori taasteparool. Palun kontrolli parooli ning proovi uuesti.", + "A problem occurred, please check your log files (Error: %s)" : "Ilmnes viga, palun kontrollige logifaile. (Viga: %s)", "Migration Completed" : "Kolimine on lõpetatud", "Group already exists." : "Grupp on juba olemas.", "Unable to add group." : "Gruppi lisamine ebaõnnestus.", "Unable to delete group." : "Grupi kustutamineebaõnnestus.", "Invalid SMTP password." : "Vale SMTP parool.", "Email setting test" : "E-posti sätete kontroll", + "Well done, %s!" : "Suurepärane, %s!", + "If you received this email, the email configuration seems to be correct." : "Kui saite selle kirja, näib e-posti seadistus õige.", "Email could not be sent. Check your mail server log" : "E-posti ei saanud saata. Kontrollige oma meiliserveri logi", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "E-posti saatmisel ilmnes viga. Palun kontrollige seadeid. (Viga: %s)", "You need to set your user email before being able to send test emails." : "Pead seadistama oma e-postienne kui on võimalik saata test-kirju.", "Invalid mail address" : "Vigane e-posti aadress", "A user with that name already exists." : "Selle nimega kasutaja on juba olemas.", + "To send a password link to the user an email address is required." : "Kasutajale parooli saatmiseks on vaja e-posti aadressi.", "Unable to create user." : "Kasutaja loomine ebaõnnestus.", "Unable to delete user." : "Kasutaja kustutamine ebaõnnestus.", + "Error while enabling user." : "Viga kasutaja lubamisel.", + "Error while disabling user." : "Viga kasutaja keelamisel.", "Settings saved" : "Seaded salvestatud", "Unable to change full name" : "Täispika nime muutmine ebaõnnestus", "Unable to change email address" : "E-posti aadressi muutmine ebaõnnestus", @@ -39,30 +47,70 @@ OC.L10N.register( "Invalid user" : "Vigane kasutaja", "Unable to change mail address" : "E-posti aadressi muutmine ebaõnnestus", "Email saved" : "Kiri on salvestatud", + "Your password on %s was changed." : "Sinu %s parool muudeti.", + "Your password on %s was reset by an administrator." : "Administraator lähtestas sinu %s parooli.", + "If you did not request this, please contact an administrator." : "Kui sa pole seda taotlenud, võta ühendust administraatoriga.", + "Your email address on %s was changed." : "Sinu %s e-posti aadressi muudeti.", + "Your email address on %s was changed by an administrator." : "Administraator muutis sinu %s e-posti aadressi.", "Your %s account was created" : "Sinu %s konto on loodud", + "Welcome aboard" : "Tere tulemast", + "Welcome aboard %s" : "Tere tulemast %s", + "Your username is: %s" : "Sinu kasutajanimi on: %s", + "Set your password" : "Määra oma parool", + "Go to %s" : "Mine %s", + "Install Client" : "Paigalda kliendiprogramm", + "Password confirmation is required" : "Parooli kinnitus on vajalik", "Couldn't remove app." : "Ei suutnud rakendit eemaldada.", "Couldn't update app." : "Rakenduse uuendamine ebaõnnestus.", "Add trusted domain" : "Lis ausaldusväärne domeen", "Migration in progress. Please wait until the migration is finished" : "Kolimine on käimas. Palun oota, kuni see on lõpetatud", "Migration started …" : "Kolimist on alustatud ...", "Not saved" : "Ei ole salvestatud", + "Sending…" : "Saadan...", "Email sent" : "E-kiri on saadetud", "Official" : "Ametlik", "All" : "Kõik", "Update to %s" : "Uuenda versioonile %s", "No apps found for your version" : "Sinu versiooni jaoks ei leitud ühtegi rakendust", + "Disabling app …" : "Keelan rakendust ...", "Error while disabling app" : "Viga rakenduse keelamisel", "Disable" : "Lülita välja", "Enable" : "Lülita sisse", + "Enabling app …" : "Luban rakendust ...", "Error while enabling app" : "Viga rakenduse lubamisel", + "No app updates available" : "Rakenduse uuendusi pole saadaval", "Updating...." : "Uuendamine...", "Error while updating app" : "Viga rakenduse uuendamisel", "Updated" : "Uuendatud", + "Removing …" : "Eemaldan ...", + "Error while removing app" : "Viga rakenduse eemaldamisel", + "Remove" : "Eemalda", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Rakendus on lubatud aga see vajab uuendamist. Sind suunatakse uuendamise lehele 5 sekundi pärast.", "App update" : "Rakenduse uuendus", "Approved" : "Heaks kiidetud", "Experimental" : "Katsetusjärgus", + "Enable all" : "Luba kõik", + "Allow filesystem access" : "Luba juurdepääs failisüsteemile", + "Disconnect" : "Ühenda lahti", + "Revoke" : "Tühista", + "This session" : "See sessioon", + "Copy" : "Kopeeri", + "Copied!" : "Kopeeritud!", + "Not supported!" : "Pole toetatud!", + "Press ⌘-C to copy." : "Kopeerimiseks vajuta ⌘ + C.", + "Press Ctrl-C to copy." : "Kopeerimiseks vajuta Ctrl + C.", "Valid until {date}" : "Kehtib kuni {date}", "Delete" : "Kustuta", + "Local" : "Kohalik", + "Private" : "Privaatne", + "Only visible to local users" : "Ainult nähtav kohalikele kasutajatele", + "Only visible to you" : "Ainult sinule nähtav", + "Contacts" : "Kontaktid", + "Visible to local users and to trusted servers" : "Nähtav kohelikele kasutajatele ja usaldatud serveritele", + "Public" : "Avalik", + "Verify" : "Kontrolli", + "Verifying …" : "Kontrollin ...", + "An error occured while changing your language. Please reload the page and try again." : "Keele vahetamisel ilmnes viga. Palun taasilaadi leht ja proovi uuesti.", "Select a profile picture" : "Vali profiili pilt", "Very weak password" : "Väga nõrk parool", "Weak password" : "Nõrk parool", @@ -71,30 +119,46 @@ OC.L10N.register( "Strong password" : "Väga hea parool", "Groups" : "Grupid", "Unable to delete {objName}" : "Ei suuda kustutada {objName}", + "Error creating group: {message}" : "Tõrge grupi loomisel: {message}", "A valid group name must be provided" : "Sisesta nõuetele vastav grupi nimi", "deleted {groupName}" : "kustutatud {groupName}", "undo" : "tagasi", + "{size} used" : "{size} kasutatud", "never" : "mitte kunagi", "deleted {userName}" : "kustutatud {userName}", + "Unable to add user to group {group}" : "Kasutajat ei saa lisada gruppi {group}", + "Unable to remove user from group {group}" : "Kasutajat ei saa eemaldada grupist {group}", + "Add group" : "Lisa grupp", + "Invalid quota value \"{val}\"" : "Vigane mahupiiri väärtus \"{val}\"", + "Password successfully changed" : "Parool edukalt vahetatud", + "Changing the password will result in data loss, because data recovery is not available for this user" : "Parooli vahetamine toob kaasa andmekao, sest selle kasutaja andmete taastamine pole võimalik", + "Could not change the users email" : "Kasutaja e-posti muutmine ebaõnnestus", + "Error while changing status of {user}" : "Kasutaja {user} staatuse muutmine ebaõnnestus", "A valid username must be provided" : "Sisesta nõuetele vastav kasutajatunnus", + "Error creating user: {message}" : "Kasutaja loomine ebaõnnestus: {message}", "A valid password must be provided" : "Sisesta nõuetele vastav parool", "A valid email must be provided" : "Sisesta kehtiv e-posti aadress", "Developer documentation" : "Arendaja dokumentatsioon", + "Limit to groups" : "Luba gruppidele", "Documentation:" : "Dokumentatsioon:", "User documentation" : "Kasutaja dokumentatsioon", "Admin documentation" : "Administraatori dokumentatsioon", + "Visit website" : "Külasta veebisaiti", + "Report a bug" : "Teata veast", "Show description …" : "Näita kirjeldist ...", "Hide description …" : "Peida kirjeldus ...", + "This app has an update available." : "Sellel rakendusel on uuendus saadaval", "Enable only for specific groups" : "Luba ainult kindlad grupid", "SSL Root Certificates" : "SLL Juur sertifikaadid", "Common Name" : "Üldnimetus", "Valid until" : "Kehtib kuni", - "Issued By" : "isas", + "Issued By" : "Välja antud", "Valid until %s" : "Kehtib kuni %s", "Import root certificate" : "Impordi root sertifikaat", "Administrator documentation" : "Administraatori dokumentatsioon", "Online documentation" : "Võrgus olev dokumentatsioon", "Forum" : "Foorum", + "Getting help" : "Abi saamine", "Commercial support" : "Tasuline kasutajatugi", "None" : "Pole", "Login" : "Logi sisse", @@ -131,33 +195,51 @@ OC.L10N.register( "The cron.php needs to be executed by the system user \"%s\"." : "cron.php tuleb käivitada süsteemikasutaja \"%s\" poolt.", "Version" : "Versioon", "Sharing" : "Jagamine", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Administraatorina saate jagamise valikuid täpselt seadistada. Lisateavet leiad dokumentatsioonist.", "Allow apps to use the Share API" : "Luba rakendustel kasutada Share API-t", "Allow users to share via link" : "Luba kasutajatel lingiga jagamist ", "Allow public uploads" : "Luba avalikud üleslaadimised", - "Enforce password protection" : "Sunni parooliga kaitsmist", + "Always ask for a password" : "Alati küsi parooli", + "Enforce password protection" : "Sunni parooliga kaitsmine", "Set default expiration date" : "Määra vaikimisi aegumise kuupäev", "Expire after " : "Aegu pärast", "days" : "päeva", "Enforce expiration date" : "Sunnitud aegumise kuupäev", "Allow resharing" : "Luba edasijagamine", + "Allow sharing with groups" : "Luba gruppidega jagamine", "Restrict users to only share with users in their groups" : "Luba kasutajatel jagada kasutajatega ainult oma grupi piires", "Exclude groups from sharing" : "Eemalda grupid jagamisest", "These groups will still be able to receive shares, but not to initiate them." : "Need grupid saavad vastu võtta jagamisi, kuid ise jagamisi algatada ei saa.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Luba kasutajanime automaatne lõpetamine jagamisdialoogis. Kui see on keelatud, tuleb sisestada täielik kasutajanimi või e-posti aadress.", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Kuva avaliku lingiga üleslaadimise lehel lahtiütluste tekst. (Kuvatakse ainult siis, kui failide loend on peidetud.)", + "This text will be shown on the public link upload page when the file list is hidden." : "Seda teksti näidatakse avaliku lingiga üleslaadimise lehel kui failide loend on peidetud.", "Tips & tricks" : "Nõuanded ja trikid", "How to do backups" : "Kuidas teha varukoopiaid", - "Advanced monitoring" : "Edasijõudnud monitooring", + "Advanced monitoring" : "Täpsem monitooring", "Performance tuning" : "Kiiruse seadistamine", "Improving the config.php" : "config.php faili täiendamine", "Theming" : "Teemad", + "Personal" : "Isiklik", + "Administration" : "Haldus", "Profile picture" : "Profiili pilt", "Upload new" : "Laadi uus üles", + "Select from Files" : "Vali failidest", "Remove image" : "Eemalda pilt", + "png or jpg, max. 20 MB" : "png või jpg, max. 20 MB", "Cancel" : "Loobu", + "Choose as profile picture" : "Vali kui profiili pilt", "Full name" : "Täielik nimi", "No display name set" : "Näidatavat nime pole veel määratud", "Email" : "E-post", "Your email address" : "Sinu e-posti aadress", "No email address set" : "E-posti aadressi pole veel määratud", + "For password reset and notifications" : "Parooli lähestamiseks ja teadeteks", + "Phone number" : "Telefoninumber", + "Your phone number" : "Sinu telefoninumber", + "Address" : "Aadress", + "Your postal address" : "Sinu postiaadress", + "Website" : "Veebileht", + "It can take up to 24 hours before the account is displayed as verified." : "Võib võtta kuni 24 tundi enne kui konto kuvatakse kui kinnitatud.", "You are member of the following groups:" : "Sa oled nende gruppide liige:", "Language" : "Keel", "Help translate" : "Aita tõlkida", @@ -165,21 +247,35 @@ OC.L10N.register( "Current password" : "Praegune parool", "New password" : "Uus parool", "Change password" : "Muuda parooli", + "Web, desktop and mobile clients currently logged in to your account." : "Sinu kontole hetkel sisse loginud veebi-, töölaua-, ja mobiilsed kliendid.", + "Device" : "Seade", + "Last activity" : "Viimane tegevus", + "App name" : "Rakenduse nimi", + "Create new app password" : "Loo uus rakenduse parool", + "Use the credentials below to configure your app or device." : "Rakenduse või seadme konfigureerimiseks kasutage allpool toodud mandaate.", + "For security reasons this password will only be shown once." : "Turvalisuse huvides kuvatakse see parool ainult üks kord.", "Username" : "Kasutajanimi", "Done" : "Valmis", + "Settings" : "Seaded", "Show storage location" : "Näita salvestusruumi asukohta", + "Show last login" : "Näita viimast sisselogimist", "Show email address" : "Näita e-posti aadressi", "Send email to new user" : "Saada uuele kasutajale e-kiri", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Kui uue kasutaja parool jäetakse määramata, saadetakse aktiveerimise kiri lingiga parooli määramiseks.", "E-Mail" : "E-post", "Create" : "Lisa", "Admin Recovery Password" : "Admini parooli taastamine", "Enter the recovery password in order to recover the users files during password change" : "Sisesta taasteparool kasutaja failide taastamiseks paroolivahetuse käigus", "Everyone" : "Igaüks", "Admins" : "Haldurid", + "Disabled" : "Keelatud", + "Default quota" : "Vaikimisi mahupiir", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Palun sisesta mahupiir (nt: \"512 MB\" või \"12 GB\")", "Unlimited" : "Piiramatult", "Other" : "Muu", + "Group admin for" : "Grupi admin", "Quota" : "Mahupiir", + "Last login" : "Viimane sisselogimine", "change full name" : "Muuda täispikka nime", "set new password" : "määra uus parool", "change email address" : "muuda e-posti aadressi", @@ -198,7 +294,9 @@ OC.L10N.register( "Uninstall" : "Eemalda", "__language_name__" : "Eesti", "Personal info" : "Isiklik info", - "Sync clients" : "Klientide sünkroniseerimine", + "Sessions" : "Sessioonid", + "App passwords" : "Rakenuse paroolid", + "Sync clients" : "Kliendiprogrammid", "This is used for sending out notifications." : "Seda kasutatakse teadete välja saatmiseks.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP moodul 'fileinfo' puudub. Soovitame tungivalt see lisada saavutamaks parimaid tulemusi failitüüpide tuvastamisel.", @@ -209,13 +307,24 @@ OC.L10N.register( "Cron was not executed yet!" : "Cron pole kordagi käivitatud!", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php on registreeritud webcron teenuses, et käivitada fail cron.php iga 15 minuti tagant üle http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Kasuta süsteemi cron teenust, et käivitada fail cron.php iga 15 minuti järel.", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Luba kasutajanime automaatne lõpetamine jagamisdialoogis. Kui see on keelatud, tuleb sisestada täielik kasutajanimi.", + "Uninstall app" : "Eemalda rakendus", + "Hey there,

just letting you know that you now have a %s account.

Your username: %s
Access it: %s

" : "Tervist!,

anname teada, et sul on nüüd %s konto.

Sinu kasutajanimi: %s
Juurdepääs sellele: %s

", "Cheers!" : "Terekest!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Tervist,\n\nanname teada, et sul on nüüd %s konto.\n\nSinu kasutajanimi: %s\nJuurdepääs sellele: %s\n\n", + "For password recovery and notifications" : "Parooli taastamiseks ja teadeteks", + "Your website" : "Sinu veebileht", "Get the apps to sync your files" : "Hangi rakendusi failide sünkroniseerimiseks", "Desktop client" : "Töölaua klient", "Android app" : "Androidi rakendus", "iOS app" : "iOS-i rakendus", "Show First Run Wizard again" : "Näita veelkord Esmase Käivituse Juhendajat", + "Passcodes that give an app or device permissions to access your account." : "Pääsukoodid, mis annavad rakendusele või seadmele õigused sinu kontole juurdepääsuks.", "Name" : "Nimi", - "Show last log in" : "Viimane sisselogimine" + "Show last log in" : "Viimane sisselogimine", + "Group name" : "Grupi nimi", + "Verifying" : "Kontrollin", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Veebi-, töölaua-, mobiilsed kliendid ja rakenduste pääsukoodid millel on ligipääs sinu kontole.", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Siin saad luua rakendustele individuaalseid paroole, nii et sa ei pea oma parooli välja andma. Saad neid ka individuaalselt tühistada." }, "nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/et_EE.json b/settings/l10n/et_EE.json index 768f6ee14739b..3deb9f95f5bbb 100644 --- a/settings/l10n/et_EE.json +++ b/settings/l10n/et_EE.json @@ -6,6 +6,8 @@ "You changed your email address" : "Sa muutsid oma e-posti aadressi", "Your email address was changed by an administrator" : "Administraator muutis sinu e-posti aadressi", "Security" : "Turvalisus", + "Your password or email was modified" : "Sinu parooli või e-posti aadressi muudeti", + "Your apps" : "Sinu rakendused", "Updates" : "Uuendused", "Enabled apps" : "Lubatud rakendused", "Disabled apps" : "Keelatud rakendused", @@ -16,19 +18,25 @@ "Unable to change password" : "Ei suuda parooli muuta", "Authentication error" : "Autentimise viga", "Wrong admin recovery password. Please check the password and try again." : "Vale administraatori taasteparool. Palun kontrolli parooli ning proovi uuesti.", + "A problem occurred, please check your log files (Error: %s)" : "Ilmnes viga, palun kontrollige logifaile. (Viga: %s)", "Migration Completed" : "Kolimine on lõpetatud", "Group already exists." : "Grupp on juba olemas.", "Unable to add group." : "Gruppi lisamine ebaõnnestus.", "Unable to delete group." : "Grupi kustutamineebaõnnestus.", "Invalid SMTP password." : "Vale SMTP parool.", "Email setting test" : "E-posti sätete kontroll", + "Well done, %s!" : "Suurepärane, %s!", + "If you received this email, the email configuration seems to be correct." : "Kui saite selle kirja, näib e-posti seadistus õige.", "Email could not be sent. Check your mail server log" : "E-posti ei saanud saata. Kontrollige oma meiliserveri logi", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "E-posti saatmisel ilmnes viga. Palun kontrollige seadeid. (Viga: %s)", "You need to set your user email before being able to send test emails." : "Pead seadistama oma e-postienne kui on võimalik saata test-kirju.", "Invalid mail address" : "Vigane e-posti aadress", "A user with that name already exists." : "Selle nimega kasutaja on juba olemas.", + "To send a password link to the user an email address is required." : "Kasutajale parooli saatmiseks on vaja e-posti aadressi.", "Unable to create user." : "Kasutaja loomine ebaõnnestus.", "Unable to delete user." : "Kasutaja kustutamine ebaõnnestus.", + "Error while enabling user." : "Viga kasutaja lubamisel.", + "Error while disabling user." : "Viga kasutaja keelamisel.", "Settings saved" : "Seaded salvestatud", "Unable to change full name" : "Täispika nime muutmine ebaõnnestus", "Unable to change email address" : "E-posti aadressi muutmine ebaõnnestus", @@ -37,30 +45,70 @@ "Invalid user" : "Vigane kasutaja", "Unable to change mail address" : "E-posti aadressi muutmine ebaõnnestus", "Email saved" : "Kiri on salvestatud", + "Your password on %s was changed." : "Sinu %s parool muudeti.", + "Your password on %s was reset by an administrator." : "Administraator lähtestas sinu %s parooli.", + "If you did not request this, please contact an administrator." : "Kui sa pole seda taotlenud, võta ühendust administraatoriga.", + "Your email address on %s was changed." : "Sinu %s e-posti aadressi muudeti.", + "Your email address on %s was changed by an administrator." : "Administraator muutis sinu %s e-posti aadressi.", "Your %s account was created" : "Sinu %s konto on loodud", + "Welcome aboard" : "Tere tulemast", + "Welcome aboard %s" : "Tere tulemast %s", + "Your username is: %s" : "Sinu kasutajanimi on: %s", + "Set your password" : "Määra oma parool", + "Go to %s" : "Mine %s", + "Install Client" : "Paigalda kliendiprogramm", + "Password confirmation is required" : "Parooli kinnitus on vajalik", "Couldn't remove app." : "Ei suutnud rakendit eemaldada.", "Couldn't update app." : "Rakenduse uuendamine ebaõnnestus.", "Add trusted domain" : "Lis ausaldusväärne domeen", "Migration in progress. Please wait until the migration is finished" : "Kolimine on käimas. Palun oota, kuni see on lõpetatud", "Migration started …" : "Kolimist on alustatud ...", "Not saved" : "Ei ole salvestatud", + "Sending…" : "Saadan...", "Email sent" : "E-kiri on saadetud", "Official" : "Ametlik", "All" : "Kõik", "Update to %s" : "Uuenda versioonile %s", "No apps found for your version" : "Sinu versiooni jaoks ei leitud ühtegi rakendust", + "Disabling app …" : "Keelan rakendust ...", "Error while disabling app" : "Viga rakenduse keelamisel", "Disable" : "Lülita välja", "Enable" : "Lülita sisse", + "Enabling app …" : "Luban rakendust ...", "Error while enabling app" : "Viga rakenduse lubamisel", + "No app updates available" : "Rakenduse uuendusi pole saadaval", "Updating...." : "Uuendamine...", "Error while updating app" : "Viga rakenduse uuendamisel", "Updated" : "Uuendatud", + "Removing …" : "Eemaldan ...", + "Error while removing app" : "Viga rakenduse eemaldamisel", + "Remove" : "Eemalda", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "Rakendus on lubatud aga see vajab uuendamist. Sind suunatakse uuendamise lehele 5 sekundi pärast.", "App update" : "Rakenduse uuendus", "Approved" : "Heaks kiidetud", "Experimental" : "Katsetusjärgus", + "Enable all" : "Luba kõik", + "Allow filesystem access" : "Luba juurdepääs failisüsteemile", + "Disconnect" : "Ühenda lahti", + "Revoke" : "Tühista", + "This session" : "See sessioon", + "Copy" : "Kopeeri", + "Copied!" : "Kopeeritud!", + "Not supported!" : "Pole toetatud!", + "Press ⌘-C to copy." : "Kopeerimiseks vajuta ⌘ + C.", + "Press Ctrl-C to copy." : "Kopeerimiseks vajuta Ctrl + C.", "Valid until {date}" : "Kehtib kuni {date}", "Delete" : "Kustuta", + "Local" : "Kohalik", + "Private" : "Privaatne", + "Only visible to local users" : "Ainult nähtav kohalikele kasutajatele", + "Only visible to you" : "Ainult sinule nähtav", + "Contacts" : "Kontaktid", + "Visible to local users and to trusted servers" : "Nähtav kohelikele kasutajatele ja usaldatud serveritele", + "Public" : "Avalik", + "Verify" : "Kontrolli", + "Verifying …" : "Kontrollin ...", + "An error occured while changing your language. Please reload the page and try again." : "Keele vahetamisel ilmnes viga. Palun taasilaadi leht ja proovi uuesti.", "Select a profile picture" : "Vali profiili pilt", "Very weak password" : "Väga nõrk parool", "Weak password" : "Nõrk parool", @@ -69,30 +117,46 @@ "Strong password" : "Väga hea parool", "Groups" : "Grupid", "Unable to delete {objName}" : "Ei suuda kustutada {objName}", + "Error creating group: {message}" : "Tõrge grupi loomisel: {message}", "A valid group name must be provided" : "Sisesta nõuetele vastav grupi nimi", "deleted {groupName}" : "kustutatud {groupName}", "undo" : "tagasi", + "{size} used" : "{size} kasutatud", "never" : "mitte kunagi", "deleted {userName}" : "kustutatud {userName}", + "Unable to add user to group {group}" : "Kasutajat ei saa lisada gruppi {group}", + "Unable to remove user from group {group}" : "Kasutajat ei saa eemaldada grupist {group}", + "Add group" : "Lisa grupp", + "Invalid quota value \"{val}\"" : "Vigane mahupiiri väärtus \"{val}\"", + "Password successfully changed" : "Parool edukalt vahetatud", + "Changing the password will result in data loss, because data recovery is not available for this user" : "Parooli vahetamine toob kaasa andmekao, sest selle kasutaja andmete taastamine pole võimalik", + "Could not change the users email" : "Kasutaja e-posti muutmine ebaõnnestus", + "Error while changing status of {user}" : "Kasutaja {user} staatuse muutmine ebaõnnestus", "A valid username must be provided" : "Sisesta nõuetele vastav kasutajatunnus", + "Error creating user: {message}" : "Kasutaja loomine ebaõnnestus: {message}", "A valid password must be provided" : "Sisesta nõuetele vastav parool", "A valid email must be provided" : "Sisesta kehtiv e-posti aadress", "Developer documentation" : "Arendaja dokumentatsioon", + "Limit to groups" : "Luba gruppidele", "Documentation:" : "Dokumentatsioon:", "User documentation" : "Kasutaja dokumentatsioon", "Admin documentation" : "Administraatori dokumentatsioon", + "Visit website" : "Külasta veebisaiti", + "Report a bug" : "Teata veast", "Show description …" : "Näita kirjeldist ...", "Hide description …" : "Peida kirjeldus ...", + "This app has an update available." : "Sellel rakendusel on uuendus saadaval", "Enable only for specific groups" : "Luba ainult kindlad grupid", "SSL Root Certificates" : "SLL Juur sertifikaadid", "Common Name" : "Üldnimetus", "Valid until" : "Kehtib kuni", - "Issued By" : "isas", + "Issued By" : "Välja antud", "Valid until %s" : "Kehtib kuni %s", "Import root certificate" : "Impordi root sertifikaat", "Administrator documentation" : "Administraatori dokumentatsioon", "Online documentation" : "Võrgus olev dokumentatsioon", "Forum" : "Foorum", + "Getting help" : "Abi saamine", "Commercial support" : "Tasuline kasutajatugi", "None" : "Pole", "Login" : "Logi sisse", @@ -129,33 +193,51 @@ "The cron.php needs to be executed by the system user \"%s\"." : "cron.php tuleb käivitada süsteemikasutaja \"%s\" poolt.", "Version" : "Versioon", "Sharing" : "Jagamine", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Administraatorina saate jagamise valikuid täpselt seadistada. Lisateavet leiad dokumentatsioonist.", "Allow apps to use the Share API" : "Luba rakendustel kasutada Share API-t", "Allow users to share via link" : "Luba kasutajatel lingiga jagamist ", "Allow public uploads" : "Luba avalikud üleslaadimised", - "Enforce password protection" : "Sunni parooliga kaitsmist", + "Always ask for a password" : "Alati küsi parooli", + "Enforce password protection" : "Sunni parooliga kaitsmine", "Set default expiration date" : "Määra vaikimisi aegumise kuupäev", "Expire after " : "Aegu pärast", "days" : "päeva", "Enforce expiration date" : "Sunnitud aegumise kuupäev", "Allow resharing" : "Luba edasijagamine", + "Allow sharing with groups" : "Luba gruppidega jagamine", "Restrict users to only share with users in their groups" : "Luba kasutajatel jagada kasutajatega ainult oma grupi piires", "Exclude groups from sharing" : "Eemalda grupid jagamisest", "These groups will still be able to receive shares, but not to initiate them." : "Need grupid saavad vastu võtta jagamisi, kuid ise jagamisi algatada ei saa.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Luba kasutajanime automaatne lõpetamine jagamisdialoogis. Kui see on keelatud, tuleb sisestada täielik kasutajanimi või e-posti aadress.", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Kuva avaliku lingiga üleslaadimise lehel lahtiütluste tekst. (Kuvatakse ainult siis, kui failide loend on peidetud.)", + "This text will be shown on the public link upload page when the file list is hidden." : "Seda teksti näidatakse avaliku lingiga üleslaadimise lehel kui failide loend on peidetud.", "Tips & tricks" : "Nõuanded ja trikid", "How to do backups" : "Kuidas teha varukoopiaid", - "Advanced monitoring" : "Edasijõudnud monitooring", + "Advanced monitoring" : "Täpsem monitooring", "Performance tuning" : "Kiiruse seadistamine", "Improving the config.php" : "config.php faili täiendamine", "Theming" : "Teemad", + "Personal" : "Isiklik", + "Administration" : "Haldus", "Profile picture" : "Profiili pilt", "Upload new" : "Laadi uus üles", + "Select from Files" : "Vali failidest", "Remove image" : "Eemalda pilt", + "png or jpg, max. 20 MB" : "png või jpg, max. 20 MB", "Cancel" : "Loobu", + "Choose as profile picture" : "Vali kui profiili pilt", "Full name" : "Täielik nimi", "No display name set" : "Näidatavat nime pole veel määratud", "Email" : "E-post", "Your email address" : "Sinu e-posti aadress", "No email address set" : "E-posti aadressi pole veel määratud", + "For password reset and notifications" : "Parooli lähestamiseks ja teadeteks", + "Phone number" : "Telefoninumber", + "Your phone number" : "Sinu telefoninumber", + "Address" : "Aadress", + "Your postal address" : "Sinu postiaadress", + "Website" : "Veebileht", + "It can take up to 24 hours before the account is displayed as verified." : "Võib võtta kuni 24 tundi enne kui konto kuvatakse kui kinnitatud.", "You are member of the following groups:" : "Sa oled nende gruppide liige:", "Language" : "Keel", "Help translate" : "Aita tõlkida", @@ -163,21 +245,35 @@ "Current password" : "Praegune parool", "New password" : "Uus parool", "Change password" : "Muuda parooli", + "Web, desktop and mobile clients currently logged in to your account." : "Sinu kontole hetkel sisse loginud veebi-, töölaua-, ja mobiilsed kliendid.", + "Device" : "Seade", + "Last activity" : "Viimane tegevus", + "App name" : "Rakenduse nimi", + "Create new app password" : "Loo uus rakenduse parool", + "Use the credentials below to configure your app or device." : "Rakenduse või seadme konfigureerimiseks kasutage allpool toodud mandaate.", + "For security reasons this password will only be shown once." : "Turvalisuse huvides kuvatakse see parool ainult üks kord.", "Username" : "Kasutajanimi", "Done" : "Valmis", + "Settings" : "Seaded", "Show storage location" : "Näita salvestusruumi asukohta", + "Show last login" : "Näita viimast sisselogimist", "Show email address" : "Näita e-posti aadressi", "Send email to new user" : "Saada uuele kasutajale e-kiri", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Kui uue kasutaja parool jäetakse määramata, saadetakse aktiveerimise kiri lingiga parooli määramiseks.", "E-Mail" : "E-post", "Create" : "Lisa", "Admin Recovery Password" : "Admini parooli taastamine", "Enter the recovery password in order to recover the users files during password change" : "Sisesta taasteparool kasutaja failide taastamiseks paroolivahetuse käigus", "Everyone" : "Igaüks", "Admins" : "Haldurid", + "Disabled" : "Keelatud", + "Default quota" : "Vaikimisi mahupiir", "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Palun sisesta mahupiir (nt: \"512 MB\" või \"12 GB\")", "Unlimited" : "Piiramatult", "Other" : "Muu", + "Group admin for" : "Grupi admin", "Quota" : "Mahupiir", + "Last login" : "Viimane sisselogimine", "change full name" : "Muuda täispikka nime", "set new password" : "määra uus parool", "change email address" : "muuda e-posti aadressi", @@ -196,7 +292,9 @@ "Uninstall" : "Eemalda", "__language_name__" : "Eesti", "Personal info" : "Isiklik info", - "Sync clients" : "Klientide sünkroniseerimine", + "Sessions" : "Sessioonid", + "App passwords" : "Rakenuse paroolid", + "Sync clients" : "Kliendiprogrammid", "This is used for sending out notifications." : "Seda kasutatakse teadete välja saatmiseks.", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP on seadistatud eemaldama \"inline\" dokumendi blokke. See muudab mõned rakendid kasutamatuteks.", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP moodul 'fileinfo' puudub. Soovitame tungivalt see lisada saavutamaks parimaid tulemusi failitüüpide tuvastamisel.", @@ -207,13 +305,24 @@ "Cron was not executed yet!" : "Cron pole kordagi käivitatud!", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php on registreeritud webcron teenuses, et käivitada fail cron.php iga 15 minuti tagant üle http.", "Use system's cron service to call the cron.php file every 15 minutes." : "Kasuta süsteemi cron teenust, et käivitada fail cron.php iga 15 minuti järel.", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Luba kasutajanime automaatne lõpetamine jagamisdialoogis. Kui see on keelatud, tuleb sisestada täielik kasutajanimi.", + "Uninstall app" : "Eemalda rakendus", + "Hey there,

just letting you know that you now have a %s account.

Your username: %s
Access it: %s

" : "Tervist!,

anname teada, et sul on nüüd %s konto.

Sinu kasutajanimi: %s
Juurdepääs sellele: %s

", "Cheers!" : "Terekest!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Tervist,\n\nanname teada, et sul on nüüd %s konto.\n\nSinu kasutajanimi: %s\nJuurdepääs sellele: %s\n\n", + "For password recovery and notifications" : "Parooli taastamiseks ja teadeteks", + "Your website" : "Sinu veebileht", "Get the apps to sync your files" : "Hangi rakendusi failide sünkroniseerimiseks", "Desktop client" : "Töölaua klient", "Android app" : "Androidi rakendus", "iOS app" : "iOS-i rakendus", "Show First Run Wizard again" : "Näita veelkord Esmase Käivituse Juhendajat", + "Passcodes that give an app or device permissions to access your account." : "Pääsukoodid, mis annavad rakendusele või seadmele õigused sinu kontole juurdepääsuks.", "Name" : "Nimi", - "Show last log in" : "Viimane sisselogimine" + "Show last log in" : "Viimane sisselogimine", + "Group name" : "Grupi nimi", + "Verifying" : "Kontrollin", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "Veebi-, töölaua-, mobiilsed kliendid ja rakenduste pääsukoodid millel on ligipääs sinu kontole.", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Siin saad luua rakendustele individuaalseid paroole, nii et sa ei pea oma parooli välja andma. Saad neid ka individuaalselt tühistada." },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file From a684f033bdfbf3c6a073787ff1d562f31424ed4d Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Sun, 10 Dec 2017 01:10:25 +0000 Subject: [PATCH 75/92] [tx-robot] updated from transifex --- apps/comments/l10n/et_EE.js | 2 + apps/comments/l10n/et_EE.json | 2 + apps/dav/l10n/et_EE.js | 6 +- apps/dav/l10n/et_EE.json | 6 +- apps/federatedfilesharing/l10n/et_EE.js | 49 ++++- apps/federatedfilesharing/l10n/et_EE.json | 49 ++++- apps/federation/l10n/et_EE.js | 13 +- apps/federation/l10n/et_EE.json | 13 +- apps/files/l10n/et_EE.js | 4 + apps/files/l10n/et_EE.json | 4 + apps/files_sharing/l10n/et_EE.js | 104 ++++++++--- apps/files_sharing/l10n/et_EE.json | 104 ++++++++--- apps/systemtags/l10n/et_EE.js | 8 + apps/systemtags/l10n/et_EE.json | 8 + apps/workflowengine/l10n/et_EE.js | 68 +++++++ apps/workflowengine/l10n/et_EE.json | 66 +++++++ core/l10n/de.js | 1 + core/l10n/de.json | 1 + core/l10n/de_DE.js | 1 + core/l10n/de_DE.json | 1 + core/l10n/es.js | 1 + core/l10n/es.json | 1 + core/l10n/et_EE.js | 12 +- core/l10n/et_EE.json | 12 +- core/l10n/pt_BR.js | 1 + core/l10n/pt_BR.json | 1 + core/l10n/pt_PT.js | 50 +++--- core/l10n/pt_PT.json | 50 +++--- core/l10n/tr.js | 1 + core/l10n/tr.json | 1 + lib/l10n/et_EE.js | 210 ++++++++++++++++++++++ lib/l10n/et_EE.json | 208 +++++++++++++++++++++ settings/l10n/et_EE.js | 2 + settings/l10n/et_EE.json | 2 + 34 files changed, 950 insertions(+), 112 deletions(-) create mode 100644 apps/workflowengine/l10n/et_EE.js create mode 100644 apps/workflowengine/l10n/et_EE.json create mode 100644 lib/l10n/et_EE.js create mode 100644 lib/l10n/et_EE.json diff --git a/apps/comments/l10n/et_EE.js b/apps/comments/l10n/et_EE.js index 225b114998200..478f4ae124567 100644 --- a/apps/comments/l10n/et_EE.js +++ b/apps/comments/l10n/et_EE.js @@ -26,6 +26,8 @@ OC.L10N.register( "%1$s commented on %2$s" : "%1$s kommenteeris %2$s", "{author} commented on {file}" : "{author} kommenteeris faili {file}", "Comments for files" : "Kommentaarid failidele", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Sind mainiti \"%s\", kommentaaris kasutataja poolt, mis on praeguseks kustutatud", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Sind mainiti \"{file}\", kommentaaris kasutataja poolt, mis on praeguseks kustutatud", "%1$s mentioned you in a comment on “%2$s”" : "%1$s mainis sind \"%2$s\" kommentaaris", "{user} mentioned you in a comment on “{file}”" : "{user} mainis sind faili “{file}” kommentaaris", "A (now) deleted user mentioned you in a comment on “%s”" : "Kustutatud kasutaja mainis sind \"%s\" kommentaaris", diff --git a/apps/comments/l10n/et_EE.json b/apps/comments/l10n/et_EE.json index f57ca8383d7f5..226d844f0d301 100644 --- a/apps/comments/l10n/et_EE.json +++ b/apps/comments/l10n/et_EE.json @@ -24,6 +24,8 @@ "%1$s commented on %2$s" : "%1$s kommenteeris %2$s", "{author} commented on {file}" : "{author} kommenteeris faili {file}", "Comments for files" : "Kommentaarid failidele", + "You were mentioned on “%s”, in a comment by a user that has since been deleted" : "Sind mainiti \"%s\", kommentaaris kasutataja poolt, mis on praeguseks kustutatud", + "You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Sind mainiti \"{file}\", kommentaaris kasutataja poolt, mis on praeguseks kustutatud", "%1$s mentioned you in a comment on “%2$s”" : "%1$s mainis sind \"%2$s\" kommentaaris", "{user} mentioned you in a comment on “{file}”" : "{user} mainis sind faili “{file}” kommentaaris", "A (now) deleted user mentioned you in a comment on “%s”" : "Kustutatud kasutaja mainis sind \"%s\" kommentaaris", diff --git a/apps/dav/l10n/et_EE.js b/apps/dav/l10n/et_EE.js index b824c261a4436..e640488514f50 100644 --- a/apps/dav/l10n/et_EE.js +++ b/apps/dav/l10n/et_EE.js @@ -46,13 +46,17 @@ OC.L10N.register( "The meeting »%s« with %s was canceled." : "Koosolek »%s« osaleja(te)ga %s tühistati.", "Invitation updated" : "Kutse uuendatud", "The meeting »%s« with %s was updated." : "Koosolek »%s« osaleja(te)ga %s uuendati.", + "%s invited you to »%s«" : "%s kutsus sind »%s«", "When:" : "Millal:", "Where:" : "Kus:", "Description:" : "Kirjeldus:", "Link:" : "Link:", "Contacts" : "Kontaktid", "Technical details" : "Tehnilised detailid", + "Remote Address: %s" : "Kaugaadress: %s", + "Request ID: %s" : "Päringu ID: %s", "CalDAV server" : "CalDAV server", - "Send invitations to attendees" : "Saada osalejatele kutsed" + "Send invitations to attendees" : "Saada osalejatele kutsed", + "Please make sure to properly set up the email settings above." : "Veendu, et e-posti seaded oleksid eespool õigesti seadistatud." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/et_EE.json b/apps/dav/l10n/et_EE.json index cecdd0dfe2df2..e1c1f11e038bb 100644 --- a/apps/dav/l10n/et_EE.json +++ b/apps/dav/l10n/et_EE.json @@ -44,13 +44,17 @@ "The meeting »%s« with %s was canceled." : "Koosolek »%s« osaleja(te)ga %s tühistati.", "Invitation updated" : "Kutse uuendatud", "The meeting »%s« with %s was updated." : "Koosolek »%s« osaleja(te)ga %s uuendati.", + "%s invited you to »%s«" : "%s kutsus sind »%s«", "When:" : "Millal:", "Where:" : "Kus:", "Description:" : "Kirjeldus:", "Link:" : "Link:", "Contacts" : "Kontaktid", "Technical details" : "Tehnilised detailid", + "Remote Address: %s" : "Kaugaadress: %s", + "Request ID: %s" : "Päringu ID: %s", "CalDAV server" : "CalDAV server", - "Send invitations to attendees" : "Saada osalejatele kutsed" + "Send invitations to attendees" : "Saada osalejatele kutsed", + "Please make sure to properly set up the email settings above." : "Veendu, et e-posti seaded oleksid eespool õigesti seadistatud." },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/apps/federatedfilesharing/l10n/et_EE.js b/apps/federatedfilesharing/l10n/et_EE.js index 8e61e9ddf6ed7..f9206e537111a 100644 --- a/apps/federatedfilesharing/l10n/et_EE.js +++ b/apps/federatedfilesharing/l10n/et_EE.js @@ -1,15 +1,58 @@ OC.L10N.register( "federatedfilesharing", { + "Federated sharing" : "Liit-jagamine", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Soovid lisada kaugjagamise {name} asukohast {owner}@{remote}?", + "Remote share" : "Kaugjagamine", + "Remote share password" : "Kaugjagamise parool", + "Cancel" : "Tühista", + "Add remote share" : "Lisa kaugjagamine", + "Copy" : "Kopeeri", + "Copied!" : "Kopeeritud!", + "Not supported!" : "Pole toetatud!", + "Press ⌘-C to copy." : "Kopeerimiseks vajuta ⌘ + C.", + "Press Ctrl-C to copy." : "Kopeerimiseks vajuta Ctrl + C.", + "Invalid Federated Cloud ID" : "Vigane liitpilve ID", + "Server to server sharing is not enabled on this server" : "Serveritevaheline jagamine ei ole selle pilves aktiiveeritud", + "Couldn't establish a federated share." : "Liitjagamist ei õnnestunud luua", + "Couldn't establish a federated share, maybe the password was wrong." : "Liitjagamist ei õnnestunud luua, ehk oli parool vale.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Liitjagamise päring edastatud, sulle saadetakse kutse. Kontrolli oma teateid.", + "The mountpoint name contains invalid characters." : "Ühenduspunkti nimes on vigaseid märke.", + "Not allowed to create a federated share with the owner." : "Liitjagamise loomine omanikuga ei ole lubatud.", + "Invalid or untrusted SSL certificate" : "Vigane või tundmatu SSL sertifikaat", + "Could not authenticate to remote share, password might be wrong" : "Ei õnnestunud kagujagamist autentida, ehk on parool vale", + "Storage not valid" : "Andmehoidla pole korrektne", + "Federated share added" : "Liitjagamine lisatud", + "Couldn't add remote share" : "Ei suutnud lisada kaugjagamist", "Sharing %s failed, because this item is already shared with %s" : "%s jagamine ebaõnnestus, kuna see üksus on juba jagatud %s", + "Not allowed to create a federated share with the same user" : "Liitjagamise loomine sama kasutajaga ei ole lubatud.", + "File is already shared with %s" : "Fail on juba jagatud kasutajaga %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "%s jagamine ebaõnnestus, ei suutnud %s leida, ehk ei ole server kättesaadav või kasutab ise allkirjastatud sertifikaati.", + "Could not find share" : "Jagamist ei leitud", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Sa said kaugjagatud faili \"%3$s\" kasutajalt %1$s (%2$s nimel)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Sa said kaugjagatud faili {share} kasjutajalt {user} ({behalf} nimel)", + "You received \"%3$s\" as a remote share from %1$s" : "Sa said kaugjagatud faili \"%3$s\" kasutajalt %1$s", + "You received {share} as a remote share from {user}" : "Sa said kaugjagatud faili {file} kasutajalt {user}", "Accept" : "Nõustu", - "Decline" : "Lükka tagasi", + "Decline" : "Keeldu", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Jaga minuga läbi minu #Nextcloudi liitpilve ID, vaata %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Jaga minuga läbi minu #Nextcloudi liitpilve ID", + "Sharing" : "Jagamine", + "Federated Cloud Sharing" : "Jagamine liitpilves", "Open documentation" : "Ava dokumentatsioon", + "Adjust how people can share between servers." : "Seadista kuidas inimesed saavad serverite vahel jagada.", "Allow users on this server to send shares to other servers" : "Luba selle serveri kasutajatel saata faile teistesse serveritesse", "Allow users on this server to receive shares from other servers" : "Luba selle serveri kasutajatel võtta vastu jagamisi teistest serveritest", - "Share it:" : "Jaga seda:", + "Search global and public address book for users" : "Otsi kasutajaid globaalsest ja avalikust aadressiraamatust", + "Allow users to publish their data to a global and public address book" : "Luba kasutajatel avaldada oma andmeid globaalses ja avalikus aadressiraamatus", + "Federated Cloud" : "Liitpilv", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Sa võid jagada kõigiga kes kasutab Nextcloudi, ownCloudi või Pydio't. Lihtsalt siseta jagamise dialoogi nende liitpilve ID. See näeb välja nagu person@cloud.example.com", + "Your Federated Cloud ID:" : "Sinu liitpilve ID:", + "Share it so your friends can share files with you:" : "Jaga seda, et su sõbrad saaksid sinuga faile jagada:", "Add to your website" : "Lisa oma veebisaidile", "Share with me via Nextcloud" : "Jaga minuga läbi Nextclouddiga", - "HTML Code:" : "HTML kood:" + "HTML Code:" : "HTML kood:", + "Search global and public address book for users and let local users publish their data" : "Otsi kasutajaid globaalsest ja avalikust aadressiraamatust ja luba kohalikel kasutajatel avaldada oma andmeid", + "Share it:" : "Jaga seda:" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/federatedfilesharing/l10n/et_EE.json b/apps/federatedfilesharing/l10n/et_EE.json index 239b69b974cc5..e669fc92d66b3 100644 --- a/apps/federatedfilesharing/l10n/et_EE.json +++ b/apps/federatedfilesharing/l10n/et_EE.json @@ -1,13 +1,56 @@ { "translations": { + "Federated sharing" : "Liit-jagamine", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "Soovid lisada kaugjagamise {name} asukohast {owner}@{remote}?", + "Remote share" : "Kaugjagamine", + "Remote share password" : "Kaugjagamise parool", + "Cancel" : "Tühista", + "Add remote share" : "Lisa kaugjagamine", + "Copy" : "Kopeeri", + "Copied!" : "Kopeeritud!", + "Not supported!" : "Pole toetatud!", + "Press ⌘-C to copy." : "Kopeerimiseks vajuta ⌘ + C.", + "Press Ctrl-C to copy." : "Kopeerimiseks vajuta Ctrl + C.", + "Invalid Federated Cloud ID" : "Vigane liitpilve ID", + "Server to server sharing is not enabled on this server" : "Serveritevaheline jagamine ei ole selle pilves aktiiveeritud", + "Couldn't establish a federated share." : "Liitjagamist ei õnnestunud luua", + "Couldn't establish a federated share, maybe the password was wrong." : "Liitjagamist ei õnnestunud luua, ehk oli parool vale.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Liitjagamise päring edastatud, sulle saadetakse kutse. Kontrolli oma teateid.", + "The mountpoint name contains invalid characters." : "Ühenduspunkti nimes on vigaseid märke.", + "Not allowed to create a federated share with the owner." : "Liitjagamise loomine omanikuga ei ole lubatud.", + "Invalid or untrusted SSL certificate" : "Vigane või tundmatu SSL sertifikaat", + "Could not authenticate to remote share, password might be wrong" : "Ei õnnestunud kagujagamist autentida, ehk on parool vale", + "Storage not valid" : "Andmehoidla pole korrektne", + "Federated share added" : "Liitjagamine lisatud", + "Couldn't add remote share" : "Ei suutnud lisada kaugjagamist", "Sharing %s failed, because this item is already shared with %s" : "%s jagamine ebaõnnestus, kuna see üksus on juba jagatud %s", + "Not allowed to create a federated share with the same user" : "Liitjagamise loomine sama kasutajaga ei ole lubatud.", + "File is already shared with %s" : "Fail on juba jagatud kasutajaga %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "%s jagamine ebaõnnestus, ei suutnud %s leida, ehk ei ole server kättesaadav või kasutab ise allkirjastatud sertifikaati.", + "Could not find share" : "Jagamist ei leitud", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Sa said kaugjagatud faili \"%3$s\" kasutajalt %1$s (%2$s nimel)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Sa said kaugjagatud faili {share} kasjutajalt {user} ({behalf} nimel)", + "You received \"%3$s\" as a remote share from %1$s" : "Sa said kaugjagatud faili \"%3$s\" kasutajalt %1$s", + "You received {share} as a remote share from {user}" : "Sa said kaugjagatud faili {file} kasutajalt {user}", "Accept" : "Nõustu", - "Decline" : "Lükka tagasi", + "Decline" : "Keeldu", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Jaga minuga läbi minu #Nextcloudi liitpilve ID, vaata %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Jaga minuga läbi minu #Nextcloudi liitpilve ID", + "Sharing" : "Jagamine", + "Federated Cloud Sharing" : "Jagamine liitpilves", "Open documentation" : "Ava dokumentatsioon", + "Adjust how people can share between servers." : "Seadista kuidas inimesed saavad serverite vahel jagada.", "Allow users on this server to send shares to other servers" : "Luba selle serveri kasutajatel saata faile teistesse serveritesse", "Allow users on this server to receive shares from other servers" : "Luba selle serveri kasutajatel võtta vastu jagamisi teistest serveritest", - "Share it:" : "Jaga seda:", + "Search global and public address book for users" : "Otsi kasutajaid globaalsest ja avalikust aadressiraamatust", + "Allow users to publish their data to a global and public address book" : "Luba kasutajatel avaldada oma andmeid globaalses ja avalikus aadressiraamatus", + "Federated Cloud" : "Liitpilv", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "Sa võid jagada kõigiga kes kasutab Nextcloudi, ownCloudi või Pydio't. Lihtsalt siseta jagamise dialoogi nende liitpilve ID. See näeb välja nagu person@cloud.example.com", + "Your Federated Cloud ID:" : "Sinu liitpilve ID:", + "Share it so your friends can share files with you:" : "Jaga seda, et su sõbrad saaksid sinuga faile jagada:", "Add to your website" : "Lisa oma veebisaidile", "Share with me via Nextcloud" : "Jaga minuga läbi Nextclouddiga", - "HTML Code:" : "HTML kood:" + "HTML Code:" : "HTML kood:", + "Search global and public address book for users and let local users publish their data" : "Otsi kasutajaid globaalsest ja avalikust aadressiraamatust ja luba kohalikel kasutajatel avaldada oma andmeid", + "Share it:" : "Jaga seda:" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/apps/federation/l10n/et_EE.js b/apps/federation/l10n/et_EE.js index bdad264db7dfb..e0d93d85bb4fa 100644 --- a/apps/federation/l10n/et_EE.js +++ b/apps/federation/l10n/et_EE.js @@ -1,7 +1,16 @@ OC.L10N.register( "federation", { - "No ownCloud server found" : "ownCloudi serverit ei leitud", - "Could not add server" : "Serveri lisamine ebaõnnestus" + "Added to the list of trusted servers" : "Usaldatud serverite nimekirja lisatud", + "Server is already in the list of trusted servers." : "Server on juba usaldatud serverite nimekirjas.", + "No server to federate with found" : "Serverit millega liituda ei leitud", + "Could not add server" : "Serveri lisamine ebaõnnestus", + "Trusted servers" : "Usaldatud serverid", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Liitumine lubab sul ühenduse luua teiste usaldusväärsete serveritega, et kasutajaid jagada. Näiteks saab seda rakendada liitunud serverite väliste kasutajanimede automaatseks täitmiseks.", + "Add server automatically once a federated share was created successfully" : "Lisa server automaatselt niipea kui liitjagamine õnnestus", + "+ Add trusted server" : "+ Lisa usaldatud server", + "Trusted server" : "Usaldatud server", + "Add" : "Lisa", + "Federation" : "Liit" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/federation/l10n/et_EE.json b/apps/federation/l10n/et_EE.json index 9a5a8881c9bee..7e5912b1133f2 100644 --- a/apps/federation/l10n/et_EE.json +++ b/apps/federation/l10n/et_EE.json @@ -1,5 +1,14 @@ { "translations": { - "No ownCloud server found" : "ownCloudi serverit ei leitud", - "Could not add server" : "Serveri lisamine ebaõnnestus" + "Added to the list of trusted servers" : "Usaldatud serverite nimekirja lisatud", + "Server is already in the list of trusted servers." : "Server on juba usaldatud serverite nimekirjas.", + "No server to federate with found" : "Serverit millega liituda ei leitud", + "Could not add server" : "Serveri lisamine ebaõnnestus", + "Trusted servers" : "Usaldatud serverid", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "Liitumine lubab sul ühenduse luua teiste usaldusväärsete serveritega, et kasutajaid jagada. Näiteks saab seda rakendada liitunud serverite väliste kasutajanimede automaatseks täitmiseks.", + "Add server automatically once a federated share was created successfully" : "Lisa server automaatselt niipea kui liitjagamine õnnestus", + "+ Add trusted server" : "+ Lisa usaldatud server", + "Trusted server" : "Usaldatud server", + "Add" : "Lisa", + "Federation" : "Liit" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/apps/files/l10n/et_EE.js b/apps/files/l10n/et_EE.js index 8bb56696fc179..e8b8e55848ed1 100644 --- a/apps/files/l10n/et_EE.js +++ b/apps/files/l10n/et_EE.js @@ -20,6 +20,7 @@ OC.L10N.register( "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{loadedSize} ({bitrate})", "Target folder does not exist any more" : "Sihtkataloogi pole enam olemas", + "Error when assembling chunks, status code {status}" : "Tükkide kokkupanemise viga, staatus kood {status}", "Actions" : "Tegevused", "Download" : "Lae alla", "Rename" : "Nimeta ümber", @@ -40,6 +41,8 @@ OC.L10N.register( "Could not move \"{file}\"" : "\"{file}\" liigutamine ebaõnnestus", "Could not copy \"{file}\", target exists" : "\"{file}\" kopeerimine ebaõnnestus, sihtfail on juba olemas", "Could not copy \"{file}\"" : "\"{file}\" kopeerimine ebaõnnestus", + "Copied {origin} inside {destination}" : "Kopeeris {origin} {destination} sisse", + "Copied {origin} and {nbfiles} other files inside {destination}" : "Kopeeris {origin} ja {nbfiles} teist faili {destination} sisse", "{newName} already exists" : "{newName} on juba olemas", "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" ümbernimetamine ebaõnnestus, seda pole enam olemas", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{targetName}\" on juba \"{dir}\" kaustas kasutusel. Palun valige teine nimi.", @@ -76,6 +79,7 @@ OC.L10N.register( "Favorite" : "Lemmik", "New folder" : "Uus kaust", "Upload file" : "Lae fail üles", + "Not favorited" : "Lemmikuks lisamata", "Remove from favorites" : "Eemalda lemmikutest", "Add to favorites" : "Lisa lemmikutesse", "An error occurred while trying to update the tags" : "Siltide uuendamisel tekkis tõrge", diff --git a/apps/files/l10n/et_EE.json b/apps/files/l10n/et_EE.json index 0b45f837a0ee1..7d8d47e3b9519 100644 --- a/apps/files/l10n/et_EE.json +++ b/apps/files/l10n/et_EE.json @@ -18,6 +18,7 @@ "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize}/{loadedSize} ({bitrate})", "Target folder does not exist any more" : "Sihtkataloogi pole enam olemas", + "Error when assembling chunks, status code {status}" : "Tükkide kokkupanemise viga, staatus kood {status}", "Actions" : "Tegevused", "Download" : "Lae alla", "Rename" : "Nimeta ümber", @@ -38,6 +39,8 @@ "Could not move \"{file}\"" : "\"{file}\" liigutamine ebaõnnestus", "Could not copy \"{file}\", target exists" : "\"{file}\" kopeerimine ebaõnnestus, sihtfail on juba olemas", "Could not copy \"{file}\"" : "\"{file}\" kopeerimine ebaõnnestus", + "Copied {origin} inside {destination}" : "Kopeeris {origin} {destination} sisse", + "Copied {origin} and {nbfiles} other files inside {destination}" : "Kopeeris {origin} ja {nbfiles} teist faili {destination} sisse", "{newName} already exists" : "{newName} on juba olemas", "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" ümbernimetamine ebaõnnestus, seda pole enam olemas", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "Nimi \"{targetName}\" on juba \"{dir}\" kaustas kasutusel. Palun valige teine nimi.", @@ -74,6 +77,7 @@ "Favorite" : "Lemmik", "New folder" : "Uus kaust", "Upload file" : "Lae fail üles", + "Not favorited" : "Lemmikuks lisamata", "Remove from favorites" : "Eemalda lemmikutest", "Add to favorites" : "Lisa lemmikutesse", "An error occurred while trying to update the tags" : "Siltide uuendamisel tekkis tõrge", diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js index 05d9517f0c2a0..404f481c56149 100644 --- a/apps/files_sharing/l10n/et_EE.js +++ b/apps/files_sharing/l10n/et_EE.js @@ -1,11 +1,6 @@ OC.L10N.register( "files_sharing", { - "Server to server sharing is not enabled on this server" : "Serverist serverisse jagamine pole antud serveris lubatud", - "The mountpoint name contains invalid characters." : "Ühenduspunkti nimes on vigaseid märke.", - "Invalid or untrusted SSL certificate" : "Vigane või tundmatu SSL sertifikaat", - "Storage not valid" : "Andmehoidla pole korrektne", - "Couldn't add remote share" : "Ei suutnud lisada kaugjagamist", "Shared with you" : "Sinuga jagatud", "Shared with others" : "Teistega jagatud", "Shared by link" : "Jagatud lingiga", @@ -15,43 +10,106 @@ OC.L10N.register( "Files and folders you share will show up here" : "Siin kuvatakse faile ja kaustasid, mida sa oled teistega jaganud", "No shared links" : "Jagatud linke pole", "Files and folders you share by link will show up here" : "Siin kuvatakse faile ja kaustasid, mida sa jagad lingiga", - "Do you want to add the remote share {name} from {owner}@{remote}?" : "Soovid lisata kaugjagamise {name} asukohast {owner}@{remote}?", - "Remote share" : "Kaugjagamine", - "Remote share password" : "Kaugjagamise parool", - "Cancel" : "Loobu", - "Add remote share" : "Lisa kaugjagamine", "You can upload into this folder" : "Sa saad sellesse kausta faile üles laadida", - "No ownCloud installation (7 or higher) found at {remote}" : "Saidilt {remote} ei leitud ownCloudi (7 või uuem) ", - "Invalid ownCloud url" : "Vigane ownCloud url", + "No compatible server found at {remote}" : "Aadressil {remote} ei leitud ühilduvat serverit", + "Invalid server URL" : "Vigane serveri URL", + "Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus", + "Share" : "Jaga", + "No expiration date set" : "Aegumise kuupäeva pole määratud", "Shared by" : "Jagas", "Sharing" : "Jagamine", - "A file or folder has been shared" : "Fail või kataloog on jagatud", - "You shared %1$s with %2$s" : "Jagasid %1$s %2$s kasutajaga", - "You shared %1$s with group %2$s" : "Jagasid %1$s %2$s grupiga", - "You shared %1$s via link" : "Jagasid %1$s lingiga", - "%2$s shared %1$s with you" : "%2$s jagas sinuga %1$s", + "File shares" : "Jagatud failid", "Downloaded via public link" : "Alla laetud avalikult lingilt", - "Shared with %2$s" : "Jagatud kasutajaga %2$s", - "Shared with group %2$s" : "Jagatud grupiga %2$s", - "Shared via public link" : "Jagatud avaliku lingiga", + "Downloaded by {email}" : "Alla laetud {email} poolt", + "{file} downloaded via public link" : "{file} laeti alla avaliku lingi kaudu", + "{email} downloaded {file}" : "{email} laadis {file} alla", + "Shared with group {group}" : "Jagatud grupiga {group}", + "Removed share for group {group}" : "Eemaldas jagamise grupiga {group}", + "{actor} shared with group {group}" : "{actor} jagas grupiga {group}", + "{actor} removed share for group {group}" : "{actor} eemaldas jagamise grupiga {group}", + "You shared {file} with group {group}" : "Sa jagasid faili {file} grupiga {group}", + "You removed group {group} from {file}" : "Sa eemaldasid grupi {group} faili {file} jagamisest", + "{actor} shared {file} with group {group}" : "{actor} jagas faili {file} grupiga {group}", + "{actor} removed group {group} from {file}" : "{actor} eemaldas grupi {group} faili {file} jagamisest", + "Shared as public link" : "Jaga avaliku lingina", "Removed public link" : "Avalik link on eemaldatud", "Public link expired" : "Avalik link aegus", - "Shares" : "Jagamised", + "{actor} shared as public link" : "{actor} jagas avaliku lingina", + "{actor} removed public link" : "{actor} eemaldas avaliku lingi", + "Public link of {actor} expired" : "{actor} avalik link aegus", + "You shared {file} as public link" : "Sa jagasid {file} avaliku lingina", + "You removed public link for {file}" : "Sa eemaldasid {file} avaliku lingi", + "Public link expired for {file}" : "{file} avalik link aegus", + "{actor} shared {file} as public link" : "{actor} jagas {file} avaliku lingina", + "{actor} removed public link for {file}" : "{actor} eemaldas {file} avaliku lingi", + "Public link of {actor} for {file} expired" : " {actor} faili {file} avalik link aegus", + "{user} accepted the remote share" : "{user} aksepteeris kaugjagamise", + "{user} declined the remote share" : "{user} keeldus kaugjagamisest", + "You received a new remote share {file} from {user}" : "Sa said uue kaugjagatud faili {file} kasutajalt {user}", + "{user} accepted the remote share of {file}" : "{user} aksepteeris faili {file} kaugjagamise", + "{user} declined the remote share of {file}" : "{user} keeldus faili {file} kaugjagamisest", + "{user} unshared {file} from you" : "{user} lõpetas sinuga faili {file} jagamise", + "Shared with {user}" : "Jagatud kasutajale {user}", + "Removed share for {user}" : "Eemaldas jagamise kasutajaga {user}", + "{actor} shared with {user}" : "{actor} jagas kasutajaga {user}", + "{actor} removed share for {user}" : "{actor} eemaldas jagamise kasutajaga {user}", + "Shared by {actor}" : "Jagatud kasutajalt {actor}", + "{actor} removed share" : "{actor} eemaldas jagamise", + "You shared {file} with {user}" : "Sa jagasid {file} kasutajaga {user}", + "You removed {user} from {file}" : "Sa eemaldasid faili {file} jagamise kasutajaga {user} ", + "{actor} shared {file} with {user}" : "{actor} jagas {file} kasutajaga {user}", + "{actor} removed {user} from {file}" : "{actor} eemaldas {user} jagamise faililt {file}", + "{actor} shared {file} with you" : "{actor} jagas singuga {file}", + "{actor} removed you from {file}" : "{actor} eemaldas sind {file} jagamisest", + "A file or folder shared by mail or by public link was downloaded" : "Fail või kaust mis on jagatud e-posti või avaliku lingiga laeti alla", + "A file or folder was shared from another server" : "Fail või kaust jagati teisest serverist", + "A file or folder has been shared" : "Fail või kataloog on jagatud", + "Wrong share ID, share doesn't exist" : "Vale jagamise ID, sellist jagamist ei eksisteeri", + "could not delete share" : "ei saanud jagamist eemaldada", + "Could not delete share" : "Ei saanud jagamist eemaldada", + "Please specify a file or folder path" : "Palun määra faili või kausta rada", + "Wrong path, file/folder doesn't exist" : "Vale rada, faili/kausta ei leitud", + "Could not create share" : "Ei saanud jagamist luua", + "invalid permissions" : "valed õigused", + "Please specify a valid user" : "Palun määra kehtiv kasutaja", + "Group sharing is disabled by the administrator" : "Grupiga jagamine on administraatori poolt keelatud", + "Please specify a valid group" : "Palun määra kehtiv grupp", + "Public link sharing is disabled by the administrator" : "Avaliku lingiga jagamine on administraatori poolt keelatud", + "Public upload disabled by the administrator" : "Avalik üleslaadimine on administraatori poolt keelatud", + "Public upload is only possible for publicly shared folders" : "Avalik üleslaadminie on võimalik ainult avalikult jagatud kaustades", + "Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD", + "Sharing %s failed because the back end does not allow shares from type %s" : "%s jagamine ebaõnnestus sest server ei luba %s tüüpi jagamisi", + "You cannot share to a Circle if the app is not enabled" : "Sa ei saa jagada Ringi kui see rakendus pole lubatud", + "Please specify a valid circle" : "Palun määra kehtiv ring", + "Unknown share type" : "Tundmatu jagamise tüüp", + "Not a directory" : "Ei ole kaust", + "Could not lock path" : "Ei saanud rada lukustada", + "Wrong or no update parameter given" : "Antud vale või aegunud parameeter", + "Can't change permissions for public share links" : "Avalikult jagatud linkide õigusi muuta ei saa", + "Cannot increase permissions" : "Ei saa õigusi suurendada", + "Share API is disabled" : "Jagamise API on keelatud", "This share is password-protected" : "See jagamine on parooliga kaitstud", "The password is wrong. Try again." : "Parool on vale. Proovi uuesti.", "Password" : "Parool", "No entries found in this folder" : "Selles kaustas ei leitud kirjeid", "Name" : "Nimi", "Share time" : "Jagamise aeg", + "Expiration date" : "Aegumise kuupäev", "Sorry, this link doesn’t seem to work anymore." : "Vabandust, see link ei tundu enam toimivat.", "Reasons might be:" : "Põhjused võivad olla:", "the item was removed" : "üksus on eemaldatud", "the link expired" : "link on aegunud", "sharing is disabled" : "jagamine on peatatud", "For more info, please ask the person who sent this link." : "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole.", - "Add to your ownCloud" : "Lisa oma ownCloudi", + "shared by %s" : "jagas %s", "Download" : "Lae alla", + "Direct link" : "Otsene link", + "Add to your Nextcloud" : "Lisa oma Nextcloudi", "Download %s" : "Laadi alla %s", - "Direct link" : "Otsene link" + "Upload files to %s" : "Laadi failid %s", + "Select or drop files" : "Vali või lohista failid", + "Uploading files…" : "Failide üleslaadimine...", + "Uploaded files:" : "Üleslaetud failid:", + "%s is publicly shared" : "%s on avalikult jagatud" }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json index b782953c83e3b..89086670a74fe 100644 --- a/apps/files_sharing/l10n/et_EE.json +++ b/apps/files_sharing/l10n/et_EE.json @@ -1,9 +1,4 @@ { "translations": { - "Server to server sharing is not enabled on this server" : "Serverist serverisse jagamine pole antud serveris lubatud", - "The mountpoint name contains invalid characters." : "Ühenduspunkti nimes on vigaseid märke.", - "Invalid or untrusted SSL certificate" : "Vigane või tundmatu SSL sertifikaat", - "Storage not valid" : "Andmehoidla pole korrektne", - "Couldn't add remote share" : "Ei suutnud lisada kaugjagamist", "Shared with you" : "Sinuga jagatud", "Shared with others" : "Teistega jagatud", "Shared by link" : "Jagatud lingiga", @@ -13,43 +8,106 @@ "Files and folders you share will show up here" : "Siin kuvatakse faile ja kaustasid, mida sa oled teistega jaganud", "No shared links" : "Jagatud linke pole", "Files and folders you share by link will show up here" : "Siin kuvatakse faile ja kaustasid, mida sa jagad lingiga", - "Do you want to add the remote share {name} from {owner}@{remote}?" : "Soovid lisata kaugjagamise {name} asukohast {owner}@{remote}?", - "Remote share" : "Kaugjagamine", - "Remote share password" : "Kaugjagamise parool", - "Cancel" : "Loobu", - "Add remote share" : "Lisa kaugjagamine", "You can upload into this folder" : "Sa saad sellesse kausta faile üles laadida", - "No ownCloud installation (7 or higher) found at {remote}" : "Saidilt {remote} ei leitud ownCloudi (7 või uuem) ", - "Invalid ownCloud url" : "Vigane ownCloud url", + "No compatible server found at {remote}" : "Aadressil {remote} ei leitud ühilduvat serverit", + "Invalid server URL" : "Vigane serveri URL", + "Failed to add the public link to your Nextcloud" : "Avaliku lingi lisamine sinu Nextcloudi ebaõnnestus", + "Share" : "Jaga", + "No expiration date set" : "Aegumise kuupäeva pole määratud", "Shared by" : "Jagas", "Sharing" : "Jagamine", - "A file or folder has been shared" : "Fail või kataloog on jagatud", - "You shared %1$s with %2$s" : "Jagasid %1$s %2$s kasutajaga", - "You shared %1$s with group %2$s" : "Jagasid %1$s %2$s grupiga", - "You shared %1$s via link" : "Jagasid %1$s lingiga", - "%2$s shared %1$s with you" : "%2$s jagas sinuga %1$s", + "File shares" : "Jagatud failid", "Downloaded via public link" : "Alla laetud avalikult lingilt", - "Shared with %2$s" : "Jagatud kasutajaga %2$s", - "Shared with group %2$s" : "Jagatud grupiga %2$s", - "Shared via public link" : "Jagatud avaliku lingiga", + "Downloaded by {email}" : "Alla laetud {email} poolt", + "{file} downloaded via public link" : "{file} laeti alla avaliku lingi kaudu", + "{email} downloaded {file}" : "{email} laadis {file} alla", + "Shared with group {group}" : "Jagatud grupiga {group}", + "Removed share for group {group}" : "Eemaldas jagamise grupiga {group}", + "{actor} shared with group {group}" : "{actor} jagas grupiga {group}", + "{actor} removed share for group {group}" : "{actor} eemaldas jagamise grupiga {group}", + "You shared {file} with group {group}" : "Sa jagasid faili {file} grupiga {group}", + "You removed group {group} from {file}" : "Sa eemaldasid grupi {group} faili {file} jagamisest", + "{actor} shared {file} with group {group}" : "{actor} jagas faili {file} grupiga {group}", + "{actor} removed group {group} from {file}" : "{actor} eemaldas grupi {group} faili {file} jagamisest", + "Shared as public link" : "Jaga avaliku lingina", "Removed public link" : "Avalik link on eemaldatud", "Public link expired" : "Avalik link aegus", - "Shares" : "Jagamised", + "{actor} shared as public link" : "{actor} jagas avaliku lingina", + "{actor} removed public link" : "{actor} eemaldas avaliku lingi", + "Public link of {actor} expired" : "{actor} avalik link aegus", + "You shared {file} as public link" : "Sa jagasid {file} avaliku lingina", + "You removed public link for {file}" : "Sa eemaldasid {file} avaliku lingi", + "Public link expired for {file}" : "{file} avalik link aegus", + "{actor} shared {file} as public link" : "{actor} jagas {file} avaliku lingina", + "{actor} removed public link for {file}" : "{actor} eemaldas {file} avaliku lingi", + "Public link of {actor} for {file} expired" : " {actor} faili {file} avalik link aegus", + "{user} accepted the remote share" : "{user} aksepteeris kaugjagamise", + "{user} declined the remote share" : "{user} keeldus kaugjagamisest", + "You received a new remote share {file} from {user}" : "Sa said uue kaugjagatud faili {file} kasutajalt {user}", + "{user} accepted the remote share of {file}" : "{user} aksepteeris faili {file} kaugjagamise", + "{user} declined the remote share of {file}" : "{user} keeldus faili {file} kaugjagamisest", + "{user} unshared {file} from you" : "{user} lõpetas sinuga faili {file} jagamise", + "Shared with {user}" : "Jagatud kasutajale {user}", + "Removed share for {user}" : "Eemaldas jagamise kasutajaga {user}", + "{actor} shared with {user}" : "{actor} jagas kasutajaga {user}", + "{actor} removed share for {user}" : "{actor} eemaldas jagamise kasutajaga {user}", + "Shared by {actor}" : "Jagatud kasutajalt {actor}", + "{actor} removed share" : "{actor} eemaldas jagamise", + "You shared {file} with {user}" : "Sa jagasid {file} kasutajaga {user}", + "You removed {user} from {file}" : "Sa eemaldasid faili {file} jagamise kasutajaga {user} ", + "{actor} shared {file} with {user}" : "{actor} jagas {file} kasutajaga {user}", + "{actor} removed {user} from {file}" : "{actor} eemaldas {user} jagamise faililt {file}", + "{actor} shared {file} with you" : "{actor} jagas singuga {file}", + "{actor} removed you from {file}" : "{actor} eemaldas sind {file} jagamisest", + "A file or folder shared by mail or by public link was downloaded" : "Fail või kaust mis on jagatud e-posti või avaliku lingiga laeti alla", + "A file or folder was shared from another server" : "Fail või kaust jagati teisest serverist", + "A file or folder has been shared" : "Fail või kataloog on jagatud", + "Wrong share ID, share doesn't exist" : "Vale jagamise ID, sellist jagamist ei eksisteeri", + "could not delete share" : "ei saanud jagamist eemaldada", + "Could not delete share" : "Ei saanud jagamist eemaldada", + "Please specify a file or folder path" : "Palun määra faili või kausta rada", + "Wrong path, file/folder doesn't exist" : "Vale rada, faili/kausta ei leitud", + "Could not create share" : "Ei saanud jagamist luua", + "invalid permissions" : "valed õigused", + "Please specify a valid user" : "Palun määra kehtiv kasutaja", + "Group sharing is disabled by the administrator" : "Grupiga jagamine on administraatori poolt keelatud", + "Please specify a valid group" : "Palun määra kehtiv grupp", + "Public link sharing is disabled by the administrator" : "Avaliku lingiga jagamine on administraatori poolt keelatud", + "Public upload disabled by the administrator" : "Avalik üleslaadimine on administraatori poolt keelatud", + "Public upload is only possible for publicly shared folders" : "Avalik üleslaadminie on võimalik ainult avalikult jagatud kaustades", + "Invalid date, date format must be YYYY-MM-DD" : "Vigane kuupäev, formaat peab olema YYYY-MM-DD", + "Sharing %s failed because the back end does not allow shares from type %s" : "%s jagamine ebaõnnestus sest server ei luba %s tüüpi jagamisi", + "You cannot share to a Circle if the app is not enabled" : "Sa ei saa jagada Ringi kui see rakendus pole lubatud", + "Please specify a valid circle" : "Palun määra kehtiv ring", + "Unknown share type" : "Tundmatu jagamise tüüp", + "Not a directory" : "Ei ole kaust", + "Could not lock path" : "Ei saanud rada lukustada", + "Wrong or no update parameter given" : "Antud vale või aegunud parameeter", + "Can't change permissions for public share links" : "Avalikult jagatud linkide õigusi muuta ei saa", + "Cannot increase permissions" : "Ei saa õigusi suurendada", + "Share API is disabled" : "Jagamise API on keelatud", "This share is password-protected" : "See jagamine on parooliga kaitstud", "The password is wrong. Try again." : "Parool on vale. Proovi uuesti.", "Password" : "Parool", "No entries found in this folder" : "Selles kaustas ei leitud kirjeid", "Name" : "Nimi", "Share time" : "Jagamise aeg", + "Expiration date" : "Aegumise kuupäev", "Sorry, this link doesn’t seem to work anymore." : "Vabandust, see link ei tundu enam toimivat.", "Reasons might be:" : "Põhjused võivad olla:", "the item was removed" : "üksus on eemaldatud", "the link expired" : "link on aegunud", "sharing is disabled" : "jagamine on peatatud", "For more info, please ask the person who sent this link." : "Täpsema info saamiseks palun pöördu lingi saatnud isiku poole.", - "Add to your ownCloud" : "Lisa oma ownCloudi", + "shared by %s" : "jagas %s", "Download" : "Lae alla", + "Direct link" : "Otsene link", + "Add to your Nextcloud" : "Lisa oma Nextcloudi", "Download %s" : "Laadi alla %s", - "Direct link" : "Otsene link" + "Upload files to %s" : "Laadi failid %s", + "Select or drop files" : "Vali või lohista failid", + "Uploading files…" : "Failide üleslaadimine...", + "Uploaded files:" : "Üleslaetud failid:", + "%s is publicly shared" : "%s on avalikult jagatud" },"pluralForm" :"nplurals=2; plural=(n != 1);" } \ No newline at end of file diff --git a/apps/systemtags/l10n/et_EE.js b/apps/systemtags/l10n/et_EE.js index a7af5717495e6..d2af006af9d58 100644 --- a/apps/systemtags/l10n/et_EE.js +++ b/apps/systemtags/l10n/et_EE.js @@ -26,9 +26,17 @@ OC.L10N.register( "You deleted system tag {systemtag}" : "Sa kustutasid süsteemi sildi {systemtag}", "%1$s deleted system tag %2$s" : "%1$s kustutas süsteemi sildi %2$s", "{actor} deleted system tag {systemtag}" : "{actor} kustutas süsteemi sildi {systemtag}", + "You updated system tag %2$s to %1$s" : "Sa uuendasid süsteemi sildi %2$s => %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Sa uuendasid süsteemi sildi {oldsystemtag} => {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s uuendas süsteemi sildi %3$s => %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} uuendas süsteemi sildi {oldsystemtag} => {newsystemtag}", + "You added system tag %2$s to %1$s" : "Sa lisasid süsteemi sildi %2$s => %1$s", "You added system tag {systemtag} to {file}" : "Sa lisasid süsteemi sildi {systemtag} failile {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s lisas süsteemi sildi %3$s => %2$s", "{actor} added system tag {systemtag} to {file}" : "{actor} lisas süsteemi sildi {systemtag} failile {file}", + "You removed system tag %2$s from %1$s" : "Sa eemaldasid süsteemi sildi %2$s - %1$s", "You removed system tag {systemtag} from {file}" : "Sa eemaldasid süsteemi sildi {systemtag} {file} faililt", + "%1$s removed system tag %3$s from %2$s" : "%1$s eemaldas süsteemi sildi %3$s - %2$s", "{actor} removed system tag {systemtag} from {file}" : "{actor} eemaldas süsteemi sildi {systemtag} {file} faililt", "%s (restricted)" : "%s (piiratud)", "%s (invisible)" : "%s (nähtamatu)", diff --git a/apps/systemtags/l10n/et_EE.json b/apps/systemtags/l10n/et_EE.json index 6afc7567dfc08..fe327cfbddc06 100644 --- a/apps/systemtags/l10n/et_EE.json +++ b/apps/systemtags/l10n/et_EE.json @@ -24,9 +24,17 @@ "You deleted system tag {systemtag}" : "Sa kustutasid süsteemi sildi {systemtag}", "%1$s deleted system tag %2$s" : "%1$s kustutas süsteemi sildi %2$s", "{actor} deleted system tag {systemtag}" : "{actor} kustutas süsteemi sildi {systemtag}", + "You updated system tag %2$s to %1$s" : "Sa uuendasid süsteemi sildi %2$s => %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Sa uuendasid süsteemi sildi {oldsystemtag} => {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s uuendas süsteemi sildi %3$s => %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} uuendas süsteemi sildi {oldsystemtag} => {newsystemtag}", + "You added system tag %2$s to %1$s" : "Sa lisasid süsteemi sildi %2$s => %1$s", "You added system tag {systemtag} to {file}" : "Sa lisasid süsteemi sildi {systemtag} failile {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s lisas süsteemi sildi %3$s => %2$s", "{actor} added system tag {systemtag} to {file}" : "{actor} lisas süsteemi sildi {systemtag} failile {file}", + "You removed system tag %2$s from %1$s" : "Sa eemaldasid süsteemi sildi %2$s - %1$s", "You removed system tag {systemtag} from {file}" : "Sa eemaldasid süsteemi sildi {systemtag} {file} faililt", + "%1$s removed system tag %3$s from %2$s" : "%1$s eemaldas süsteemi sildi %3$s - %2$s", "{actor} removed system tag {systemtag} from {file}" : "{actor} eemaldas süsteemi sildi {systemtag} {file} faililt", "%s (restricted)" : "%s (piiratud)", "%s (invisible)" : "%s (nähtamatu)", diff --git a/apps/workflowengine/l10n/et_EE.js b/apps/workflowengine/l10n/et_EE.js new file mode 100644 index 0000000000000..a35458ac2e1de --- /dev/null +++ b/apps/workflowengine/l10n/et_EE.js @@ -0,0 +1,68 @@ +OC.L10N.register( + "workflowengine", + { + "Saved" : "Salvestatud", + "Saving failed:" : "Salvestamine ebaõnnestus:", + "File MIME type" : "Faili MIME tüüp", + "is" : "on", + "is not" : "ei ole", + "matches" : "kattub", + "does not match" : "ei kattu", + "Example: {placeholder}" : "Näide: {placeholder}", + "File size (upload)" : "Faili suurus (üleslaadimine)", + "less" : "väiksem", + "less or equals" : "väiksem või võrdne", + "greater or equals" : "suurem või võrdne", + "greater" : "suurem", + "File system tag" : "Faili süsteemi silt", + "is tagged with" : "on sildiga", + "is not tagged with" : "ei ole sildiga", + "Select tag…" : "Vali silt...", + "Request remote address" : "Päringu kaugaadress", + "matches IPv4" : "kattub IPv4 aadressiga", + "does not match IPv4" : "Ei kattu IPv4 aadressiga", + "matches IPv6" : "kattub IPv6 aadressiga", + "does not match IPv6" : "Ei kattu IPv6 aadressiga", + "Request time" : "Päringu aeg", + "between" : "vahemikus", + "not between" : "ei ole vahemikus", + "Start" : "Algus", + "End" : "Lõpp", + "Select timezone…" : "Vali ajavöönd", + "Request URL" : "Päringu URL", + "Predefined URLs" : "Eelmääratletud URL-id", + "Files WebDAV" : "WebDAV failid", + "Request user agent" : "Päringu \"user agent\"", + "Sync clients" : "Kliendiprogrammid", + "Android client" : "Android klient", + "iOS client" : "iOS klient", + "Desktop client" : "Töölaua klient", + "User group membership" : "Kasutajagrupi liige", + "is member of" : "on liige", + "is not member of" : "ei ole liige", + "The given regular expression is invalid" : "Antud regulaaravaldis on vigane", + "The given file size is invalid" : "Antud faili suurus on vigane", + "The given tag id is invalid" : "Antud sildi ID on vigane", + "The given IP range is invalid" : "Antud IP vahemik on vigane", + "The given IP range is not valid for IPv4" : "Antud IP vahemik ei kehti IPv4 kohta", + "The given IP range is not valid for IPv6" : "Antud IP vahemik ei kehti IPv6 kohta", + "The given time span is invalid" : "Antud ajavahemik on vigane", + "The given start time is invalid" : "Antud algusaeg on vigane", + "The given end time is invalid" : "Antud lõppaeg on vigane", + "The given group does not exist" : "Antud gruppi ei leitud", + "Operation #%s does not exist" : "Tegevus # %s ei leitud", + "Operation %s does not exist" : "Tegevust %s ei leitud", + "Operation %s is invalid" : "Tegevus %s on vigane", + "Workflow" : "Töövoog", + "Open documentation" : "Ava dokumentatsioon", + "Add rule group" : "Lisa reegligrupp", + "Short rule description" : "Reegli lühikirjeldus", + "Add rule" : "Lisa reegel", + "Reset" : "Lähtesta", + "Save" : "Salvesta", + "Saving…" : "Salvestamine...", + "Loading…" : "Laadimine...", + "Successfully saved" : "Edukalt salvestatud", + "File mime type" : "Faili MIME tüüp" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/et_EE.json b/apps/workflowengine/l10n/et_EE.json new file mode 100644 index 0000000000000..65067361a14be --- /dev/null +++ b/apps/workflowengine/l10n/et_EE.json @@ -0,0 +1,66 @@ +{ "translations": { + "Saved" : "Salvestatud", + "Saving failed:" : "Salvestamine ebaõnnestus:", + "File MIME type" : "Faili MIME tüüp", + "is" : "on", + "is not" : "ei ole", + "matches" : "kattub", + "does not match" : "ei kattu", + "Example: {placeholder}" : "Näide: {placeholder}", + "File size (upload)" : "Faili suurus (üleslaadimine)", + "less" : "väiksem", + "less or equals" : "väiksem või võrdne", + "greater or equals" : "suurem või võrdne", + "greater" : "suurem", + "File system tag" : "Faili süsteemi silt", + "is tagged with" : "on sildiga", + "is not tagged with" : "ei ole sildiga", + "Select tag…" : "Vali silt...", + "Request remote address" : "Päringu kaugaadress", + "matches IPv4" : "kattub IPv4 aadressiga", + "does not match IPv4" : "Ei kattu IPv4 aadressiga", + "matches IPv6" : "kattub IPv6 aadressiga", + "does not match IPv6" : "Ei kattu IPv6 aadressiga", + "Request time" : "Päringu aeg", + "between" : "vahemikus", + "not between" : "ei ole vahemikus", + "Start" : "Algus", + "End" : "Lõpp", + "Select timezone…" : "Vali ajavöönd", + "Request URL" : "Päringu URL", + "Predefined URLs" : "Eelmääratletud URL-id", + "Files WebDAV" : "WebDAV failid", + "Request user agent" : "Päringu \"user agent\"", + "Sync clients" : "Kliendiprogrammid", + "Android client" : "Android klient", + "iOS client" : "iOS klient", + "Desktop client" : "Töölaua klient", + "User group membership" : "Kasutajagrupi liige", + "is member of" : "on liige", + "is not member of" : "ei ole liige", + "The given regular expression is invalid" : "Antud regulaaravaldis on vigane", + "The given file size is invalid" : "Antud faili suurus on vigane", + "The given tag id is invalid" : "Antud sildi ID on vigane", + "The given IP range is invalid" : "Antud IP vahemik on vigane", + "The given IP range is not valid for IPv4" : "Antud IP vahemik ei kehti IPv4 kohta", + "The given IP range is not valid for IPv6" : "Antud IP vahemik ei kehti IPv6 kohta", + "The given time span is invalid" : "Antud ajavahemik on vigane", + "The given start time is invalid" : "Antud algusaeg on vigane", + "The given end time is invalid" : "Antud lõppaeg on vigane", + "The given group does not exist" : "Antud gruppi ei leitud", + "Operation #%s does not exist" : "Tegevus # %s ei leitud", + "Operation %s does not exist" : "Tegevust %s ei leitud", + "Operation %s is invalid" : "Tegevus %s on vigane", + "Workflow" : "Töövoog", + "Open documentation" : "Ava dokumentatsioon", + "Add rule group" : "Lisa reegligrupp", + "Short rule description" : "Reegli lühikirjeldus", + "Add rule" : "Lisa reegel", + "Reset" : "Lähtesta", + "Save" : "Salvesta", + "Saving…" : "Salvestamine...", + "Loading…" : "Laadimine...", + "Successfully saved" : "Edukalt salvestatud", + "File mime type" : "Faili MIME tüüp" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/core/l10n/de.js b/core/l10n/de.js index 52914c84e9fc5..c8fd650d10cc3 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -116,6 +116,7 @@ OC.L10N.register( "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Du verwendest derzeit PHP {version}. Upgrade deine PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald diese Deine Distribution unterstützt.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Die verwendest PHP 5.6. Die aktuelle Version von Nextcloud ist die letzte Version, die PHP 5.6 unterstützt. Es empfiehlt sich die PHP-Version auf 7.0 oder höher zu aktualisieren, um in der Lage zu sein, auf Nextcloud 14 zu aktualisieren.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Die Reverse-Proxy-Header-Konfiguration ist fehlerhaft oder Sie greifen auf Nextcloud über einen vertrauenswürdigen Proxy zu. Ist dies nicht der Fall, dann besteht ein Sicherheitsproblem, das einem Angreifer erlaubt die IP-Adresse, die für Nextcloud sichtbar ist, auszuspähen. Weitere Informationen hierzu finde sich in der Dokumentation.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP-Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Einige Dateien haben die Integritätsprüfung nicht bestanden. Weiterführende Informationen befinden sich in unserer Dokumentation. (Liste der ungültigen Dateien… / Erneut analysieren…)", diff --git a/core/l10n/de.json b/core/l10n/de.json index 90ceaa5c01ca2..7ef64d319f63c 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -114,6 +114,7 @@ "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Du verwendest derzeit PHP {version}. Upgrade deine PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald diese Deine Distribution unterstützt.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Die verwendest PHP 5.6. Die aktuelle Version von Nextcloud ist die letzte Version, die PHP 5.6 unterstützt. Es empfiehlt sich die PHP-Version auf 7.0 oder höher zu aktualisieren, um in der Lage zu sein, auf Nextcloud 14 zu aktualisieren.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Die Reverse-Proxy-Header-Konfiguration ist fehlerhaft oder Sie greifen auf Nextcloud über einen vertrauenswürdigen Proxy zu. Ist dies nicht der Fall, dann besteht ein Sicherheitsproblem, das einem Angreifer erlaubt die IP-Adresse, die für Nextcloud sichtbar ist, auszuspähen. Weitere Informationen hierzu finde sich in der Dokumentation.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP-Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Einige Dateien haben die Integritätsprüfung nicht bestanden. Weiterführende Informationen befinden sich in unserer Dokumentation. (Liste der ungültigen Dateien… / Erneut analysieren…)", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 6e41c395e2a73..869b16ce45293 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -116,6 +116,7 @@ OC.L10N.register( "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Sie verwenden im Moment PHP {version}. Upgraden Sie Ihre PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald Ihre Distribution diese unterstützt.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Sie verwenden PHP 5.6. Die aktuelle Version von Nextcloud ist die letzte Version, die PHP 5.6 unterstützt. Es empfiehlt sich die PHP-Version auf 7.0 oder höher zu aktualisieren, um in der Lage zu sein, auf Nextcloud 14 zu aktualisieren.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Die Reverse-Proxy-Header-Konfiguration ist fehlerhaft oder Sie greifen auf Nextcloud über einen vertrauenswürdigen Proxy zu. Ist dies nicht der Fall, dann besteht ein Sicherheitsproblem, das einem Angreifer erlaubt die IP-Adresse, die für Nextcloud sichtbar ist, auszuspähen. Weitere Informationen hierzu finde sich in der Dokumentation.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Einige Dateien haben die Integritätsprüfung nicht bestanden. Weiterführende Informationen befinden sich in unserer Dokumentation. (Liste der ungültigen Dateien … / Erneut analysieren…)", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index 132b60757ecc1..f7e8ad244bc9e 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -114,6 +114,7 @@ "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP hat keine Leserechte auf /dev/urandom wovon aus Sicherheitsgründen höchst abzuraten ist. Weitere Informationen sind in der Dokumentation zu finden.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Sie verwenden im Moment PHP {version}. Upgraden Sie Ihre PHP-Version, um die Geschwindigkeits- und Sicherheitsupdates zu nutzen, welche von der PHP-Gruppe bereitgestellt werden, sobald Ihre Distribution diese unterstützt.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Sie verwenden PHP 5.6. Die aktuelle Version von Nextcloud ist die letzte Version, die PHP 5.6 unterstützt. Es empfiehlt sich die PHP-Version auf 7.0 oder höher zu aktualisieren, um in der Lage zu sein, auf Nextcloud 14 zu aktualisieren.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Die Reverse-Proxy-Header-Konfiguration ist fehlerhaft oder Sie greifen auf Nextcloud über einen vertrauenswürdigen Proxy zu. Ist dies nicht der Fall, dann besteht ein Sicherheitsproblem, das einem Angreifer erlaubt die IP-Adresse, die für Nextcloud sichtbar ist, auszuspähen. Weitere Informationen hierzu finde sich in der Dokumentation.", "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 memcached wiki about both modules." : "Memcached ist als verteilter Cache konfiguriert, aber das falsche PHP Modul \"memcache\" ist installiert. \\OC\\Memcache\\Memcached unterstützt nur \"memcached\" jedoch nicht \"memcache\". Im memcached wiki nach beiden Modulen suchen.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Einige Dateien haben die Integritätsprüfung nicht bestanden. Weiterführende Informationen befinden sich in unserer Dokumentation. (Liste der ungültigen Dateien … / Erneut analysieren…)", diff --git a/core/l10n/es.js b/core/l10n/es.js index dcad3c0318b75..35e2af9c9cba5 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -116,6 +116,7 @@ OC.L10N.register( "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Nose ha configurado ninguna memoria caché. Para mejorar el rendimiento, por favor, configura memcache, si está disponible. Se puede encontrar más información en la documentación.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom, lo que está fuertemente desaconsejado por razones de seguridad. Se puede encontrar más información en la documentación.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás usando PHP {version}. Actualiza la versión de PHP para aprovecharte de mejoras de rendimiento y seguridad provistas por el PHP Group tan pronto como tu distribución lo soporte.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Estás funcionando con PHP 5.6. Esta versión mayor de Nextcloud es la última que está soportada en PHP 5.6. Se recomienda actualizar la versión de PHP a 7.0+ para poder actualizar a Nextcloud 14.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de cabeceras del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy fiable. Si no, esto es un problema de seguridad que puede permitir que un atacante disfrazar su dirección IP como visible a Nextcloud. Se puede encontrar más información en la documentación.", "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 memcached wiki about both modules." : "Memcached está configurado como caché distribuida, pero el módulo erróneo de PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached solo soporta \"memcached\" y no \"memcache\". Vea la wiki de memcached sobre ambos módulos.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no han pasado la comprobación de integridad. Se puede encontrar más información sobre cómo resolver este problema en la documentación. (Lista de archivos inválidos... / Reescanear)", diff --git a/core/l10n/es.json b/core/l10n/es.json index 2ac56c87d6c11..a5c660a615928 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -114,6 +114,7 @@ "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Nose ha configurado ninguna memoria caché. Para mejorar el rendimiento, por favor, configura memcache, si está disponible. Se puede encontrar más información en la documentación.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP no puede leer /dev/urandom, lo que está fuertemente desaconsejado por razones de seguridad. Se puede encontrar más información en la documentación.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Estás usando PHP {version}. Actualiza la versión de PHP para aprovecharte de mejoras de rendimiento y seguridad provistas por el PHP Group tan pronto como tu distribución lo soporte.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Estás funcionando con PHP 5.6. Esta versión mayor de Nextcloud es la última que está soportada en PHP 5.6. Se recomienda actualizar la versión de PHP a 7.0+ para poder actualizar a Nextcloud 14.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuración de cabeceras del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy fiable. Si no, esto es un problema de seguridad que puede permitir que un atacante disfrazar su dirección IP como visible a Nextcloud. Se puede encontrar más información en la documentación.", "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 memcached wiki about both modules." : "Memcached está configurado como caché distribuida, pero el módulo erróneo de PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached solo soporta \"memcached\" y no \"memcache\". Vea la wiki de memcached sobre ambos módulos.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Algunos archivos no han pasado la comprobación de integridad. Se puede encontrar más información sobre cómo resolver este problema en la documentación. (Lista de archivos inválidos... / Reescanear)", diff --git a/core/l10n/et_EE.js b/core/l10n/et_EE.js index 2df47c8e9d038..2e6ba01779944 100644 --- a/core/l10n/et_EE.js +++ b/core/l10n/et_EE.js @@ -78,7 +78,7 @@ OC.L10N.register( "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Sinu failid on krüpteeritud. Andmete taaastaamine ei ole pärast parooli lähtestaamist enam võimalik.
Kui Sa ei ole kindel mida teha, kontakteeru palun enne jätkamist administraatoriga.
Kas Sa kindlasti soovid jätkata?", "I know what I'm doing" : "Ma tean mida teen", "Password can not be changed. Please contact your administrator." : "Parooli ei saa muuta. Palun kontakteeru oma süsteemihalduriga.", - "Reset password" : "Nulli parool", + "Reset password" : "Lähtesta parool", "Sending email …" : "Saadan kirja ...", "No" : "Ei", "Yes" : "Jah", @@ -157,12 +157,17 @@ OC.L10N.register( "No users or groups found for {search}" : "Otsingu {search} põhjal kasutajaid ega gruppe ei leitud", "No users found for {search}" : "Otsingu {search} põhjal kasutajaid ei leitud", "An error occurred. Please try again" : "Tekkis tõrge. Palun proovi uuesti", - "{sharee} (group)" : "{sharee} (group)", + "{sharee} (group)" : "{sharee} (grupp)", "{sharee} (remote)" : "{sharee} (mujal serveris)", - "{sharee} (email)" : "{sharee} (email)", + "{sharee} (email)" : "{sharee} (e-post)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Jaga", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Jaga teiste inimestega sisestades kasutaja või grupi, liitpilve ID või e-posti aadressi.", + "Share with other people by entering a user or group or a federated cloud ID." : "Jaga teiste inimestega, sisestades kasutaja või grupi või liitpilve ID.", "Share with other people by entering a user or group or an email address." : "Jaga teiste inimestega, sisestades kasutaja, grupi või e-posti aadressi.", "Name or email address..." : "Nimi või e-posti aadress", + "Name or federated cloud ID..." : "Liitpilve nimi või ID...", + "Name, federated cloud ID or email address..." : "Liitpilve nimi, ID või e-posti aadress...", "Name..." : "Nimi...", "Error" : "Viga", "Error removing share" : "Viga jagamise eemaldamisel", @@ -297,6 +302,7 @@ OC.L10N.register( "can change" : "võib muuta", "can delete" : "võib kustutada", "access control" : "ligipääsukontroll", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Jaga inimestega teistes serverites kasutades nende liitpilve ID-d username@example.com/nextcloud", "Share with users or by mail..." : "Jaga kasutajatega või e-postiga ...", "Share with users or remote users..." : "Jaga kasutajatega või eemal olevate kasutajatega ...", "Share with users, remote users or by mail..." : "Jaga kasutajatega, eemal olevate kasutajatega või e-postiga ...", diff --git a/core/l10n/et_EE.json b/core/l10n/et_EE.json index 37b1201eea6d2..af02eac5398ed 100644 --- a/core/l10n/et_EE.json +++ b/core/l10n/et_EE.json @@ -76,7 +76,7 @@ "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Sinu failid on krüpteeritud. Andmete taaastaamine ei ole pärast parooli lähtestaamist enam võimalik.
Kui Sa ei ole kindel mida teha, kontakteeru palun enne jätkamist administraatoriga.
Kas Sa kindlasti soovid jätkata?", "I know what I'm doing" : "Ma tean mida teen", "Password can not be changed. Please contact your administrator." : "Parooli ei saa muuta. Palun kontakteeru oma süsteemihalduriga.", - "Reset password" : "Nulli parool", + "Reset password" : "Lähtesta parool", "Sending email …" : "Saadan kirja ...", "No" : "Ei", "Yes" : "Jah", @@ -155,12 +155,17 @@ "No users or groups found for {search}" : "Otsingu {search} põhjal kasutajaid ega gruppe ei leitud", "No users found for {search}" : "Otsingu {search} põhjal kasutajaid ei leitud", "An error occurred. Please try again" : "Tekkis tõrge. Palun proovi uuesti", - "{sharee} (group)" : "{sharee} (group)", + "{sharee} (group)" : "{sharee} (grupp)", "{sharee} (remote)" : "{sharee} (mujal serveris)", - "{sharee} (email)" : "{sharee} (email)", + "{sharee} (email)" : "{sharee} (e-post)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", "Share" : "Jaga", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Jaga teiste inimestega sisestades kasutaja või grupi, liitpilve ID või e-posti aadressi.", + "Share with other people by entering a user or group or a federated cloud ID." : "Jaga teiste inimestega, sisestades kasutaja või grupi või liitpilve ID.", "Share with other people by entering a user or group or an email address." : "Jaga teiste inimestega, sisestades kasutaja, grupi või e-posti aadressi.", "Name or email address..." : "Nimi või e-posti aadress", + "Name or federated cloud ID..." : "Liitpilve nimi või ID...", + "Name, federated cloud ID or email address..." : "Liitpilve nimi, ID või e-posti aadress...", "Name..." : "Nimi...", "Error" : "Viga", "Error removing share" : "Viga jagamise eemaldamisel", @@ -295,6 +300,7 @@ "can change" : "võib muuta", "can delete" : "võib kustutada", "access control" : "ligipääsukontroll", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Jaga inimestega teistes serverites kasutades nende liitpilve ID-d username@example.com/nextcloud", "Share with users or by mail..." : "Jaga kasutajatega või e-postiga ...", "Share with users or remote users..." : "Jaga kasutajatega või eemal olevate kasutajatega ...", "Share with users, remote users or by mail..." : "Jaga kasutajatega, eemal olevate kasutajatega või e-postiga ...", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index 7fb86eefabddc..fd54ee5c12316 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -116,6 +116,7 @@ OC.L10N.register( "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Nenhum cache de memória foi configurado. Para melhorar o desempenho, configure um memcache, se disponível. Mais informações podem ser encontradas na documentação.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom não é legível pelo PHP, o que é altamente desencorajado por razões de segurança. Mais informações podem ser encontradas na documentação.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Você está executando o PHP {versão}. Atualize esta versão para aproveitar as atualizações de desempenho e segurança fornecidas pelo Grupo PHP assim que sua distribuição a suportar.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Você está rodando PHP 5.6. A versão atual do Nextcloud é a última a suportar o PHP 5.6. Recomendamos passar para a versão 7.0+ para poder fazer upgrade para o Nextcloud 14.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "A configuração do cabeçalho do proxy reverso está incorreta ou você está acessando o Nextcloud a partir de um proxy confiável. Caso contrário, isso é um problema de segurança e pode permitir que um invasor ataque seu endereço IP visível do Nextcloud. Mais informações podem ser encontradas na documentação.", "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 memcached wiki about both modules." : "O Memcached está configurado como cache distribuído, mas o módulo PHP \"memcache\" errado está instalado. \\OC\\Memcache\\Memcached somente suporta \"memcached\" e não \"memcache\". Leia no wiki memcached sobre este módulos.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Alguns arquivos não passaram na verificação de integridade. Mais informações sobre como resolver esse problema podem ser encontradas na documentação. (Lista de arquivos inválidos… / Verificar novamente…)", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index bb6161f8beedf..70d5386495e3c 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -114,6 +114,7 @@ "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Nenhum cache de memória foi configurado. Para melhorar o desempenho, configure um memcache, se disponível. Mais informações podem ser encontradas na documentação.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom não é legível pelo PHP, o que é altamente desencorajado por razões de segurança. Mais informações podem ser encontradas na documentação.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Você está executando o PHP {versão}. Atualize esta versão para aproveitar as atualizações de desempenho e segurança fornecidas pelo Grupo PHP assim que sua distribuição a suportar.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Você está rodando PHP 5.6. A versão atual do Nextcloud é a última a suportar o PHP 5.6. Recomendamos passar para a versão 7.0+ para poder fazer upgrade para o Nextcloud 14.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "A configuração do cabeçalho do proxy reverso está incorreta ou você está acessando o Nextcloud a partir de um proxy confiável. Caso contrário, isso é um problema de segurança e pode permitir que um invasor ataque seu endereço IP visível do Nextcloud. Mais informações podem ser encontradas na documentação.", "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 memcached wiki about both modules." : "O Memcached está configurado como cache distribuído, mas o módulo PHP \"memcache\" errado está instalado. \\OC\\Memcache\\Memcached somente suporta \"memcached\" e não \"memcache\". Leia no wiki memcached sobre este módulos.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Alguns arquivos não passaram na verificação de integridade. Mais informações sobre como resolver esse problema podem ser encontradas na documentação. (Lista de arquivos inválidos… / Verificar novamente…)", diff --git a/core/l10n/pt_PT.js b/core/l10n/pt_PT.js index 615cedd24463c..eb28e6c2ad91b 100644 --- a/core/l10n/pt_PT.js +++ b/core/l10n/pt_PT.js @@ -15,10 +15,10 @@ OC.L10N.register( "No valid crop data provided" : "Não foram indicados dados de recorte válidos", "Crop is not square" : "O recorte não é quadrado", "Password reset is disabled" : "A reposição da senha está desativada", - "Couldn't reset password because the token is invalid" : "Não foi possível repor a palavra-passe porque a senha é inválida", - "Couldn't reset password because the token is expired" : "Não foi possível repor a palavra-passe porque a senha expirou", + "Couldn't reset password because the token is invalid" : "Não foi possível repor a senha porque a senha é inválida", + "Couldn't reset password because the token is expired" : "Não foi possível repor a senha porque a senha expirou", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar a mensagem de reposição porque não existe nenhum endereço de e-mail associado para este utilizador. Por favor, contacte o seu administrador.", - "%s password reset" : "%s reposição da palavra-passe", + "%s password reset" : "%s reposição da senha", "Password reset" : "Reposição da senha", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no seguinte botão para repor a sua senha. Se não solicitou a reposição da senha, ignore este e-mail.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Clique na seguinte hiperligação para repor a sua senha. Se não solicitou a reposição da senha, ignore este e-mail.", @@ -63,19 +63,19 @@ OC.L10N.register( "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problema a carregar a página. A recarregar dentro de %n segundos","Problema ao carregar a página. A recarregar dentro de %n segundos"], "Saving..." : "A guardar...", "Dismiss" : "Dispensar", - "This action requires you to confirm your password" : "Esta ação requer a confirmação da password", + "This action requires you to confirm your password" : "Esta ação requer a confirmação da senha", "Authentication required" : "Autenticação necessária", - "Password" : "Palavra-passe", + "Password" : "Senha", "Cancel" : "Cancelar", "Confirm" : "Confirmar", "Failed to authenticate, try again" : "Falha ao autenticar. Tente outra vez.", "seconds ago" : "segundos atrás", "Logging in …" : "A entrar...", "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.
If it is not there ask your local administrator." : "A hiperligação para reiniciar a sua senha foi enviada para o seu correio eletrónico. Se não a receber dentro de um tempo aceitável, verifique as suas pastas de spam/lixo.
Se não a encontrar, pergunte ao seu administrador local.", - "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Os seus ficheiros estão encriptados. Não haverá forma de recuperar os dados depois de alterar a password.
Se não tiver a certeza do que fazer, por favor, contacte o administrador antes de continuar.
Deseja mesmo continuar?", + "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Os seus ficheiros estão encriptados. Não haverá forma de recuperar os dados depois de alterar a senha.
Se não tiver a certeza do que fazer, por favor, contacte o administrador antes de continuar.
Deseja mesmo continuar?", "I know what I'm doing" : "Eu sei o que eu estou a fazer", - "Password can not be changed. Please contact your administrator." : "A palavra-passe não pode ser alterada. Por favor, contacte o seu administrador.", - "Reset password" : "Repor palavra-passe", + "Password can not be changed. Please contact your administrator." : "A senha não pode ser alterada. Por favor, contacte o seu administrador.", + "Reset password" : "Repor senha", "No" : "Não", "Yes" : "Sim", "No files in here" : "Sem ficheiros aqui", @@ -99,11 +99,11 @@ OC.L10N.register( "Pending" : "Pendente", "Copy to {folder}" : "Copiar para {folder}", "Move to {folder}" : "Mover para {folder}", - "Very weak password" : "Palavra-passe muito fraca", - "Weak password" : "Palavra-passe fraca", - "So-so password" : "Palavra-passe aceitável", - "Good password" : "Palavra-passe boa", - "Strong password" : "Palavra-passe forte", + "Very weak password" : "Senha muito fraca", + "Weak password" : "Senha fraca", + "So-so password" : "Senha aceitável", + "Good password" : "Senha boa", + "Strong password" : "Senha forte", "Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor", "Shared" : "Partilhado", "Error setting expiration date" : "Erro ao definir a data de expiração", @@ -111,7 +111,8 @@ OC.L10N.register( "Set expiration date" : "Definir a data de expiração", "Expiration" : "Expiração", "Expiration date" : "Data de expiração", - "Choose a password for the public link" : "Defina a palavra-passe para a hiperligação pública", + "Choose a password for the public link" : "Defina a senha para a hiperligação pública", + "Choose a password for the public link or press the \"Enter\" key" : "Defina a senha para a hiperligação pública ou prima a tecla \"Enter\"", "Copied!" : "Copiado!", "Not supported!" : "Não suportado!", "Press ⌘-C to copy." : "Prima ⌘-C para copiar.", @@ -120,7 +121,7 @@ OC.L10N.register( "Share to {name}" : "Partilhar com {name}", "Share link" : "Partilhar hiperligação", "Link" : "Hiperligação", - "Password protect" : "Proteger com palavra-passe", + "Password protect" : "Proteger com senha", "Allow editing" : "Permitir edição", "Email link to person" : "Enviar hiperligação por mensagem para a pessoa", "Send" : "Enviar", @@ -129,7 +130,7 @@ OC.L10N.register( "File drop (upload only)" : "Arrastar ficheiro (apenas envio)", "Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}", "Shared with you by {owner}" : "Partilhado consigo por {owner}", - "Choose a password for the mail share" : "Escolher password para a partilha de email", + "Choose a password for the mail share" : "Escolher senha para a partilha de email", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} partilhado via ligação", "group" : "grupo", "remote" : "remoto", @@ -223,7 +224,7 @@ OC.L10N.register( "Install and activate additional PHP modules to choose other database types." : "Instale e active módulos PHP adicionais para escolher outros tipos de base de dados.", "For more details check out the documentation." : "Para mais detalhes consulte a documentação.", "Database user" : "Utilizador da base de dados", - "Database password" : "Palavra-passe da base de dados", + "Database password" : "Senha da base de dados", "Database name" : "Nome da base de dados", "Database tablespace" : "Tablespace da base de dados", "Database host" : "Anfitrião da base de dados", @@ -240,19 +241,20 @@ OC.L10N.register( "More apps" : "Mais apps", "Search" : "Procurar", "Reset search" : "Repor procura", - "Confirm your password" : "Confirmar palavra-passe", + "Confirm your password" : "Confirmar senha", "Server side authentication failed!" : "Autenticação do lado do servidor falhou!", "Please contact your administrator." : "Por favor, contacte o seu administrador.", "An internal error occurred." : "Ocorreu um erro interno.", "Please try again or contact your administrator." : "Por favor, tente de novo ou contacte o seu administrador.", "Username or email" : "Nome de utilizador ou e-mail", - "Wrong password." : "Palavra-passe errada.", + "Wrong password." : "Senha errada.", "Log in" : "Iniciar Sessão", "Stay logged in" : "Manter sessão iniciada", + "Forgot password?" : "Senha esquecida?", "Alternative Logins" : "Contas de Acesso Alternativas", "Redirecting …" : "A redirecionar...", - "New password" : "Nova palavra-passe", - "New Password" : "Nova palavra-passe", + "New password" : "Nova senha", + "New Password" : "Nova senha", "Two-factor authentication" : "Autenticação de dois factores", "Enhanced security is enabled for your account. Please authenticate using a second factor." : "Segurança melhorada activada na sua conta. Por favor, autentique-se usando o segundo factor.", "Cancel log in" : "Cancelar entrada", @@ -321,9 +323,9 @@ OC.L10N.register( "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Entra em contacto com o administrador do servidor se este erro aparecer várias vezes, inclui também os detalhes técnicos abaixo no seu contacto.", "For information how to properly configure your server, please see the documentation." : "Para obter informações de como configurar correctamente o servidor, veja em: documentação.", "Log out" : "Terminar sessão", - "This action requires you to confirm your password:" : "Esta acção requer a confirmação da password:", - "Wrong password. Reset it?" : "Palavra-passe errada. Redefini-la?", - "Use the following link to reset your password: {link}" : "Utilize a seguinte hiperligação para repor a sua palavra-passe: {link}", + "This action requires you to confirm your password:" : "Esta acção requer a confirmação da senha:", + "Wrong password. Reset it?" : "Senha errada. Redefini-la?", + "Use the following link to reset your password: {link}" : "Utilize a seguinte hiperligação para repor a sua senha: {link}", "Hey there,

just letting you know that %s shared %s with you.
View it!

" : "Olá,

apenas para informar que %s partilhou %s consigo.
Consulte aqui!

", "This Nextcloud instance is currently in single user mode." : "Esta instância do Nextcloud está atualmente configurada no modo de único utilizador.", "This means only administrators can use the instance." : "Isto significa que apenas os administradores podem utilizar a instância.", diff --git a/core/l10n/pt_PT.json b/core/l10n/pt_PT.json index 5655bccfb748c..15b6d0e1f2b97 100644 --- a/core/l10n/pt_PT.json +++ b/core/l10n/pt_PT.json @@ -13,10 +13,10 @@ "No valid crop data provided" : "Não foram indicados dados de recorte válidos", "Crop is not square" : "O recorte não é quadrado", "Password reset is disabled" : "A reposição da senha está desativada", - "Couldn't reset password because the token is invalid" : "Não foi possível repor a palavra-passe porque a senha é inválida", - "Couldn't reset password because the token is expired" : "Não foi possível repor a palavra-passe porque a senha expirou", + "Couldn't reset password because the token is invalid" : "Não foi possível repor a senha porque a senha é inválida", + "Couldn't reset password because the token is expired" : "Não foi possível repor a senha porque a senha expirou", "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Não foi possível enviar a mensagem de reposição porque não existe nenhum endereço de e-mail associado para este utilizador. Por favor, contacte o seu administrador.", - "%s password reset" : "%s reposição da palavra-passe", + "%s password reset" : "%s reposição da senha", "Password reset" : "Reposição da senha", "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Clique no seguinte botão para repor a sua senha. Se não solicitou a reposição da senha, ignore este e-mail.", "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Clique na seguinte hiperligação para repor a sua senha. Se não solicitou a reposição da senha, ignore este e-mail.", @@ -61,19 +61,19 @@ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problema a carregar a página. A recarregar dentro de %n segundos","Problema ao carregar a página. A recarregar dentro de %n segundos"], "Saving..." : "A guardar...", "Dismiss" : "Dispensar", - "This action requires you to confirm your password" : "Esta ação requer a confirmação da password", + "This action requires you to confirm your password" : "Esta ação requer a confirmação da senha", "Authentication required" : "Autenticação necessária", - "Password" : "Palavra-passe", + "Password" : "Senha", "Cancel" : "Cancelar", "Confirm" : "Confirmar", "Failed to authenticate, try again" : "Falha ao autenticar. Tente outra vez.", "seconds ago" : "segundos atrás", "Logging in …" : "A entrar...", "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.
If it is not there ask your local administrator." : "A hiperligação para reiniciar a sua senha foi enviada para o seu correio eletrónico. Se não a receber dentro de um tempo aceitável, verifique as suas pastas de spam/lixo.
Se não a encontrar, pergunte ao seu administrador local.", - "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Os seus ficheiros estão encriptados. Não haverá forma de recuperar os dados depois de alterar a password.
Se não tiver a certeza do que fazer, por favor, contacte o administrador antes de continuar.
Deseja mesmo continuar?", + "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "Os seus ficheiros estão encriptados. Não haverá forma de recuperar os dados depois de alterar a senha.
Se não tiver a certeza do que fazer, por favor, contacte o administrador antes de continuar.
Deseja mesmo continuar?", "I know what I'm doing" : "Eu sei o que eu estou a fazer", - "Password can not be changed. Please contact your administrator." : "A palavra-passe não pode ser alterada. Por favor, contacte o seu administrador.", - "Reset password" : "Repor palavra-passe", + "Password can not be changed. Please contact your administrator." : "A senha não pode ser alterada. Por favor, contacte o seu administrador.", + "Reset password" : "Repor senha", "No" : "Não", "Yes" : "Sim", "No files in here" : "Sem ficheiros aqui", @@ -97,11 +97,11 @@ "Pending" : "Pendente", "Copy to {folder}" : "Copiar para {folder}", "Move to {folder}" : "Mover para {folder}", - "Very weak password" : "Palavra-passe muito fraca", - "Weak password" : "Palavra-passe fraca", - "So-so password" : "Palavra-passe aceitável", - "Good password" : "Palavra-passe boa", - "Strong password" : "Palavra-passe forte", + "Very weak password" : "Senha muito fraca", + "Weak password" : "Senha fraca", + "So-so password" : "Senha aceitável", + "Good password" : "Senha boa", + "Strong password" : "Senha forte", "Error occurred while checking server setup" : "Ocorreu um erro durante a verificação da configuração do servidor", "Shared" : "Partilhado", "Error setting expiration date" : "Erro ao definir a data de expiração", @@ -109,7 +109,8 @@ "Set expiration date" : "Definir a data de expiração", "Expiration" : "Expiração", "Expiration date" : "Data de expiração", - "Choose a password for the public link" : "Defina a palavra-passe para a hiperligação pública", + "Choose a password for the public link" : "Defina a senha para a hiperligação pública", + "Choose a password for the public link or press the \"Enter\" key" : "Defina a senha para a hiperligação pública ou prima a tecla \"Enter\"", "Copied!" : "Copiado!", "Not supported!" : "Não suportado!", "Press ⌘-C to copy." : "Prima ⌘-C para copiar.", @@ -118,7 +119,7 @@ "Share to {name}" : "Partilhar com {name}", "Share link" : "Partilhar hiperligação", "Link" : "Hiperligação", - "Password protect" : "Proteger com palavra-passe", + "Password protect" : "Proteger com senha", "Allow editing" : "Permitir edição", "Email link to person" : "Enviar hiperligação por mensagem para a pessoa", "Send" : "Enviar", @@ -127,7 +128,7 @@ "File drop (upload only)" : "Arrastar ficheiro (apenas envio)", "Shared with you and the group {group} by {owner}" : "Partilhado consigo e com o grupo {group} por {owner}", "Shared with you by {owner}" : "Partilhado consigo por {owner}", - "Choose a password for the mail share" : "Escolher password para a partilha de email", + "Choose a password for the mail share" : "Escolher senha para a partilha de email", "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} partilhado via ligação", "group" : "grupo", "remote" : "remoto", @@ -221,7 +222,7 @@ "Install and activate additional PHP modules to choose other database types." : "Instale e active módulos PHP adicionais para escolher outros tipos de base de dados.", "For more details check out the documentation." : "Para mais detalhes consulte a documentação.", "Database user" : "Utilizador da base de dados", - "Database password" : "Palavra-passe da base de dados", + "Database password" : "Senha da base de dados", "Database name" : "Nome da base de dados", "Database tablespace" : "Tablespace da base de dados", "Database host" : "Anfitrião da base de dados", @@ -238,19 +239,20 @@ "More apps" : "Mais apps", "Search" : "Procurar", "Reset search" : "Repor procura", - "Confirm your password" : "Confirmar palavra-passe", + "Confirm your password" : "Confirmar senha", "Server side authentication failed!" : "Autenticação do lado do servidor falhou!", "Please contact your administrator." : "Por favor, contacte o seu administrador.", "An internal error occurred." : "Ocorreu um erro interno.", "Please try again or contact your administrator." : "Por favor, tente de novo ou contacte o seu administrador.", "Username or email" : "Nome de utilizador ou e-mail", - "Wrong password." : "Palavra-passe errada.", + "Wrong password." : "Senha errada.", "Log in" : "Iniciar Sessão", "Stay logged in" : "Manter sessão iniciada", + "Forgot password?" : "Senha esquecida?", "Alternative Logins" : "Contas de Acesso Alternativas", "Redirecting …" : "A redirecionar...", - "New password" : "Nova palavra-passe", - "New Password" : "Nova palavra-passe", + "New password" : "Nova senha", + "New Password" : "Nova senha", "Two-factor authentication" : "Autenticação de dois factores", "Enhanced security is enabled for your account. Please authenticate using a second factor." : "Segurança melhorada activada na sua conta. Por favor, autentique-se usando o segundo factor.", "Cancel log in" : "Cancelar entrada", @@ -319,9 +321,9 @@ "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Entra em contacto com o administrador do servidor se este erro aparecer várias vezes, inclui também os detalhes técnicos abaixo no seu contacto.", "For information how to properly configure your server, please see the documentation." : "Para obter informações de como configurar correctamente o servidor, veja em: documentação.", "Log out" : "Terminar sessão", - "This action requires you to confirm your password:" : "Esta acção requer a confirmação da password:", - "Wrong password. Reset it?" : "Palavra-passe errada. Redefini-la?", - "Use the following link to reset your password: {link}" : "Utilize a seguinte hiperligação para repor a sua palavra-passe: {link}", + "This action requires you to confirm your password:" : "Esta acção requer a confirmação da senha:", + "Wrong password. Reset it?" : "Senha errada. Redefini-la?", + "Use the following link to reset your password: {link}" : "Utilize a seguinte hiperligação para repor a sua senha: {link}", "Hey there,

just letting you know that %s shared %s with you.
View it!

" : "Olá,

apenas para informar que %s partilhou %s consigo.
Consulte aqui!

", "This Nextcloud instance is currently in single user mode." : "Esta instância do Nextcloud está atualmente configurada no modo de único utilizador.", "This means only administrators can use the instance." : "Isto significa que apenas os administradores podem utilizar a instância.", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index ec4fe7484491c..cf7c6e6e481b7 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -116,6 +116,7 @@ OC.L10N.register( "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Henüz bir ön bellek yapılandırılmamış. Olabiliyorsa başarımı arttırmak için memcache önbellek ayarlarını yapın. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "Güvenlik nedeniyle kullanılması önerilen /dev/urandom klasörü PHP tarafından okunamıyor. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Şu anda PHP {version} sürümünü kullanıyorsunuz. Kullandığınız dağıtım desteklediği zaman PHP sürümünüzü güncelleyerek PHP grubu tarafından sağlanan başarım ve güvenlik geliştirmelerinden faydalanın.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "PHP 5.6 sürümünü kullanıyorsunuz. Geçerli Nextcloud ana sürümü PHP 5.6 sürümünü destekleyen son sürüm olacak. Nextcloud 14 sürümünü kullanabilmek için PHP sürümünü 7.0 ve üzerine yükseltmeniz önerilir.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Ters vekil sunucu üst bilgi yapılandırmanız doğru değil ya da Nextcloud üzerine güvenilen bir vekil sunucudan erişiyorsunuz. Böyle değil ise bu bir güvenlik sorunudur ve bir saldırganın IP adresini Nextcolud sunucusuna farklı göstermesine izin verebilir. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "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 memcached wiki about both modules." : "Memcached dağıtık bellek olarak yapılandırılmış ancak kurulmuş PHP \"memcache\" modülü yanlış. \\OC\\Memcache\\Memcached yalnız \"memcache\" modülünü değil \"memcached\" mdoülünü destekler. İki modül hakkında ayrıntılı bilgi almak için memcached wiki sayfasına bakabilirsiniz.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Bazı dosyalar bütünlük denetiminden geçemedi. Bu sorunun çözümü ile ilgili bilgi almak için belgelere bakabilirsiniz. (Geçersiz dosyaların listesi… / Yeniden Tara…)", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index 3ac2276117a04..845820e597838 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -114,6 +114,7 @@ "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Henüz bir ön bellek yapılandırılmamış. Olabiliyorsa başarımı arttırmak için memcache önbellek ayarlarını yapın. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "Güvenlik nedeniyle kullanılması önerilen /dev/urandom klasörü PHP tarafından okunamıyor. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Şu anda PHP {version} sürümünü kullanıyorsunuz. Kullandığınız dağıtım desteklediği zaman PHP sürümünüzü güncelleyerek PHP grubu tarafından sağlanan başarım ve güvenlik geliştirmelerinden faydalanın.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "PHP 5.6 sürümünü kullanıyorsunuz. Geçerli Nextcloud ana sürümü PHP 5.6 sürümünü destekleyen son sürüm olacak. Nextcloud 14 sürümünü kullanabilmek için PHP sürümünü 7.0 ve üzerine yükseltmeniz önerilir.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "Ters vekil sunucu üst bilgi yapılandırmanız doğru değil ya da Nextcloud üzerine güvenilen bir vekil sunucudan erişiyorsunuz. Böyle değil ise bu bir güvenlik sorunudur ve bir saldırganın IP adresini Nextcolud sunucusuna farklı göstermesine izin verebilir. Ayrıntılı bilgi almak için belgelere bakabilirsiniz.", "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 memcached wiki about both modules." : "Memcached dağıtık bellek olarak yapılandırılmış ancak kurulmuş PHP \"memcache\" modülü yanlış. \\OC\\Memcache\\Memcached yalnız \"memcache\" modülünü değil \"memcached\" mdoülünü destekler. İki modül hakkında ayrıntılı bilgi almak için memcached wiki sayfasına bakabilirsiniz.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Bazı dosyalar bütünlük denetiminden geçemedi. Bu sorunun çözümü ile ilgili bilgi almak için belgelere bakabilirsiniz. (Geçersiz dosyaların listesi… / Yeniden Tara…)", diff --git a/lib/l10n/et_EE.js b/lib/l10n/et_EE.js new file mode 100644 index 0000000000000..e536b5076a972 --- /dev/null +++ b/lib/l10n/et_EE.js @@ -0,0 +1,210 @@ +OC.L10N.register( + "lib", + { + "Cannot write into \"config\" directory!" : "Ei saa kirjutada \"config\" kataloogi!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Tavaliselt saab selle lahendada andes veebiserverile seatete kataloogile \"config\" kirjutusõigused", + "See %s" : "Vaata %s", + "Sample configuration detected" : "Tuvastati näidisseaded", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni", + "%1$s and %2$s" : "%1$s ja %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s ja %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s ja %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s ja %5$s", + "PHP %s or higher is required." : "PHP %s või uuem on nõutav.", + "PHP with a version lower than %s is required." : "Nõutud on PHP madalama versiooniga kui %s.", + "Following databases are supported: %s" : "Toetatud on järgnevad andmebaasid: %s", + "The command line tool %s could not be found" : "Käsurea töövahendit %s ei leitud", + "The library %s is not available." : "Teek %s pole saadaval.", + "Following platforms are supported: %s" : "Toetatud on järgnevad platformid: %s", + "Server version %s or higher is required." : "Serveri versioon %s või kõrgem on nõutav.", + "Server version %s or lower is required." : "Serveri versioon %s või madalam on nõutav.", + "Unknown filetype" : "Tundmatu failitüüp", + "Invalid image" : "Vigane pilt", + "Avatar image is not square" : "Avatari pilt pole ruut", + "today" : "täna", + "tomorrow" : "homme", + "yesterday" : "eile", + "_%n day ago_::_%n days ago_" : ["%n päev tagasi","%n päeva tagasi"], + "next month" : "järgmine kuu", + "last month" : "viimasel kuul", + "next year" : "järgmine aasta", + "last year" : "viimasel aastal", + "_%n year ago_::_%n years ago_" : ["%n aasta tagasi","%n aastat tagasi"], + "in a few seconds" : "mõne sekundi jooksul", + "seconds ago" : "sekundit tagasi", + "File name is a reserved word" : "Failinimi sisaldab keelatud sõna", + "File name contains at least one invalid character" : "Faili nimesonvähemalt üks keelatud märk", + "File name is too long" : "Faili nimi on liiga pikk", + "Dot files are not allowed" : "Punktiga failid pole lubatud", + "Empty filename is not allowed" : "Tühi failinimi pole lubatud", + "This is an automatically sent email, please do not reply." : "See on automaatselt saadetud e-kiri, palun ära vasta.", + "Help" : "Abi", + "Apps" : "Rakendused", + "Settings" : "Seaded", + "Log out" : "Logi välja", + "Users" : "Kasutajad", + "Basic settings" : "Põhiseaded", + "Sharing" : "Jagamine", + "Security" : "Turvalisus", + "Encryption" : "Krüpteerimine", + "Additional settings" : "Lisaseaded", + "Tips & tricks" : "Nõuanded ja trikid", + "Personal info" : "Isiklik info", + "Sync clients" : "Klientide sünkroniseerimine", + "Unlimited" : "Piiramatult", + "__language_name__" : "Eesti", + "Verifying" : "Kontrollin", + "Verifying …" : "Kontrollin ...", + "Verify" : "Kontrolli", + "%s enter the database username and name." : "%s sisesta andmebaasi kasutajatunnus ja nimi.", + "%s enter the database username." : "%s sisesta andmebaasi kasutajatunnus.", + "%s enter the database name." : "%s sisesta andmebaasi nimi.", + "%s you may not use dots in the database name" : "%s punktide kasutamine andmebaasi nimes pole lubatud", + "Oracle connection could not be established" : "Ei suuda luua ühendust Oracle baasiga", + "Oracle username and/or password not valid" : "Oracle kasutajatunnus ja/või parool pole õiged", + "PostgreSQL username and/or password not valid" : "PostgreSQL kasutajatunnus ja/või parool pole õiged", + "You need to enter details of an existing account." : "Sa pead sisestama olemasoleva konto andmed.", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X ei ole toetatud ja %s ei pruugi korralikult toimida sellel platvormil. Kasuta seda omal vastutusel!", + "For the best results, please consider using a GNU/Linux server instead." : "Parema tulemuse saavitamiseks palun kaalu serveris GNU/Linux kasutamist.", + "Set an admin username." : "Määra admin kasutajanimi.", + "Set an admin password." : "Määra admini parool.", + "Can't create or write into the data directory %s" : "Ei suuda luua või kirjutada andmete kataloogi %s", + "Invalid Federated Cloud ID" : "Vigane liitpilve ID", + "Sharing %s failed, because the backend does not allow shares from type %i" : "%s jagamine ebaõnnestus sest server ei luba %i tüüpi jagamisi", + "Sharing %s failed, because the file does not exist" : "%s jagamine ebaõnnestus, kuna faili pole olemas", + "You are not allowed to share %s" : "Sul pole lubatud %s jagada", + "Sharing %s failed, because you can not share with yourself" : "%s jagamine ebaõnnestus, kuna sa ei saa jagada iseendaga", + "Sharing %s failed, because the user %s does not exist" : "%s jagamine ebaõnnestus, kuna kasutajat %s pole olemas", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s jagamine ebaõnnestus, kuna kasutaja %s pole ühegi grupi liige, millede liige on %s", + "Sharing %s failed, because this item is already shared with %s" : "%s jagamine ebaõnnestus, kuna see üksus on juba jagatud %s", + "Sharing %s failed, because this item is already shared with user %s" : "%s jagamine ebaõnnestus, kuna see üksus on juba jagatud kasutajaga %s", + "Sharing %s failed, because the group %s does not exist" : "%s jagamine ebaõnnestus, kuna gruppi %s pole olemas", + "Sharing %s failed, because %s is not a member of the group %s" : "%s jagamine ebaõnnestus, kuna %s pole grupi %s liige", + "You need to provide a password to create a public link, only protected links are allowed" : "Avaliku viite tekitamiseks pead sisestama parooli, ainult kaitstud viited on lubatud", + "Sharing %s failed, because sharing with links is not allowed" : "%s jagamine ebaõnnestus, kuna linkidega jagamine pole lubatud", + "Not allowed to create a federated share with the same user" : "Liitjagamise loomine sama kasutajaga ei ole lubatud.", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "%s jagamine ebaõnnestus, ei suutnud %s leida, ehk ei ole server hetkel kättesaadav.", + "Share type %s is not valid for %s" : "Jagamise tüüp %s ei ole õige %s jaoks", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Aegumise kuupäeva ei saa määrata. Jagamised ei saa aeguda hiljem kui %s peale jagamist.", + "Cannot set expiration date. Expiration date is in the past" : "Aegumiskuupäeva ei saa määrata. Aegumise kuupäev on minevikus", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Jagamise tagarakend %s peab kasutusele võtma OCP\\Share_Backend liidese", + "Sharing backend %s not found" : "Jagamise tagarakendit %s ei leitud", + "Sharing backend for %s not found" : "Jagamise tagarakendit %s jaoks ei leitud", + "Sharing failed, because the user %s is the original sharer" : "Jagamine ebaõnnestus kuna kasutaja %s on algne jagaja", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s jagamine ebaõnnestus, kuna antud õigused ületavad %s jaoks määratud õigusi", + "Sharing %s failed, because resharing is not allowed" : "%s jagamine ebaõnnestus, kuna edasijagamine pole lubatud", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s jagamine ebaõnnestus, kuna jagamise tagarakend ei suutnud leida %s jaoks lähteallikat", + "Sharing %s failed, because the file could not be found in the file cache" : "%s jagamine ebaõnnestus, kuna faili ei suudetud leida failide puhvrist", + "Can’t increase permissions of %s" : "Ei saa %s õigusi suurendada", + "Files can’t be shared with delete permissions" : "Faile ei saa jagada kustutamise õigusega", + "Files can’t be shared with create permissions" : "Faile ei saa jagada loomise õigusega", + "Expiration date is in the past" : "Aegumise kuupäev on minevikus", + "Can’t set expiration date more than %s days in the future" : "Ei sa määrata aegumise kuupäeva rohkem kui %s päeva tulevikus", + "%s shared »%s« with you" : "%s jagas sinuga »%s«", + "%s shared »%s« with you." : "%s jagas »%s« sinuga.", + "Click the button below to open it." : "Vajuta allolevat nuppu, et see avada.", + "Open »%s«" : "Ava »%s«", + "%s via %s" : "%s läbi %s", + "The requested share does not exist anymore" : "Soovitud jagamist enam ei eksisteeri", + "Could not find category \"%s\"" : "Ei leia kategooriat \"%s\"", + "Sunday" : "Pühapäev", + "Monday" : "Esmaspäev", + "Tuesday" : "Teisipäev", + "Wednesday" : "Kolmapäev", + "Thursday" : "Neljapäev", + "Friday" : "Reede", + "Saturday" : "Laupäev", + "Sun." : "P", + "Mon." : "E", + "Tue." : "T", + "Wed." : "K", + "Thu." : "N", + "Fri." : "R", + "Sat." : "L", + "Su" : "P", + "Mo" : "E", + "Tu" : "T", + "We" : "K", + "Th" : "N", + "Fr" : "R", + "Sa" : "L", + "January" : "Jaanuar", + "February" : "Veebruar", + "March" : "Märts", + "April" : "Aprill", + "May" : "Mai", + "June" : "Juuni", + "July" : "Juuli", + "August" : "August", + "September" : "September", + "October" : "Oktoober", + "November" : "November", + "December" : "Detsember", + "Jan." : "Jaan.", + "Feb." : "Veebr.", + "Mar." : "Märts.", + "Apr." : "Apr.", + "May." : "Mai.", + "Jun." : "Juuni.", + "Jul." : "Juuli.", + "Aug." : "Aug.", + "Sep." : "Sept.", + "Oct." : "Okt.", + "Nov." : "Nov.", + "Dec." : "Dets.", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Kasutajanimes on lubatud ainult järgmised sümbolid: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"", + "A valid username must be provided" : "Sisesta nõuetele vastav kasutajatunnus", + "Username contains whitespace at the beginning or at the end" : "Kasutajanime alguses või lõpus on tühik", + "Username must not consist of dots only" : "Kasutajanimi ei tohi koosneda ainult punktidest", + "A valid password must be provided" : "Sisesta nõuetele vastav parool", + "The username is already being used" : "Kasutajanimi on juba kasutuses", + "Could not create user" : "Ei saanud kasutajat luua", + "User disabled" : "Kasutaja deaktiveeritud", + "No app name specified" : "Ühegi rakendi nime pole määratletud", + "App '%s' could not be installed!" : "Rakendust '%s' ei saa paigaldada!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "Rakendust \"%s\" ei saa paigaldada sest järgmised sõltuvused ei ole täidetud: %s", + "a safe home for all your data" : "turvaline koht sinu andmetele", + "File is currently busy, please try again later" : "Fail on hetkel kasutuses, proovi hiljem uuesti", + "Can't read file" : "Faili lugemine ebaõnnestus", + "Application is not enabled" : "Rakendus pole sisse lülitatud", + "Authentication error" : "Autentimise viga", + "Token expired. Please reload page." : "Kontrollkood aegus. Paelun lae leht uuesti.", + "Unknown user" : "Tundmatu kasutaja", + "No database drivers (sqlite, mysql, or postgresql) installed." : "Ühtegi andmebaasi (sqlite, mysql või postgresql) draiverit pole paigaldatud.", + "Cannot write into \"config\" directory" : "Ei saa kirjutada \"config\" kataloogi", + "Cannot write into \"apps\" directory" : "Ei saa kirjutada \"apps\" kataloogi!", + "Cannot create \"data\" directory" : "Ei suuda luua \"data\" kataloogi", + "Setting locale to %s failed" : "Lokaadi %s määramine ebaõnnestus.", + "Please install one of these locales on your system and restart your webserver." : "Palun paigalda mõni neist lokaatides oma süsteemi ning taaskäivita veebiserver.", + "Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.", + "PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?", + "Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.", + "PostgreSQL >= 9 required" : "PostgreSQL >= 9 on nõutav", + "Please upgrade your database version" : "Palun uuenda oma andmebaasi versiooni", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Palun muuda kataloogi õigused 0770-ks, et kataloogi sisu poleks teistele kasutajatele nähtav", + "Could not obtain lock type %d on \"%s\"." : "Ei suutnud hankida %d tüüpi lukustust \"%s\".", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tavaliselt saab selle lahendada %s andes veebiserverile seadete kataloogile \"config\" kirjutusõigused %s", + "Server settings" : "Serveri seaded", + "DB Error: \"%s\"" : "Andmebaasi viga: \"%s\"", + "Offending command was: \"%s\"" : "Tõrkuv käsk oli: \"%s\"", + "You need to enter either an existing account or the administrator." : "Sisesta kas juba olemasolev konto või administrator.", + "Offending command was: \"%s\", name: %s, password: %s" : "Tõrkuv käsk oli: \"%s\", nimi: %s, parool: %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Lubade seadistus %s jaoks ebaõnnestus, kuna antud õigused ületavad %s jaoks määratud õigusi", + "Setting permissions for %s failed, because the item was not found" : "Lubade seadistus %s jaoks ebaõnnestus, kuna üksust ei leitud", + "Cannot clear expiration date. Shares are required to have an expiration date." : "Aegumise kuupäeva ei saa tühjendada. Jagamistel peab olema aegumise kuupäev.", + "Cannot increase permissions of %s" : "Ei saa %s õigusi suurendada", + "Files can't be shared with delete permissions" : "Faile ei saa jagada kustutamise õigustega", + "Files can't be shared with create permissions" : "Faile ei saa jagada loomise õigustega", + "Cannot set expiration date more than %s days in the future" : "Ei sa määrata aegumise kuupäeva rohkem kui %s päeva tulevikus", + "Personal" : "Isiklik", + "Admin" : "Admin", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Tavaliselt saab selle lahendada %s andes veebiserverile rakendite kataloogile kirjutusõigused %s või keelates seadetes rakendikogu.", + "Cannot create \"data\" directory (%s)" : "Ei suuda luua \"data\" kataloogi (%s)", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Õigused saab tavaliselt paika %s andes veebiserverile juurkataloogile kirjutusõigused %s", + "Data directory (%s) is readable by other users" : "Andmete kataloog (%s) on teistele kasutajate loetav", + "Data directory (%s) is invalid" : "Andmete kataloog (%s) pole korrektne", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Palun veendu, et andmete kataloogis sisaldub fail \".ocdata\" " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/et_EE.json b/lib/l10n/et_EE.json new file mode 100644 index 0000000000000..87c569d402f39 --- /dev/null +++ b/lib/l10n/et_EE.json @@ -0,0 +1,208 @@ +{ "translations": { + "Cannot write into \"config\" directory!" : "Ei saa kirjutada \"config\" kataloogi!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Tavaliselt saab selle lahendada andes veebiserverile seatete kataloogile \"config\" kirjutusõigused", + "See %s" : "Vaata %s", + "Sample configuration detected" : "Tuvastati näidisseaded", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Tuvastati, et kopeeriti näidisseaded. See võib lõhkuda sinu saidi ja see pole toetatud. Palun loe enne faili config.php muutmist dokumentatsiooni", + "%1$s and %2$s" : "%1$s ja %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s ja %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s ja %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s ja %5$s", + "PHP %s or higher is required." : "PHP %s või uuem on nõutav.", + "PHP with a version lower than %s is required." : "Nõutud on PHP madalama versiooniga kui %s.", + "Following databases are supported: %s" : "Toetatud on järgnevad andmebaasid: %s", + "The command line tool %s could not be found" : "Käsurea töövahendit %s ei leitud", + "The library %s is not available." : "Teek %s pole saadaval.", + "Following platforms are supported: %s" : "Toetatud on järgnevad platformid: %s", + "Server version %s or higher is required." : "Serveri versioon %s või kõrgem on nõutav.", + "Server version %s or lower is required." : "Serveri versioon %s või madalam on nõutav.", + "Unknown filetype" : "Tundmatu failitüüp", + "Invalid image" : "Vigane pilt", + "Avatar image is not square" : "Avatari pilt pole ruut", + "today" : "täna", + "tomorrow" : "homme", + "yesterday" : "eile", + "_%n day ago_::_%n days ago_" : ["%n päev tagasi","%n päeva tagasi"], + "next month" : "järgmine kuu", + "last month" : "viimasel kuul", + "next year" : "järgmine aasta", + "last year" : "viimasel aastal", + "_%n year ago_::_%n years ago_" : ["%n aasta tagasi","%n aastat tagasi"], + "in a few seconds" : "mõne sekundi jooksul", + "seconds ago" : "sekundit tagasi", + "File name is a reserved word" : "Failinimi sisaldab keelatud sõna", + "File name contains at least one invalid character" : "Faili nimesonvähemalt üks keelatud märk", + "File name is too long" : "Faili nimi on liiga pikk", + "Dot files are not allowed" : "Punktiga failid pole lubatud", + "Empty filename is not allowed" : "Tühi failinimi pole lubatud", + "This is an automatically sent email, please do not reply." : "See on automaatselt saadetud e-kiri, palun ära vasta.", + "Help" : "Abi", + "Apps" : "Rakendused", + "Settings" : "Seaded", + "Log out" : "Logi välja", + "Users" : "Kasutajad", + "Basic settings" : "Põhiseaded", + "Sharing" : "Jagamine", + "Security" : "Turvalisus", + "Encryption" : "Krüpteerimine", + "Additional settings" : "Lisaseaded", + "Tips & tricks" : "Nõuanded ja trikid", + "Personal info" : "Isiklik info", + "Sync clients" : "Klientide sünkroniseerimine", + "Unlimited" : "Piiramatult", + "__language_name__" : "Eesti", + "Verifying" : "Kontrollin", + "Verifying …" : "Kontrollin ...", + "Verify" : "Kontrolli", + "%s enter the database username and name." : "%s sisesta andmebaasi kasutajatunnus ja nimi.", + "%s enter the database username." : "%s sisesta andmebaasi kasutajatunnus.", + "%s enter the database name." : "%s sisesta andmebaasi nimi.", + "%s you may not use dots in the database name" : "%s punktide kasutamine andmebaasi nimes pole lubatud", + "Oracle connection could not be established" : "Ei suuda luua ühendust Oracle baasiga", + "Oracle username and/or password not valid" : "Oracle kasutajatunnus ja/või parool pole õiged", + "PostgreSQL username and/or password not valid" : "PostgreSQL kasutajatunnus ja/või parool pole õiged", + "You need to enter details of an existing account." : "Sa pead sisestama olemasoleva konto andmed.", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X ei ole toetatud ja %s ei pruugi korralikult toimida sellel platvormil. Kasuta seda omal vastutusel!", + "For the best results, please consider using a GNU/Linux server instead." : "Parema tulemuse saavitamiseks palun kaalu serveris GNU/Linux kasutamist.", + "Set an admin username." : "Määra admin kasutajanimi.", + "Set an admin password." : "Määra admini parool.", + "Can't create or write into the data directory %s" : "Ei suuda luua või kirjutada andmete kataloogi %s", + "Invalid Federated Cloud ID" : "Vigane liitpilve ID", + "Sharing %s failed, because the backend does not allow shares from type %i" : "%s jagamine ebaõnnestus sest server ei luba %i tüüpi jagamisi", + "Sharing %s failed, because the file does not exist" : "%s jagamine ebaõnnestus, kuna faili pole olemas", + "You are not allowed to share %s" : "Sul pole lubatud %s jagada", + "Sharing %s failed, because you can not share with yourself" : "%s jagamine ebaõnnestus, kuna sa ei saa jagada iseendaga", + "Sharing %s failed, because the user %s does not exist" : "%s jagamine ebaõnnestus, kuna kasutajat %s pole olemas", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "%s jagamine ebaõnnestus, kuna kasutaja %s pole ühegi grupi liige, millede liige on %s", + "Sharing %s failed, because this item is already shared with %s" : "%s jagamine ebaõnnestus, kuna see üksus on juba jagatud %s", + "Sharing %s failed, because this item is already shared with user %s" : "%s jagamine ebaõnnestus, kuna see üksus on juba jagatud kasutajaga %s", + "Sharing %s failed, because the group %s does not exist" : "%s jagamine ebaõnnestus, kuna gruppi %s pole olemas", + "Sharing %s failed, because %s is not a member of the group %s" : "%s jagamine ebaõnnestus, kuna %s pole grupi %s liige", + "You need to provide a password to create a public link, only protected links are allowed" : "Avaliku viite tekitamiseks pead sisestama parooli, ainult kaitstud viited on lubatud", + "Sharing %s failed, because sharing with links is not allowed" : "%s jagamine ebaõnnestus, kuna linkidega jagamine pole lubatud", + "Not allowed to create a federated share with the same user" : "Liitjagamise loomine sama kasutajaga ei ole lubatud.", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "%s jagamine ebaõnnestus, ei suutnud %s leida, ehk ei ole server hetkel kättesaadav.", + "Share type %s is not valid for %s" : "Jagamise tüüp %s ei ole õige %s jaoks", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "Aegumise kuupäeva ei saa määrata. Jagamised ei saa aeguda hiljem kui %s peale jagamist.", + "Cannot set expiration date. Expiration date is in the past" : "Aegumiskuupäeva ei saa määrata. Aegumise kuupäev on minevikus", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "Jagamise tagarakend %s peab kasutusele võtma OCP\\Share_Backend liidese", + "Sharing backend %s not found" : "Jagamise tagarakendit %s ei leitud", + "Sharing backend for %s not found" : "Jagamise tagarakendit %s jaoks ei leitud", + "Sharing failed, because the user %s is the original sharer" : "Jagamine ebaõnnestus kuna kasutaja %s on algne jagaja", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "%s jagamine ebaõnnestus, kuna antud õigused ületavad %s jaoks määratud õigusi", + "Sharing %s failed, because resharing is not allowed" : "%s jagamine ebaõnnestus, kuna edasijagamine pole lubatud", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "%s jagamine ebaõnnestus, kuna jagamise tagarakend ei suutnud leida %s jaoks lähteallikat", + "Sharing %s failed, because the file could not be found in the file cache" : "%s jagamine ebaõnnestus, kuna faili ei suudetud leida failide puhvrist", + "Can’t increase permissions of %s" : "Ei saa %s õigusi suurendada", + "Files can’t be shared with delete permissions" : "Faile ei saa jagada kustutamise õigusega", + "Files can’t be shared with create permissions" : "Faile ei saa jagada loomise õigusega", + "Expiration date is in the past" : "Aegumise kuupäev on minevikus", + "Can’t set expiration date more than %s days in the future" : "Ei sa määrata aegumise kuupäeva rohkem kui %s päeva tulevikus", + "%s shared »%s« with you" : "%s jagas sinuga »%s«", + "%s shared »%s« with you." : "%s jagas »%s« sinuga.", + "Click the button below to open it." : "Vajuta allolevat nuppu, et see avada.", + "Open »%s«" : "Ava »%s«", + "%s via %s" : "%s läbi %s", + "The requested share does not exist anymore" : "Soovitud jagamist enam ei eksisteeri", + "Could not find category \"%s\"" : "Ei leia kategooriat \"%s\"", + "Sunday" : "Pühapäev", + "Monday" : "Esmaspäev", + "Tuesday" : "Teisipäev", + "Wednesday" : "Kolmapäev", + "Thursday" : "Neljapäev", + "Friday" : "Reede", + "Saturday" : "Laupäev", + "Sun." : "P", + "Mon." : "E", + "Tue." : "T", + "Wed." : "K", + "Thu." : "N", + "Fri." : "R", + "Sat." : "L", + "Su" : "P", + "Mo" : "E", + "Tu" : "T", + "We" : "K", + "Th" : "N", + "Fr" : "R", + "Sa" : "L", + "January" : "Jaanuar", + "February" : "Veebruar", + "March" : "Märts", + "April" : "Aprill", + "May" : "Mai", + "June" : "Juuni", + "July" : "Juuli", + "August" : "August", + "September" : "September", + "October" : "Oktoober", + "November" : "November", + "December" : "Detsember", + "Jan." : "Jaan.", + "Feb." : "Veebr.", + "Mar." : "Märts.", + "Apr." : "Apr.", + "May." : "Mai.", + "Jun." : "Juuni.", + "Jul." : "Juuli.", + "Aug." : "Aug.", + "Sep." : "Sept.", + "Oct." : "Okt.", + "Nov." : "Nov.", + "Dec." : "Dets.", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Kasutajanimes on lubatud ainult järgmised sümbolid: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"", + "A valid username must be provided" : "Sisesta nõuetele vastav kasutajatunnus", + "Username contains whitespace at the beginning or at the end" : "Kasutajanime alguses või lõpus on tühik", + "Username must not consist of dots only" : "Kasutajanimi ei tohi koosneda ainult punktidest", + "A valid password must be provided" : "Sisesta nõuetele vastav parool", + "The username is already being used" : "Kasutajanimi on juba kasutuses", + "Could not create user" : "Ei saanud kasutajat luua", + "User disabled" : "Kasutaja deaktiveeritud", + "No app name specified" : "Ühegi rakendi nime pole määratletud", + "App '%s' could not be installed!" : "Rakendust '%s' ei saa paigaldada!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "Rakendust \"%s\" ei saa paigaldada sest järgmised sõltuvused ei ole täidetud: %s", + "a safe home for all your data" : "turvaline koht sinu andmetele", + "File is currently busy, please try again later" : "Fail on hetkel kasutuses, proovi hiljem uuesti", + "Can't read file" : "Faili lugemine ebaõnnestus", + "Application is not enabled" : "Rakendus pole sisse lülitatud", + "Authentication error" : "Autentimise viga", + "Token expired. Please reload page." : "Kontrollkood aegus. Paelun lae leht uuesti.", + "Unknown user" : "Tundmatu kasutaja", + "No database drivers (sqlite, mysql, or postgresql) installed." : "Ühtegi andmebaasi (sqlite, mysql või postgresql) draiverit pole paigaldatud.", + "Cannot write into \"config\" directory" : "Ei saa kirjutada \"config\" kataloogi", + "Cannot write into \"apps\" directory" : "Ei saa kirjutada \"apps\" kataloogi!", + "Cannot create \"data\" directory" : "Ei suuda luua \"data\" kataloogi", + "Setting locale to %s failed" : "Lokaadi %s määramine ebaõnnestus.", + "Please install one of these locales on your system and restart your webserver." : "Palun paigalda mõni neist lokaatides oma süsteemi ning taaskäivita veebiserver.", + "Please ask your server administrator to install the module." : "Palu oma serveri haldajal moodul paigadalda.", + "PHP module %s not installed." : "PHP moodulit %s pole paigaldatud.", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "See on tõenäoliselt põhjustatud puhver/kiirendist nagu Zend OPcache või eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "PHP moodulid on paigaldatud, kuid neid näitatakse endiselt kui puuduolevad?", + "Please ask your server administrator to restart the web server." : "Palu oma serveri haldajal veebiserver taaskäivitada.", + "PostgreSQL >= 9 required" : "PostgreSQL >= 9 on nõutav", + "Please upgrade your database version" : "Palun uuenda oma andmebaasi versiooni", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Palun muuda kataloogi õigused 0770-ks, et kataloogi sisu poleks teistele kasutajatele nähtav", + "Could not obtain lock type %d on \"%s\"." : "Ei suutnud hankida %d tüüpi lukustust \"%s\".", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Tavaliselt saab selle lahendada %s andes veebiserverile seadete kataloogile \"config\" kirjutusõigused %s", + "Server settings" : "Serveri seaded", + "DB Error: \"%s\"" : "Andmebaasi viga: \"%s\"", + "Offending command was: \"%s\"" : "Tõrkuv käsk oli: \"%s\"", + "You need to enter either an existing account or the administrator." : "Sisesta kas juba olemasolev konto või administrator.", + "Offending command was: \"%s\", name: %s, password: %s" : "Tõrkuv käsk oli: \"%s\", nimi: %s, parool: %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Lubade seadistus %s jaoks ebaõnnestus, kuna antud õigused ületavad %s jaoks määratud õigusi", + "Setting permissions for %s failed, because the item was not found" : "Lubade seadistus %s jaoks ebaõnnestus, kuna üksust ei leitud", + "Cannot clear expiration date. Shares are required to have an expiration date." : "Aegumise kuupäeva ei saa tühjendada. Jagamistel peab olema aegumise kuupäev.", + "Cannot increase permissions of %s" : "Ei saa %s õigusi suurendada", + "Files can't be shared with delete permissions" : "Faile ei saa jagada kustutamise õigustega", + "Files can't be shared with create permissions" : "Faile ei saa jagada loomise õigustega", + "Cannot set expiration date more than %s days in the future" : "Ei sa määrata aegumise kuupäeva rohkem kui %s päeva tulevikus", + "Personal" : "Isiklik", + "Admin" : "Admin", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Tavaliselt saab selle lahendada %s andes veebiserverile rakendite kataloogile kirjutusõigused %s või keelates seadetes rakendikogu.", + "Cannot create \"data\" directory (%s)" : "Ei suuda luua \"data\" kataloogi (%s)", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Õigused saab tavaliselt paika %s andes veebiserverile juurkataloogile kirjutusõigused %s", + "Data directory (%s) is readable by other users" : "Andmete kataloog (%s) on teistele kasutajate loetav", + "Data directory (%s) is invalid" : "Andmete kataloog (%s) pole korrektne", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Palun veendu, et andmete kataloogis sisaldub fail \".ocdata\" " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +} \ No newline at end of file diff --git a/settings/l10n/et_EE.js b/settings/l10n/et_EE.js index d134bdc2601a9..085612dafacaa 100644 --- a/settings/l10n/et_EE.js +++ b/settings/l10n/et_EE.js @@ -20,6 +20,8 @@ OC.L10N.register( "Unable to change password" : "Ei suuda parooli muuta", "Authentication error" : "Autentimise viga", "Wrong admin recovery password. Please check the password and try again." : "Vale administraatori taasteparool. Palun kontrolli parooli ning proovi uuesti.", + "installing and updating apps via the app store or Federated Cloud Sharing" : "Paigaldan ja uuendan rakendusi läbi rakenduste poe või liitpilve jagamise", + "Federated Cloud Sharing" : "Jagamine liitpilves", "A problem occurred, please check your log files (Error: %s)" : "Ilmnes viga, palun kontrollige logifaile. (Viga: %s)", "Migration Completed" : "Kolimine on lõpetatud", "Group already exists." : "Grupp on juba olemas.", diff --git a/settings/l10n/et_EE.json b/settings/l10n/et_EE.json index 3deb9f95f5bbb..079a16df360cc 100644 --- a/settings/l10n/et_EE.json +++ b/settings/l10n/et_EE.json @@ -18,6 +18,8 @@ "Unable to change password" : "Ei suuda parooli muuta", "Authentication error" : "Autentimise viga", "Wrong admin recovery password. Please check the password and try again." : "Vale administraatori taasteparool. Palun kontrolli parooli ning proovi uuesti.", + "installing and updating apps via the app store or Federated Cloud Sharing" : "Paigaldan ja uuendan rakendusi läbi rakenduste poe või liitpilve jagamise", + "Federated Cloud Sharing" : "Jagamine liitpilves", "A problem occurred, please check your log files (Error: %s)" : "Ilmnes viga, palun kontrollige logifaile. (Viga: %s)", "Migration Completed" : "Kolimine on lõpetatud", "Group already exists." : "Grupp on juba olemas.", From 8ed728c1a2126ac11207c498ce6935ef307b3982 Mon Sep 17 00:00:00 2001 From: Nextcloud bot Date: Mon, 11 Dec 2017 01:10:20 +0000 Subject: [PATCH 76/92] [tx-robot] updated from transifex --- apps/federatedfilesharing/l10n/nl.js | 2 +- apps/federatedfilesharing/l10n/nl.json | 2 +- apps/files/l10n/ja.js | 4 +- apps/files/l10n/ja.json | 4 +- apps/files/l10n/zh_TW.js | 4 + apps/files/l10n/zh_TW.json | 4 + apps/systemtags/l10n/zh_TW.js | 40 ++++- apps/systemtags/l10n/zh_TW.json | 40 ++++- core/l10n/fr.js | 1 + core/l10n/fr.json | 1 + core/l10n/nl.js | 10 +- core/l10n/nl.json | 10 +- core/l10n/zh_TW.js | 45 ++++-- core/l10n/zh_TW.json | 45 ++++-- lib/l10n/nl.js | 2 +- lib/l10n/nl.json | 2 +- settings/l10n/nl.js | 8 +- settings/l10n/nl.json | 8 +- settings/l10n/zh_TW.js | 198 ++++++++++++++++++------- settings/l10n/zh_TW.json | 198 ++++++++++++++++++------- 20 files changed, 466 insertions(+), 162 deletions(-) diff --git a/apps/federatedfilesharing/l10n/nl.js b/apps/federatedfilesharing/l10n/nl.js index 11b5525e399d1..e764d8d673905 100644 --- a/apps/federatedfilesharing/l10n/nl.js +++ b/apps/federatedfilesharing/l10n/nl.js @@ -27,7 +27,7 @@ OC.L10N.register( "Sharing %s failed, because this item is already shared with %s" : "Delen van %s is mislukt, omdat het object al wordt gedeeld met %s", "Not allowed to create a federated share with the same user" : "Het is niet toegestaan om een gefedereerde share met dezelfde gebruikersserver te maken", "File is already shared with %s" : "Bestand is al gedeeld met %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Delen van %s mislukt, kon %s niet vinden, misschien is de server niet bereikbaar of u gebruikt een zelf getekend certificaat.", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Delen van %s mislukt, kon %s niet vinden, misschien is de server niet bereikbaar of je gebruikt een zelf getekend certificaat.", "Could not find share" : "Kon share niet vinden", "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Je ontving \"%3$s\" als een extern deel verzoek van %1$s (namens %2$s)", "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Je ontving {share} als een extern deel verzoek van {user} (namens {behalf})", diff --git a/apps/federatedfilesharing/l10n/nl.json b/apps/federatedfilesharing/l10n/nl.json index 8caaab558c805..5e3ea12bdf541 100644 --- a/apps/federatedfilesharing/l10n/nl.json +++ b/apps/federatedfilesharing/l10n/nl.json @@ -25,7 +25,7 @@ "Sharing %s failed, because this item is already shared with %s" : "Delen van %s is mislukt, omdat het object al wordt gedeeld met %s", "Not allowed to create a federated share with the same user" : "Het is niet toegestaan om een gefedereerde share met dezelfde gebruikersserver te maken", "File is already shared with %s" : "Bestand is al gedeeld met %s", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Delen van %s mislukt, kon %s niet vinden, misschien is de server niet bereikbaar of u gebruikt een zelf getekend certificaat.", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Delen van %s mislukt, kon %s niet vinden, misschien is de server niet bereikbaar of je gebruikt een zelf getekend certificaat.", "Could not find share" : "Kon share niet vinden", "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Je ontving \"%3$s\" als een extern deel verzoek van %1$s (namens %2$s)", "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Je ontving {share} als een extern deel verzoek van {user} (namens {behalf})", diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js index c92138cbcfee6..77a97ed35d116 100644 --- a/apps/files/l10n/ja.js +++ b/apps/files/l10n/ja.js @@ -113,8 +113,8 @@ OC.L10N.register( "Save" : "保存", "With PHP-FPM it might take 5 minutes for changes to be applied." : "PHP-FPM の場合は値を変更後、反映されるのに5分程度かかります。", "Missing permissions to edit from here." : "ここから編集するための権限がありません。", - "%s of %s used" : "%s のうち%s が使われています", - "%s used" : "%s 使われています", + "%s of %s used" : "%s / %s 使用中", + "%s used" : "%s 使用中", "Settings" : "設定", "Show hidden files" : "隠しファイルを表示", "WebDAV" : "WebDAV", diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json index b4dafd2565dc4..32fd39ecbe470 100644 --- a/apps/files/l10n/ja.json +++ b/apps/files/l10n/ja.json @@ -111,8 +111,8 @@ "Save" : "保存", "With PHP-FPM it might take 5 minutes for changes to be applied." : "PHP-FPM の場合は値を変更後、反映されるのに5分程度かかります。", "Missing permissions to edit from here." : "ここから編集するための権限がありません。", - "%s of %s used" : "%s のうち%s が使われています", - "%s used" : "%s 使われています", + "%s of %s used" : "%s / %s 使用中", + "%s used" : "%s 使用中", "Settings" : "設定", "Show hidden files" : "隠しファイルを表示", "WebDAV" : "WebDAV", diff --git a/apps/files/l10n/zh_TW.js b/apps/files/l10n/zh_TW.js index 625d9176d6515..a0e9e1642dc1d 100644 --- a/apps/files/l10n/zh_TW.js +++ b/apps/files/l10n/zh_TW.js @@ -19,6 +19,8 @@ OC.L10N.register( "Uploading …" : "上傳中...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中的 {loadedSize} ({bitrate})", + "Target folder does not exist any more" : "目標資料夾已經不存在了", + "Error when assembling chunks, status code {status}" : "重組檔案片段時出錯,狀態代碼 {status}", "Actions" : "動作", "Download" : "下載", "Rename" : "重新命名", @@ -39,6 +41,8 @@ OC.L10N.register( "Could not move \"{file}\"" : "無法移動 \"{file}\"", "Could not copy \"{file}\", target exists" : "無法複製\"{file}\",目標已存在", "Could not copy \"{file}\"" : "無法複製\"{file}\"", + "Copied {origin} inside {destination}" : "已複製 {origin} 至 {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "已複製 {origin} 和其他 {nbfiles} 個檔案至 {destination}", "{newName} already exists" : "{newName} 已經存在", "Could not rename \"{fileName}\", it does not exist any more" : "無法命名檔案 \"{fileName}\",因為此檔案已經不存在", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱 \"{targetName}\" 在這資料夾 \"{dir}\" 已經被使用。請重新選擇不同的名稱", diff --git a/apps/files/l10n/zh_TW.json b/apps/files/l10n/zh_TW.json index 871f33e127627..41db3db0d49e9 100644 --- a/apps/files/l10n/zh_TW.json +++ b/apps/files/l10n/zh_TW.json @@ -17,6 +17,8 @@ "Uploading …" : "上傳中...", "…" : "...", "{loadedSize} of {totalSize} ({bitrate})" : "{totalSize} 中的 {loadedSize} ({bitrate})", + "Target folder does not exist any more" : "目標資料夾已經不存在了", + "Error when assembling chunks, status code {status}" : "重組檔案片段時出錯,狀態代碼 {status}", "Actions" : "動作", "Download" : "下載", "Rename" : "重新命名", @@ -37,6 +39,8 @@ "Could not move \"{file}\"" : "無法移動 \"{file}\"", "Could not copy \"{file}\", target exists" : "無法複製\"{file}\",目標已存在", "Could not copy \"{file}\"" : "無法複製\"{file}\"", + "Copied {origin} inside {destination}" : "已複製 {origin} 至 {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "已複製 {origin} 和其他 {nbfiles} 個檔案至 {destination}", "{newName} already exists" : "{newName} 已經存在", "Could not rename \"{fileName}\", it does not exist any more" : "無法命名檔案 \"{fileName}\",因為此檔案已經不存在", "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "此名稱 \"{targetName}\" 在這資料夾 \"{dir}\" 已經被使用。請重新選擇不同的名稱", diff --git a/apps/systemtags/l10n/zh_TW.js b/apps/systemtags/l10n/zh_TW.js index bfcf22f94bad8..5638d565c052e 100644 --- a/apps/systemtags/l10n/zh_TW.js +++ b/apps/systemtags/l10n/zh_TW.js @@ -2,9 +2,47 @@ OC.L10N.register( "systemtags", { "Tags" : "標籤", + "Update" : "套用", + "Create" : "新增", + "Select tag…" : "選擇標籤", + "Tagged files" : "已標籤檔案", + "Select tags to filter by" : "依照選擇的標籤篩選", + "No tags found" : "找不到標籤", + "Please select tags to filter by" : "請選擇標籤以篩選", + "No files found for the selected tags" : "沒有與選擇的標籤相符的檔案", + "Added system tag %1$s" : "已加入系統標籤 %1$s", + "Added system tag {systemtag}" : "已加入系統標籤 {systemtag}", + "%1$s added system tag %2$s" : "%1$s已加入系統標籤 %2$s", + "{actor} added system tag {systemtag}" : "{actor} 已加入系統標籤 {systemtag}", + "Removed system tag %1$s" : "已移除系統標籤 %1$s", + "Removed system tag {systemtag}" : "已移除系統標籤 {systemtag}", + "%1$s removed system tag %2$s" : "%1$s 已移除系統標籤 %2$s", + "{actor} removed system tag {systemtag}" : "{actor} 已移除系統標籤 {systemtag}", + "You created system tag %1$s" : "您新增了系統標籤 %1$s", + "You created system tag {systemtag}" : "您新增了系統標籤 {systemtag}", + "%1$s created system tag %2$s" : "%1$s 新增了系統標籤 %2$s", + "{actor} created system tag {systemtag}" : "{actor} 新增了系統標籤 {systemtag}", + "You deleted system tag %1$s" : "您刪除了系統標籤 %1$s", + "You deleted system tag {systemtag}" : "您刪除了系統標籤 {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s刪除了系統標籤 %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} 刪除了系統標籤 {systemtag}", + "You updated system tag %2$s to %1$s" : "您更新了系統標籤 %2$s 為 %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "您更新了系統標籤 {oldsystemtag} 為 {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s 更新了系統標籤 %3$s 為 %2$s", + "%s (restricted)" : "%s (受限)", + "%s (invisible)" : "%s (隱藏)", + "System tags for a file have been modified" : "一個檔案的系統標籤已經被修改", + "Collaborative tags" : "協作標籤", + "Create and edit collaborative tags. These tags affect all users." : "新增和編輯協作標籤,這些標籤將影響所有使用者", + "Select tag …" : "選擇標籤…", + "Name" : "名稱", + "Delete" : "移除", + "Public" : "公開", + "Restricted" : "受限", + "Invisible" : "隱藏", + "Reset" : "重設", "No files in here" : "沒有任何檔案", "No entries found in this folder" : "在此資料夾中沒有任何項目", - "Name" : "名稱", "Size" : "大小", "Modified" : "修改時間" }, diff --git a/apps/systemtags/l10n/zh_TW.json b/apps/systemtags/l10n/zh_TW.json index abd8415c4cf17..20858a6f2fb16 100644 --- a/apps/systemtags/l10n/zh_TW.json +++ b/apps/systemtags/l10n/zh_TW.json @@ -1,8 +1,46 @@ { "translations": { "Tags" : "標籤", + "Update" : "套用", + "Create" : "新增", + "Select tag…" : "選擇標籤", + "Tagged files" : "已標籤檔案", + "Select tags to filter by" : "依照選擇的標籤篩選", + "No tags found" : "找不到標籤", + "Please select tags to filter by" : "請選擇標籤以篩選", + "No files found for the selected tags" : "沒有與選擇的標籤相符的檔案", + "Added system tag %1$s" : "已加入系統標籤 %1$s", + "Added system tag {systemtag}" : "已加入系統標籤 {systemtag}", + "%1$s added system tag %2$s" : "%1$s已加入系統標籤 %2$s", + "{actor} added system tag {systemtag}" : "{actor} 已加入系統標籤 {systemtag}", + "Removed system tag %1$s" : "已移除系統標籤 %1$s", + "Removed system tag {systemtag}" : "已移除系統標籤 {systemtag}", + "%1$s removed system tag %2$s" : "%1$s 已移除系統標籤 %2$s", + "{actor} removed system tag {systemtag}" : "{actor} 已移除系統標籤 {systemtag}", + "You created system tag %1$s" : "您新增了系統標籤 %1$s", + "You created system tag {systemtag}" : "您新增了系統標籤 {systemtag}", + "%1$s created system tag %2$s" : "%1$s 新增了系統標籤 %2$s", + "{actor} created system tag {systemtag}" : "{actor} 新增了系統標籤 {systemtag}", + "You deleted system tag %1$s" : "您刪除了系統標籤 %1$s", + "You deleted system tag {systemtag}" : "您刪除了系統標籤 {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s刪除了系統標籤 %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} 刪除了系統標籤 {systemtag}", + "You updated system tag %2$s to %1$s" : "您更新了系統標籤 %2$s 為 %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "您更新了系統標籤 {oldsystemtag} 為 {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s 更新了系統標籤 %3$s 為 %2$s", + "%s (restricted)" : "%s (受限)", + "%s (invisible)" : "%s (隱藏)", + "System tags for a file have been modified" : "一個檔案的系統標籤已經被修改", + "Collaborative tags" : "協作標籤", + "Create and edit collaborative tags. These tags affect all users." : "新增和編輯協作標籤,這些標籤將影響所有使用者", + "Select tag …" : "選擇標籤…", + "Name" : "名稱", + "Delete" : "移除", + "Public" : "公開", + "Restricted" : "受限", + "Invisible" : "隱藏", + "Reset" : "重設", "No files in here" : "沒有任何檔案", "No entries found in this folder" : "在此資料夾中沒有任何項目", - "Name" : "名稱", "Size" : "大小", "Modified" : "修改時間" },"pluralForm" :"nplurals=1; plural=0;" diff --git a/core/l10n/fr.js b/core/l10n/fr.js index 5de19e4ea6bce..e5b2c7a47badc 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -116,6 +116,7 @@ OC.L10N.register( "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Aucun cache mémoire n'est configuré. Si possible, configurez un \"memcache\" pour améliorer les performances. Pour plus d'informations consultez la documentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom n'est pas lisible par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Vous utilisez actuellement PHP {version}. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Vous utiliser actuellement PHP 5.6. La version majeure actuelle de Nextcloud est la dernière qui est supportée sous PHP 5.6. Il est recommandé de mettre à niveau PHP vers la version 7.0+ pour pouvoir passer à Nextcloud 14.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuration des entêtes du proxy inverse est incorrecte, ou vous accédez à Nextcloud depuis un proxy de confiance. Si vous n'êtes pas en train d’accéder à Nextcloud depuis un proxy de confiance, il y a un problème de sécurité qui peut permettre à un attaquant d'usurper l'adresse IP affichée à Nextcloud. Vous trouverez plus d'informations dans notre documentation.", "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 memcached wiki about both modules." : "\"memcached\" est configuré comme cache distribué, mais le mauvais module PHP \"memcache\" est installé. \\OC\\Memcache\\Memcached ne prend en charge que \"memcached\" et non \"memcache\". Consulter le wiki de memcached à propos de ces deux modules.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Des fichiers n'ont pas passé la vérification d’intégrité. Vous trouverez plus d'information sur comment résoudre ce problème dans notre documentation. (Liste des fichiers invalides… / Rescanner…)", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index 2b302a3fac2d0..eb0a22cc5b1ff 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -114,6 +114,7 @@ "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "Aucun cache mémoire n'est configuré. Si possible, configurez un \"memcache\" pour améliorer les performances. Pour plus d'informations consultez la documentation.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "/dev/urandom n'est pas lisible par PHP, ce qui est fortement déconseillé pour des raisons de sécurité. Vous trouverez plus d'informations dans la documentation.", "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Vous utilisez actuellement PHP {version}. Mettez à jour votre version de PHP afin de tirer avantage des améliorations liées à la performance et la sécurité fournies par le PHP Group dès que votre distribution le supportera.", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "Vous utiliser actuellement PHP 5.6. La version majeure actuelle de Nextcloud est la dernière qui est supportée sous PHP 5.6. Il est recommandé de mettre à niveau PHP vers la version 7.0+ pour pouvoir passer à Nextcloud 14.", "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "La configuration des entêtes du proxy inverse est incorrecte, ou vous accédez à Nextcloud depuis un proxy de confiance. Si vous n'êtes pas en train d’accéder à Nextcloud depuis un proxy de confiance, il y a un problème de sécurité qui peut permettre à un attaquant d'usurper l'adresse IP affichée à Nextcloud. Vous trouverez plus d'informations dans notre documentation.", "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 memcached wiki about both modules." : "\"memcached\" est configuré comme cache distribué, mais le mauvais module PHP \"memcache\" est installé. \\OC\\Memcache\\Memcached ne prend en charge que \"memcached\" et non \"memcache\". Consulter le wiki de memcached à propos de ces deux modules.", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in the documentation. (List of invalid files… / Rescan…)" : "Des fichiers n'ont pas passé la vérification d’intégrité. Vous trouverez plus d'information sur comment résoudre ce problème dans notre documentation. (Liste des fichiers invalides… / Rescanner…)", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index 488247c4176e3..59c4dc4d23c4d 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -211,7 +211,7 @@ OC.L10N.register( "The specified document has not been found on the server." : "Het opgegeven document is niet gevonden op deze server.", "You can click here to return to %s." : "Klik hier om terug te keren naar %s.", "Internal Server Error" : "Interne serverfout", - "The server was unable to complete your request." : "De server was niet in staat uw aanvraag te verwerken.", + "The server was unable to complete your request." : "De server was niet in staat je aanvraag te verwerken.", "If this happens again, please send the technical details below to the server administrator." : "Stuur de hieronder afgebeelde technische details naar de server beheerder wanneer dit opnieuw gebeurd.", "More details can be found in the server log." : "Meer details in de serverlogging,", "Technical details" : "Technische details", @@ -233,7 +233,7 @@ OC.L10N.register( "Configure the database" : "Configureer de database", "Only %s is available." : "Alleen %s is beschikbaar.", "Install and activate additional PHP modules to choose other database types." : "Installeer en activeer aanvullende PHP modules om andere soorten databases te kiezen.", - "For more details check out the documentation." : "Voor meer informatie wordt u verwezen naar de documentatie.", + "For more details check out the documentation." : "Voor meer informatie word je verwezen naar de documentatie.", "Database user" : "Gebruiker database", "Database password" : "Wachtwoord database", "Database name" : "Naam database", @@ -279,14 +279,14 @@ OC.L10N.register( "Error while validating your second factor" : "Fout bij het verifiëren van je tweede factor", "Access through untrusted domain" : "Toegang via een niet vertrouwd domein", "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Neem contact op met je beheerder. Wanneer je een beheerder bent kun je de \"trusted_domains\" instelling bewerken in config/config.php zoals in het voorbeeld config.sample.php. ", - "Depending on your configuration, this button could also work to trust the domain:" : "Afhankelijk van uw configuratie kan deze knop ook werken om het volgende domein te vertrouwen:", + "Depending on your configuration, this button could also work to trust the domain:" : "Afhankelijk van je configuratie kan deze knop ook werken om het volgende domein te vertrouwen:", "Add \"%s\" as trusted domain" : "\"%s\" toevoegen als vertrouwd domein", "App update required" : "Bijwerken App vereist", "%s will be updated to version %s" : "%s wordt bijgewerkt naar versie %s", "These apps will be updated:" : "Deze apps worden bijgewerkt:", "These incompatible apps will be disabled:" : "De volgende incompatibele apps worden uitgeschakeld:", "The theme %s has been disabled." : "Het thema %s is uitgeschakeld.", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Let erop dat de database, de config map en de data map zijn gebackupped voordat u verder gaat.", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Let erop dat de database, de config map en de data map zijn gebackupt voordat je verder gaat.", "Start update" : "Begin de update", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Om time-outs tijdens grotere installaties te voorkomen, kun je in plaats hiervan de volgende opdracht geven vanaf je installatiedirectory:", "Detailed logs" : "Gedetailleerde logs", @@ -304,7 +304,7 @@ OC.L10N.register( "Ok" : "Ok", "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Je webserver is nog niet goed ingesteld voor bestandssynchronisatie, omdat de WebDAV interface verstoord lijkt.", "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our documentation." : "Je webserver is niet goed ingesteld om \"{url}\" te vinden. Meer informatie is te vinden in onze documentatie.", - "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Deze server heeft geen actieve internetverbinding: meerdere endpoints kunnen niet worden bereikt. Dat betekent dat sommige functies, zoals aankoppelen van externe opslag, notificaties over updates of installatie van apps van derde partijen niet werken. Ook het benaderen van bestanden vanaf een remote locatie en het versturen van notificatie emails kan mislukken. We adviseren om de internetverbinding voor deze server in te schakelen als u alle functies wilt gebruiken.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Deze server heeft geen actieve internetverbinding: meerdere endpoints kunnen niet worden bereikt. Dat betekent dat sommige functies, zoals aankoppelen van externe opslag, notificaties over updates of installatie van apps van derde partijen niet werken. Ook het benaderen van bestanden vanaf een remote locatie en het versturen van notificatie emails kan mislukken. We adviseren om de internetverbinding voor deze server in te schakelen als je alle functies wilt gebruiken.", "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our documentation." : "Er is geen geheugencache geconfigureerd. Om de prestaties te verhogen kun je de memcache configureren als die beschikbaar is. Meer informatie vind je in onze documentatie.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our documentation." : "/dev/urandom is niet leesbaar door PHP, hetgeen wordt afgeraden wegens beveiligingsredenen. Meer informatie in onze documentatie.", "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Je draait momenteel PHP {version}. We adviseren je om, zo gauw je distributie dat biedt, je PHP versie bij te werken voor betere prestaties en beveiliging geleverd door de PHP Group.", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index 0ff1c616af911..cf22206875dab 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -209,7 +209,7 @@ "The specified document has not been found on the server." : "Het opgegeven document is niet gevonden op deze server.", "You can click here to return to %s." : "Klik hier om terug te keren naar %s.", "Internal Server Error" : "Interne serverfout", - "The server was unable to complete your request." : "De server was niet in staat uw aanvraag te verwerken.", + "The server was unable to complete your request." : "De server was niet in staat je aanvraag te verwerken.", "If this happens again, please send the technical details below to the server administrator." : "Stuur de hieronder afgebeelde technische details naar de server beheerder wanneer dit opnieuw gebeurd.", "More details can be found in the server log." : "Meer details in de serverlogging,", "Technical details" : "Technische details", @@ -231,7 +231,7 @@ "Configure the database" : "Configureer de database", "Only %s is available." : "Alleen %s is beschikbaar.", "Install and activate additional PHP modules to choose other database types." : "Installeer en activeer aanvullende PHP modules om andere soorten databases te kiezen.", - "For more details check out the documentation." : "Voor meer informatie wordt u verwezen naar de documentatie.", + "For more details check out the documentation." : "Voor meer informatie word je verwezen naar de documentatie.", "Database user" : "Gebruiker database", "Database password" : "Wachtwoord database", "Database name" : "Naam database", @@ -277,14 +277,14 @@ "Error while validating your second factor" : "Fout bij het verifiëren van je tweede factor", "Access through untrusted domain" : "Toegang via een niet vertrouwd domein", "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Neem contact op met je beheerder. Wanneer je een beheerder bent kun je de \"trusted_domains\" instelling bewerken in config/config.php zoals in het voorbeeld config.sample.php. ", - "Depending on your configuration, this button could also work to trust the domain:" : "Afhankelijk van uw configuratie kan deze knop ook werken om het volgende domein te vertrouwen:", + "Depending on your configuration, this button could also work to trust the domain:" : "Afhankelijk van je configuratie kan deze knop ook werken om het volgende domein te vertrouwen:", "Add \"%s\" as trusted domain" : "\"%s\" toevoegen als vertrouwd domein", "App update required" : "Bijwerken App vereist", "%s will be updated to version %s" : "%s wordt bijgewerkt naar versie %s", "These apps will be updated:" : "Deze apps worden bijgewerkt:", "These incompatible apps will be disabled:" : "De volgende incompatibele apps worden uitgeschakeld:", "The theme %s has been disabled." : "Het thema %s is uitgeschakeld.", - "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Let erop dat de database, de config map en de data map zijn gebackupped voordat u verder gaat.", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Let erop dat de database, de config map en de data map zijn gebackupt voordat je verder gaat.", "Start update" : "Begin de update", "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Om time-outs tijdens grotere installaties te voorkomen, kun je in plaats hiervan de volgende opdracht geven vanaf je installatiedirectory:", "Detailed logs" : "Gedetailleerde logs", @@ -302,7 +302,7 @@ "Ok" : "Ok", "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Je webserver is nog niet goed ingesteld voor bestandssynchronisatie, omdat de WebDAV interface verstoord lijkt.", "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our documentation." : "Je webserver is niet goed ingesteld om \"{url}\" te vinden. Meer informatie is te vinden in onze documentatie.", - "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Deze server heeft geen actieve internetverbinding: meerdere endpoints kunnen niet worden bereikt. Dat betekent dat sommige functies, zoals aankoppelen van externe opslag, notificaties over updates of installatie van apps van derde partijen niet werken. Ook het benaderen van bestanden vanaf een remote locatie en het versturen van notificatie emails kan mislukken. We adviseren om de internetverbinding voor deze server in te schakelen als u alle functies wilt gebruiken.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Deze server heeft geen actieve internetverbinding: meerdere endpoints kunnen niet worden bereikt. Dat betekent dat sommige functies, zoals aankoppelen van externe opslag, notificaties over updates of installatie van apps van derde partijen niet werken. Ook het benaderen van bestanden vanaf een remote locatie en het versturen van notificatie emails kan mislukken. We adviseren om de internetverbinding voor deze server in te schakelen als je alle functies wilt gebruiken.", "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our documentation." : "Er is geen geheugencache geconfigureerd. Om de prestaties te verhogen kun je de memcache configureren als die beschikbaar is. Meer informatie vind je in onze documentatie.", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our documentation." : "/dev/urandom is niet leesbaar door PHP, hetgeen wordt afgeraden wegens beveiligingsredenen. Meer informatie in onze documentatie.", "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "Je draait momenteel PHP {version}. We adviseren je om, zo gauw je distributie dat biedt, je PHP versie bij te werken voor betere prestaties en beveiliging geleverd door de PHP Group.", diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js index 5c6e23cf9b4c6..525ff1cfa8c2d 100644 --- a/core/l10n/zh_TW.js +++ b/core/l10n/zh_TW.js @@ -29,7 +29,7 @@ OC.L10N.register( "Preparing update" : "準備更新", "[%d / %d]: %s" : "[%d / %d]: %s", "Repair warning: " : "修復警告:", - "Repair error: " : "修復錯誤", + "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" : "已啓用維護模式", @@ -50,7 +50,7 @@ OC.L10N.register( "Reset log level" : "重設記錄層級", "Starting code integrity check" : "開始檢查程式碼完整性", "Finished code integrity check" : "完成程式碼完整性檢查", - "%s (3rdparty)" : "%s (第3方)", + "%s (3rdparty)" : "%s (第三方)", "%s (incompatible)" : "%s (不相容的)", "Following apps have been disabled: %s" : "以下應用程式已經被停用:%s", "Already up to date" : "已經是最新版", @@ -61,7 +61,7 @@ OC.L10N.register( "Loading your contacts …" : "載入聯絡人…", "Looking for {term} …" : "搜尋 {term} …", "There were problems with the code integrity check. More information…" : "執行程式碼完整性檢查時發生問題。更多資訊…", - "No action available" : "沒有可套用的動作", + "No action available" : "沒有可用的動作", "Error fetching contact actions" : "擷取聯絡人動作發生錯誤", "Settings" : "設定", "Connection to server lost" : "伺服器連線中斷", @@ -73,14 +73,15 @@ OC.L10N.register( "Password" : "密碼", "Cancel" : "取消", "Confirm" : "確認", - "Failed to authenticate, try again" : "認證失敗,再試一次。", + "Failed to authenticate, try again" : "認證失敗,請再試一次", "seconds ago" : "幾秒前", - "Logging in …" : "載入中......", + "Logging in …" : "載入中…", "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.
If it is not there ask your local administrator." : "重設密碼的連結已經 email 至你的信箱,如果你在一段時間內沒收到,請檢查垃圾郵件資料夾,如果還是找不到,請聯絡系統管理員。", "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "您的檔案是加密的,當您重設密碼之後將無法存取您的資料。
如果不確定該怎麼做,請聯絡您的系統管理員。
您確定要繼續嗎?", "I know what I'm doing" : "我知道我在幹嘛", "Password can not be changed. Please contact your administrator." : "無法變更密碼,請聯絡您的系統管理員", "Reset password" : "重設密碼", + "Sending email …" : "傳送 email…", "No" : "否", "Yes" : "是", "No files in here" : "沒有任何檔案", @@ -109,7 +110,19 @@ OC.L10N.register( "So-so password" : "密碼強度普通", "Good password" : "密碼強度佳", "Strong password" : "密碼強度極佳", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "您的網頁伺服器設定不正確,因此無法啟用檔案同步,看來可能是 WebDAV 界面的設定有問題。", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "您的網頁伺服器設定不正確,因此無法解析 \"{url}\" ,請至說明文件瞭解更多資訊。", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "您沒有設定記憶體快取,如果可以,請完成設定來提升效能。更多資訊請查閱說明文件", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP 無法讀取 /dev/urandom,為保障安全,建議修正這個問題,進一步訊息可參考我們的說明文件。", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "您目前正運行 PHP {version} ,我們建議您升級 PHP 到您的發行版所支援的最新版本,以獲得 PHP 開發團隊提供的效能與安全性更新。", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "您目前正運行 PHP 5.6 ,目前使用的 Nextcloud 將會是最後一個支援 PHP 5.6 的版本,建議您升級至 PHP 7.0 以上以使用 Nextcloud 14。", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "偵測到您的反向代理標頭設定不正確,但也有可能是因為您目前正透過信任的代理伺服器存取 Nextcloud。若您目前不是透過信任的代理伺服器存取 Nextcloud,這就是一個安全性問題,允許攻擊者對 Nextcloud 假冒 IP 位址。更多資訊請查閱說明文件。", "Error occurred while checking server setup" : "檢查伺服器設定時發生錯誤", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 設定檔並未生效,我們強烈建議您設定網頁伺服器,拒絕公開存取資料目錄,或者將您的資料目錄移出網頁伺服器根目錄。", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "目前 HTTP 的 {header} 標頭設定並不是 \"{expected}\" ,這是一個潛在的安全性和隱私風險,我們建議調整此項設定。", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "目前 HTTP 的 {header} 標頭設定並不是 \"{expected}\" ,這將讓某些功能無法正常運作,我們建議修正此項設定。", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "HTTP \"Strict-Transport-Security\" 標頭並未被設定持續至少 {seconds} 秒。為了提高安全性,我們在安全小祕訣中有詳述並建議啟用 HSTS。", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "正在透過不安全的 HTTP 存取站台,強烈建議您設定伺服器啟用 HTTPS ,更多資訊請查閱安全小祕訣。", "Shared" : "已分享", "Shared with" : "分享給", "Shared by" : "分享自", @@ -222,7 +235,8 @@ OC.L10N.register( "Line: %s" : "行數:%s", "Trace" : "追蹤", "Security warning" : "安全性警告", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "您的資料目錄看起來可以被 Internet 公開存取,因為 .htaccess 設定並未生效。", + "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 documentation." : "閱讀說明文件來瞭解如何正確設定您的伺服器", "Create an admin account" : "建立一個管理者帳號", "Username" : "使用者名稱", "Storage & database" : "儲存空間和資料庫", @@ -258,6 +272,8 @@ OC.L10N.register( "Wrong password." : "密碼錯誤", "Log in" : "登入", "Stay logged in" : "保持登入狀態", + "Forgot password?" : "忘記密碼?", + "Back to log in" : "回到登入頁面", "Alternative Logins" : "其他登入方法", "Account access" : "帳戶存取", "You are about to grant %s access to your %s account." : "你已批准%s存取你的%s帳戶。", @@ -287,6 +303,7 @@ OC.L10N.register( "Detailed logs" : "詳細記錄檔", "Update needed" : "需要更新", "Please use the command line updater because you have a big instance with more than 50 users." : "因為您有超過50名使用者,服務規模較大,請透過命令提示字元介面更新", + "For help, see the documentation." : "若需要協助,請參閱說明文件", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "若我繼續透過網頁介面更新時我已了解有其風險,若請求逾時可能導致資料遺失,萬一更新失敗,我已準備好備份並知道如何回復運作。", "Upgrade via web on my own risk" : "願意承擔風險透過網頁更新", "This %s instance is currently in maintenance mode, which may take a while." : "這個 %s 安裝目前處於維護模式,需要一段時間恢復。", @@ -299,16 +316,16 @@ OC.L10N.register( "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 documentation." : "您的網頁伺服器並未正確設定來解析 \"{url}\" ,請查看我們的說明文件以瞭解更多", "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "伺服器沒有網際網路連線,有些功能,像是外部儲存、更新版通知將無法運作。從遠端存取資料或是寄送 email 通知可能也無法運作。建議您設定好網際網路連線以使用所有功能。", - "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our documentation." : "記憶體快取尚未設定。如果可以,請完成設定來提升效能。更多資訊請查閱說明文件", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our documentation." : "您沒有設定記憶體快取,如果可以,請完成設定來提升效能。更多資訊請查閱說明文件", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our documentation." : "PHP 無法讀取 /dev/urandom,為保障安全,建議修正這個問題,進一步訊息可參考我們的文件", "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "您目前正運行 PHP {version} ,我們建議您升級 PHP 到您的發行版所支援的最新版本,以獲得 PHP 開發團隊提供的效能與安全性更新。", - "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our documentation." : "反向代理標頭設定不正確,或者您正透過可信任的代理伺服器存取Nextcloud。若您不是透過可信任的代理伺服器存取Nextcloud,此安全問題會允許攻擊者對Nextcloud假冒IP位址。更多資訊請查閱說明文件。", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our documentation." : "偵測到您的反向代理標頭設定不正確,但也有可能是因為您目前正透過信任的代理伺服器存取 Nextcloud。若您目前不是透過信任的代理伺服器存取 Nextcloud,這就是一個安全性問題,允許攻擊者對 Nextcloud 假冒 IP 位址。更多資訊請查閱說明文件。", "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 memcached wiki about both modules." : "Memcached是用於分散式緩存的設置,但是目前安裝了錯誤的PHP模組為「memcache」。\\OC\\Memcache\\Memcached僅支援「memcached」而不是「memcache」。請參閱memcached wiki了解兩種模組資訊", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our documentation. (List of invalid files… / Rescan…)" : "有些檔案並未通過完整性檢查。可參閱詳細資訊,如我們的說明文件(無效檔案列表/重新檢查)以解決這些問題。", - "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." : "您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 檔案並未生效,我們強烈建議您設定您的網頁伺服器,拒絕資料目錄的公開存取,或者將您的資料目錄移出網頁伺服器根目錄。", - "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." : "\"{header}\" HTTP 標頭配置與 \"{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 security tips." : "此 HTTP \"Strict-Transport-Security\" 標頭並未設定持續至少 {seconds} 秒。為了提高安全性,我們在安全提示中有詳述並建議啟用 HSTS。", - "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our security tips." : "您正在藉由 HTTP 訪問此網站,如我們的安全性提示所述,我們強烈建議設定您的伺服器須要求使用 HTTPS", + "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." : "您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 設定檔並未生效,我們強烈建議您設定網頁伺服器,拒絕公開存取資料目錄,或者將您的資料目錄移出網頁伺服器根目錄。", + "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 security tips." : "HTTP \"Strict-Transport-Security\" 標頭並未設定持續至少 {seconds} 秒。為了提高安全性,我們在安全小祕訣中有詳述並建議啟用 HSTS。", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our security tips." : "您目前透過 HTTP 存取此網站,如我們的安全性提示所述,我們強烈建議設定您的伺服器要求使用 HTTPS。", "Shared with {recipients}" : "與 {recipients} 分享", "Error while unsharing" : "取消分享時發生錯誤", "can reshare" : "允許轉分享", @@ -338,7 +355,7 @@ OC.L10N.register( "Cheers!" : "太棒了!", "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." : "如果這個錯誤重複出現,請聯絡系統管理員,並附上以下的錯誤細節", - "For information how to properly configure your server, please see the documentation." : "關於如何有效設定您伺服器的資訊,請參閱此說明文件", + "For information how to properly configure your server, please see the documentation." : "閱讀說明文件來瞭解如何正確設定您的伺服器", "Log out" : "登出", "This action requires you to confirm your password:" : "這個動作需要您輸入密碼", "Wrong password. Reset it?" : "密碼錯誤,重設密碼?", @@ -353,7 +370,7 @@ OC.L10N.register( "For help, see the documentation." : "請參閱說明文件取得協助。", "The PHP OPcache is not properly configured. For better performance we recommend to use following settings in the php.ini:" : "PHP的OPcache功能並未被妥善設定。為了有更好的效能表現我們建議在php.ini檔案中使用以下設定:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "無法取得PHP中的「set_time_limit」函式。這可能導致執行過程中被終止並造成不完整安裝。我們強烈建議啟用該函式。", - "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended 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." : "您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 檔案並未生效,我們強烈建議您設定您的網頁伺服器,拒絕資料目錄被公開存取,或者將您的資料目錄移出網頁伺服器根目錄。", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended 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." : "您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 設定檔並未生效,我們強烈建議您設定網頁伺服器,拒絕公開存取資料目錄,或者將您的資料目錄移出網頁伺服器根目錄。", "You are about to grant \"%s\" access to your %s account." : "您將授予「%s」存取您的%s帳戶" }, "nplurals=1; plural=0;"); diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json index 6f331b6c04831..d491578bf2261 100644 --- a/core/l10n/zh_TW.json +++ b/core/l10n/zh_TW.json @@ -27,7 +27,7 @@ "Preparing update" : "準備更新", "[%d / %d]: %s" : "[%d / %d]: %s", "Repair warning: " : "修復警告:", - "Repair error: " : "修復錯誤", + "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" : "已啓用維護模式", @@ -48,7 +48,7 @@ "Reset log level" : "重設記錄層級", "Starting code integrity check" : "開始檢查程式碼完整性", "Finished code integrity check" : "完成程式碼完整性檢查", - "%s (3rdparty)" : "%s (第3方)", + "%s (3rdparty)" : "%s (第三方)", "%s (incompatible)" : "%s (不相容的)", "Following apps have been disabled: %s" : "以下應用程式已經被停用:%s", "Already up to date" : "已經是最新版", @@ -59,7 +59,7 @@ "Loading your contacts …" : "載入聯絡人…", "Looking for {term} …" : "搜尋 {term} …", "There were problems with the code integrity check. More information…" : "執行程式碼完整性檢查時發生問題。更多資訊…", - "No action available" : "沒有可套用的動作", + "No action available" : "沒有可用的動作", "Error fetching contact actions" : "擷取聯絡人動作發生錯誤", "Settings" : "設定", "Connection to server lost" : "伺服器連線中斷", @@ -71,14 +71,15 @@ "Password" : "密碼", "Cancel" : "取消", "Confirm" : "確認", - "Failed to authenticate, try again" : "認證失敗,再試一次。", + "Failed to authenticate, try again" : "認證失敗,請再試一次", "seconds ago" : "幾秒前", - "Logging in …" : "載入中......", + "Logging in …" : "載入中…", "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.
If it is not there ask your local administrator." : "重設密碼的連結已經 email 至你的信箱,如果你在一段時間內沒收到,請檢查垃圾郵件資料夾,如果還是找不到,請聯絡系統管理員。", "Your files are encrypted. There will be no way to get your data back after your password is reset.
If you are not sure what to do, please contact your administrator before you continue.
Do you really want to continue?" : "您的檔案是加密的,當您重設密碼之後將無法存取您的資料。
如果不確定該怎麼做,請聯絡您的系統管理員。
您確定要繼續嗎?", "I know what I'm doing" : "我知道我在幹嘛", "Password can not be changed. Please contact your administrator." : "無法變更密碼,請聯絡您的系統管理員", "Reset password" : "重設密碼", + "Sending email …" : "傳送 email…", "No" : "否", "Yes" : "是", "No files in here" : "沒有任何檔案", @@ -107,7 +108,19 @@ "So-so password" : "密碼強度普通", "Good password" : "密碼強度佳", "Strong password" : "密碼強度極佳", + "Your web server is not yet properly set up to allow file synchronization, because the WebDAV interface seems to be broken." : "您的網頁伺服器設定不正確,因此無法啟用檔案同步,看來可能是 WebDAV 界面的設定有問題。", + "Your web server is not properly set up to resolve \"{url}\". Further information can be found in the documentation." : "您的網頁伺服器設定不正確,因此無法解析 \"{url}\" ,請至說明文件瞭解更多資訊。", + "No memory cache has been configured. To enhance performance, please configure a memcache, if available. Further information can be found in the documentation." : "您沒有設定記憶體快取,如果可以,請完成設定來提升效能。更多資訊請查閱說明文件", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in the documentation." : "PHP 無法讀取 /dev/urandom,為保障安全,建議修正這個問題,進一步訊息可參考我們的說明文件。", + "You are currently running PHP {version}. Upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "您目前正運行 PHP {version} ,我們建議您升級 PHP 到您的發行版所支援的最新版本,以獲得 PHP 開發團隊提供的效能與安全性更新。", + "You are currently running PHP 5.6. The current major version of Nextcloud is the last that is supported on PHP 5.6. It is recommended to upgrade the PHP version to 7.0+ to be able to upgrade to Nextcloud 14." : "您目前正運行 PHP 5.6 ,目前使用的 Nextcloud 將會是最後一個支援 PHP 5.6 的版本,建議您升級至 PHP 7.0 以上以使用 Nextcloud 14。", + "The reverse proxy header configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If not, this is a security issue and can allow an attacker to spoof their IP address as visible to the Nextcloud. Further information can be found in the documentation." : "偵測到您的反向代理標頭設定不正確,但也有可能是因為您目前正透過信任的代理伺服器存取 Nextcloud。若您目前不是透過信任的代理伺服器存取 Nextcloud,這就是一個安全性問題,允許攻擊者對 Nextcloud 假冒 IP 位址。更多資訊請查閱說明文件。", "Error occurred while checking server setup" : "檢查伺服器設定時發生錯誤", + "Your data directory and files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server so that the data directory is no longer accessible, or move the data directory outside the web server document root." : "您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 設定檔並未生效,我們強烈建議您設定網頁伺服器,拒絕公開存取資料目錄,或者將您的資料目錄移出網頁伺服器根目錄。", + "The \"{header}\" HTTP header is not set to \"{expected}\". This is a potential security or privacy risk, as it is recommended to adjust this setting accordingly." : "目前 HTTP 的 {header} 標頭設定並不是 \"{expected}\" ,這是一個潛在的安全性和隱私風險,我們建議調整此項設定。", + "The \"{header}\" HTTP header is not set to \"{expected}\". Some features might not work correctly, as it is recommended to adjust this setting accordingly." : "目前 HTTP 的 {header} 標頭設定並不是 \"{expected}\" ,這將讓某些功能無法正常運作,我們建議修正此項設定。", + "The \"Strict-Transport-Security\" HTTP header is not set to at least \"{seconds}\" seconds. For enhanced security, it is recommended to enable HSTS as described in the security tips." : "HTTP \"Strict-Transport-Security\" 標頭並未被設定持續至少 {seconds} 秒。為了提高安全性,我們在安全小祕訣中有詳述並建議啟用 HSTS。", + "Accessing site insecurely via HTTP. You are strongly adviced to set up your server to require HTTPS instead, as described in the security tips." : "正在透過不安全的 HTTP 存取站台,強烈建議您設定伺服器啟用 HTTPS ,更多資訊請查閱安全小祕訣。", "Shared" : "已分享", "Shared with" : "分享給", "Shared by" : "分享自", @@ -220,7 +233,8 @@ "Line: %s" : "行數:%s", "Trace" : "追蹤", "Security warning" : "安全性警告", - "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "您的資料目錄看起來可以被 Internet 公開存取,因為 .htaccess 設定並未生效。", + "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 documentation." : "閱讀說明文件來瞭解如何正確設定您的伺服器", "Create an admin account" : "建立一個管理者帳號", "Username" : "使用者名稱", "Storage & database" : "儲存空間和資料庫", @@ -256,6 +270,8 @@ "Wrong password." : "密碼錯誤", "Log in" : "登入", "Stay logged in" : "保持登入狀態", + "Forgot password?" : "忘記密碼?", + "Back to log in" : "回到登入頁面", "Alternative Logins" : "其他登入方法", "Account access" : "帳戶存取", "You are about to grant %s access to your %s account." : "你已批准%s存取你的%s帳戶。", @@ -285,6 +301,7 @@ "Detailed logs" : "詳細記錄檔", "Update needed" : "需要更新", "Please use the command line updater because you have a big instance with more than 50 users." : "因為您有超過50名使用者,服務規模較大,請透過命令提示字元介面更新", + "For help, see the documentation." : "若需要協助,請參閱說明文件", "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "若我繼續透過網頁介面更新時我已了解有其風險,若請求逾時可能導致資料遺失,萬一更新失敗,我已準備好備份並知道如何回復運作。", "Upgrade via web on my own risk" : "願意承擔風險透過網頁更新", "This %s instance is currently in maintenance mode, which may take a while." : "這個 %s 安裝目前處於維護模式,需要一段時間恢復。", @@ -297,16 +314,16 @@ "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 documentation." : "您的網頁伺服器並未正確設定來解析 \"{url}\" ,請查看我們的說明文件以瞭解更多", "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "伺服器沒有網際網路連線,有些功能,像是外部儲存、更新版通知將無法運作。從遠端存取資料或是寄送 email 通知可能也無法運作。建議您設定好網際網路連線以使用所有功能。", - "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our documentation." : "記憶體快取尚未設定。如果可以,請完成設定來提升效能。更多資訊請查閱說明文件", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our documentation." : "您沒有設定記憶體快取,如果可以,請完成設定來提升效能。更多資訊請查閱說明文件", "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our documentation." : "PHP 無法讀取 /dev/urandom,為保障安全,建議修正這個問題,進一步訊息可參考我們的文件", "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of performance and security updates provided by the PHP Group as soon as your distribution supports it." : "您目前正運行 PHP {version} ,我們建議您升級 PHP 到您的發行版所支援的最新版本,以獲得 PHP 開發團隊提供的效能與安全性更新。", - "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our documentation." : "反向代理標頭設定不正確,或者您正透過可信任的代理伺服器存取Nextcloud。若您不是透過可信任的代理伺服器存取Nextcloud,此安全問題會允許攻擊者對Nextcloud假冒IP位址。更多資訊請查閱說明文件。", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our documentation." : "偵測到您的反向代理標頭設定不正確,但也有可能是因為您目前正透過信任的代理伺服器存取 Nextcloud。若您目前不是透過信任的代理伺服器存取 Nextcloud,這就是一個安全性問題,允許攻擊者對 Nextcloud 假冒 IP 位址。更多資訊請查閱說明文件。", "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 memcached wiki about both modules." : "Memcached是用於分散式緩存的設置,但是目前安裝了錯誤的PHP模組為「memcache」。\\OC\\Memcache\\Memcached僅支援「memcached」而不是「memcache」。請參閱memcached wiki了解兩種模組資訊", "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our documentation. (List of invalid files… / Rescan…)" : "有些檔案並未通過完整性檢查。可參閱詳細資訊,如我們的說明文件(無效檔案列表/重新檢查)以解決這些問題。", - "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." : "您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 檔案並未生效,我們強烈建議您設定您的網頁伺服器,拒絕資料目錄的公開存取,或者將您的資料目錄移出網頁伺服器根目錄。", - "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." : "\"{header}\" HTTP 標頭配置與 \"{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 security tips." : "此 HTTP \"Strict-Transport-Security\" 標頭並未設定持續至少 {seconds} 秒。為了提高安全性,我們在安全提示中有詳述並建議啟用 HSTS。", - "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our security tips." : "您正在藉由 HTTP 訪問此網站,如我們的安全性提示所述,我們強烈建議設定您的伺服器須要求使用 HTTPS", + "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." : "您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 設定檔並未生效,我們強烈建議您設定網頁伺服器,拒絕公開存取資料目錄,或者將您的資料目錄移出網頁伺服器根目錄。", + "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 security tips." : "HTTP \"Strict-Transport-Security\" 標頭並未設定持續至少 {seconds} 秒。為了提高安全性,我們在安全小祕訣中有詳述並建議啟用 HSTS。", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our security tips." : "您目前透過 HTTP 存取此網站,如我們的安全性提示所述,我們強烈建議設定您的伺服器要求使用 HTTPS。", "Shared with {recipients}" : "與 {recipients} 分享", "Error while unsharing" : "取消分享時發生錯誤", "can reshare" : "允許轉分享", @@ -336,7 +353,7 @@ "Cheers!" : "太棒了!", "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." : "如果這個錯誤重複出現,請聯絡系統管理員,並附上以下的錯誤細節", - "For information how to properly configure your server, please see the documentation." : "關於如何有效設定您伺服器的資訊,請參閱此說明文件", + "For information how to properly configure your server, please see the documentation." : "閱讀說明文件來瞭解如何正確設定您的伺服器", "Log out" : "登出", "This action requires you to confirm your password:" : "這個動作需要您輸入密碼", "Wrong password. Reset it?" : "密碼錯誤,重設密碼?", @@ -351,7 +368,7 @@ "For help, see the documentation." : "請參閱說明文件取得協助。", "The PHP OPcache is not properly configured. For better performance we recommend to use following settings in the php.ini:" : "PHP的OPcache功能並未被妥善設定。為了有更好的效能表現我們建議在php.ini檔案中使用以下設定:", "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "無法取得PHP中的「set_time_limit」函式。這可能導致執行過程中被終止並造成不完整安裝。我們強烈建議啟用該函式。", - "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended 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." : "您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 檔案並未生效,我們強烈建議您設定您的網頁伺服器,拒絕資料目錄被公開存取,或者將您的資料目錄移出網頁伺服器根目錄。", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended 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." : "您的資料目錄和檔案看來可以被公開存取,這表示 .htaccess 設定檔並未生效,我們強烈建議您設定網頁伺服器,拒絕公開存取資料目錄,或者將您的資料目錄移出網頁伺服器根目錄。", "You are about to grant \"%s\" access to your %s account." : "您將授予「%s」存取您的%s帳戶" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js index 37bc15b858acb..438e1d831d131 100644 --- a/lib/l10n/nl.js +++ b/lib/l10n/nl.js @@ -251,7 +251,7 @@ OC.L10N.register( "This can usually be fixed by giving the webserver write access to the root directory." : "Dit kan hersteld worden door de webserver schrijfrechten te geven tot de hoofd directory.", "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Toegang kan hersteld worden door %s in de hoofd directory %s op de webserver schrijfrechten te geven.", "Data directory (%s) is readable by other users" : "De data directory (%s) is alleen lezen voor andere gebruikers", - "Data directory (%s) must be an absolute path" : "De data directory (%s) moet een absolute bestand locatie hebben", + "Data directory (%s) must be an absolute path" : "De data directory (%s) moet een absolute bestandslocatie hebben", "Data directory (%s) is invalid" : "Data directory (%s) is ongeldig", "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifieer dat de data directory een bestand \".ocdata\" in de hoofdmap heeft." }, diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json index 79148f5768661..451a55f610915 100644 --- a/lib/l10n/nl.json +++ b/lib/l10n/nl.json @@ -249,7 +249,7 @@ "This can usually be fixed by giving the webserver write access to the root directory." : "Dit kan hersteld worden door de webserver schrijfrechten te geven tot de hoofd directory.", "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Toegang kan hersteld worden door %s in de hoofd directory %s op de webserver schrijfrechten te geven.", "Data directory (%s) is readable by other users" : "De data directory (%s) is alleen lezen voor andere gebruikers", - "Data directory (%s) must be an absolute path" : "De data directory (%s) moet een absolute bestand locatie hebben", + "Data directory (%s) must be an absolute path" : "De data directory (%s) moet een absolute bestandslocatie hebben", "Data directory (%s) is invalid" : "Data directory (%s) is ongeldig", "Please check that the data directory contains a file \".ocdata\" in its root." : "Verifieer dat de data directory een bestand \".ocdata\" in de hoofdmap heeft." },"pluralForm" :"nplurals=2; plural=(n != 1);" diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js index e9fec7a482dd4..e85a4e25c253b 100644 --- a/settings/l10n/nl.js +++ b/settings/l10n/nl.js @@ -80,7 +80,7 @@ OC.L10N.register( "Password confirmation is required" : "Wachtwoordbevestiging vereist", "Couldn't remove app." : "Kon app niet verwijderen.", "Couldn't update app." : "Kon de app niet bijwerken.", - "Are you really sure you want add {domain} as trusted domain?" : "Bent u er zeker van om {domain} als vertrouwd domein toe te voegen?", + "Are you really sure you want add {domain} as trusted domain?" : "Weet je zeker dat je {domain} als vertrouwd domein toe wilt voegen?", "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...", @@ -237,7 +237,7 @@ OC.L10N.register( "Server-side encryption" : "Server-side versleuteling", "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Server-side versleuteling maakt het mogelijk om bestanden te versleutelen die worden geüploaded. Dit betekent wel enig prestatieverlies, dus schakel het alleen in als het nodig is.", "Enable server-side encryption" : "Server-side versleuteling inschakelen", - "Please read carefully before activating server-side encryption: " : "Lees dit goed, voordat u de serverside versleuteling activeert:", + "Please read carefully before activating server-side encryption: " : "Lees dit goed, voordat je de serverside versleuteling activeert:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Als versleuteling is ingeschakeld, worden alle geüploade bestanden vanaf dat moment versleuteld opgeslagen op de server. Het is alleen mogelijk om de versleuteling later uit te schakelen als de actieve versleutelingsmodule dit ondersteunt en aan alle pré-condities (mn de ingestelde herstelsleutel) wordt voldaan.", "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Versleuteling alleen gerandeert geen beveiliging van het systeem. Lees de documentatie voor meer achtergrond over de werking van de crypto app an de relevante use cases.", "Be aware that encryption always increases the file size." : "Let erop dat versleuteling de bestandsomvang altijd laat toenemen.", @@ -301,7 +301,7 @@ OC.L10N.register( "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Er zijn veel mogelijkheden en instellingsschakelaars beschikbaar om je installatie te optimaliseren. Hier zijn wat aanwijzigen.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite wordt momenteel gebruikt als backend database. Voor grotere installaties adviseren we dat je omschakelt naar een andere database backend.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dit wordt vooral aanbevolen als de desktop client wordt gebruikt voor bestandssynchronisatie.", - "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Om te migreren naar een andere database moet u de commandoregel tool gebruiken: 'occ db:convert-type'; zie de documentatie ↗.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Om te migreren naar een andere database moet je de commandoregel tool gebruiken: 'occ db:convert-type'; zie de documentatie ↗.", "How to do backups" : "Hoe maak je back-ups", "Advanced monitoring" : "Geavanceerde monitoring", "Performance tuning" : "Prestatie afstelling", @@ -336,7 +336,7 @@ OC.L10N.register( "Link https://…" : "Link https://…", "Twitter" : "Twitter", "Twitter handle @…" : "Twitter naam @…", - "You are member of the following groups:" : "U bent lid van de volgende groepen:", + "You are member of the following groups:" : "Je bent lid van de volgende groepen:", "Language" : "Taal", "Help translate" : "Help met vertalen", "Password" : "Wachtwoord", diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json index 0cc2f1555f633..980e1d2e9412e 100644 --- a/settings/l10n/nl.json +++ b/settings/l10n/nl.json @@ -78,7 +78,7 @@ "Password confirmation is required" : "Wachtwoordbevestiging vereist", "Couldn't remove app." : "Kon app niet verwijderen.", "Couldn't update app." : "Kon de app niet bijwerken.", - "Are you really sure you want add {domain} as trusted domain?" : "Bent u er zeker van om {domain} als vertrouwd domein toe te voegen?", + "Are you really sure you want add {domain} as trusted domain?" : "Weet je zeker dat je {domain} als vertrouwd domein toe wilt voegen?", "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...", @@ -235,7 +235,7 @@ "Server-side encryption" : "Server-side versleuteling", "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "Server-side versleuteling maakt het mogelijk om bestanden te versleutelen die worden geüploaded. Dit betekent wel enig prestatieverlies, dus schakel het alleen in als het nodig is.", "Enable server-side encryption" : "Server-side versleuteling inschakelen", - "Please read carefully before activating server-side encryption: " : "Lees dit goed, voordat u de serverside versleuteling activeert:", + "Please read carefully before activating server-side encryption: " : "Lees dit goed, voordat je de serverside versleuteling activeert:", "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Als versleuteling is ingeschakeld, worden alle geüploade bestanden vanaf dat moment versleuteld opgeslagen op de server. Het is alleen mogelijk om de versleuteling later uit te schakelen als de actieve versleutelingsmodule dit ondersteunt en aan alle pré-condities (mn de ingestelde herstelsleutel) wordt voldaan.", "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "Versleuteling alleen gerandeert geen beveiliging van het systeem. Lees de documentatie voor meer achtergrond over de werking van de crypto app an de relevante use cases.", "Be aware that encryption always increases the file size." : "Let erop dat versleuteling de bestandsomvang altijd laat toenemen.", @@ -299,7 +299,7 @@ "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Er zijn veel mogelijkheden en instellingsschakelaars beschikbaar om je installatie te optimaliseren. Hier zijn wat aanwijzigen.", "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "SQLite wordt momenteel gebruikt als backend database. Voor grotere installaties adviseren we dat je omschakelt naar een andere database backend.", "This is particularly recommended when using the desktop client for file synchronisation." : "Dit wordt vooral aanbevolen als de desktop client wordt gebruikt voor bestandssynchronisatie.", - "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Om te migreren naar een andere database moet u de commandoregel tool gebruiken: 'occ db:convert-type'; zie de documentatie ↗.", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "Om te migreren naar een andere database moet je de commandoregel tool gebruiken: 'occ db:convert-type'; zie de documentatie ↗.", "How to do backups" : "Hoe maak je back-ups", "Advanced monitoring" : "Geavanceerde monitoring", "Performance tuning" : "Prestatie afstelling", @@ -334,7 +334,7 @@ "Link https://…" : "Link https://…", "Twitter" : "Twitter", "Twitter handle @…" : "Twitter naam @…", - "You are member of the following groups:" : "U bent lid van de volgende groepen:", + "You are member of the following groups:" : "Je bent lid van de volgende groepen:", "Language" : "Taal", "Help translate" : "Help met vertalen", "Password" : "Wachtwoord", diff --git a/settings/l10n/zh_TW.js b/settings/l10n/zh_TW.js index 851fb56eb6ad2..0c9260b988529 100644 --- a/settings/l10n/zh_TW.js +++ b/settings/l10n/zh_TW.js @@ -12,6 +12,7 @@ OC.L10N.register( "A login attempt using two-factor authentication failed (%1$s)" : "使用兩步驟驗證登入失敗 (%1$s)", "Your password or email was modified" : "你的 密碼email 已更動。", "Your apps" : "您的應用程式", + "Updates" : "更新", "Enabled apps" : "已啓用應用程式", "Disabled apps" : "已停用應用程式", "App bundles" : "應用程式套裝", @@ -22,7 +23,7 @@ OC.L10N.register( "Authentication error" : "認證錯誤", "Please provide an admin recovery password; otherwise, all user data will be lost." : "請提供一個admin管理者恢復密碼,否則將會失去所有使用者資料。", "Wrong admin recovery password. Please check the password and try again." : "錯誤的管理者還原密碼", - "Backend doesn't support password change, but the user's encryption key was updated." : "後端不支援變更密碼,但使用者的加密金鑰已經更新。", + "Backend doesn't support password change, but the user's encryption key was updated." : "使用者資料後端不支援變更密碼,但使用者的加密金鑰已經更新。", "installing and updating apps via the app store or Federated Cloud Sharing" : "透過應用程式中心或是聯盟式雲端分享來安裝、更新應用程式", "Federated Cloud Sharing" : "聯盟式雲端分享", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL 使用的 %s 版本已經過期 (%s),請您更新您的作業系統,否則功能如 %s 可能無法正常運作", @@ -33,52 +34,53 @@ OC.L10N.register( "Unable to delete group." : "無法刪除群組", "Invalid SMTP password." : "無效的 SMTP 密碼", "Email setting test" : "測試郵件設定", - "Well done, %s!" : "太棒了, %s!", - "If you received this email, the email configuration seems to be correct." : "如果你收到這封email,代表email設定是正確的。", - "Email could not be sent. Check your mail server log" : "郵件無法寄出,請查閱mail伺服器記錄檔", + "Well done, %s!" : "太棒了, %s!", + "If you received this email, the email configuration seems to be correct." : "如果你收到這封 email,代表 email 設定是正確的。", + "Email could not be sent. Check your mail server log" : "郵件無法寄出,請查閱郵件伺服器記錄檔", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "寄出郵件時發生問題,請檢查您的設定(錯誤訊息:%s)", "You need to set your user email before being able to send test emails." : "在寄出測試郵件前您需要設定信箱位址", "Invalid mail address" : "無效的 email 地址", "No valid group selected" : "無效的群組", "A user with that name already exists." : "同名的使用者已經存在", - "To send a password link to the user an email address is required." : "向使用者送出密碼連結需要提供一組E-mail信箱。", + "To send a password link to the user an email address is required." : "要寄出密碼連結給使用者之前需要設定一組 email 位址", "Unable to create user." : "無法建立使用者", "Unable to delete user." : "無法移除使用者", - "Error while enabling user." : "啟用用戶時發生錯誤", - "Error while disabling user." : "停用用戶時發生錯誤", - "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "為了驗證您的推特帳號,請在推特上發佈下列推文(請確認推文內容沒有斷行):", - "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "為了驗證您的網站,請將下列內容存至您網站,路徑為:well-known/CloudIdVerificationCode.txt\n(請確保全文以一行的格式儲存)", - "Settings saved" : "設定已存檔", + "Error while enabling user." : "啟用使用者時發生錯誤", + "Error while disabling user." : "停用使用者時發生錯誤", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "為了驗證您的推特帳號,請在推特上發佈下列推文(請確認推文內容沒有斷行):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "為了驗證您的網站,請將下列內容存至您網站的根目錄下路徑為:\".well-known/CloudIdVerificationCode.txt\" 的檔案(請確保全文以一行的格式儲存)", + "Settings saved" : "設定已儲存", "Unable to change full name" : "無法變更全名", - "Unable to change email address" : "無法變更email地址", + "Unable to change email address" : "無法變更電子郵件地址", "Your full name has been changed." : "您的全名已變更", "Forbidden" : "存取被拒", "Invalid user" : "無效的使用者", "Unable to change mail address" : "無法更改 email 地址", "Email saved" : "Email 已儲存", - "%1$s changed your password on %2$s." : "%1$s在%2$s時更改了您的密碼", - "Your password on %s was changed." : "你的密碼在 %s 已變更。", - "Your password on %s was reset by an administrator." : "您的密碼在 %s 已被管理員重設。", - "Password for %1$s changed on %2$s" : "%1$s 的密碼已在 %2$s 變更。", - "Password changed for %s" : "%s 的密碼已變更。", - "If you did not request this, please contact an administrator." : "如果你未發送此請求 ,請聯絡系統管理員。", - "%1$s changed your email address on %2$s." : "%1$s 更改你的 email 地址在 %2$s 時。", - "Your email address on %s was changed." : "你的email地址在 %s 已變更。", - "Your email address on %s was changed by an administrator." : "你的email地址在 %s 已被管理員變更。", - "Email address for %1$s changed on %2$s" : "%1$s的Email信箱在%2$s已經變更。", - "Email address changed for %s" : "%s 的email地址已變更。", - "The new email address is %s" : "新的email地址為 %s", + "%1$s changed your password on %2$s." : "%1$s 在 %2$s 時更改了您的密碼", + "Your password on %s was changed." : "你在 %s 的密碼已變更", + "Your password on %s was reset by an administrator." : "您在 %s 的密碼已被管理員重設", + "Password for %1$s changed on %2$s" : "%1$s 在 %2$s 的密碼已變更", + "Password changed for %s" : "%s 的密碼已變更", + "If you did not request this, please contact an administrator." : "如果你未發送此請求 ,請聯絡系統管理員", + "%1$s changed your email address on %2$s." : "%1$s變更了您在 %2$s 的電子郵件地址", + "Your email address on %s was changed." : "您在 %s 的電子郵件地址已變更", + "Your email address on %s was changed by an administrator." : "您在 %s 的電子郵件地址已被管理員變更", + "Email address for %1$s changed on %2$s" : "%1$s 的電子郵件地址在 %2$s 變更", + "Email address changed for %s" : "%s 的電子郵件地址已變更", + "The new email address is %s" : "新的電子郵件地址為 %s", "Your %s account was created" : "您的 %s 帳號已經建立", "Welcome aboard" : "歡迎加入", - "Welcome aboard %s" : "%s,歡迎您加入", - "Your username is: %s" : "你的使用者名稱為: %s", + "Welcome aboard %s" : "歡迎加入 %s", + "Welcome to your %s account, you can add, protect, and share your data." : "歡迎使用您的 %s 帳戶,您可以加入、保存、分享您的資料", + "Your username is: %s" : "您的使用者名稱為: %s", "Set your password" : "設定您的密碼", "Go to %s" : "前往 %s", - "Install Client" : "安裝使用端", - "Password confirmation is required" : "要求密碼確認", + "Install Client" : "安裝客戶端程式", + "Password confirmation is required" : "需要密碼確認", "Couldn't remove app." : "無法移除應用程式", "Couldn't update app." : "無法更新應用程式", - "Are you really sure you want add {domain} as trusted domain?" : "您確定要新增 {domain} 為信任的網域?", + "Are you really sure you want add {domain} as trusted domain?" : "您確定要新增 {domain} 為信任的網域?", "Add trusted domain" : "新增信任的網域", "Migration in progress. Please wait until the migration is finished" : "資料搬移中,請耐心等候直到資料搬移結束", "Migration started …" : "開始遷移…", @@ -93,19 +95,20 @@ OC.L10N.register( "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "官方應用程序是由社區內部和內部開發的。 它們提供核心功能,並可在正式成品使用。", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "審查通過的應用程式經由可信任的開發人員所設計,並且經過一連串的安全測試,他們在開放的程式庫中維護這些應用程式,而且確保這些應用程式能穩定運作", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "這個新應用程式並沒有經過安全檢測,可能會是不穩定的,如果您要安裝的話,風險自行負責。", - "Disabling app …" : "停用應用程式中 ...", + "Disabling app …" : "正在停用應用程式…", "Error while disabling app" : "停用應用程式錯誤", "Disable" : "停用", "Enable" : "啟用", - "Enabling app …" : "啟動中...", + "Enabling app …" : "啟用中…", "Error while enabling app" : "啟用應用程式錯誤", - "Error: This app can not be enabled because it makes the server unstable" : "錯誤:此應用程序無法啟用,因為它使伺服器不穩定", - "Error: Could not disable broken app" : "錯誤: 無法啟用已損毀的應用", - "Error while disabling broken app" : "關閉損毀的應用時發生錯誤", + "Error: This app can not be enabled because it makes the server unstable" : "錯誤:此應用程序無法啟用,因為它造成伺服器不穩定", + "Error: Could not disable broken app" : "錯誤:無法停用損毀的應用程式", + "Error while disabling broken app" : "停用損毀的應用時發生錯誤", + "No app updates available" : "沒有可用的應用程式更新", "Updating...." : "更新中…", "Error while updating app" : "更新應用程式錯誤", "Updated" : "已更新", - "Removing …" : "移除中...", + "Removing …" : "移除中…", "Error while removing app" : "移除應用程式錯誤", "Remove" : "移除", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "這個應用程式已啟用但是需要更新,您將會在 5 秒後被引導至更新頁面", @@ -116,7 +119,7 @@ OC.L10N.register( "Enable all" : "全部啟用", "Allow filesystem access" : "允許檔案系統的存取", "Disconnect" : "中斷連線", - "Revoke" : "撤消", + "Revoke" : "撤銷", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -134,9 +137,9 @@ OC.L10N.register( "Not supported!" : "不支援!", "Press ⌘-C to copy." : "按下 ⌘-C 來複製", "Press Ctrl-C to copy." : "按下 Ctrl-C 來複製", - "Error while loading browser sessions and device tokens" : "在載入瀏覽器階段與裝置口令時發生錯誤", - "Error while creating device token" : "建立裝置token時發生錯誤", - "Error while deleting the token" : "刪除token時發生錯誤", + "Error while loading browser sessions and device tokens" : "在載入瀏覽器階段與裝置 token 時發生錯誤", + "Error while creating device token" : "建立裝置 token 時發生錯誤", + "Error while deleting the token" : "刪除 token 時發生錯誤", "An error occurred. Please upload an ASCII-encoded PEM certificate." : "發生錯誤,請您上傳 ASCII 編碼的 PEM 憑證", "Valid until {date}" : "{date} 前有效", "Delete" : "刪除", @@ -145,12 +148,13 @@ OC.L10N.register( "Only visible to local users" : "僅本地用戶可見", "Only visible to you" : "僅你可見", "Contacts" : "聯絡人", - "Visible to local users and to trusted servers" : "僅本地用戶與信任伺服器可見", + "Visible to local users and to trusted servers" : "僅本地用戶與信任的伺服器可見", "Public" : "公開", - "Will be synced to a global and public address book" : "將會同步全域及公開地址簿", + "Will be synced to a global and public address book" : "將會同步到全域公開的通訊錄", "Verify" : "驗證", - "Verifying …" : "驗證中....", - "Select a profile picture" : "選擇大頭貼", + "Verifying …" : "驗證中…", + "An error occured while changing your language. Please reload the page and try again." : "變更語言時發生錯誤,請重新整理頁面後重試", + "Select a profile picture" : "選擇大頭貼照", "Very weak password" : "密碼強度非常弱", "Weak password" : "密碼強度弱", "So-so password" : "密碼強度普通", @@ -158,20 +162,31 @@ OC.L10N.register( "Strong password" : "密碼強度極佳", "Groups" : "群組", "Unable to delete {objName}" : "無法刪除 {objName}", + "Error creating group: {message}" : "建立群組錯誤:{message}", "A valid group name must be provided" : "必須提供一個有效的群組名稱", - "deleted {groupName}" : "刪除 {groupName}", + "deleted {groupName}" : "已刪除 {groupName}", "undo" : "復原", "{size} used" : "{size} 已使用", "never" : "永不", "deleted {userName}" : "刪除 {userName}", + "No user found for {pattern}" : "沒有找到符合 {pattern} 的使用者", + "Unable to add user to group {group}" : "無法將使用者加至群組 {group}", + "Unable to remove user from group {group}" : "無法自群組 {group} 中移除使用者", "Add group" : "新增群組", + "Invalid quota value \"{val}\"" : "無效的空間限額設定值 \"{val}\"", "no group" : "沒有群組", "Password successfully changed" : "成功變更密碼", "Changing the password will result in data loss, because data recovery is not available for this user" : "更改密碼會造成資料遺失,因為資料復原的功能無法在這個使用者使用", + "Could not change the users email" : "無法變更使用者電子郵件信箱", + "Error while changing status of {user}" : "變更使用者 {user} 的狀態出錯", "A valid username must be provided" : "必須提供一個有效的用戶名", + "Error creating user: {message}" : "建立使用者錯誤:{message}", "A valid password must be provided" : "一定要提供一個有效的密碼", "A valid email must be provided" : "必須提供一個有效的電子郵件地址", "Developer documentation" : "開發者說明文件", + "View in store" : "在商店中檢視", + "Limit to groups" : "限制給特定群組", + "by %s" : "由 %s", "%s-licensed" : "%s 授權", "Documentation:" : "說明文件:", "User documentation" : "用戶說明文件", @@ -183,6 +198,7 @@ OC.L10N.register( "This app has an update available." : "此應用程式有可用的更新", "This app cannot be installed because the following dependencies are not fulfilled:" : "這個應用程式無法被安裝,因為欠缺下列相依套件:", "Enable only for specific groups" : "僅對特定的群組啟用", + "SSL Root Certificates" : "SSL 根憑證", "Common Name" : "Common Name", "Valid until" : "到期日", "Issued By" : "發行者:", @@ -191,13 +207,17 @@ OC.L10N.register( "Administrator documentation" : "管理者說明文件", "Online documentation" : "線上說明文件", "Forum" : "論壇", + "Getting help" : "取得協助", "Commercial support" : "商用支援", "None" : "無", "Login" : "登入", "Plain" : "Plain", "NT LAN Manager" : "NT LAN Manager", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "郵件伺服器", "Open documentation" : "開啟說明文件", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "設定伺服器可以寄送電子郵件非常重要,使用者通知和密碼重設將會需要", "Send mode" : "寄送模式", "Encryption" : "加密", "From address" : "寄件地址", @@ -213,9 +233,10 @@ OC.L10N.register( "Test email settings" : "測試郵件設定", "Send email" : "寄送郵件", "Server-side encryption" : "伺服器端加密", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "伺服器端加密可以加密所有上傳到此伺服器的檔案,但這會讓檔案操作時間增加,降低效能,請審慎評估後再啟用。", "Enable server-side encryption" : "啟用伺服器端加密", "Please read carefully before activating server-side encryption: " : "在您啟動伺服器端加密之前,請仔細閱讀:", - "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "一旦加密模式啟動,從各地上傳到伺服器端的檔案都會被加密,若日後要停用加密,需要加密模組的支援,而且所有的設定(例如: 還原金鑰)都正確", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "一旦加密模式啟動,從各地上傳到伺服器端的檔案都會被加密,若日後要停用加密,需要加密模組的支援,而且所有的設定(例如:還原金鑰)都正確", "Be aware that encryption always increases the file size." : "請注意,加密一定會增加檔案的大小", "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定時備份您的資料沒有壞處,若您有啟用加密,請確保您也有備份加密金鑰", "This is the final warning: Do you really want to enable encryption?" : "這是最後的警告:請問您真的要開啟加密模式?", @@ -230,42 +251,74 @@ OC.L10N.register( "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "這大概是由快取或是加速器像是 Zend OPcache, eAccelerator 造成的", "System locale can not be set to a one which supports UTF-8." : "無法設定為一個支援 UTF-8 的系統語系", "All checks passed." : "所有檢查正常", + "Background jobs" : "背景工作", + "Last job ran %s." : "上次背景工作執行於 %s", + "Last job execution ran %s. Something seems wrong." : "上次背景工作執行於 %s ,似乎有點問題", + "Background job didn’t run yet!" : "背景工作從未執行!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "為了獲得最佳的效能,設定背景工作非常重要,對於比較大的服務來說,建議使用 Cron 設定,請查閱說明文件以獲得更多資訊。", "Execute one task with each page loaded" : "每個頁面載入時執行", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php 已經在一個 webcron 服務中註冊,每 15 分鐘將會透過 HTTP 呼叫 cron.php", + "Use system cron service to call the cron.php file every 15 minutes." : "使用系統的 cron 服務來每隔 15 分鐘呼叫 cron.php", + "The cron.php needs to be executed by the system user \"%s\"." : "cron.php 必須由系統使用者 \"%s\" 來執行", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "要執行這個,您需要 PHP POSIX 擴充元件,請查閱 {linkstart}PHP 說明文件{linkend} 以獲得更多細節。", "Version" : "版本", "Sharing" : "分享", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "系統管理員可以微調分享行為,請查閱說明文件以獲得更多資訊。", "Allow apps to use the Share API" : "允許 apps 使用分享 API", "Allow users to share via link" : "允許使用者透過連結分享", "Allow public uploads" : "允許公開上傳", + "Always ask for a password" : "總是詢問密碼", "Enforce password protection" : "強制分享連結使用密碼保護", "Set default expiration date" : "設定預設到期日", "Expire after " : "在什麼時候過期", "days" : "天", "Enforce expiration date" : "強制分享連結設定到期日", "Allow resharing" : "允許轉貼分享", + "Allow sharing with groups" : "允許與群組分享", "Restrict users to only share with users in their groups" : "限制使用者只能分享給群組裡的其他使用者", "Exclude groups from sharing" : "禁止特定群組分享檔案", "These groups will still be able to receive shares, but not to initiate them." : "這些群組仍然能接受其他人的分享,但是沒有辦法發起分享", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "允許使用者名稱自動補齊在分享對話框,如果停用這個功能,必須輸入完整的使用者名稱或電子郵件地址", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "在公開的檔案連結和上傳頁面顯示免責聲明(只有在檔案清單隱藏的時候才會顯示)", + "This text will be shown on the public link upload page when the file list is hidden." : "這段文字會在公開檔案上傳頁面檔案清單被隱藏的時候顯示", "Tips & tricks" : "技巧和提示", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "這裡有很多功能和設定選項讓您客製化您的服務,以下有一些建議和提示", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "目前您的後端資料庫使用 SQLite,在大型服務當中,我們建議您使用其他的資料庫後端。", + "This is particularly recommended when using the desktop client for file synchronisation." : "若您使用桌面客戶端來同步,尤其建議您更換", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "若要遷移至另一個資料庫,請使用命令列工具: 'occ db:convert-type' ,或是查閱說明文件。", "How to do backups" : "如何備份", "Advanced monitoring" : "進階監控", "Performance tuning" : "效能調校", "Improving the config.php" : "改進 config.php", "Theming" : "佈景主題", - "Hardening and security guidance" : "增強安全性", - "You are using %s of %s" : "您正在使用 %s%s", - "Profile picture" : "大頭照", + "Check the security of your Nextcloud over our security scan" : "使用我們的掃描服務來檢查您 Nextcloud 的安全性", + "Hardening and security guidance" : "增強安全指南", + "Personal" : "個人", + "Administration" : "管理", + "You are using %s of %s" : "您正在使用 %s ,共有 %s", + "You are using %s of %s (%s %%)" : "您正在使用 %s ,共有 %s%s %%)", + "Profile picture" : "大頭貼照", "Upload new" : "上傳新的", - "Select from Files" : "從檔案應用程式選擇", + "Select from Files" : "從雲端檔案選擇", "Remove image" : "移除圖片", "png or jpg, max. 20 MB" : "png 或 jpg ,最大 20 MB", "Picture provided by original account" : "原本的帳戶提供的圖片", "Cancel" : "取消", - "Choose as profile picture" : "選為大頭照", + "Choose as profile picture" : "設定為大頭貼照", "Full name" : "全名", "No display name set" : "未設定顯示名稱", "Email" : "信箱", "Your email address" : "您的電子郵件信箱", "No email address set" : "未設定電子郵件信箱", + "For password reset and notifications" : "用於密碼重設和通知信件", + "Phone number" : "電話號碼", + "Your phone number" : "您的電話號碼", + "Address" : "地址", + "Your postal address" : "您的郵遞地址", + "Website" : "網站", + "Link https://…" : "連結 https://...", + "Twitter" : "Twitter", + "Twitter handle @…" : "Twitter 用戶名 @...", "You are member of the following groups:" : "您的帳號屬於這些群組:", "Language" : "語言", "Help translate" : "幫助翻譯", @@ -273,9 +326,25 @@ OC.L10N.register( "Current password" : "目前密碼", "New password" : "新密碼", "Change password" : "變更密碼", + "Web, desktop and mobile clients currently logged in to your account." : "目前登入您的帳號的網頁、桌面和行動裝置客戶端", + "Device" : "裝置", + "Last activity" : "上次活動", + "App name" : "應用程式名稱", + "Create new app password" : "建立新的應用程式密碼", + "Use the credentials below to configure your app or device." : "請使用下方的登入資訊來設定您的應用程式或是裝置", + "For security reasons this password will only be shown once." : "基於安全性考量,這個密碼只會顯示一次", "Username" : "使用者名稱", + "Done" : "完成", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "由 {communityopen}Nextcloud 社群{linkclose}開發,{githubopen}原始碼{linkclose}以 {licenseopen}AGPL 授權{linkclose}釋出", + "Follow us on Google+" : "在 Google+ 上面追蹤我們", + "Like our Facebook page" : "到我們的 Facebook 頁面按讚", + "Follow us on Twitter" : "在 Twitter 上面追蹤我們", + "Check out our blog" : "逛逛我們的部落格", + "Subscribe to our newsletter" : "訂閱我們的電子報", + "Settings" : "設定", "Show storage location" : "顯示儲存位置", - "Show user backend" : "顯示用戶後台", + "Show user backend" : "顯示使用者資料後端", + "Show last login" : "顯示上次登入時間", "Show email address" : "顯示電子郵件信箱", "Send email to new user" : "寄送郵件給新用戶", "E-Mail" : "電子郵件", @@ -284,10 +353,15 @@ OC.L10N.register( "Enter the recovery password in order to recover the users files during password change" : "為了修改密碼時能夠取回使用者資料,請輸入另一組還原用密碼", "Everyone" : "所有人", "Admins" : "管理者", - "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "請輸入空間配額(例如 \"512 MB\" 或是 \"12 GB\")", + "Disabled" : "已停用", + "Default quota" : "預設儲存容量限制", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "請輸入儲存容量限制(例如 \"512 MB\" 或是 \"12 GB\")", "Unlimited" : "無限制", "Other" : "其他", + "Group admin for" : "群組管理員", "Quota" : "容量限制", + "Storage location" : "儲存位址", + "User backend" : "使用者資料後端", "change full name" : "變更全名", "set new password" : "設定新密碼", "change email address" : "更改電子郵件地址", @@ -295,7 +369,7 @@ OC.L10N.register( "Enabled" : "已啓用", "Not enabled" : "未啟用", "Please provide an admin recovery password, otherwise all user data will be lost" : "請提供管理者還原密碼,否則會遺失所有使用者資料", - "Backend doesn't support password change, but the user's encryption key was successfully updated." : "後端不支援變更密碼,但成功更新使用者的加密金鑰", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "使用者資料後端不支援變更密碼,但成功變更使用者的加密金鑰", "test email settings" : "測試郵件設定", "Invalid request" : "無效請求", "Admins can't remove themself from the admin group" : "管理者帳號無法從管理者群組中移除", @@ -327,15 +401,33 @@ OC.L10N.register( "Cron was not executed yet!" : "Cron 沒有執行!", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "已經與 webcron 服務註冊好,將會每 15 分鐘透過 HTTP 呼叫 cron.php", "Use system's cron service to call the cron.php file every 15 minutes." : "使用系統的 cron 服務每 15 分鐘呼叫 cron.php 一次", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "要執行這個,您需要 PHP POSIX 擴充元件,請查閱 {linkstart}PHP 說明文件{linkend} 以獲得更多細節。", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "允許使用者名稱自動補齊在分享對話框,如果取消這個功能,必須完整輸入使用者名稱", + "Uninstall app" : "解除安裝應用程式", "Cheers!" : "太棒了!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "嗨,\n\n通知您一聲,您現在有了 %s 的帳號。\n\n您的帳號:%s\n開通帳號:%s\n\n", "For password recovery and notifications" : "用於密碼重設和通知", + "Your website" : "您的網站", + "Your Twitter handle" : "您的 Twitter 帳號", "Get the apps to sync your files" : "下載應用程式來同步您的檔案", "Desktop client" : "桌面客戶端", "Android app" : "Android 應用程式", "iOS app" : "iOS 應用程式", "Show First Run Wizard again" : "再次顯示首次使用精靈", + "Passcodes that give an app or device permissions to access your account." : "通行碼會給應用程式或裝置存取您帳戶的權限", "Name" : "名稱", - "Show last log in" : "顯示最近登入" + "Follow us on Google Plus!" : "在 Google+ 上面追蹤我們", + "Like our facebook page!" : "到我們的 Facebook 頁面按讚", + "Subscribe to our twitter channel!" : "訂閱我們的 Twitter 頻道", + "Subscribe to our news feed!" : "訂閱我們的新聞饋流", + "Subscribe to our newsletter!" : "訂閱我們的電子報", + "Show last log in" : "顯示最近登入", + "Group name" : "群組名稱", + "Verifying" : "驗證中", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "未偵測到 PHP 模組 'fileinfo'。我們強烈建議啟用這個模組以取得最好的 MIME 檔案類型偵測支援。", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "目前有權存取您的帳號的網頁、桌面、行動裝置客戶端和應用程式密碼", + "Follow us on Google+!" : "在 Google+ 上面追蹤我們", + "Follow us on Twitter!" : "在 Twitter 上面追蹤我們", + "Check out our blog!" : "逛逛我們的部落格" }, "nplurals=1; plural=0;"); diff --git a/settings/l10n/zh_TW.json b/settings/l10n/zh_TW.json index 9565127f51908..82858cfd414ce 100644 --- a/settings/l10n/zh_TW.json +++ b/settings/l10n/zh_TW.json @@ -10,6 +10,7 @@ "A login attempt using two-factor authentication failed (%1$s)" : "使用兩步驟驗證登入失敗 (%1$s)", "Your password or email was modified" : "你的 密碼email 已更動。", "Your apps" : "您的應用程式", + "Updates" : "更新", "Enabled apps" : "已啓用應用程式", "Disabled apps" : "已停用應用程式", "App bundles" : "應用程式套裝", @@ -20,7 +21,7 @@ "Authentication error" : "認證錯誤", "Please provide an admin recovery password; otherwise, all user data will be lost." : "請提供一個admin管理者恢復密碼,否則將會失去所有使用者資料。", "Wrong admin recovery password. Please check the password and try again." : "錯誤的管理者還原密碼", - "Backend doesn't support password change, but the user's encryption key was updated." : "後端不支援變更密碼,但使用者的加密金鑰已經更新。", + "Backend doesn't support password change, but the user's encryption key was updated." : "使用者資料後端不支援變更密碼,但使用者的加密金鑰已經更新。", "installing and updating apps via the app store or Federated Cloud Sharing" : "透過應用程式中心或是聯盟式雲端分享來安裝、更新應用程式", "Federated Cloud Sharing" : "聯盟式雲端分享", "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL 使用的 %s 版本已經過期 (%s),請您更新您的作業系統,否則功能如 %s 可能無法正常運作", @@ -31,52 +32,53 @@ "Unable to delete group." : "無法刪除群組", "Invalid SMTP password." : "無效的 SMTP 密碼", "Email setting test" : "測試郵件設定", - "Well done, %s!" : "太棒了, %s!", - "If you received this email, the email configuration seems to be correct." : "如果你收到這封email,代表email設定是正確的。", - "Email could not be sent. Check your mail server log" : "郵件無法寄出,請查閱mail伺服器記錄檔", + "Well done, %s!" : "太棒了, %s!", + "If you received this email, the email configuration seems to be correct." : "如果你收到這封 email,代表 email 設定是正確的。", + "Email could not be sent. Check your mail server log" : "郵件無法寄出,請查閱郵件伺服器記錄檔", "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "寄出郵件時發生問題,請檢查您的設定(錯誤訊息:%s)", "You need to set your user email before being able to send test emails." : "在寄出測試郵件前您需要設定信箱位址", "Invalid mail address" : "無效的 email 地址", "No valid group selected" : "無效的群組", "A user with that name already exists." : "同名的使用者已經存在", - "To send a password link to the user an email address is required." : "向使用者送出密碼連結需要提供一組E-mail信箱。", + "To send a password link to the user an email address is required." : "要寄出密碼連結給使用者之前需要設定一組 email 位址", "Unable to create user." : "無法建立使用者", "Unable to delete user." : "無法移除使用者", - "Error while enabling user." : "啟用用戶時發生錯誤", - "Error while disabling user." : "停用用戶時發生錯誤", - "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "為了驗證您的推特帳號,請在推特上發佈下列推文(請確認推文內容沒有斷行):", - "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "為了驗證您的網站,請將下列內容存至您網站,路徑為:well-known/CloudIdVerificationCode.txt\n(請確保全文以一行的格式儲存)", - "Settings saved" : "設定已存檔", + "Error while enabling user." : "啟用使用者時發生錯誤", + "Error while disabling user." : "停用使用者時發生錯誤", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "為了驗證您的推特帳號,請在推特上發佈下列推文(請確認推文內容沒有斷行):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "為了驗證您的網站,請將下列內容存至您網站的根目錄下路徑為:\".well-known/CloudIdVerificationCode.txt\" 的檔案(請確保全文以一行的格式儲存)", + "Settings saved" : "設定已儲存", "Unable to change full name" : "無法變更全名", - "Unable to change email address" : "無法變更email地址", + "Unable to change email address" : "無法變更電子郵件地址", "Your full name has been changed." : "您的全名已變更", "Forbidden" : "存取被拒", "Invalid user" : "無效的使用者", "Unable to change mail address" : "無法更改 email 地址", "Email saved" : "Email 已儲存", - "%1$s changed your password on %2$s." : "%1$s在%2$s時更改了您的密碼", - "Your password on %s was changed." : "你的密碼在 %s 已變更。", - "Your password on %s was reset by an administrator." : "您的密碼在 %s 已被管理員重設。", - "Password for %1$s changed on %2$s" : "%1$s 的密碼已在 %2$s 變更。", - "Password changed for %s" : "%s 的密碼已變更。", - "If you did not request this, please contact an administrator." : "如果你未發送此請求 ,請聯絡系統管理員。", - "%1$s changed your email address on %2$s." : "%1$s 更改你的 email 地址在 %2$s 時。", - "Your email address on %s was changed." : "你的email地址在 %s 已變更。", - "Your email address on %s was changed by an administrator." : "你的email地址在 %s 已被管理員變更。", - "Email address for %1$s changed on %2$s" : "%1$s的Email信箱在%2$s已經變更。", - "Email address changed for %s" : "%s 的email地址已變更。", - "The new email address is %s" : "新的email地址為 %s", + "%1$s changed your password on %2$s." : "%1$s 在 %2$s 時更改了您的密碼", + "Your password on %s was changed." : "你在 %s 的密碼已變更", + "Your password on %s was reset by an administrator." : "您在 %s 的密碼已被管理員重設", + "Password for %1$s changed on %2$s" : "%1$s 在 %2$s 的密碼已變更", + "Password changed for %s" : "%s 的密碼已變更", + "If you did not request this, please contact an administrator." : "如果你未發送此請求 ,請聯絡系統管理員", + "%1$s changed your email address on %2$s." : "%1$s變更了您在 %2$s 的電子郵件地址", + "Your email address on %s was changed." : "您在 %s 的電子郵件地址已變更", + "Your email address on %s was changed by an administrator." : "您在 %s 的電子郵件地址已被管理員變更", + "Email address for %1$s changed on %2$s" : "%1$s 的電子郵件地址在 %2$s 變更", + "Email address changed for %s" : "%s 的電子郵件地址已變更", + "The new email address is %s" : "新的電子郵件地址為 %s", "Your %s account was created" : "您的 %s 帳號已經建立", "Welcome aboard" : "歡迎加入", - "Welcome aboard %s" : "%s,歡迎您加入", - "Your username is: %s" : "你的使用者名稱為: %s", + "Welcome aboard %s" : "歡迎加入 %s", + "Welcome to your %s account, you can add, protect, and share your data." : "歡迎使用您的 %s 帳戶,您可以加入、保存、分享您的資料", + "Your username is: %s" : "您的使用者名稱為: %s", "Set your password" : "設定您的密碼", "Go to %s" : "前往 %s", - "Install Client" : "安裝使用端", - "Password confirmation is required" : "要求密碼確認", + "Install Client" : "安裝客戶端程式", + "Password confirmation is required" : "需要密碼確認", "Couldn't remove app." : "無法移除應用程式", "Couldn't update app." : "無法更新應用程式", - "Are you really sure you want add {domain} as trusted domain?" : "您確定要新增 {domain} 為信任的網域?", + "Are you really sure you want add {domain} as trusted domain?" : "您確定要新增 {domain} 為信任的網域?", "Add trusted domain" : "新增信任的網域", "Migration in progress. Please wait until the migration is finished" : "資料搬移中,請耐心等候直到資料搬移結束", "Migration started …" : "開始遷移…", @@ -91,19 +93,20 @@ "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "官方應用程序是由社區內部和內部開發的。 它們提供核心功能,並可在正式成品使用。", "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "審查通過的應用程式經由可信任的開發人員所設計,並且經過一連串的安全測試,他們在開放的程式庫中維護這些應用程式,而且確保這些應用程式能穩定運作", "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "這個新應用程式並沒有經過安全檢測,可能會是不穩定的,如果您要安裝的話,風險自行負責。", - "Disabling app …" : "停用應用程式中 ...", + "Disabling app …" : "正在停用應用程式…", "Error while disabling app" : "停用應用程式錯誤", "Disable" : "停用", "Enable" : "啟用", - "Enabling app …" : "啟動中...", + "Enabling app …" : "啟用中…", "Error while enabling app" : "啟用應用程式錯誤", - "Error: This app can not be enabled because it makes the server unstable" : "錯誤:此應用程序無法啟用,因為它使伺服器不穩定", - "Error: Could not disable broken app" : "錯誤: 無法啟用已損毀的應用", - "Error while disabling broken app" : "關閉損毀的應用時發生錯誤", + "Error: This app can not be enabled because it makes the server unstable" : "錯誤:此應用程序無法啟用,因為它造成伺服器不穩定", + "Error: Could not disable broken app" : "錯誤:無法停用損毀的應用程式", + "Error while disabling broken app" : "停用損毀的應用時發生錯誤", + "No app updates available" : "沒有可用的應用程式更新", "Updating...." : "更新中…", "Error while updating app" : "更新應用程式錯誤", "Updated" : "已更新", - "Removing …" : "移除中...", + "Removing …" : "移除中…", "Error while removing app" : "移除應用程式錯誤", "Remove" : "移除", "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "這個應用程式已啟用但是需要更新,您將會在 5 秒後被引導至更新頁面", @@ -114,7 +117,7 @@ "Enable all" : "全部啟用", "Allow filesystem access" : "允許檔案系統的存取", "Disconnect" : "中斷連線", - "Revoke" : "撤消", + "Revoke" : "撤銷", "Internet Explorer" : "Internet Explorer", "Edge" : "Edge", "Firefox" : "Firefox", @@ -132,9 +135,9 @@ "Not supported!" : "不支援!", "Press ⌘-C to copy." : "按下 ⌘-C 來複製", "Press Ctrl-C to copy." : "按下 Ctrl-C 來複製", - "Error while loading browser sessions and device tokens" : "在載入瀏覽器階段與裝置口令時發生錯誤", - "Error while creating device token" : "建立裝置token時發生錯誤", - "Error while deleting the token" : "刪除token時發生錯誤", + "Error while loading browser sessions and device tokens" : "在載入瀏覽器階段與裝置 token 時發生錯誤", + "Error while creating device token" : "建立裝置 token 時發生錯誤", + "Error while deleting the token" : "刪除 token 時發生錯誤", "An error occurred. Please upload an ASCII-encoded PEM certificate." : "發生錯誤,請您上傳 ASCII 編碼的 PEM 憑證", "Valid until {date}" : "{date} 前有效", "Delete" : "刪除", @@ -143,12 +146,13 @@ "Only visible to local users" : "僅本地用戶可見", "Only visible to you" : "僅你可見", "Contacts" : "聯絡人", - "Visible to local users and to trusted servers" : "僅本地用戶與信任伺服器可見", + "Visible to local users and to trusted servers" : "僅本地用戶與信任的伺服器可見", "Public" : "公開", - "Will be synced to a global and public address book" : "將會同步全域及公開地址簿", + "Will be synced to a global and public address book" : "將會同步到全域公開的通訊錄", "Verify" : "驗證", - "Verifying …" : "驗證中....", - "Select a profile picture" : "選擇大頭貼", + "Verifying …" : "驗證中…", + "An error occured while changing your language. Please reload the page and try again." : "變更語言時發生錯誤,請重新整理頁面後重試", + "Select a profile picture" : "選擇大頭貼照", "Very weak password" : "密碼強度非常弱", "Weak password" : "密碼強度弱", "So-so password" : "密碼強度普通", @@ -156,20 +160,31 @@ "Strong password" : "密碼強度極佳", "Groups" : "群組", "Unable to delete {objName}" : "無法刪除 {objName}", + "Error creating group: {message}" : "建立群組錯誤:{message}", "A valid group name must be provided" : "必須提供一個有效的群組名稱", - "deleted {groupName}" : "刪除 {groupName}", + "deleted {groupName}" : "已刪除 {groupName}", "undo" : "復原", "{size} used" : "{size} 已使用", "never" : "永不", "deleted {userName}" : "刪除 {userName}", + "No user found for {pattern}" : "沒有找到符合 {pattern} 的使用者", + "Unable to add user to group {group}" : "無法將使用者加至群組 {group}", + "Unable to remove user from group {group}" : "無法自群組 {group} 中移除使用者", "Add group" : "新增群組", + "Invalid quota value \"{val}\"" : "無效的空間限額設定值 \"{val}\"", "no group" : "沒有群組", "Password successfully changed" : "成功變更密碼", "Changing the password will result in data loss, because data recovery is not available for this user" : "更改密碼會造成資料遺失,因為資料復原的功能無法在這個使用者使用", + "Could not change the users email" : "無法變更使用者電子郵件信箱", + "Error while changing status of {user}" : "變更使用者 {user} 的狀態出錯", "A valid username must be provided" : "必須提供一個有效的用戶名", + "Error creating user: {message}" : "建立使用者錯誤:{message}", "A valid password must be provided" : "一定要提供一個有效的密碼", "A valid email must be provided" : "必須提供一個有效的電子郵件地址", "Developer documentation" : "開發者說明文件", + "View in store" : "在商店中檢視", + "Limit to groups" : "限制給特定群組", + "by %s" : "由 %s", "%s-licensed" : "%s 授權", "Documentation:" : "說明文件:", "User documentation" : "用戶說明文件", @@ -181,6 +196,7 @@ "This app has an update available." : "此應用程式有可用的更新", "This app cannot be installed because the following dependencies are not fulfilled:" : "這個應用程式無法被安裝,因為欠缺下列相依套件:", "Enable only for specific groups" : "僅對特定的群組啟用", + "SSL Root Certificates" : "SSL 根憑證", "Common Name" : "Common Name", "Valid until" : "到期日", "Issued By" : "發行者:", @@ -189,13 +205,17 @@ "Administrator documentation" : "管理者說明文件", "Online documentation" : "線上說明文件", "Forum" : "論壇", + "Getting help" : "取得協助", "Commercial support" : "商用支援", "None" : "無", "Login" : "登入", "Plain" : "Plain", "NT LAN Manager" : "NT LAN Manager", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", "Email server" : "郵件伺服器", "Open documentation" : "開啟說明文件", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "設定伺服器可以寄送電子郵件非常重要,使用者通知和密碼重設將會需要", "Send mode" : "寄送模式", "Encryption" : "加密", "From address" : "寄件地址", @@ -211,9 +231,10 @@ "Test email settings" : "測試郵件設定", "Send email" : "寄送郵件", "Server-side encryption" : "伺服器端加密", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "伺服器端加密可以加密所有上傳到此伺服器的檔案,但這會讓檔案操作時間增加,降低效能,請審慎評估後再啟用。", "Enable server-side encryption" : "啟用伺服器端加密", "Please read carefully before activating server-side encryption: " : "在您啟動伺服器端加密之前,請仔細閱讀:", - "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "一旦加密模式啟動,從各地上傳到伺服器端的檔案都會被加密,若日後要停用加密,需要加密模組的支援,而且所有的設定(例如: 還原金鑰)都正確", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "一旦加密模式啟動,從各地上傳到伺服器端的檔案都會被加密,若日後要停用加密,需要加密模組的支援,而且所有的設定(例如:還原金鑰)都正確", "Be aware that encryption always increases the file size." : "請注意,加密一定會增加檔案的大小", "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "定時備份您的資料沒有壞處,若您有啟用加密,請確保您也有備份加密金鑰", "This is the final warning: Do you really want to enable encryption?" : "這是最後的警告:請問您真的要開啟加密模式?", @@ -228,42 +249,74 @@ "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "這大概是由快取或是加速器像是 Zend OPcache, eAccelerator 造成的", "System locale can not be set to a one which supports UTF-8." : "無法設定為一個支援 UTF-8 的系統語系", "All checks passed." : "所有檢查正常", + "Background jobs" : "背景工作", + "Last job ran %s." : "上次背景工作執行於 %s", + "Last job execution ran %s. Something seems wrong." : "上次背景工作執行於 %s ,似乎有點問題", + "Background job didn’t run yet!" : "背景工作從未執行!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "為了獲得最佳的效能,設定背景工作非常重要,對於比較大的服務來說,建議使用 Cron 設定,請查閱說明文件以獲得更多資訊。", "Execute one task with each page loaded" : "每個頁面載入時執行", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php 已經在一個 webcron 服務中註冊,每 15 分鐘將會透過 HTTP 呼叫 cron.php", + "Use system cron service to call the cron.php file every 15 minutes." : "使用系統的 cron 服務來每隔 15 分鐘呼叫 cron.php", + "The cron.php needs to be executed by the system user \"%s\"." : "cron.php 必須由系統使用者 \"%s\" 來執行", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "要執行這個,您需要 PHP POSIX 擴充元件,請查閱 {linkstart}PHP 說明文件{linkend} 以獲得更多細節。", "Version" : "版本", "Sharing" : "分享", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "系統管理員可以微調分享行為,請查閱說明文件以獲得更多資訊。", "Allow apps to use the Share API" : "允許 apps 使用分享 API", "Allow users to share via link" : "允許使用者透過連結分享", "Allow public uploads" : "允許公開上傳", + "Always ask for a password" : "總是詢問密碼", "Enforce password protection" : "強制分享連結使用密碼保護", "Set default expiration date" : "設定預設到期日", "Expire after " : "在什麼時候過期", "days" : "天", "Enforce expiration date" : "強制分享連結設定到期日", "Allow resharing" : "允許轉貼分享", + "Allow sharing with groups" : "允許與群組分享", "Restrict users to only share with users in their groups" : "限制使用者只能分享給群組裡的其他使用者", "Exclude groups from sharing" : "禁止特定群組分享檔案", "These groups will still be able to receive shares, but not to initiate them." : "這些群組仍然能接受其他人的分享,但是沒有辦法發起分享", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "允許使用者名稱自動補齊在分享對話框,如果停用這個功能,必須輸入完整的使用者名稱或電子郵件地址", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "在公開的檔案連結和上傳頁面顯示免責聲明(只有在檔案清單隱藏的時候才會顯示)", + "This text will be shown on the public link upload page when the file list is hidden." : "這段文字會在公開檔案上傳頁面檔案清單被隱藏的時候顯示", "Tips & tricks" : "技巧和提示", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "這裡有很多功能和設定選項讓您客製化您的服務,以下有一些建議和提示", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "目前您的後端資料庫使用 SQLite,在大型服務當中,我們建議您使用其他的資料庫後端。", + "This is particularly recommended when using the desktop client for file synchronisation." : "若您使用桌面客戶端來同步,尤其建議您更換", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the documentation ↗." : "若要遷移至另一個資料庫,請使用命令列工具: 'occ db:convert-type' ,或是查閱說明文件。", "How to do backups" : "如何備份", "Advanced monitoring" : "進階監控", "Performance tuning" : "效能調校", "Improving the config.php" : "改進 config.php", "Theming" : "佈景主題", - "Hardening and security guidance" : "增強安全性", - "You are using %s of %s" : "您正在使用 %s%s", - "Profile picture" : "大頭照", + "Check the security of your Nextcloud over our security scan" : "使用我們的掃描服務來檢查您 Nextcloud 的安全性", + "Hardening and security guidance" : "增強安全指南", + "Personal" : "個人", + "Administration" : "管理", + "You are using %s of %s" : "您正在使用 %s ,共有 %s", + "You are using %s of %s (%s %%)" : "您正在使用 %s ,共有 %s%s %%)", + "Profile picture" : "大頭貼照", "Upload new" : "上傳新的", - "Select from Files" : "從檔案應用程式選擇", + "Select from Files" : "從雲端檔案選擇", "Remove image" : "移除圖片", "png or jpg, max. 20 MB" : "png 或 jpg ,最大 20 MB", "Picture provided by original account" : "原本的帳戶提供的圖片", "Cancel" : "取消", - "Choose as profile picture" : "選為大頭照", + "Choose as profile picture" : "設定為大頭貼照", "Full name" : "全名", "No display name set" : "未設定顯示名稱", "Email" : "信箱", "Your email address" : "您的電子郵件信箱", "No email address set" : "未設定電子郵件信箱", + "For password reset and notifications" : "用於密碼重設和通知信件", + "Phone number" : "電話號碼", + "Your phone number" : "您的電話號碼", + "Address" : "地址", + "Your postal address" : "您的郵遞地址", + "Website" : "網站", + "Link https://…" : "連結 https://...", + "Twitter" : "Twitter", + "Twitter handle @…" : "Twitter 用戶名 @...", "You are member of the following groups:" : "您的帳號屬於這些群組:", "Language" : "語言", "Help translate" : "幫助翻譯", @@ -271,9 +324,25 @@ "Current password" : "目前密碼", "New password" : "新密碼", "Change password" : "變更密碼", + "Web, desktop and mobile clients currently logged in to your account." : "目前登入您的帳號的網頁、桌面和行動裝置客戶端", + "Device" : "裝置", + "Last activity" : "上次活動", + "App name" : "應用程式名稱", + "Create new app password" : "建立新的應用程式密碼", + "Use the credentials below to configure your app or device." : "請使用下方的登入資訊來設定您的應用程式或是裝置", + "For security reasons this password will only be shown once." : "基於安全性考量,這個密碼只會顯示一次", "Username" : "使用者名稱", + "Done" : "完成", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "由 {communityopen}Nextcloud 社群{linkclose}開發,{githubopen}原始碼{linkclose}以 {licenseopen}AGPL 授權{linkclose}釋出", + "Follow us on Google+" : "在 Google+ 上面追蹤我們", + "Like our Facebook page" : "到我們的 Facebook 頁面按讚", + "Follow us on Twitter" : "在 Twitter 上面追蹤我們", + "Check out our blog" : "逛逛我們的部落格", + "Subscribe to our newsletter" : "訂閱我們的電子報", + "Settings" : "設定", "Show storage location" : "顯示儲存位置", - "Show user backend" : "顯示用戶後台", + "Show user backend" : "顯示使用者資料後端", + "Show last login" : "顯示上次登入時間", "Show email address" : "顯示電子郵件信箱", "Send email to new user" : "寄送郵件給新用戶", "E-Mail" : "電子郵件", @@ -282,10 +351,15 @@ "Enter the recovery password in order to recover the users files during password change" : "為了修改密碼時能夠取回使用者資料,請輸入另一組還原用密碼", "Everyone" : "所有人", "Admins" : "管理者", - "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "請輸入空間配額(例如 \"512 MB\" 或是 \"12 GB\")", + "Disabled" : "已停用", + "Default quota" : "預設儲存容量限制", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "請輸入儲存容量限制(例如 \"512 MB\" 或是 \"12 GB\")", "Unlimited" : "無限制", "Other" : "其他", + "Group admin for" : "群組管理員", "Quota" : "容量限制", + "Storage location" : "儲存位址", + "User backend" : "使用者資料後端", "change full name" : "變更全名", "set new password" : "設定新密碼", "change email address" : "更改電子郵件地址", @@ -293,7 +367,7 @@ "Enabled" : "已啓用", "Not enabled" : "未啟用", "Please provide an admin recovery password, otherwise all user data will be lost" : "請提供管理者還原密碼,否則會遺失所有使用者資料", - "Backend doesn't support password change, but the user's encryption key was successfully updated." : "後端不支援變更密碼,但成功更新使用者的加密金鑰", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "使用者資料後端不支援變更密碼,但成功變更使用者的加密金鑰", "test email settings" : "測試郵件設定", "Invalid request" : "無效請求", "Admins can't remove themself from the admin group" : "管理者帳號無法從管理者群組中移除", @@ -325,15 +399,33 @@ "Cron was not executed yet!" : "Cron 沒有執行!", "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "已經與 webcron 服務註冊好,將會每 15 分鐘透過 HTTP 呼叫 cron.php", "Use system's cron service to call the cron.php file every 15 minutes." : "使用系統的 cron 服務每 15 分鐘呼叫 cron.php 一次", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "要執行這個,您需要 PHP POSIX 擴充元件,請查閱 {linkstart}PHP 說明文件{linkend} 以獲得更多細節。", "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "允許使用者名稱自動補齊在分享對話框,如果取消這個功能,必須完整輸入使用者名稱", + "Uninstall app" : "解除安裝應用程式", "Cheers!" : "太棒了!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "嗨,\n\n通知您一聲,您現在有了 %s 的帳號。\n\n您的帳號:%s\n開通帳號:%s\n\n", "For password recovery and notifications" : "用於密碼重設和通知", + "Your website" : "您的網站", + "Your Twitter handle" : "您的 Twitter 帳號", "Get the apps to sync your files" : "下載應用程式來同步您的檔案", "Desktop client" : "桌面客戶端", "Android app" : "Android 應用程式", "iOS app" : "iOS 應用程式", "Show First Run Wizard again" : "再次顯示首次使用精靈", + "Passcodes that give an app or device permissions to access your account." : "通行碼會給應用程式或裝置存取您帳戶的權限", "Name" : "名稱", - "Show last log in" : "顯示最近登入" + "Follow us on Google Plus!" : "在 Google+ 上面追蹤我們", + "Like our facebook page!" : "到我們的 Facebook 頁面按讚", + "Subscribe to our twitter channel!" : "訂閱我們的 Twitter 頻道", + "Subscribe to our news feed!" : "訂閱我們的新聞饋流", + "Subscribe to our newsletter!" : "訂閱我們的電子報", + "Show last log in" : "顯示最近登入", + "Group name" : "群組名稱", + "Verifying" : "驗證中", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "未偵測到 PHP 模組 'fileinfo'。我們強烈建議啟用這個模組以取得最好的 MIME 檔案類型偵測支援。", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "目前有權存取您的帳號的網頁、桌面、行動裝置客戶端和應用程式密碼", + "Follow us on Google+!" : "在 Google+ 上面追蹤我們", + "Follow us on Twitter!" : "在 Twitter 上面追蹤我們", + "Check out our blog!" : "逛逛我們的部落格" },"pluralForm" :"nplurals=1; plural=0;" } \ No newline at end of file From 40633c5e546f7145f084ed73d894f2c5246f3428 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Wed, 29 Nov 2017 15:24:08 +0100 Subject: [PATCH 77/92] CardDAV convertor check should not be to wide Case: email is set to null, but the avatar is set. In the old case the email would set $emptyValue but $noImage would still be false. This we would set the empty string as email. Signed-off-by: Roeland Jago Douma --- apps/dav/lib/CardDAV/Converter.php | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/dav/lib/CardDAV/Converter.php b/apps/dav/lib/CardDAV/Converter.php index c3f27c0299e5d..a480f0ea45dc9 100644 --- a/apps/dav/lib/CardDAV/Converter.php +++ b/apps/dav/lib/CardDAV/Converter.php @@ -61,6 +61,10 @@ public function createCardFromUser(IUser $user) { $publish = false; + if ($image !== null && isset($userData[AccountManager::PROPERTY_AVATAR])) { + $userData[AccountManager::PROPERTY_AVATAR]['value'] = true; + } + foreach ($userData as $property => $value) { $shareWithTrustedServers = @@ -68,9 +72,8 @@ public function createCardFromUser(IUser $user) { $value['scope'] === AccountManager::VISIBILITY_PUBLIC; $emptyValue = !isset($value['value']) || $value['value'] === ''; - $noImage = $image === null; - if ($shareWithTrustedServers && (!$emptyValue || !$noImage)) { + if ($shareWithTrustedServers && !$emptyValue) { $publish = true; switch ($property) { case AccountManager::PROPERTY_DISPLAYNAME: From 820e7b5abac0618755f1aafd5fece78d14bd6789 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Wed, 22 Nov 2017 13:58:44 +0100 Subject: [PATCH 78/92] Use apps versions to generate suffix when possible MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- lib/private/TemplateLayout.php | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 4d49522be78ea..2868d48a91106 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -90,7 +90,7 @@ public function __construct( $renderAs, $appId = '' ) { break; } } - + foreach($settingsNavigation as $entry) { if ($entry['active']) { $this->assign( 'application', $entry['name'] ); @@ -125,7 +125,7 @@ public function __construct( $renderAs, $appId = '' ) { if (empty(self::$versionHash)) { $v = \OC_App::getAppVersions(); $v['core'] = implode('.', \OCP\Util::getVersion()); - self::$versionHash = md5(implode(',', $v)); + self::$versionHash = substr(md5(implode(',', $v)), 0, 8); } } else { self::$versionHash = md5('not installed'); @@ -188,16 +188,25 @@ public function __construct( $renderAs, $appId = '' ) { if (substr($file, -strlen('print.css')) === 'print.css') { $this->append( 'printcssfiles', $web.'/'.$file . $this->getVersionHashSuffix() ); } else { - $this->append( 'cssfiles', $web.'/'.$file . $this->getVersionHashSuffix() ); + $this->append( 'cssfiles', $web.'/'.$file . $this->getVersionHashSuffix($web) ); } } } - protected function getVersionHashSuffix() { - if(\OC::$server->getConfig()->getSystemValue('debug', false)) { + protected function getVersionHashSuffix($app=false) { + if (\OC::$server->getConfig()->getSystemValue('debug', false)) { // allows chrome workspace mapping in debug mode return ""; } + if ($app !== false && $app !== '') { + $v = \OC_App::getAppVersions(); + $appName = end(explode('/', $app)); + if(array_key_exists($appName, $v)) { + $appVersion = $v[$appName]; + return '?v=' . substr(md5(implode(',', $appVersion)), 0, 8) . '-' . $this->config->getAppValue('theming', 'cachebuster', '0'); + } + } + if ($this->config->getSystemValue('installed', false) && \OC::$server->getAppManager()->isInstalled('theming')) { return '?v=' . self::$versionHash . '-' . $this->config->getAppValue('theming', 'cachebuster', '0'); } From f018bfc7de7322651473edbfe65bd440b9c9e85b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Tue, 5 Dec 2017 18:10:33 +0100 Subject: [PATCH 79/92] Fixed md5 generation and added fallback for scss requests MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- lib/private/TemplateLayout.php | 38 ++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 2868d48a91106..1bd9004265cf7 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -188,22 +188,32 @@ public function __construct( $renderAs, $appId = '' ) { if (substr($file, -strlen('print.css')) === 'print.css') { $this->append( 'printcssfiles', $web.'/'.$file . $this->getVersionHashSuffix() ); } else { - $this->append( 'cssfiles', $web.'/'.$file . $this->getVersionHashSuffix($web) ); + $this->append( 'cssfiles', $web.'/'.$file . $this->getVersionHashSuffix($web, $file) ); } } } - protected function getVersionHashSuffix($app=false) { + protected function getVersionHashSuffix($path = false, $file = false) { if (\OC::$server->getConfig()->getSystemValue('debug', false)) { // allows chrome workspace mapping in debug mode return ""; } - if ($app !== false && $app !== '') { - $v = \OC_App::getAppVersions(); - $appName = end(explode('/', $app)); + $v = \OC_App::getAppVersions(); + + // Try the webroot path for a match + if ($path !== false && $path !== '') { + $appName = $this->getAppNamefromPath($path); + if(array_key_exists($appName, $v)) { + $appVersion = $v[$appName]; + return '?v=' . substr(md5($appVersion), 0, 8) . '-' . $this->config->getAppValue('theming', 'cachebuster', '0'); + } + } + // fallback to the file path instead + if ($file !== false && $file !== '') { + $appName = $this->getAppNamefromPath($file); if(array_key_exists($appName, $v)) { $appVersion = $v[$appName]; - return '?v=' . substr(md5(implode(',', $appVersion)), 0, 8) . '-' . $this->config->getAppValue('theming', 'cachebuster', '0'); + return '?v=' . substr(md5($appVersion), 0, 8) . '-' . $this->config->getAppValue('theming', 'cachebuster', '0'); } } @@ -238,6 +248,22 @@ static public function findStylesheetFiles($styles, $compileScss = true) { return $locator->getResources(); } + /** + * @param string $path + * @return string + */ + static public function getAppNamefromPath($path) { + if ($path !== '' && is_string($path)) { + $pathParts = explode('/', $path); + if ($pathParts[0] === 'css') { + // This is a scss request + return $pathParts[1]; + } + return end($pathParts); + } + + } + /** * @param array $scripts * @return array From 1ac31260acc0a10970196a28dd48ad71440d72b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Fri, 8 Dec 2017 17:42:03 +0100 Subject: [PATCH 80/92] Fixed phpdoc and function type MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- lib/private/TemplateLayout.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 1bd9004265cf7..5118bb3bc1df9 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -193,6 +193,11 @@ public function __construct( $renderAs, $appId = '' ) { } } + /** + * @param string $path + * @param string $file + * @return string + */ protected function getVersionHashSuffix($path = false, $file = false) { if (\OC::$server->getConfig()->getSystemValue('debug', false)) { // allows chrome workspace mapping in debug mode @@ -250,9 +255,9 @@ static public function findStylesheetFiles($styles, $compileScss = true) { /** * @param string $path - * @return string + * @return string|boolean */ - static public function getAppNamefromPath($path) { + public function getAppNamefromPath($path) { if ($path !== '' && is_string($path)) { $pathParts = explode('/', $path); if ($pathParts[0] === 'css') { @@ -261,6 +266,7 @@ static public function getAppNamefromPath($path) { } return end($pathParts); } + return false } From 52e7d05163f21993bdcef25c26ebfa4487e55305 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 11 Dec 2017 13:55:04 +0100 Subject: [PATCH 81/92] Fix syntax error Signed-off-by: Morris Jobke --- lib/private/TemplateLayout.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 5118bb3bc1df9..f0f1378a052a6 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -266,7 +266,7 @@ public function getAppNamefromPath($path) { } return end($pathParts); } - return false + return false; } From cce4c285dbfd6957f50112b234b3545ebcceac54 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Fri, 8 Dec 2017 12:16:05 +0100 Subject: [PATCH 82/92] Fix email buttons for white theme Signed-off-by: Morris Jobke --- apps/theming/lib/Capabilities.php | 2 +- apps/theming/lib/ThemingDefaults.php | 16 ++++++++++------ apps/theming/tests/CapabilitiesTest.php | 16 ++++++++++------ lib/private/Mail/EMailTemplate.php | 10 ++++++---- lib/private/legacy/defaults.php | 9 +++++++++ lib/public/Defaults.php | 9 +++++++++ tests/Settings/Mailer/NewUserMailHelperTest.php | 12 ++++++++++-- tests/data/emails/new-account-email-custom.html | 2 +- .../emails/new-account-email-single-button.html | 2 +- tests/data/emails/new-account-email.html | 2 +- tests/lib/Mail/EMailTemplateTest.php | 16 ++++++++++++++++ 11 files changed, 74 insertions(+), 22 deletions(-) diff --git a/apps/theming/lib/Capabilities.php b/apps/theming/lib/Capabilities.php index b43779a27b523..1b6bb8927be5b 100644 --- a/apps/theming/lib/Capabilities.php +++ b/apps/theming/lib/Capabilities.php @@ -75,7 +75,7 @@ public function getCapabilities() { 'url' => $this->theming->getBaseUrl(), 'slogan' => $this->theming->getSlogan(), 'color' => $color, - 'color-text' => $this->util->invertTextColor($color) ? '#000000' : '#FFFFFF', + 'color-text' => $this->theming->getTextColorPrimary(), 'color-element' => $this->util->elementColor($color), 'logo' => $this->url->getAbsoluteURL($this->theming->getLogo()), 'background' => $backgroundLogo === 'backgroundColor' ? diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index eb1051b13c8c3..fa43dd50ccd05 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -256,13 +256,8 @@ public function getScssVariables() { $variables['image-login-plain'] = 'false'; if ($this->config->getAppValue('theming', 'color', null) !== null) { - if ($this->util->invertTextColor($this->getColorPrimary())) { - $colorPrimaryText = '#000000'; - } else { - $colorPrimaryText = '#ffffff'; - } $variables['color-primary'] = $this->getColorPrimary(); - $variables['color-primary-text'] = $colorPrimaryText; + $variables['color-primary-text'] = $this->getTextColorPrimary(); $variables['color-primary-element'] = $this->util->elementColor($this->getColorPrimary()); } @@ -378,4 +373,13 @@ public function undo($setting) { return $returnValue; } + + /** + * Color of text in the header and primary buttons + * + * @return string + */ + public function getTextColorPrimary() { + return $this->util->invertTextColor($this->getColorPrimary()) ? '#000000' : '#ffffff'; + } } diff --git a/apps/theming/tests/CapabilitiesTest.php b/apps/theming/tests/CapabilitiesTest.php index 17fc253fa4f8f..c760c896425e0 100644 --- a/apps/theming/tests/CapabilitiesTest.php +++ b/apps/theming/tests/CapabilitiesTest.php @@ -65,7 +65,7 @@ protected function setUp() { public function dataGetCapabilities() { return [ - ['name', 'url', 'slogan', '#FFFFFF', 'logo', 'background', 'http://absolute/', [ + ['name', 'url', 'slogan', '#FFFFFF', '#000000', 'logo', 'background', 'http://absolute/', [ 'name' => 'name', 'url' => 'url', 'slogan' => 'slogan', @@ -75,22 +75,22 @@ public function dataGetCapabilities() { 'logo' => 'http://absolute/logo', 'background' => 'http://absolute/background', ]], - ['name1', 'url2', 'slogan3', '#01e4a0', 'logo5', 'background6', 'http://localhost/', [ + ['name1', 'url2', 'slogan3', '#01e4a0', '#ffffff', 'logo5', 'background6', 'http://localhost/', [ 'name' => 'name1', 'url' => 'url2', 'slogan' => 'slogan3', 'color' => '#01e4a0', - 'color-text' => '#FFFFFF', + 'color-text' => '#ffffff', 'color-element' => '#01e4a0', 'logo' => 'http://localhost/logo5', 'background' => 'http://localhost/background6', ]], - ['name1', 'url2', 'slogan3', '#000000', 'logo5', 'backgroundColor', 'http://localhost/', [ + ['name1', 'url2', 'slogan3', '#000000', '#ffffff', 'logo5', 'backgroundColor', 'http://localhost/', [ 'name' => 'name1', 'url' => 'url2', 'slogan' => 'slogan3', 'color' => '#000000', - 'color-text' => '#FFFFFF', + 'color-text' => '#ffffff', 'color-element' => '#000000', 'logo' => 'http://localhost/logo5', 'background' => '#000000', @@ -105,11 +105,12 @@ public function dataGetCapabilities() { * @param string $slogan * @param string $color * @param string $logo + * @param string $textColor * @param string $background * @param string $baseUrl * @param string[] $expected */ - public function testGetCapabilities($name, $url, $slogan, $color, $logo, $background, $baseUrl, array $expected) { + public function testGetCapabilities($name, $url, $slogan, $color, $textColor, $logo, $background, $baseUrl, array $expected) { $this->config->expects($this->once()) ->method('getAppValue') ->willReturn($background); @@ -128,6 +129,9 @@ public function testGetCapabilities($name, $url, $slogan, $color, $logo, $backgr $this->theming->expects($this->once()) ->method('getLogo') ->willReturn($logo); + $this->theming->expects($this->once()) + ->method('getTextColorPrimary') + ->willReturn($textColor); if($background !== 'backgroundColor') { $this->theming->expects($this->once()) diff --git a/lib/private/Mail/EMailTemplate.php b/lib/private/Mail/EMailTemplate.php index 1d905635d551b..0535dabc13e4e 100644 --- a/lib/private/Mail/EMailTemplate.php +++ b/lib/private/Mail/EMailTemplate.php @@ -234,7 +234,7 @@ class EMailTemplate implements IEMailTemplate {
- %s + %s
@@ -287,7 +287,7 @@ class EMailTemplate implements IEMailTemplate {
- %s + %s
@@ -531,8 +531,9 @@ public function addBodyButtonGroup($textLeft, $this->ensureBodyListClosed(); $color = $this->themingDefaults->getColorPrimary(); + $textColor = $this->themingDefaults->getTextColorPrimary(); - $this->htmlBody .= vsprintf($this->buttonGroup, [$color, $color, $urlLeft, $color, htmlspecialchars($textLeft), $urlRight, htmlspecialchars($textRight)]); + $this->htmlBody .= vsprintf($this->buttonGroup, [$color, $color, $urlLeft, $color, $textColor, $textColor, htmlspecialchars($textLeft), $urlRight, htmlspecialchars($textRight)]); $this->plainBody .= $plainTextLeft . ': ' . $urlLeft . PHP_EOL; $this->plainBody .= $plainTextRight . ': ' . $urlRight . PHP_EOL . PHP_EOL; @@ -561,7 +562,8 @@ public function addBodyButton($text, $url, $plainText = '') { } $color = $this->themingDefaults->getColorPrimary(); - $this->htmlBody .= vsprintf($this->button, [$color, $color, $url, $color, htmlspecialchars($text)]); + $textColor = $this->themingDefaults->getTextColorPrimary(); + $this->htmlBody .= vsprintf($this->button, [$color, $color, $url, $color, $textColor, $textColor, htmlspecialchars($text)]); if ($plainText !== false) { $this->plainBody .= $plainText . ': '; diff --git a/lib/private/legacy/defaults.php b/lib/private/legacy/defaults.php index 8b5cef3643e8c..494c65ef226b7 100644 --- a/lib/private/legacy/defaults.php +++ b/lib/private/legacy/defaults.php @@ -50,6 +50,7 @@ class OC_Defaults { private $defaultDocVersion; private $defaultSlogan; private $defaultColorPrimary; + private $defaultTextColorPrimary; public function __construct() { $this->l = \OC::$server->getL10N('lib'); @@ -66,6 +67,7 @@ public function __construct() { $this->defaultDocVersion = '12'; // used to generate doc links $this->defaultSlogan = $this->l->t('a safe home for all your data'); $this->defaultColorPrimary = '#0082c9'; + $this->defaultTextColorPrimary = '#ffffff'; $themePath = OC::$SERVERROOT . '/themes/' . OC_Util::getTheme() . '/defaults.php'; if (file_exists($themePath)) { @@ -318,4 +320,11 @@ public function getLogo($useSvg = true) { } return $logo . '?v=' . hash('sha1', implode('.', \OCP\Util::getVersion())); } + + public function getTextColorPrimary() { + if ($this->themeExist('getTextColorPrimary')) { + return $this->theme->getTextColorPrimary(); + } + return $this->defaultTextColorPrimary; + } } diff --git a/lib/public/Defaults.php b/lib/public/Defaults.php index 4bf638fda9fb5..bf790bb723957 100644 --- a/lib/public/Defaults.php +++ b/lib/public/Defaults.php @@ -213,4 +213,13 @@ public function buildDocLinkToKey($key) { public function getTitle() { return $this->defaults->getTitle(); } + + /** + * Returns primary color + * @return string + * @since 13.0.0 + */ + public function getTextColorPrimary() { + return $this->defaults->getTextColorPrimary(); + } } diff --git a/tests/Settings/Mailer/NewUserMailHelperTest.php b/tests/Settings/Mailer/NewUserMailHelperTest.php index f05a963e5371b..84553cc9007cb 100644 --- a/tests/Settings/Mailer/NewUserMailHelperTest.php +++ b/tests/Settings/Mailer/NewUserMailHelperTest.php @@ -157,6 +157,10 @@ public function testGenerateTemplateWithPasswordResetToken() { ->expects($this->any()) ->method('getName') ->willReturn('TestCloud'); + $this->defaults + ->expects($this->any()) + ->method('getTextColorPrimary') + ->willReturn('#ffffff'); $expectedHtmlBody = << @@ -281,7 +285,7 @@ public function testGenerateTemplateWithPasswordResetToken() {
- Set your password + Set your password
@@ -390,6 +394,10 @@ public function testGenerateTemplateWithoutPasswordResetToken() { ->expects($this->any()) ->method('getName') ->willReturn('TestCloud'); + $this->defaults + ->expects($this->any()) + ->method('getTextColorPrimary') + ->willReturn('#ffffff'); $expectedHtmlBody = << @@ -514,7 +522,7 @@ public function testGenerateTemplateWithoutPasswordResetToken() {
- Go to TestCloud + Go to TestCloud
diff --git a/tests/data/emails/new-account-email-custom.html b/tests/data/emails/new-account-email-custom.html index 9d35a7f3515e3..601aa0b63d4a1 100644 --- a/tests/data/emails/new-account-email-custom.html +++ b/tests/data/emails/new-account-email-custom.html @@ -120,7 +120,7 @@

- Set your password + Set your password diff --git a/tests/data/emails/new-account-email-single-button.html b/tests/data/emails/new-account-email-single-button.html index 3746d5d2cbb39..db8ab868682c1 100644 --- a/tests/data/emails/new-account-email-single-button.html +++ b/tests/data/emails/new-account-email-single-button.html @@ -120,7 +120,7 @@

- Set your password + Set your password diff --git a/tests/data/emails/new-account-email.html b/tests/data/emails/new-account-email.html index d33cb540c38cf..f7ffbb8abf659 100644 --- a/tests/data/emails/new-account-email.html +++ b/tests/data/emails/new-account-email.html @@ -120,7 +120,7 @@

- Set your password + Set your password diff --git a/tests/lib/Mail/EMailTemplateTest.php b/tests/lib/Mail/EMailTemplateTest.php index 339cd95defc7d..d4687c44b069d 100644 --- a/tests/lib/Mail/EMailTemplateTest.php +++ b/tests/lib/Mail/EMailTemplateTest.php @@ -68,6 +68,10 @@ public function testEMailTemplateCustomFooter() { ->expects($this->any()) ->method('getName') ->willReturn('TestCloud'); + $this->defaults + ->expects($this->any()) + ->method('getTextColorPrimary') + ->willReturn('#ffffff'); $this->urlGenerator ->expects($this->once()) ->method('getAbsoluteURL') @@ -109,6 +113,10 @@ public function testEMailTemplateDefaultFooter() { ->expects($this->any()) ->method('getLogo') ->willReturn('/img/logo-mail-header.png'); + $this->defaults + ->expects($this->any()) + ->method('getTextColorPrimary') + ->willReturn('#ffffff'); $this->urlGenerator ->expects($this->once()) ->method('getAbsoluteURL') @@ -148,6 +156,10 @@ public function testEMailTemplateSingleButton() { ->expects($this->any()) ->method('getLogo') ->willReturn('/img/logo-mail-header.png'); + $this->defaults + ->expects($this->any()) + ->method('getTextColorPrimary') + ->willReturn('#ffffff'); $this->urlGenerator ->expects($this->once()) ->method('getAbsoluteURL') @@ -189,6 +201,10 @@ public function testEMailTemplateAlternativePlainTexts() { ->expects($this->any()) ->method('getLogo') ->willReturn('/img/logo-mail-header.png'); + $this->defaults + ->expects($this->any()) + ->method('getTextColorPrimary') + ->willReturn('#ffffff'); $this->urlGenerator ->expects($this->once()) ->method('getAbsoluteURL') From ce69d9ec71b3052fc9a4aa64222baef6d36a9f28 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 11 Dec 2017 15:03:55 +0100 Subject: [PATCH 83/92] Fix 500 on setup page Signed-off-by: Morris Jobke --- lib/private/TemplateLayout.php | 25 +++++++++++++++---------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index f0f1378a052a6..997980aa5d743 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -105,7 +105,7 @@ public function __construct( $renderAs, $appId = '' ) { $this->assign('userAvatarSet', false); } else { $this->assign('userAvatarSet', \OC::$server->getAvatarManager()->getAvatar(\OC_User::getUser())->exists()); - $this->assign('userAvatarVersion', \OC::$server->getConfig()->getUserValue(\OC_User::getUser(), 'avatar', 'version', 0)); + $this->assign('userAvatarVersion', $this->config->getUserValue(\OC_User::getUser(), 'avatar', 'version', 0)); } } else if ($renderAs == 'error') { @@ -142,7 +142,7 @@ public function __construct( $renderAs, $appId = '' ) { \OC::$server->getAppManager(), \OC::$server->getSession(), \OC::$server->getUserSession()->getUser(), - \OC::$server->getConfig(), + $this->config, \OC::$server->getGroupManager(), \OC::$server->getIniWrapper(), \OC::$server->getURLGenerator() @@ -199,18 +199,26 @@ public function __construct( $renderAs, $appId = '' ) { * @return string */ protected function getVersionHashSuffix($path = false, $file = false) { - if (\OC::$server->getConfig()->getSystemValue('debug', false)) { + if ($this->config->getSystemValue('debug', false)) { // allows chrome workspace mapping in debug mode return ""; } - $v = \OC_App::getAppVersions(); + $themingSuffix = ''; + $v = []; + + if ($this->config->getSystemValue('installed', false)) { + if (\OC::$server->getAppManager()->isInstalled('theming')) { + $themingSuffix = '-' . $this->config->getAppValue('theming', 'cachebuster', '0'); + } + $v = \OC_App::getAppVersions(); + } // Try the webroot path for a match if ($path !== false && $path !== '') { $appName = $this->getAppNamefromPath($path); if(array_key_exists($appName, $v)) { $appVersion = $v[$appName]; - return '?v=' . substr(md5($appVersion), 0, 8) . '-' . $this->config->getAppValue('theming', 'cachebuster', '0'); + return '?v=' . substr(md5($appVersion), 0, 8) . $themingSuffix; } } // fallback to the file path instead @@ -218,14 +226,11 @@ protected function getVersionHashSuffix($path = false, $file = false) { $appName = $this->getAppNamefromPath($file); if(array_key_exists($appName, $v)) { $appVersion = $v[$appName]; - return '?v=' . substr(md5($appVersion), 0, 8) . '-' . $this->config->getAppValue('theming', 'cachebuster', '0'); + return '?v=' . substr(md5($appVersion), 0, 8) . $themingSuffix; } } - if ($this->config->getSystemValue('installed', false) && \OC::$server->getAppManager()->isInstalled('theming')) { - return '?v=' . self::$versionHash . '-' . $this->config->getAppValue('theming', 'cachebuster', '0'); - } - return '?v=' . self::$versionHash; + return '?v=' . self::$versionHash . $themingSuffix; } /** From 787e3d51b454c072947ed0df5426ad70b9814b8f Mon Sep 17 00:00:00 2001 From: Christoph Seitz Date: Sun, 1 Oct 2017 16:03:30 +0200 Subject: [PATCH 84/92] Fix functions to search for principals in the backend. Add a "searchPrincipals" function to the NC principal backend. Fix the "findByUri" function to respect the prefixPath. Signed-off-by: Christoph Seitz --- apps/dav/lib/CalDAV/Principal/Collection.php | 45 +++++++++++++++ apps/dav/lib/CalDAV/Principal/User.php | 55 ++++++++++++++++++ apps/dav/lib/Connector/Sabre/Principal.php | 61 ++++++++++++++++++-- apps/dav/lib/RootCollection.php | 2 +- 4 files changed, 157 insertions(+), 6 deletions(-) create mode 100644 apps/dav/lib/CalDAV/Principal/Collection.php create mode 100644 apps/dav/lib/CalDAV/Principal/User.php diff --git a/apps/dav/lib/CalDAV/Principal/Collection.php b/apps/dav/lib/CalDAV/Principal/Collection.php new file mode 100644 index 0000000000000..cadfc66c26bc0 --- /dev/null +++ b/apps/dav/lib/CalDAV/Principal/Collection.php @@ -0,0 +1,45 @@ + + * + * @author Christoph Seitz + * + * @license GNU AGPL version 3 or any later version + * + * 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 + * + */ + +namespace OCA\DAV\CalDAV\Principal; + +use OCA\DAV\CalDAV\Principal\User; + +/** + * Class Collection + * + * @package OCA\DAV\CalDAV\Principal + */ +class Collection extends \Sabre\CalDAV\Principal\Collection { + + /** + * Returns a child object based on principal information + * + * @param array $principalInfo + * @return User + */ + function getChildForPrincipal(array $principalInfo) { + return new User($this->principalBackend, $principalInfo); + } + +} diff --git a/apps/dav/lib/CalDAV/Principal/User.php b/apps/dav/lib/CalDAV/Principal/User.php new file mode 100644 index 0000000000000..85b0401e86534 --- /dev/null +++ b/apps/dav/lib/CalDAV/Principal/User.php @@ -0,0 +1,55 @@ + + * + * @author Christoph Seitz + * + * @license GNU AGPL version 3 or any later version + * + * 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 + * + */ + +namespace OCA\DAV\CalDAV\Principal; + +/** + * Class User + * + * @package OCA\DAV\CalDAV\Principal + */ +class User extends \Sabre\CalDAV\Principal\User { + + /** + * Returns a list of ACE's for this node. + * + * Each ACE has the following properties: + * * 'privilege', a string such as {DAV:}read or {DAV:}write. These are + * currently the only supported privileges + * * 'principal', a url to the principal who owns the node + * * 'protected' (optional), indicating that this ACE is not allowed to + * be updated. + * + * @return array + */ + function getACL() { + $acl = parent::getACL(); + $acl[] = [ + 'privilege' => '{DAV:}read', + 'principal' => '{DAV:}authenticated', + 'protected' => true, + ]; + return $acl; + } + +} diff --git a/apps/dav/lib/Connector/Sabre/Principal.php b/apps/dav/lib/Connector/Sabre/Principal.php index b45807ff82b58..174120483521f 100644 --- a/apps/dav/lib/Connector/Sabre/Principal.php +++ b/apps/dav/lib/Connector/Sabre/Principal.php @@ -182,6 +182,46 @@ function updatePrincipal($path, PropPatch $propPatch) { return 0; } + /** + * Search user principals + * + * @param array $searchProperties + * @param string $test + * @return array + */ + function searchUserPrincipals(array $searchProperties, $test = 'allof') { + $results = []; + + //TODO: If more properties should be supported, hook this up to a db query + foreach ($searchProperties as $prop => $value) { + switch ($prop) { + case '{http://sabredav.org/ns}email-address': + $users = $this->userManager->getByEmail($value); + $results[] = array_map(function ($user) { + return $this->principalPrefix . '/' . $user->getUID(); + }, $users); + break; + default: + $results[] = []; + break; + } + } + + if (count($results) == 1) { + return $results[0]; + } + + switch ($test) { + case 'allof': + + return array_intersect(...$results); + case 'anyof': + return array_unique(array_merge(...$results)); + } + + return []; + } + /** * @param string $prefixPath * @param array $searchProperties @@ -189,7 +229,16 @@ function updatePrincipal($path, PropPatch $propPatch) { * @return array */ function searchPrincipals($prefixPath, array $searchProperties, $test = 'allof') { - return []; + if (count($searchProperties) == 0) { + return []; + } + + switch ($prefixPath) { + case 'principals/users': + return $this->searchUserPrincipals($searchProperties, $test); + default: + return []; + } } /** @@ -199,10 +248,12 @@ function searchPrincipals($prefixPath, array $searchProperties, $test = 'allof') */ function findByUri($uri, $principalPrefix) { if (substr($uri, 0, 7) === 'mailto:') { - $email = substr($uri, 7); - $users = $this->userManager->getByEmail($email); - if (count($users) === 1) { - return $this->principalPrefix . '/' . $users[0]->getUID(); + if ($principalPrefix === principals/users) { + $email = substr($uri, 7); + $users = $this->userManager->getByEmail($email); + if (count($users) === 1) { + return $this->principalPrefix . '/' . $users[0]->getUID(); + } } } diff --git a/apps/dav/lib/RootCollection.php b/apps/dav/lib/RootCollection.php index 7af1745cd7459..c0f7b1e497b11 100644 --- a/apps/dav/lib/RootCollection.php +++ b/apps/dav/lib/RootCollection.php @@ -32,7 +32,7 @@ use OCA\DAV\Connector\Sabre\Principal; use OCA\DAV\DAV\GroupPrincipalBackend; use OCA\DAV\DAV\SystemPrincipalBackend; -use Sabre\CalDAV\Principal\Collection; +use OCA\DAV\CalDAV\Principal\Collection; use Sabre\DAV\SimpleCollection; class RootCollection extends SimpleCollection { From f54303985872c5d884a2572c652c68e5e784074e Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Fri, 3 Nov 2017 14:31:26 +0100 Subject: [PATCH 85/92] exclude shared calendars from freeBusy Signed-off-by: Georg Ehrke --- apps/dav/lib/CalDAV/CalDavBackend.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 2f591a262a26f..5c5bfae841b88 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -353,7 +353,7 @@ function getCalendarsForUser($principalUri) { '{' . Plugin::NS_CALENDARSERVER . '}getctag' => 'http://sabre.io/ns/sync/' . ($row['synctoken']?$row['synctoken']:'0'), '{http://sabredav.org/ns}sync-token' => $row['synctoken']?$row['synctoken']:'0', '{' . Plugin::NS_CALDAV . '}supported-calendar-component-set' => new SupportedCalendarComponentSet($components), - '{' . Plugin::NS_CALDAV . '}schedule-calendar-transp' => new ScheduleCalendarTransp($row['transparent']?'transparent':'opaque'), + '{' . Plugin::NS_CALDAV . '}schedule-calendar-transp' => new ScheduleCalendarTransp('transparent'), '{' . \OCA\DAV\DAV\Sharing\Plugin::NS_OWNCLOUD . '}owner-principal' => $this->convertPrincipal($row['principaluri'], !$this->legacyEndpoint), $readOnlyPropertyName => $readOnly, ]; From 6802e2b59a8973b1e7b9c3aaafc5073df51677f9 Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Mon, 4 Dec 2017 15:02:55 +0100 Subject: [PATCH 86/92] Principal search: Take sharing settings into account Signed-off-by: Georg Ehrke --- apps/dav/appinfo/v1/caldav.php | 2 + apps/dav/appinfo/v1/carddav.php | 2 + apps/dav/lib/Command/CreateCalendar.php | 4 +- apps/dav/lib/Connector/Sabre/Principal.php | 109 ++++++++-- apps/dav/lib/RootCollection.php | 5 +- .../unit/Connector/Sabre/PrincipalTest.php | 188 ++++++++++++++++-- 6 files changed, 275 insertions(+), 35 deletions(-) diff --git a/apps/dav/appinfo/v1/caldav.php b/apps/dav/appinfo/v1/caldav.php index d9851bf92c816..b4907ce94cb5f 100644 --- a/apps/dav/appinfo/v1/caldav.php +++ b/apps/dav/appinfo/v1/caldav.php @@ -44,6 +44,8 @@ $principalBackend = new Principal( \OC::$server->getUserManager(), \OC::$server->getGroupManager(), + \OC::$server->getShareManager(), + \OC::$server->getUserSession(), 'principals/' ); $db = \OC::$server->getDatabaseConnection(); diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php index 8633b4211e174..eddc7a794ac6e 100644 --- a/apps/dav/appinfo/v1/carddav.php +++ b/apps/dav/appinfo/v1/carddav.php @@ -45,6 +45,8 @@ $principalBackend = new Principal( \OC::$server->getUserManager(), \OC::$server->getGroupManager(), + \OC::$server->getShareManager(), + \OC::$server->getUserSession(), 'principals/' ); $db = \OC::$server->getDatabaseConnection(); diff --git a/apps/dav/lib/Command/CreateCalendar.php b/apps/dav/lib/Command/CreateCalendar.php index 190e4aa339f04..1cbd7b6094477 100644 --- a/apps/dav/lib/Command/CreateCalendar.php +++ b/apps/dav/lib/Command/CreateCalendar.php @@ -75,7 +75,9 @@ protected function execute(InputInterface $input, OutputInterface $output) { } $principalBackend = new Principal( $this->userManager, - $this->groupManager + $this->groupManager, + \OC::$server->getShareManager(), + \OC::$server->getUserSession() ); $random = \OC::$server->getSecureRandom(); $logger = \OC::$server->getLogger(); diff --git a/apps/dav/lib/Connector/Sabre/Principal.php b/apps/dav/lib/Connector/Sabre/Principal.php index 174120483521f..06fb10f7e2cd2 100644 --- a/apps/dav/lib/Connector/Sabre/Principal.php +++ b/apps/dav/lib/Connector/Sabre/Principal.php @@ -34,6 +34,8 @@ use OCP\IGroupManager; use OCP\IUser; use OCP\IUserManager; +use OCP\IUserSession; +use OCP\Share\IManager as IShareManager; use Sabre\DAV\Exception; use \Sabre\DAV\PropPatch; use Sabre\DAVACL\PrincipalBackend\BackendInterface; @@ -47,6 +49,12 @@ class Principal implements BackendInterface { /** @var IGroupManager */ private $groupManager; + /** @var IShareManager */ + private $shareManager; + + /** @var IUserSession */ + private $userSession; + /** @var string */ private $principalPrefix; @@ -56,13 +64,19 @@ class Principal implements BackendInterface { /** * @param IUserManager $userManager * @param IGroupManager $groupManager + * @param IShareManager $shareManager + * @param IUserSession $userSession * @param string $principalPrefix */ public function __construct(IUserManager $userManager, IGroupManager $groupManager, + IShareManager $shareManager, + IUserSession $userSession, $principalPrefix = 'principals/users/') { $this->userManager = $userManager; $this->groupManager = $groupManager; + $this->shareManager = $shareManager; + $this->userSession = $userSession; $this->principalPrefix = trim($principalPrefix, '/'); $this->hasGroups = ($principalPrefix === 'principals/users/'); } @@ -106,7 +120,7 @@ public function getPrincipalByPath($path) { if ($prefix === $this->principalPrefix) { $user = $this->userManager->get($name); - if (!is_null($user)) { + if ($user !== null) { return $this->userToPrincipal($user); } } @@ -189,37 +203,65 @@ function updatePrincipal($path, PropPatch $propPatch) { * @param string $test * @return array */ - function searchUserPrincipals(array $searchProperties, $test = 'allof') { + protected function searchUserPrincipals(array $searchProperties, $test = 'allof') { $results = []; - //TODO: If more properties should be supported, hook this up to a db query + // If sharing is disabled, return the empty array + if (!$this->shareManager->shareApiEnabled()) { + return []; + } + + // If sharing is restricted to group members only, + // return only members that have groups in common + $restrictGroups = false; + if ($this->shareManager->shareWithGroupMembersOnly()) { + $user = $this->userSession->getUser(); + if (!$user) { + return []; + } + + $restrictGroups = $this->groupManager->getUserGroupIds($user); + } + foreach ($searchProperties as $prop => $value) { switch ($prop) { case '{http://sabredav.org/ns}email-address': $users = $this->userManager->getByEmail($value); - $results[] = array_map(function ($user) { - return $this->principalPrefix . '/' . $user->getUID(); - }, $users); + + $results[] = array_reduce($users, function(array $carry, IUser $user) use ($restrictGroups) { + // is sharing restricted to groups only? + if ($restrictGroups !== false) { + $userGroups = $this->groupManager->getUserGroupIds($user); + if (count(array_intersect($userGroups, $restrictGroups)) === 0) { + return $carry; + } + } + + $carry[] = $this->principalPrefix . '/' . $user->getUID(); + return $carry; + }, []); break; + default: $results[] = []; break; } } - if (count($results) == 1) { + // results is an array of arrays, so this is not the first search result + // but the results of the first searchProperty + if (count($results) === 1) { return $results[0]; } switch ($test) { - case 'allof': - - return array_intersect(...$results); case 'anyof': return array_unique(array_merge(...$results)); - } - return []; + case 'allof': + default: + return array_intersect(...$results); + } } /** @@ -229,13 +271,14 @@ function searchUserPrincipals(array $searchProperties, $test = 'allof') { * @return array */ function searchPrincipals($prefixPath, array $searchProperties, $test = 'allof') { - if (count($searchProperties) == 0) { + if (count($searchProperties) === 0) { return []; } switch ($prefixPath) { case 'principals/users': return $this->searchUserPrincipals($searchProperties, $test); + default: return []; } @@ -247,17 +290,43 @@ function searchPrincipals($prefixPath, array $searchProperties, $test = 'allof') * @return string */ function findByUri($uri, $principalPrefix) { - if (substr($uri, 0, 7) === 'mailto:') { - if ($principalPrefix === principals/users) { - $email = substr($uri, 7); - $users = $this->userManager->getByEmail($email); - if (count($users) === 1) { - return $this->principalPrefix . '/' . $users[0]->getUID(); + // If sharing is disabled, return null as in user not found + if (!$this->shareManager->shareApiEnabled()) { + return null; + } + + // If sharing is restricted to group members only, + // return only members that have groups in common + $restrictGroups = false; + if ($this->shareManager->shareWithGroupMembersOnly()) { + $user = $this->userSession->getUser(); + if (!$user) { + return null; + } + + $restrictGroups = $this->groupManager->getUserGroupIds($user); + } + + if (strpos($uri, 'mailto:') === 0) { + if ($principalPrefix === 'principals/users') { + $users = $this->userManager->getByEmail(substr($uri, 7)); + if (count($users) !== 1) { + return null; } + $user = $users[0]; + + if ($restrictGroups !== false) { + $userGroups = $this->groupManager->getUserGroupIds($user); + if (count(array_intersect($userGroups, $restrictGroups)) === 0) { + return null; + } + } + + return $this->principalPrefix . '/' . $user->getUID(); } } - return ''; + return null; } /** diff --git a/apps/dav/lib/RootCollection.php b/apps/dav/lib/RootCollection.php index c0f7b1e497b11..f2e9350c101b4 100644 --- a/apps/dav/lib/RootCollection.php +++ b/apps/dav/lib/RootCollection.php @@ -43,11 +43,14 @@ public function __construct() { $logger = \OC::$server->getLogger(); $userManager = \OC::$server->getUserManager(); $groupManager = \OC::$server->getGroupManager(); + $shareManager = \OC::$server->getShareManager(); $db = \OC::$server->getDatabaseConnection(); $dispatcher = \OC::$server->getEventDispatcher(); $userPrincipalBackend = new Principal( $userManager, - $groupManager + $groupManager, + $shareManager, + \OC::$server->getUserSession() ); $groupPrincipalBackend = new GroupPrincipalBackend($groupManager); // as soon as debug mode is enabled we allow listing of principals diff --git a/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php b/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php index 5b77a0694fe6c..7b9929bc4f3df 100644 --- a/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php @@ -29,6 +29,9 @@ use OC\User\User; use OCP\IGroup; use OCP\IGroupManager; +use OCP\IUser; +use OCP\IUserSession; +use OCP\Share\IManager; use \Sabre\DAV\PropPatch; use OCP\IUserManager; use Test\TestCase; @@ -40,14 +43,22 @@ class PrincipalTest extends TestCase { private $connector; /** @var IGroupManager | \PHPUnit_Framework_MockObject_MockObject */ private $groupManager; + /** @var IManager | \PHPUnit_Framework_MockObject_MockObject */ + private $shareManager; + /** @var IUserSession | \PHPUnit_Framework_MockObject_MockObject */ + private $userSession; public function setUp() { $this->userManager = $this->createMock(IUserManager::class); $this->groupManager = $this->createMock(IGroupManager::class); + $this->shareManager = $this->createMock(IManager::class); + $this->userSession = $this->createMock(IUserSession::class); $this->connector = new \OCA\DAV\Connector\Sabre\Principal( $this->userManager, - $this->groupManager); + $this->groupManager, + $this->shareManager, + $this->userSession); parent::setUp(); } @@ -255,21 +266,172 @@ public function testUpdatePrincipal() { $this->assertSame(0, $this->connector->updatePrincipal('foo', new PropPatch(array()))); } - public function testSearchPrincipals() { + public function testSearchPrincipalsWithEmptySearchProperties() { $this->assertSame([], $this->connector->searchPrincipals('principals/users', [])); } - public function testFindByUri() { - $fooUser = $this->createMock(User::class); - $fooUser - ->expects($this->exactly(1)) - ->method('getUID') - ->will($this->returnValue('foo')); + public function testSearchPrincipalsWithWrongPrefixPath() { + $this->assertSame([], $this->connector->searchPrincipals('principals/groups', + ['{http://sabredav.org/ns}email-address' => 'foo'])); + } + + /** + * @dataProvider searchPrincipalsDataProvider + */ + public function testSearchPrincipals($sharingEnabled, $groupsOnly, $result) { + $this->shareManager->expects($this->once()) + ->method('shareAPIEnabled') + ->will($this->returnValue($sharingEnabled)); + + if ($sharingEnabled) { + $this->shareManager->expects($this->once()) + ->method('shareWithGroupMembersOnly') + ->will($this->returnValue($groupsOnly)); + + if ($groupsOnly) { + $user = $this->createMock(IUser::class); + $this->userSession->expects($this->once()) + ->method('getUser') + ->will($this->returnValue($user)); + + $this->groupManager->expects($this->at(0)) + ->method('getUserGroupIds') + ->with($user) + ->will($this->returnValue(['group1', 'group2'])); + } + } else { + $this->shareManager->expects($this->never()) + ->method('shareWithGroupMembersOnly'); + $this->groupManager->expects($this->never()) + ->method($this->anything()); + } + + $user2 = $this->createMock(IUser::class); + $user2->method('getUID')->will($this->returnValue('user2')); + $user3 = $this->createMock(IUser::class); + $user3->method('getUID')->will($this->returnValue('user3')); + + if ($sharingEnabled) { + $this->userManager->expects($this->at(0)) + ->method('getByEmail') + ->with('user') + ->will($this->returnValue([$user2, $user3])); + } + + if ($sharingEnabled && $groupsOnly) { + $this->groupManager->expects($this->at(1)) + ->method('getUserGroupIds') + ->with($user2) + ->will($this->returnValue(['group1', 'group3'])); + $this->groupManager->expects($this->at(2)) + ->method('getUserGroupIds') + ->with($user3) + ->will($this->returnValue(['group3', 'group4'])); + } + + $this->assertEquals($result, $this->connector->searchPrincipals('principals/users', + ['{http://sabredav.org/ns}email-address' => 'user'])); + } + + public function searchPrincipalsDataProvider() { + return [ + [true, false, ['principals/users/user2', 'principals/users/user3']], + [true, true, ['principals/users/user2']], + [false, false, []], + ]; + } + + public function testFindByUriSharingApiDisabled() { + $this->shareManager->expects($this->once()) + ->method('shareApiEnabled') + ->will($this->returnValue(false)); + + $this->assertEquals(null, $this->connector->findByUri('mailto:user@foo.com', 'principals/users')); + } - $this->userManager->expects($this->once())->method('getByEmail')->willReturn([ - $fooUser - ]); - $ret = $this->connector->findByUri('mailto:foo@bar.net', 'principals/users'); - $this->assertSame('principals/users/foo', $ret); + /** + * @dataProvider findByUriWithGroupRestrictionDataProvider + */ + public function testFindByUriWithGroupRestriction($uri, $email, $expects) { + $this->shareManager->expects($this->once()) + ->method('shareApiEnabled') + ->will($this->returnValue(true)); + + $this->shareManager->expects($this->once()) + ->method('shareWithGroupMembersOnly') + ->will($this->returnValue(true)); + + $user = $this->createMock(IUser::class); + $this->userSession->expects($this->once()) + ->method('getUser') + ->will($this->returnValue($user)); + + $this->groupManager->expects($this->at(0)) + ->method('getUserGroupIds') + ->with($user) + ->will($this->returnValue(['group1', 'group2'])); + + $user2 = $this->createMock(IUser::class); + $user2->method('getUID')->will($this->returnValue('user2')); + $user3 = $this->createMock(IUser::class); + $user3->method('getUID')->will($this->returnValue('user3')); + + $this->userManager->expects($this->once()) + ->method('getByEmail') + ->with($email) + ->will($this->returnValue([$email === 'user2@foo.bar' ? $user2 : $user3])); + + if ($email === 'user2@foo.bar') { + $this->groupManager->expects($this->at(1)) + ->method('getUserGroupIds') + ->with($user2) + ->will($this->returnValue(['group1', 'group3'])); + } else { + $this->groupManager->expects($this->at(1)) + ->method('getUserGroupIds') + ->with($user3) + ->will($this->returnValue(['group3', 'group3'])); + } + + $this->assertEquals($expects, $this->connector->findByUri($uri, 'principals/users')); + } + + public function findByUriWithGroupRestrictionDataProvider() { + return [ + ['mailto:user2@foo.bar', 'user2@foo.bar', 'principals/users/user2'], + ['mailto:user3@foo.bar', 'user3@foo.bar', null], + ]; + } + + /** + * @dataProvider findByUriWithoutGroupRestrictionDataProvider + */ + public function testFindByUriWithoutGroupRestriction($uri, $email, $expects) { + $this->shareManager->expects($this->once()) + ->method('shareApiEnabled') + ->will($this->returnValue(true)); + + $this->shareManager->expects($this->once()) + ->method('shareWithGroupMembersOnly') + ->will($this->returnValue(false)); + + $user2 = $this->createMock(IUser::class); + $user2->method('getUID')->will($this->returnValue('user2')); + $user3 = $this->createMock(IUser::class); + $user3->method('getUID')->will($this->returnValue('user3')); + + $this->userManager->expects($this->once()) + ->method('getByEmail') + ->with($email) + ->will($this->returnValue([$email === 'user2@foo.bar' ? $user2 : $user3])); + + $this->assertEquals($expects, $this->connector->findByUri($uri, 'principals/users')); + } + + public function findByUriWithoutGroupRestrictionDataProvider() { + return [ + ['mailto:user2@foo.bar', 'user2@foo.bar', 'principals/users/user2'], + ['mailto:user3@foo.bar', 'user3@foo.bar', 'principals/users/user3'], + ]; } } From 728248bd8d432c03717ab08a60566acde973c1bf Mon Sep 17 00:00:00 2001 From: Georg Ehrke Date: Sat, 9 Dec 2017 21:01:44 +0100 Subject: [PATCH 87/92] updated autoloaders for dav Signed-off-by: Georg Ehrke --- apps/dav/composer/composer/autoload_classmap.php | 2 ++ apps/dav/composer/composer/autoload_static.php | 2 ++ 2 files changed, 4 insertions(+) diff --git a/apps/dav/composer/composer/autoload_classmap.php b/apps/dav/composer/composer/autoload_classmap.php index 24a6b885029e9..137b77dbd35fc 100644 --- a/apps/dav/composer/composer/autoload_classmap.php +++ b/apps/dav/composer/composer/autoload_classmap.php @@ -30,6 +30,8 @@ 'OCA\\DAV\\CalDAV\\CalendarObject' => $baseDir . '/../lib/CalDAV/CalendarObject.php', 'OCA\\DAV\\CalDAV\\CalendarRoot' => $baseDir . '/../lib/CalDAV/CalendarRoot.php', 'OCA\\DAV\\CalDAV\\Plugin' => $baseDir . '/../lib/CalDAV/Plugin.php', + 'OCA\\DAV\\CalDAV\\Principal\\Collection' => $baseDir . '/../lib/CalDAV/Principal/Collection.php', + 'OCA\\DAV\\CalDAV\\Principal\\User' => $baseDir . '/../lib/CalDAV/Principal/User.php', 'OCA\\DAV\\CalDAV\\PublicCalendar' => $baseDir . '/../lib/CalDAV/PublicCalendar.php', 'OCA\\DAV\\CalDAV\\PublicCalendarObject' => $baseDir . '/../lib/CalDAV/PublicCalendarObject.php', 'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => $baseDir . '/../lib/CalDAV/PublicCalendarRoot.php', diff --git a/apps/dav/composer/composer/autoload_static.php b/apps/dav/composer/composer/autoload_static.php index 1c7684822211f..772eba413495a 100644 --- a/apps/dav/composer/composer/autoload_static.php +++ b/apps/dav/composer/composer/autoload_static.php @@ -45,6 +45,8 @@ class ComposerStaticInitDAV 'OCA\\DAV\\CalDAV\\CalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarObject.php', 'OCA\\DAV\\CalDAV\\CalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/CalendarRoot.php', 'OCA\\DAV\\CalDAV\\Plugin' => __DIR__ . '/..' . '/../lib/CalDAV/Plugin.php', + 'OCA\\DAV\\CalDAV\\Principal\\Collection' => __DIR__ . '/..' . '/../lib/CalDAV/Principal/Collection.php', + 'OCA\\DAV\\CalDAV\\Principal\\User' => __DIR__ . '/..' . '/../lib/CalDAV/Principal/User.php', 'OCA\\DAV\\CalDAV\\PublicCalendar' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendar.php', 'OCA\\DAV\\CalDAV\\PublicCalendarObject' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarObject.php', 'OCA\\DAV\\CalDAV\\PublicCalendarRoot' => __DIR__ . '/..' . '/../lib/CalDAV/PublicCalendarRoot.php', From 4c32de22bbe8b21477e5d7c5043768ad8ad77d0c Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Wed, 20 Sep 2017 17:33:51 +0200 Subject: [PATCH 88/92] Create activities for (un)publishing calendar events Signed-off-by: Thomas Citharel --- apps/dav/lib/AppInfo/Application.php | 9 +++++++++ apps/dav/lib/CalDAV/Activity/Backend.php | 10 ++++++++++ .../lib/CalDAV/Activity/Provider/Calendar.php | 9 +++++++++ apps/dav/lib/CalDAV/CalDavBackend.php | 10 ++++++++++ .../tests/unit/CalDAV/Activity/BackendTest.php | 17 +++++++++++++++++ 5 files changed, 55 insertions(+) diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php index a6ca99bfff5a6..b38f38044f309 100644 --- a/apps/dav/lib/AppInfo/Application.php +++ b/apps/dav/lib/AppInfo/Application.php @@ -178,6 +178,15 @@ public function registerHooks() { ); }); + $dispatcher->addListener('\OCA\DAV\CalDAV\CalDavBackend::publishCalendar', function(GenericEvent $event) { + /** @var Backend $backend */ + $backend = $this->getContainer()->query(Backend::class); + $backend->onCalendarPublication( + $event->getArgument('calendarData'), + $event->getArgument('public') + ); + }); + $listener = function(GenericEvent $event, $eventName) { /** @var Backend $backend */ $backend = $this->getContainer()->query(Backend::class); diff --git a/apps/dav/lib/CalDAV/Activity/Backend.php b/apps/dav/lib/CalDAV/Activity/Backend.php index f1f1b43d53f93..9f929dc195b77 100644 --- a/apps/dav/lib/CalDAV/Activity/Backend.php +++ b/apps/dav/lib/CalDAV/Activity/Backend.php @@ -92,6 +92,16 @@ public function onCalendarDelete(array $calendarData, array $shares) { $this->triggerCalendarActivity(Calendar::SUBJECT_DELETE, $calendarData, $shares); } + /** + * Creates activities when a calendar was (un)published + * + * @param array $calendarData + * @param bool $publishStatus + */ + public function onCalendarPublication(array $calendarData, $publishStatus) { + $this->triggerCalendarActivity($publishStatus ? Calendar::SUBJECT_PUBLISH : Calendar::SUBJECT_UNPUBLISH, $calendarData); + } + /** * Creates activities for all related users when a calendar was touched * diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php index 1d524ce354ca6..2cdb804f91e74 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php @@ -36,6 +36,8 @@ class Calendar extends Base { const SUBJECT_ADD = 'calendar_add'; const SUBJECT_UPDATE = 'calendar_update'; const SUBJECT_DELETE = 'calendar_delete'; + const SUBJECT_PUBLISH = 'calendar_publish'; + const SUBJECT_UNPUBLISH = 'calendar_unpublish'; const SUBJECT_SHARE_USER = 'calendar_user_share'; const SUBJECT_SHARE_GROUP = 'calendar_group_share'; const SUBJECT_UNSHARE_USER = 'calendar_user_unshare'; @@ -105,6 +107,11 @@ public function parse($language, IEvent $event, IEvent $previousEvent = null) { } else if ($event->getSubject() === self::SUBJECT_UPDATE . '_self') { $subject = $this->l->t('You updated calendar {calendar}'); + } else if ($event->getSubject() === self::SUBJECT_PUBLISH . '_self') { + $subject = $this->l->t('You published calendar {calendar}'); + } else if ($event->getSubject() === self::SUBJECT_UNPUBLISH . '_self') { + $subject = $this->l->t('You unpublished calendar {calendar}'); + } else if ($event->getSubject() === self::SUBJECT_SHARE_USER) { $subject = $this->l->t('{actor} shared calendar {calendar} with you'); } else if ($event->getSubject() === self::SUBJECT_SHARE_USER . '_you') { @@ -215,6 +222,8 @@ protected function getParameters(IEvent $event) { case self::SUBJECT_DELETE . '_self': case self::SUBJECT_UPDATE: case self::SUBJECT_UPDATE . '_self': + case self::SUBJECT_PUBLISH . '_self': + case self::SUBJECT_UNPUBLISH . '_self': case self::SUBJECT_SHARE_USER: case self::SUBJECT_UNSHARE_USER: case self::SUBJECT_UNSHARE_USER . '_self': diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 2f591a262a26f..2dc9300f1562f 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -2151,6 +2151,16 @@ public function getShares($resourceId) { * @return string|null */ public function setPublishStatus($value, $calendar) { + + $calendarId = $calendar->getResourceId(); + $this->dispatcher->dispatch('\OCA\DAV\CalDAV\CalDavBackend::publishCalendar', new GenericEvent( + '\OCA\DAV\CalDAV\CalDavBackend::updateShares', + [ + 'calendarId' => $calendarId, + 'calendarData' => $this->getCalendarById($calendarId), + 'public' => $value, + ])); + $query = $this->db->getQueryBuilder(); if ($value) { $publicUri = $this->random->generate(16, ISecureRandom::CHAR_HUMAN_READABLE); diff --git a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php index 16b2b8a616eaa..cec734b9a8fd1 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php @@ -79,6 +79,7 @@ public function dataCallTriggerCalendarActivity() { ['onCalendarAdd', [['data']], Calendar::SUBJECT_ADD, [['data'], [], []]], ['onCalendarUpdate', [['data'], ['shares'], ['changed-properties']], Calendar::SUBJECT_UPDATE, [['data'], ['shares'], ['changed-properties']]], ['onCalendarDelete', [['data'], ['shares']], Calendar::SUBJECT_DELETE, [['data'], ['shares'], []]], + ['onCalendarPublication', [['data'], true], Calendar::SUBJECT_PUBLISH, [['data'], [], []]], ]; } @@ -163,6 +164,22 @@ public function dataTriggerCalendarActivity() { 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], ['shares'], [], 'test2', 'test2', ['user1'], ['user1', 'admin']], + + // Publish calendar + [Calendar::SUBJECT_PUBLISH, [], [], [], '', '', null, []], + [Calendar::SUBJECT_PUBLISH, [ + 'principaluri' => 'principal/user/admin', + 'id' => 42, + '{DAV:}displayname' => 'Name of calendar', + ], ['shares'], [], '', 'admin', [], ['admin']], + + // Unpublish calendar + [Calendar::SUBJECT_UNPUBLISH, [], [], [], '', '', null, []], + [Calendar::SUBJECT_UNPUBLISH, [ + 'principaluri' => 'principal/user/admin', + 'id' => 42, + '{DAV:}displayname' => 'Name of calendar', + ], ['shares'], [], '', 'admin', [], ['admin']], ]; } From c76c7a96fc31af6750bbd2614857abb5a67dc792 Mon Sep 17 00:00:00 2001 From: Morris Jobke Date: Mon, 11 Dec 2017 15:48:31 +0100 Subject: [PATCH 89/92] Update wording Signed-off-by: Morris Jobke --- apps/dav/lib/CalDAV/Activity/Provider/Calendar.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php index 2cdb804f91e74..ff12914428538 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php @@ -108,9 +108,9 @@ public function parse($language, IEvent $event, IEvent $previousEvent = null) { $subject = $this->l->t('You updated calendar {calendar}'); } else if ($event->getSubject() === self::SUBJECT_PUBLISH . '_self') { - $subject = $this->l->t('You published calendar {calendar}'); + $subject = $this->l->t('You shared calendar {calendar} as public link'); } else if ($event->getSubject() === self::SUBJECT_UNPUBLISH . '_self') { - $subject = $this->l->t('You unpublished calendar {calendar}'); + $subject = $this->l->t('You removed public link for calendar {calendar}'); } else if ($event->getSubject() === self::SUBJECT_SHARE_USER) { $subject = $this->l->t('{actor} shared calendar {calendar} with you'); From effde616eb6c39fdef345277338dc81423c99747 Mon Sep 17 00:00:00 2001 From: Roeland Jago Douma Date: Mon, 11 Dec 2017 16:34:28 +0100 Subject: [PATCH 90/92] Fix tests Signed-off-by: Roeland Jago Douma --- apps/dav/tests/unit/CalDAV/Activity/BackendTest.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php index cec734b9a8fd1..3b4e0038b59d0 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php @@ -170,6 +170,7 @@ public function dataTriggerCalendarActivity() { [Calendar::SUBJECT_PUBLISH, [ 'principaluri' => 'principal/user/admin', 'id' => 42, + 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], ['shares'], [], '', 'admin', [], ['admin']], @@ -178,6 +179,7 @@ public function dataTriggerCalendarActivity() { [Calendar::SUBJECT_UNPUBLISH, [ 'principaluri' => 'principal/user/admin', 'id' => 42, + 'uri' => 'this-uri', '{DAV:}displayname' => 'Name of calendar', ], ['shares'], [], '', 'admin', [], ['admin']], ]; From d3c324cc9bd7e1a897f1de0104536132c649b458 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Fri, 8 Dec 2017 07:38:53 +0100 Subject: [PATCH 91/92] Fixed popover menu in entry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- core/css/apps.scss | 65 ++++++++++++++++++++++++++++------------------ 1 file changed, 40 insertions(+), 25 deletions(-) diff --git a/core/css/apps.scss b/core/css/apps.scss index 54f0c47688580..6ff24c4b2e0ff 100644 --- a/core/css/apps.scss +++ b/core/css/apps.scss @@ -921,31 +921,6 @@ kbd { flex-direction: column; transition: transform 250ms ease-in-out; - /* Icon fixes */ - [class^='icon-'], - [class*=' icon-'] { - order: 4; - width: 24px; - height: 24px; - margin: -10px; - padding: 22px; - opacity: .3; - &:hover, &:focus { - opacity: .7; - } - &[class^='icon-star'], - &[class*=' icon-star'] { - opacity: .7; - &:hover, &:focus { - opacity: 1 ; - } - - } - &.icon-starred { - opacity: 1 ; - } - } - /* Default item */ .app-content-list-item { position: relative; @@ -957,6 +932,35 @@ kbd { flex-wrap: wrap; align-items: center; + /* Icon fixes */ + &, + > .app-content-list-item-menu { + > [class^='icon-'], + > [class*=' icon-'] { + order: 4; + width: 24px; + height: 24px; + margin: -10px; + padding: 22px; + opacity: .3; + cursor: pointer; + &:hover, &:focus { + opacity: .7; + } + &[class^='icon-star'], + &[class*=' icon-star'] { + opacity: .7; + &:hover, &:focus { + opacity: 1 ; + } + + } + &.icon-starred { + opacity: 1 ; + } + } + } + &:hover, &:focus, &.active { background-color: nc-darken($color-main-background, 6%); @@ -1011,6 +1015,7 @@ kbd { text-transform: capitalize; object-fit: cover; user-select: none; + cursor: pointer; } .app-content-list-item-line-one, @@ -1023,6 +1028,7 @@ kbd { order: 1; flex: 1 1 0; padding-right: 10px; + cursor: pointer; } .app-content-list-item-line-two { @@ -1041,6 +1047,15 @@ kbd { font-size: 80%; user-select: none; } + + .app-content-list-item-menu { + order: 4; + position: relative; + .popovermenu { + margin: 0; + right: -5px; + } + } } } /* App content */ From a1b48697740c199aa0b1f1b73740a86a101c3178 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?John=20Molakvo=C3=A6=20=28skjnldsv=29?= Date: Fri, 8 Dec 2017 18:08:56 +0100 Subject: [PATCH 92/92] Fixed scrolling in app list MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: John Molakvoæ (skjnldsv) --- core/css/apps.scss | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/core/css/apps.scss b/core/css/apps.scss index 6ff24c4b2e0ff..a2013d984446f 100644 --- a/core/css/apps.scss +++ b/core/css/apps.scss @@ -910,12 +910,20 @@ kbd { #app-content-wrapper { display: flex; + position: relative; + align-items: start; + height: 100%; + width: 100%; + .app-content-list, + .app-content-detail { + min-height: 100%; + max-height: 100%; + overflow-x: hidden; + overflow-y: auto; + } } .app-content-list { width: 300px; - min-height: 100%; - overflow-x: hidden; - overflow-y: auto; border-right: 1px solid nc-darken($color-main-background, 8%); display: flex; flex-direction: column; @@ -931,6 +939,7 @@ kbd { display: flex; flex-wrap: wrap; align-items: center; + flex: 0 0 auto; /* Icon fixes */ &,