summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
m---------3rdparty0
-rw-r--r--apps/comments/l10n/ro.js32
-rw-r--r--apps/comments/l10n/ro.json32
-rw-r--r--apps/comments/lib/Notification/Notifier.php13
-rw-r--r--apps/comments/tests/Unit/AppInfo/ApplicationTest.php4
-rw-r--r--apps/comments/tests/Unit/Notification/NotifierTest.php102
-rw-r--r--apps/dav/l10n/ro.js49
-rw-r--r--apps/dav/l10n/ro.json47
-rw-r--r--apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php1
-rw-r--r--apps/dav/lib/Connector/Sabre/File.php11
-rw-r--r--apps/dav/lib/Connector/Sabre/SharesPlugin.php2
-rw-r--r--apps/dav/lib/Files/FileSearchBackend.php26
-rw-r--r--apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php12
-rw-r--r--apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php2
-rw-r--r--apps/dav/tests/unit/Files/FileSearchBackendTest.php17
-rw-r--r--apps/encryption/l10n/lt_LT.js5
-rw-r--r--apps/encryption/l10n/lt_LT.json5
-rw-r--r--apps/encryption/l10n/tr.js2
-rw-r--r--apps/encryption/l10n/tr.json2
-rw-r--r--apps/encryption/lib/Crypto/Crypt.php9
-rw-r--r--apps/encryption/tests/Crypto/CryptTest.php2
-rw-r--r--apps/federatedfilesharing/appinfo/app.php4
-rw-r--r--apps/federatedfilesharing/l10n/zh_CN.js4
-rw-r--r--apps/federatedfilesharing/l10n/zh_CN.json4
-rw-r--r--apps/federatedfilesharing/tests/TestCase.php18
-rw-r--r--apps/federation/appinfo/routes.php14
-rw-r--r--apps/federation/l10n/nl.js4
-rw-r--r--apps/federation/l10n/nl.json4
-rw-r--r--apps/files/js/file-upload.js5
-rw-r--r--apps/files/js/filelist.js2
-rw-r--r--apps/files/l10n/ca.js3
-rw-r--r--apps/files/l10n/ca.json3
-rw-r--r--apps/files/l10n/ja.js5
-rw-r--r--apps/files/l10n/ja.json5
-rw-r--r--apps/files/l10n/lt_LT.js2
-rw-r--r--apps/files/l10n/lt_LT.json2
-rw-r--r--apps/files/l10n/sv.js5
-rw-r--r--apps/files/l10n/sv.json5
-rw-r--r--apps/files/l10n/tr.js29
-rw-r--r--apps/files/l10n/tr.json29
-rw-r--r--apps/files_external/appinfo/app.php19
-rw-r--r--apps/files_sharing/appinfo/app.php60
-rw-r--r--apps/files_sharing/l10n/it.js6
-rw-r--r--apps/files_sharing/l10n/it.json6
-rw-r--r--apps/files_sharing/l10n/sv.js3
-rw-r--r--apps/files_sharing/l10n/sv.json3
-rw-r--r--apps/files_sharing/tests/TestCase.php25
-rw-r--r--apps/files_trashbin/appinfo/app.php21
-rw-r--r--apps/files_trashbin/lib/Storage.php32
-rw-r--r--apps/files_trashbin/tests/StorageTest.php5
-rw-r--r--apps/files_versions/l10n/ro.js2
-rw-r--r--apps/files_versions/l10n/ro.json2
-rw-r--r--apps/sharebymail/l10n/it.js24
-rw-r--r--apps/sharebymail/l10n/it.json22
-rw-r--r--apps/sharebymail/l10n/sv.js21
-rw-r--r--apps/sharebymail/l10n/sv.json19
-rw-r--r--apps/sharebymail/l10n/tr.js24
-rw-r--r--apps/sharebymail/l10n/tr.json22
-rw-r--r--apps/systemtags/appinfo/app.php14
-rw-r--r--apps/systemtags/l10n/zh_CN.js2
-rw-r--r--apps/systemtags/l10n/zh_CN.json2
-rw-r--r--apps/theming/l10n/hu.js27
-rw-r--r--apps/theming/l10n/hu.json25
-rw-r--r--apps/theming/l10n/it.js10
-rw-r--r--apps/theming/l10n/it.json10
-rw-r--r--apps/theming/l10n/sv.js27
-rw-r--r--apps/theming/l10n/sv.json25
-rw-r--r--apps/twofactor_backupcodes/l10n/tr.js9
-rw-r--r--apps/twofactor_backupcodes/l10n/tr.json9
-rw-r--r--apps/updatenotification/l10n/tr.js3
-rw-r--r--apps/updatenotification/l10n/tr.json3
-rw-r--r--apps/user_ldap/appinfo/app.php2
-rw-r--r--apps/user_ldap/lib/Access.php4
-rw-r--r--apps/user_ldap/tests/User_LDAPTest.php2
-rw-r--r--apps/workflowengine/l10n/tr.js71
-rw-r--r--apps/workflowengine/l10n/tr.json69
-rw-r--r--build/integration/features/bootstrap/TagsContext.php6
-rw-r--r--core/css/fixes.scss (renamed from core/css/fixes.css)0
-rw-r--r--core/css/fonts.scss (renamed from core/css/fonts.css)0
-rw-r--r--core/css/global.scss (renamed from core/css/global.css)0
-rw-r--r--core/css/guest.css13
-rw-r--r--core/css/mobile.scss (renamed from core/css/mobile.css)0
-rw-r--r--core/css/server.scss11
-rw-r--r--core/js/public/appconfig.js1
-rw-r--r--core/l10n/bg.js1
-rw-r--r--core/l10n/bg.json1
-rw-r--r--core/l10n/ca.js15
-rw-r--r--core/l10n/ca.json15
-rw-r--r--core/l10n/de_DE.js2
-rw-r--r--core/l10n/de_DE.json2
-rw-r--r--core/l10n/it.js4
-rw-r--r--core/l10n/it.json4
-rw-r--r--core/l10n/ja.js1
-rw-r--r--core/l10n/ja.json1
-rw-r--r--core/l10n/nl.js46
-rw-r--r--core/l10n/nl.json46
-rw-r--r--core/l10n/sv.js1
-rw-r--r--core/l10n/sv.json1
-rw-r--r--core/l10n/tr.js410
-rw-r--r--core/l10n/tr.json410
-rw-r--r--core/search/js/search.js6
-rw-r--r--cron.php4
-rw-r--r--lib/base.php4
-rw-r--r--lib/composer/composer/ClassLoader.php10
-rw-r--r--lib/composer/composer/LICENSE2
-rw-r--r--lib/l10n/ca.js1
-rw-r--r--lib/l10n/ca.json1
-rw-r--r--lib/l10n/is.js11
-rw-r--r--lib/l10n/is.json11
-rw-r--r--lib/private/AppFramework/Http/Request.php3
-rw-r--r--lib/private/Encryption/Util.php12
-rw-r--r--lib/private/Files/Cache/Cache.php28
-rw-r--r--lib/private/Files/Cache/QuerySearchHelper.php32
-rw-r--r--lib/private/Files/Search/SearchQuery.php14
-rw-r--r--lib/private/Files/Storage/Common.php7
-rw-r--r--lib/private/Files/Storage/Wrapper/Wrapper.php7
-rw-r--r--lib/private/Log/File.php3
-rw-r--r--lib/private/OCS/Provider.php17
-rw-r--r--lib/private/Preview/MP3.php20
-rw-r--r--lib/private/Setup.php1
-rw-r--r--lib/private/Share/Share.php104
-rw-r--r--lib/private/Share20/DefaultShareProvider.php3
-rw-r--r--lib/private/Template/SCSSCacher.php21
-rw-r--r--lib/private/Updater.php2
-rw-r--r--lib/private/User/User.php10
-rw-r--r--lib/private/legacy/app.php11
-rw-r--r--lib/private/legacy/group.php302
-rw-r--r--lib/private/legacy/image.php6
-rw-r--r--lib/private/legacy/template.php12
-rw-r--r--lib/private/legacy/user.php4
-rw-r--r--lib/public/Files/Search/ISearchQuery.php10
-rw-r--r--lib/public/Files/Storage.php2
-rw-r--r--settings/js/admin.js9
-rw-r--r--settings/js/authtoken_view.js6
-rw-r--r--settings/js/users/users.js2
-rw-r--r--settings/l10n/cs.js2
-rw-r--r--settings/l10n/cs.json2
-rw-r--r--settings/l10n/de.js2
-rw-r--r--settings/l10n/de.json2
-rw-r--r--settings/l10n/de_DE.js2
-rw-r--r--settings/l10n/de_DE.json2
-rw-r--r--settings/l10n/es.js2
-rw-r--r--settings/l10n/es.json2
-rw-r--r--settings/l10n/eu.js43
-rw-r--r--settings/l10n/eu.json43
-rw-r--r--settings/l10n/fr.js8
-rw-r--r--settings/l10n/fr.json8
-rw-r--r--settings/l10n/hu.js3
-rw-r--r--settings/l10n/hu.json3
-rw-r--r--settings/l10n/is.js8
-rw-r--r--settings/l10n/is.json8
-rw-r--r--settings/l10n/it.js10
-rw-r--r--settings/l10n/it.json10
-rw-r--r--settings/l10n/nl.js2
-rw-r--r--settings/l10n/nl.json2
-rw-r--r--settings/l10n/pl.js2
-rw-r--r--settings/l10n/pl.json2
-rw-r--r--settings/l10n/pt_BR.js2
-rw-r--r--settings/l10n/pt_BR.json2
-rw-r--r--settings/l10n/ru.js2
-rw-r--r--settings/l10n/ru.json2
-rw-r--r--settings/l10n/sv.js9
-rw-r--r--settings/l10n/sv.json9
-rw-r--r--settings/l10n/zh_CN.js14
-rw-r--r--settings/l10n/zh_CN.json14
-rw-r--r--settings/templates/admin/tipstricks.php1
-rw-r--r--settings/users.php2
-rw-r--r--tests/lib/AppFramework/Http/RequestTest.php25
-rw-r--r--tests/lib/Files/Cache/CacheTest.php70
-rw-r--r--tests/lib/Group/LegacyGroupTest.php208
-rw-r--r--tests/lib/OCS/ProviderTest.php66
171 files changed, 2131 insertions, 1304 deletions
diff --git a/3rdparty b/3rdparty
-Subproject 98fa92c67d735f82ae012786395e660f1513bef
+Subproject 48420b6fd7012d23550e2c43541b4b4ad0a85aa
diff --git a/apps/comments/l10n/ro.js b/apps/comments/l10n/ro.js
index dcdbf9b8f98..9dcfb88895f 100644
--- a/apps/comments/l10n/ro.js
+++ b/apps/comments/l10n/ro.js
@@ -1,23 +1,39 @@
OC.L10N.register(
"comments",
{
- "Type in a new comment..." : "Scrie un comentariu nou...",
+ "Comments" : "Comentarii",
+ "Unknown user" : "Utilizator necunoscut",
+ "New comment …" : "Comentariu nou...",
"Delete comment" : "Șterge comentariul",
"Post" : "Postează",
"Cancel" : "Anulează",
"Edit comment" : "Editează comentariul",
"[Deleted user]" : "[Utilizator șters]",
- "Comments" : "Comentarii",
- "No other comments available" : "Nu sunt disponibile alte comentarii",
- "More comments..." : "Mai multe comentarii...",
+ "No comments yet, start the conversation!" : "Nici un comentariu încă, începe conversația!",
+ "More comments …" : "Mai multe comentarii...",
"Save" : "Salvează",
"Allowed characters {count} of {max}" : "Caractere admise {count} din {max}",
- "{count} unread comments" : "{count} comentarii necitite",
+ "Error occurred while retrieving comment with id {id}" : "Eroare la returnarea comentariului cu id-ul {id}",
+ "Error occurred while updating comment with id {id}" : "Eroare la actualizarea comentariului cu id-ul {id}",
+ "Error occurred while posting comment" : "Eroare la postarea comentariului",
+ "_%n unread comment_::_%n unread comments_" : ["%n comentariu necitit","%n comentarii necitite","%n comentarii necitite"],
"Comment" : "Comentariu",
- "<strong>Comments</strong> for files <em>(always listed in stream)</em>" : "<strong>Comentarii</strong> pentru fișiere <em>(afișate întotdeauna în flux)</em>",
"You commented" : "Ai comentat",
"%1$s commented" : "%1$s a comentat",
- "You commented on %2$s" : "Ai comentat la %2$s",
- "%1$s commented on %2$s" : "%1$s a comentat la %2$s"
+ "{author} commented" : " {author} a comentat",
+ "You commented on %1$s" : "Ai comentat la %1$s",
+ "You commented on {file}" : "Ai comentat la {file}",
+ "%1$s commented on %2$s" : "%1$s a comentat la %2$s",
+ "{author} commented on {file}" : " {author} a comentat la {file}",
+ "<strong>Comments</strong> for files" : "<strong>Comentarii</strong> la fișiere",
+ "A (now) deleted user mentioned you in a comment on “%s”" : "Un utilizator (momentan) șters te-a menționat într-un comentariu la ”%s”",
+ "A (now) deleted user mentioned you in a comment on “{file}”" : "Un utilizator (momentan) șters te-a menționat într-un comentariu la ”{file}”",
+ "%1$s mentioned you in a comment on “%2$s”" : "%1$s te-a menționat într-un comentariu la ”%2$s”",
+ "{user} mentioned you in a comment on “{file}”" : "{user} te-a menționat într-un comentariu la ”{file}”",
+ "Type in a new comment..." : "Scrie un comentariu nou...",
+ "No other comments available" : "Nu sunt disponibile alte comentarii",
+ "More comments..." : "Mai multe comentarii...",
+ "{count} unread comments" : "{count} comentarii necitite",
+ "You commented on %2$s" : "Ai comentat la %2$s"
},
"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/comments/l10n/ro.json b/apps/comments/l10n/ro.json
index b826e58971b..12bfd08a3e7 100644
--- a/apps/comments/l10n/ro.json
+++ b/apps/comments/l10n/ro.json
@@ -1,21 +1,37 @@
{ "translations": {
- "Type in a new comment..." : "Scrie un comentariu nou...",
+ "Comments" : "Comentarii",
+ "Unknown user" : "Utilizator necunoscut",
+ "New comment …" : "Comentariu nou...",
"Delete comment" : "Șterge comentariul",
"Post" : "Postează",
"Cancel" : "Anulează",
"Edit comment" : "Editează comentariul",
"[Deleted user]" : "[Utilizator șters]",
- "Comments" : "Comentarii",
- "No other comments available" : "Nu sunt disponibile alte comentarii",
- "More comments..." : "Mai multe comentarii...",
+ "No comments yet, start the conversation!" : "Nici un comentariu încă, începe conversația!",
+ "More comments …" : "Mai multe comentarii...",
"Save" : "Salvează",
"Allowed characters {count} of {max}" : "Caractere admise {count} din {max}",
- "{count} unread comments" : "{count} comentarii necitite",
+ "Error occurred while retrieving comment with id {id}" : "Eroare la returnarea comentariului cu id-ul {id}",
+ "Error occurred while updating comment with id {id}" : "Eroare la actualizarea comentariului cu id-ul {id}",
+ "Error occurred while posting comment" : "Eroare la postarea comentariului",
+ "_%n unread comment_::_%n unread comments_" : ["%n comentariu necitit","%n comentarii necitite","%n comentarii necitite"],
"Comment" : "Comentariu",
- "<strong>Comments</strong> for files <em>(always listed in stream)</em>" : "<strong>Comentarii</strong> pentru fișiere <em>(afișate întotdeauna în flux)</em>",
"You commented" : "Ai comentat",
"%1$s commented" : "%1$s a comentat",
- "You commented on %2$s" : "Ai comentat la %2$s",
- "%1$s commented on %2$s" : "%1$s a comentat la %2$s"
+ "{author} commented" : " {author} a comentat",
+ "You commented on %1$s" : "Ai comentat la %1$s",
+ "You commented on {file}" : "Ai comentat la {file}",
+ "%1$s commented on %2$s" : "%1$s a comentat la %2$s",
+ "{author} commented on {file}" : " {author} a comentat la {file}",
+ "<strong>Comments</strong> for files" : "<strong>Comentarii</strong> la fișiere",
+ "A (now) deleted user mentioned you in a comment on “%s”" : "Un utilizator (momentan) șters te-a menționat într-un comentariu la ”%s”",
+ "A (now) deleted user mentioned you in a comment on “{file}”" : "Un utilizator (momentan) șters te-a menționat într-un comentariu la ”{file}”",
+ "%1$s mentioned you in a comment on “%2$s”" : "%1$s te-a menționat într-un comentariu la ”%2$s”",
+ "{user} mentioned you in a comment on “{file}”" : "{user} te-a menționat într-un comentariu la ”{file}”",
+ "Type in a new comment..." : "Scrie un comentariu nou...",
+ "No other comments available" : "Nu sunt disponibile alte comentarii",
+ "More comments..." : "Mai multe comentarii...",
+ "{count} unread comments" : "{count} comentarii necitite",
+ "You commented on %2$s" : "Ai comentat la %2$s"
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
} \ No newline at end of file
diff --git a/apps/comments/lib/Notification/Notifier.php b/apps/comments/lib/Notification/Notifier.php
index a9daef3031f..09092da539c 100644
--- a/apps/comments/lib/Notification/Notifier.php
+++ b/apps/comments/lib/Notification/Notifier.php
@@ -23,7 +23,7 @@ namespace OCA\Comments\Notification;
use OCP\Comments\ICommentsManager;
use OCP\Comments\NotFoundException;
-use OCP\Files\Folder;
+use OCP\Files\IRootFolder;
use OCP\IURLGenerator;
use OCP\IUserManager;
use OCP\L10N\IFactory;
@@ -35,8 +35,8 @@ class Notifier implements INotifier {
/** @var IFactory */
protected $l10nFactory;
- /** @var Folder */
- protected $userFolder;
+ /** @var IRootFolder */
+ protected $rootFolder;
/** @var ICommentsManager */
protected $commentsManager;
@@ -49,13 +49,13 @@ class Notifier implements INotifier {
public function __construct(
IFactory $l10nFactory,
- Folder $userFolder,
+ IRootFolder $rootFolder,
ICommentsManager $commentsManager,
IURLGenerator $url,
IUserManager $userManager
) {
$this->l10nFactory = $l10nFactory;
- $this->userFolder = $userFolder;
+ $this->rootFolder = $rootFolder;
$this->commentsManager = $commentsManager;
$this->url = $url;
$this->userManager = $userManager;
@@ -93,7 +93,8 @@ class Notifier implements INotifier {
if($parameters[0] !== 'files') {
throw new \InvalidArgumentException('Unsupported comment object');
}
- $nodes = $this->userFolder->getById($parameters[1]);
+ $userFolder = $this->rootFolder->getUserFolder($notification->getUser());
+ $nodes = $userFolder->getById($parameters[1]);
if(empty($nodes)) {
throw new \InvalidArgumentException('Cannot resolve file id to Node instance');
}
diff --git a/apps/comments/tests/Unit/AppInfo/ApplicationTest.php b/apps/comments/tests/Unit/AppInfo/ApplicationTest.php
index e0a47dbfff9..5adfbbcc635 100644
--- a/apps/comments/tests/Unit/AppInfo/ApplicationTest.php
+++ b/apps/comments/tests/Unit/AppInfo/ApplicationTest.php
@@ -22,6 +22,7 @@
namespace OCA\Comments\Tests\Unit\AppInfo;
use OCA\Comments\AppInfo\Application;
+use OCA\Comments\Notification\Notifier;
use Test\TestCase;
/**
@@ -56,7 +57,8 @@ class ApplicationTest extends TestCase {
'OCA\Comments\Activity\Listener',
'OCA\Comments\Activity\Provider',
'OCA\Comments\Activity\Setting',
- 'OCA\Comments\Notification\Listener'
+ 'OCA\Comments\Notification\Listener',
+ Notifier::class,
];
foreach($services as $service) {
diff --git a/apps/comments/tests/Unit/Notification/NotifierTest.php b/apps/comments/tests/Unit/Notification/NotifierTest.php
index 25b8b4b278d..0b08849030b 100644
--- a/apps/comments/tests/Unit/Notification/NotifierTest.php
+++ b/apps/comments/tests/Unit/Notification/NotifierTest.php
@@ -28,6 +28,7 @@ use OCP\Comments\IComment;
use OCP\Comments\ICommentsManager;
use OCP\Comments\NotFoundException;
use OCP\Files\Folder;
+use OCP\Files\IRootFolder;
use OCP\Files\Node;
use OCP\IL10N;
use OCP\IURLGenerator;
@@ -41,41 +42,33 @@ class NotifierTest extends TestCase {
/** @var Notifier */
protected $notifier;
-
/** @var IFactory|\PHPUnit_Framework_MockObject_MockObject */
protected $l10nFactory;
-
- /** @var Folder|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */
+ protected $l;
+ /** @var IRootFolder|\PHPUnit_Framework_MockObject_MockObject */
protected $folder;
-
- /** @var ICommentsManager|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var ICommentsManager|\PHPUnit_Framework_MockObject_MockObject */
protected $commentsManager;
/** @var IURLGenerator|\PHPUnit_Framework_MockObject_MockObject */
protected $url;
- /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var IUserManager|\PHPUnit_Framework_MockObject_MockObject */
protected $userManager;
-
-
- /** @var string */
- protected $lc = 'tlh_KX';
-
- /** @var INotification|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var INotification|\PHPUnit_Framework_MockObject_MockObject */
protected $notification;
-
- /** @var IL10N|\PHPUnit_Framework_MockObject_MockObject */
- protected $l;
-
- /** @var IComment|\PHPUnit_Framework_MockObject_MockObject */
+ /** @var IComment|\PHPUnit_Framework_MockObject_MockObject */
protected $comment;
+ /** @var string */
+ protected $lc = 'tlh_KX';
protected function setUp() {
parent::setUp();
- $this->l10nFactory = $this->getMockBuilder('OCP\L10N\IFactory')->getMock();
- $this->folder = $this->getMockBuilder('OCP\Files\Folder')->getMock();
- $this->commentsManager = $this->getMockBuilder('OCP\Comments\ICommentsManager')->getMock();
+ $this->l10nFactory = $this->createMock(IFactory::class);
+ $this->folder = $this->createMock(IRootFolder::class);
+ $this->commentsManager = $this->createMock(ICommentsManager::class);
$this->url = $this->createMock(IURLGenerator::class);
- $this->userManager = $this->getMockBuilder('OCP\IUserManager')->getMock();
+ $this->userManager = $this->createMock(IUserManager::class);
$this->notifier = new Notifier(
$this->l10nFactory,
@@ -92,8 +85,8 @@ class NotifierTest extends TestCase {
return vsprintf($text, $parameters);
}));
- $this->notification = $this->getMockBuilder('OCP\Notification\INotification')->getMock();
- $this->comment = $this->getMockBuilder('OCP\Comments\IComment')->getMock();
+ $this->notification = $this->createMock(INotification::class);
+ $this->comment = $this->createMock(IComment::class);
}
public function testPrepareSuccess() {
@@ -102,24 +95,31 @@ class NotifierTest extends TestCase {
$message = 'Huraga mentioned you in a comment on “Gre\'thor.odp”';
/** @var IUser|\PHPUnit_Framework_MockObject_MockObject $user */
- $user = $this->getMockBuilder('OCP\IUser')->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getDisplayName')
->willReturn($displayName);
- /** @var Node|\PHPUnit_Framework_MockObject_MockObject */
- $node = $this->getMockBuilder('OCP\Files\Node')->getMock();
+ /** @var Node|\PHPUnit_Framework_MockObject_MockObject $node */
+ $node = $this->createMock(Node::class);
$node
->expects($this->atLeastOnce())
->method('getName')
->willReturn($fileName);
- $this->folder
- ->expects($this->once())
+ $userFolder = $this->createMock(Folder::class);
+ $this->folder->expects($this->once())
+ ->method('getUserFolder')
+ ->with('you')
+ ->willReturn($userFolder);
+ $userFolder->expects($this->once())
->method('getById')
->with('678')
->willReturn([$node]);
+ $this->notification->expects($this->once())
+ ->method('getUser')
+ ->willReturn('you');
$this->notification
->expects($this->once())
->method('getApp')
@@ -172,7 +172,7 @@ class NotifierTest extends TestCase {
->willReturn('users');
$this->commentsManager
- ->expects(($this->once()))
+ ->expects($this->once())
->method('get')
->willReturn($this->comment);
@@ -189,19 +189,26 @@ class NotifierTest extends TestCase {
$fileName = 'Gre\'thor.odp';
$message = 'A (now) deleted user mentioned you in a comment on “Gre\'thor.odp”';
- /** @var Node|\PHPUnit_Framework_MockObject_MockObject */
- $node = $this->getMockBuilder('OCP\Files\Node')->getMock();
+ /** @var Node|\PHPUnit_Framework_MockObject_MockObject $node */
+ $node = $this->createMock(Node::class);
$node
->expects($this->atLeastOnce())
->method('getName')
->willReturn($fileName);
- $this->folder
- ->expects($this->once())
+ $userFolder = $this->createMock(Folder::class);
+ $this->folder->expects($this->once())
+ ->method('getUserFolder')
+ ->with('you')
+ ->willReturn($userFolder);
+ $userFolder->expects($this->once())
->method('getById')
->with('678')
->willReturn([$node]);
+ $this->notification->expects($this->once())
+ ->method('getUser')
+ ->willReturn('you');
$this->notification
->expects($this->once())
->method('getApp')
@@ -254,7 +261,7 @@ class NotifierTest extends TestCase {
->willReturn(ICommentsManager::DELETED_USER);
$this->commentsManager
- ->expects(($this->once()))
+ ->expects($this->once())
->method('get')
->willReturn($this->comment);
@@ -292,7 +299,7 @@ class NotifierTest extends TestCase {
->method('get');
$this->commentsManager
- ->expects(($this->never()))
+ ->expects($this->never())
->method('get');
$this->userManager
@@ -329,7 +336,7 @@ class NotifierTest extends TestCase {
->method('get');
$this->commentsManager
- ->expects(($this->once()))
+ ->expects($this->once())
->method('get')
->willThrowException(new NotFoundException());
@@ -347,7 +354,7 @@ class NotifierTest extends TestCase {
$displayName = 'Huraga';
/** @var IUser|\PHPUnit_Framework_MockObject_MockObject $user */
- $user = $this->getMockBuilder('OCP\IUser')->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getDisplayName')
->willReturn($displayName);
@@ -390,7 +397,7 @@ class NotifierTest extends TestCase {
->willReturn('users');
$this->commentsManager
- ->expects(($this->once()))
+ ->expects($this->once())
->method('get')
->willReturn($this->comment);
@@ -410,7 +417,7 @@ class NotifierTest extends TestCase {
$displayName = 'Huraga';
/** @var IUser|\PHPUnit_Framework_MockObject_MockObject $user */
- $user = $this->getMockBuilder('OCP\IUser')->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getDisplayName')
->willReturn($displayName);
@@ -454,7 +461,7 @@ class NotifierTest extends TestCase {
->willReturn('users');
$this->commentsManager
- ->expects(($this->once()))
+ ->expects($this->once())
->method('get')
->willReturn($this->comment);
@@ -474,17 +481,24 @@ class NotifierTest extends TestCase {
$displayName = 'Huraga';
/** @var IUser|\PHPUnit_Framework_MockObject_MockObject $user */
- $user = $this->getMockBuilder('OCP\IUser')->getMock();
+ $user = $this->createMock(IUser::class);
$user->expects($this->once())
->method('getDisplayName')
->willReturn($displayName);
- $this->folder
- ->expects($this->once())
+ $userFolder = $this->createMock(Folder::class);
+ $this->folder->expects($this->once())
+ ->method('getUserFolder')
+ ->with('you')
+ ->willReturn($userFolder);
+ $userFolder->expects($this->once())
->method('getById')
->with('678')
->willReturn([]);
+ $this->notification->expects($this->once())
+ ->method('getUser')
+ ->willReturn('you');
$this->notification
->expects($this->once())
->method('getApp')
@@ -520,7 +534,7 @@ class NotifierTest extends TestCase {
->willReturn('users');
$this->commentsManager
- ->expects(($this->once()))
+ ->expects($this->once())
->method('get')
->willReturn($this->comment);
diff --git a/apps/dav/l10n/ro.js b/apps/dav/l10n/ro.js
new file mode 100644
index 00000000000..9f3f2fbf72f
--- /dev/null
+++ b/apps/dav/l10n/ro.js
@@ -0,0 +1,49 @@
+OC.L10N.register(
+ "dav",
+ {
+ "Calendar" : "Calendar",
+ "Todos" : "De făcut",
+ "{actor} created calendar {calendar}" : "{actor} a creat calendarul {calendar}",
+ "You created calendar {calendar}" : "Ai creat calendarul {calendar}",
+ "{actor} deleted calendar {calendar}" : "{actor} a șters calendarul {calendar}",
+ "You deleted calendar {calendar}" : "Ai șters calendarul {calendar}",
+ "{actor} updated calendar {calendar}" : "{actor} a actualiza calendarul {calendar}",
+ "You updated calendar {calendar}" : "Ai actualizat calendarul {calendar}",
+ "{actor} shared calendar {calendar} with you" : "{actor} a partajat calendarul {calendar} cu tine",
+ "You shared calendar {calendar} with {user}" : "Ai partajat calendarul {calendar} cu {user}",
+ "{actor} shared calendar {calendar} with {user}" : "{actor} a partajat calendarul {calendar} cu {user}",
+ "{actor} unshared calendar {calendar} from you" : "{actor} a eliminat partajarea calendarului {calendar} cu tine",
+ "You unshared calendar {calendar} from {user}" : "Ai eliminat partajarea calendarului {calendar} cu {user}",
+ "{actor} unshared calendar {calendar} from {user}" : "{actor} a eliminat partajarea calendarului {calendar} cu {user}",
+ "{actor} unshared calendar {calendar} from themselves" : "{actor} a eliminat partajarea calendarului {calendar} catre sine",
+ "You shared calendar {calendar} with group {group}" : "Ai partajat calendarul {calendar} cu grupul {group}",
+ "{actor} shared calendar {calendar} with group {group}" : "{actor} a partajat calendarul {calendar} cu grupul {group}",
+ "You unshared calendar {calendar} from group {group}" : "Ai eliminat partajarea calendarului {calendar} către grupul {group}",
+ "{actor} unshared calendar {calendar} from group {group}" : "{actor} a elimina partajarea calendarului {calendar} către grupul {group}",
+ "{actor} created event {event} in calendar {calendar}" : "{actor} a creat evenimentul {event} în calendarul {calendar}",
+ "You created event {event} in calendar {calendar}" : "Ai creat evenimentul {event} în calendarul {calendar}",
+ "{actor} deleted event {event} from calendar {calendar}" : "{actor} a șters evenimentul {event} din calendarul {calendar}",
+ "You deleted event {event} from calendar {calendar}" : "AI șters evenimentul {event} din calendarul {calendar}",
+ "{actor} updated event {event} in calendar {calendar}" : "{actor} a actualizat evenimentul {event} din calendarul {calendar}",
+ "You updated event {event} in calendar {calendar}" : "Ai actualizat evenimentul {event} din calendarul {calendar}",
+ "{actor} created todo {todo} in list {calendar}" : "{actor} a creat lista {todo} în calendarul {calendar}",
+ "You created todo {todo} in list {calendar}" : "Ai creat lista {todo} în lista {calendar}",
+ "{actor} deleted todo {todo} from list {calendar}" : "{actor} a șters lista {todo} din calendarul {calendar}",
+ "You deleted todo {todo} from list {calendar}" : "Ai șters lista {todo} din calendarul {calendar}",
+ "{actor} updated todo {todo} in list {calendar}" : "{actor} a actualizat lista {todo} din calendarul {calendar}",
+ "You updated todo {todo} in list {calendar}" : "Ai actualizat lista {todo} din calendarul {calendar}",
+ "{actor} solved todo {todo} in list {calendar}" : "{actor} a completat lista {todo} din calendarul {calendar}",
+ "You solved todo {todo} in list {calendar}" : "Ai completat lista {todo} din calendarul {calendar}",
+ "{actor} reopened todo {todo} in list {calendar}" : "{actor} a redeschis lista {todo} din calendarul {calendar}",
+ "You reopened todo {todo} in list {calendar}" : "Ai redeschis lista {todo} din calendarul {calendar}",
+ "A <strong>calendar</strong> was modified" : "Un <strong>calendar</strong> a fost modificat",
+ "A calendar <strong>event</strong> was modified" : "Un <strong>eveniment</strong> din calendar a fost modificat",
+ "A calendar <strong>todo</strong> was modified" : "O <strong>listă</strong> din calendar a fost modificată",
+ "Contact birthdays" : "Zile de naștere ale persoanelor de contact",
+ "Personal" : "Personal",
+ "Contacts" : "Persoane de contact",
+ "Technical details" : "Detalii tehnice",
+ "Remote Address: %s" : "Adresă la distanță: %s",
+ "Request ID: %s" : "ID-ul cererii: %s"
+},
+"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));");
diff --git a/apps/dav/l10n/ro.json b/apps/dav/l10n/ro.json
new file mode 100644
index 00000000000..f93f03bd4dd
--- /dev/null
+++ b/apps/dav/l10n/ro.json
@@ -0,0 +1,47 @@
+{ "translations": {
+ "Calendar" : "Calendar",
+ "Todos" : "De făcut",
+ "{actor} created calendar {calendar}" : "{actor} a creat calendarul {calendar}",
+ "You created calendar {calendar}" : "Ai creat calendarul {calendar}",
+ "{actor} deleted calendar {calendar}" : "{actor} a șters calendarul {calendar}",
+ "You deleted calendar {calendar}" : "Ai șters calendarul {calendar}",
+ "{actor} updated calendar {calendar}" : "{actor} a actualiza calendarul {calendar}",
+ "You updated calendar {calendar}" : "Ai actualizat calendarul {calendar}",
+ "{actor} shared calendar {calendar} with you" : "{actor} a partajat calendarul {calendar} cu tine",
+ "You shared calendar {calendar} with {user}" : "Ai partajat calendarul {calendar} cu {user}",
+ "{actor} shared calendar {calendar} with {user}" : "{actor} a partajat calendarul {calendar} cu {user}",
+ "{actor} unshared calendar {calendar} from you" : "{actor} a eliminat partajarea calendarului {calendar} cu tine",
+ "You unshared calendar {calendar} from {user}" : "Ai eliminat partajarea calendarului {calendar} cu {user}",
+ "{actor} unshared calendar {calendar} from {user}" : "{actor} a eliminat partajarea calendarului {calendar} cu {user}",
+ "{actor} unshared calendar {calendar} from themselves" : "{actor} a eliminat partajarea calendarului {calendar} catre sine",
+ "You shared calendar {calendar} with group {group}" : "Ai partajat calendarul {calendar} cu grupul {group}",
+ "{actor} shared calendar {calendar} with group {group}" : "{actor} a partajat calendarul {calendar} cu grupul {group}",
+ "You unshared calendar {calendar} from group {group}" : "Ai eliminat partajarea calendarului {calendar} către grupul {group}",
+ "{actor} unshared calendar {calendar} from group {group}" : "{actor} a elimina partajarea calendarului {calendar} către grupul {group}",
+ "{actor} created event {event} in calendar {calendar}" : "{actor} a creat evenimentul {event} în calendarul {calendar}",
+ "You created event {event} in calendar {calendar}" : "Ai creat evenimentul {event} în calendarul {calendar}",
+ "{actor} deleted event {event} from calendar {calendar}" : "{actor} a șters evenimentul {event} din calendarul {calendar}",
+ "You deleted event {event} from calendar {calendar}" : "AI șters evenimentul {event} din calendarul {calendar}",
+ "{actor} updated event {event} in calendar {calendar}" : "{actor} a actualizat evenimentul {event} din calendarul {calendar}",
+ "You updated event {event} in calendar {calendar}" : "Ai actualizat evenimentul {event} din calendarul {calendar}",
+ "{actor} created todo {todo} in list {calendar}" : "{actor} a creat lista {todo} în calendarul {calendar}",
+ "You created todo {todo} in list {calendar}" : "Ai creat lista {todo} în lista {calendar}",
+ "{actor} deleted todo {todo} from list {calendar}" : "{actor} a șters lista {todo} din calendarul {calendar}",
+ "You deleted todo {todo} from list {calendar}" : "Ai șters lista {todo} din calendarul {calendar}",
+ "{actor} updated todo {todo} in list {calendar}" : "{actor} a actualizat lista {todo} din calendarul {calendar}",
+ "You updated todo {todo} in list {calendar}" : "Ai actualizat lista {todo} din calendarul {calendar}",
+ "{actor} solved todo {todo} in list {calendar}" : "{actor} a completat lista {todo} din calendarul {calendar}",
+ "You solved todo {todo} in list {calendar}" : "Ai completat lista {todo} din calendarul {calendar}",
+ "{actor} reopened todo {todo} in list {calendar}" : "{actor} a redeschis lista {todo} din calendarul {calendar}",
+ "You reopened todo {todo} in list {calendar}" : "Ai redeschis lista {todo} din calendarul {calendar}",
+ "A <strong>calendar</strong> was modified" : "Un <strong>calendar</strong> a fost modificat",
+ "A calendar <strong>event</strong> was modified" : "Un <strong>eveniment</strong> din calendar a fost modificat",
+ "A calendar <strong>todo</strong> was modified" : "O <strong>listă</strong> din calendar a fost modificată",
+ "Contact birthdays" : "Zile de naștere ale persoanelor de contact",
+ "Personal" : "Personal",
+ "Contacts" : "Persoane de contact",
+ "Technical details" : "Detalii tehnice",
+ "Remote Address: %s" : "Adresă la distanță: %s",
+ "Request ID: %s" : "ID-ul cererii: %s"
+},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
+} \ No newline at end of file
diff --git a/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php b/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php
index eb490851fcb..3baacfc064a 100644
--- a/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php
@@ -138,6 +138,7 @@ class FakeLockerPlugin extends ServerPlugin {
$response->setStatus(200);
$response->setBody($body);
+ $response->setStatus(200);
return false;
}
diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php
index d0826ee5a8c..1f878df1564 100644
--- a/apps/dav/lib/Connector/Sabre/File.php
+++ b/apps/dav/lib/Connector/Sabre/File.php
@@ -206,7 +206,12 @@ class File extends Node implements IFile {
// allow sync clients to send the mtime along in a header
$request = \OC::$server->getRequest();
if (isset($request->server['HTTP_X_OC_MTIME'])) {
- if ($this->fileView->touch($this->path, $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);
+ if ($this->fileView->touch($this->path, $mtime)) {
header('X-OC-MTime: accepted');
}
}
@@ -505,9 +510,9 @@ class File extends Node implements IFile {
*/
private function needsPartFile($storage) {
// TODO: in the future use ChunkHandler provided by storage
- // and/or add method on Storage called "needsPartFile()"
return !$storage->instanceOfStorage('OCA\Files_Sharing\External\Storage') &&
- !$storage->instanceOfStorage('OC\Files\Storage\OwnCloud');
+ !$storage->instanceOfStorage('OC\Files\Storage\OwnCloud') &&
+ $storage->needsPartFile();
}
/**
diff --git a/apps/dav/lib/Connector/Sabre/SharesPlugin.php b/apps/dav/lib/Connector/Sabre/SharesPlugin.php
index 4df8c9f85a5..2b640d74fd4 100644
--- a/apps/dav/lib/Connector/Sabre/SharesPlugin.php
+++ b/apps/dav/lib/Connector/Sabre/SharesPlugin.php
@@ -143,7 +143,7 @@ class SharesPlugin extends \Sabre\DAV\ServerPlugin {
$shares = $this->shareManager->getSharesInFolder(
$this->userId,
$node,
- false
+ true
);
$shareTypesByFileId = [];
diff --git a/apps/dav/lib/Files/FileSearchBackend.php b/apps/dav/lib/Files/FileSearchBackend.php
index c429a1727f8..5816c659932 100644
--- a/apps/dav/lib/Files/FileSearchBackend.php
+++ b/apps/dav/lib/Files/FileSearchBackend.php
@@ -28,6 +28,7 @@ use OC\Files\Search\SearchQuery;
use OC\Files\View;
use OCA\DAV\Connector\Sabre\Directory;
use OCA\DAV\Connector\Sabre\FilesPlugin;
+use OCA\DAV\Connector\Sabre\TagsPlugin;
use OCP\Files\Cache\ICacheEntry;
use OCP\Files\Folder;
use OCP\Files\IRootFolder;
@@ -112,8 +113,9 @@ class FileSearchBackend implements ISearchBackend {
// queryable properties
new SearchPropertyDefinition('{DAV:}displayname', true, false, true),
new SearchPropertyDefinition('{DAV:}getcontenttype', true, true, true),
- new SearchPropertyDefinition('{DAV:}getlastmodifed', true, true, true, SearchPropertyDefinition::DATATYPE_DATETIME),
+ new SearchPropertyDefinition('{DAV:}getlastmodified', true, true, true, SearchPropertyDefinition::DATATYPE_DATETIME),
new SearchPropertyDefinition(FilesPlugin::SIZE_PROPERTYNAME, true, true, true, SearchPropertyDefinition::DATATYPE_NONNEGATIVE_INTEGER),
+ new SearchPropertyDefinition(TagsPlugin::FAVORITE_PROPERTYNAME, true, true, true, SearchPropertyDefinition::DATATYPE_BOOLEAN),
// select only properties
new SearchPropertyDefinition('{DAV:}resourcetype', false, true, false),
@@ -178,7 +180,7 @@ class FileSearchBackend implements ISearchBackend {
private function transformQuery(BasicSearch $query) {
// TODO offset, limit
$orders = array_map([$this, 'mapSearchOrder'], $query->orderBy);
- return new SearchQuery($this->transformSearchOperation($query->where), 0, 0, $orders);
+ return new SearchQuery($this->transformSearchOperation($query->where), 0, 0, $orders, $this->user);
}
/**
@@ -186,7 +188,7 @@ class FileSearchBackend implements ISearchBackend {
* @return ISearchOrder
*/
private function mapSearchOrder(Order $order) {
- return new SearchOrder($order->order === Order::ASC ? ISearchOrder::DIRECTION_ASCENDING : ISearchOrder::DIRECTION_DESCENDING, $this->mapPropertyNameToCollumn($order->property));
+ return new SearchOrder($order->order === Order::ASC ? ISearchOrder::DIRECTION_ASCENDING : ISearchOrder::DIRECTION_DESCENDING, $this->mapPropertyNameToColumn($order->property));
}
/**
@@ -210,13 +212,13 @@ class FileSearchBackend implements ISearchBackend {
if (count($operator->arguments) !== 2) {
throw new \InvalidArgumentException('Invalid number of arguments for ' . $trimmedType . ' operation');
}
- if (gettype($operator->arguments[0]) !== 'string') {
+ if (!is_string($operator->arguments[0])) {
throw new \InvalidArgumentException('Invalid argument 1 for ' . $trimmedType . ' operation, expected property');
}
if (!($operator->arguments[1] instanceof Literal)) {
throw new \InvalidArgumentException('Invalid argument 2 for ' . $trimmedType . ' operation, expected literal');
}
- return new SearchComparison($trimmedType, $this->mapPropertyNameToCollumn($operator->arguments[0]), $this->castValue($operator->arguments[0], $operator->arguments[1]->value));
+ return new SearchComparison($trimmedType, $this->mapPropertyNameToColumn($operator->arguments[0]), $this->castValue($operator->arguments[0], $operator->arguments[1]->value));
case Operator::OPERATION_IS_COLLECTION:
return new SearchComparison('eq', 'mimetype', ICacheEntry::DIRECTORY_MIMETYPE);
default:
@@ -228,16 +230,20 @@ class FileSearchBackend implements ISearchBackend {
* @param string $propertyName
* @return string
*/
- private function mapPropertyNameToCollumn($propertyName) {
+ private function mapPropertyNameToColumn($propertyName) {
switch ($propertyName) {
case '{DAV:}displayname':
return 'name';
case '{DAV:}getcontenttype':
return 'mimetype';
- case '{DAV:}getlastmodifed':
+ case '{DAV:}getlastmodified':
return 'mtime';
case FilesPlugin::SIZE_PROPERTYNAME:
return 'size';
+ case TagsPlugin::FAVORITE_PROPERTYNAME:
+ return 'favorite';
+ case TagsPlugin::TAGS_PROPERTYNAME:
+ return 'tagname';
default:
throw new \InvalidArgumentException('Unsupported property for search or order: ' . $propertyName);
}
@@ -255,6 +261,12 @@ class FileSearchBackend implements ISearchBackend {
case SearchPropertyDefinition::DATATYPE_INTEGER:
case SearchPropertyDefinition::DATATYPE_NONNEGATIVE_INTEGER:
return 0 + $value;
+ case SearchPropertyDefinition::DATATYPE_DATETIME:
+ if (is_numeric($value)) {
+ return 0 + $value;
+ }
+ $date = \DateTime::createFromFormat(\DateTime::ATOM, $value);
+ return ($date instanceof \DateTime) ? $date->getTimestamp() : 0;
default:
return $value;
}
diff --git a/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php b/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php
index cecf07ef1d8..72b3c57bea6 100644
--- a/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php
+++ b/apps/dav/tests/unit/CardDAV/BirthdayServiceTest.php
@@ -126,9 +126,9 @@ class BirthdayServiceTest extends TestCase {
if ($expectedOp === 'create') {
$service->expects($this->exactly(3))->method('buildDateFromContact')->willReturn(new VCalendar());
$this->calDav->expects($this->exactly(3))->method('createCalendarObject')->withConsecutive(
- [1234, 'default-gump.vcf.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"],
- [1234, 'default-gump.vcf-death.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"],
- [1234, 'default-gump.vcf-anniversary.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"]
+ [1234, 'default-gump.vcf.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.2//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"],
+ [1234, 'default-gump.vcf-death.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.2//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"],
+ [1234, 'default-gump.vcf-anniversary.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.2//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"]
);
}
if ($expectedOp === 'update') {
@@ -136,9 +136,9 @@ class BirthdayServiceTest extends TestCase {
$service->expects($this->exactly(3))->method('birthdayEvenChanged')->willReturn(true);
$this->calDav->expects($this->exactly(3))->method('getCalendarObject')->willReturn(['calendardata' => '']);
$this->calDav->expects($this->exactly(3))->method('updateCalendarObject')->withConsecutive(
- [1234, 'default-gump.vcf.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"],
- [1234, 'default-gump.vcf-death.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"],
- [1234, 'default-gump.vcf-anniversary.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.1//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"]
+ [1234, 'default-gump.vcf.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.2//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"],
+ [1234, 'default-gump.vcf-death.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.2//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"],
+ [1234, 'default-gump.vcf-anniversary.ics', "BEGIN:VCALENDAR\r\nVERSION:2.0\r\nPRODID:-//Sabre//Sabre VObject 4.1.2//EN\r\nCALSCALE:GREGORIAN\r\nEND:VCALENDAR\r\n"]
);
}
diff --git a/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php
index 9d8a66f24b6..2b4a886050a 100644
--- a/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php
+++ b/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php
@@ -235,7 +235,7 @@ class SharesPluginTest extends \Test\TestCase {
->with(
$this->equalTo('user1'),
$this->anything(),
- $this->equalTo(false)
+ $this->equalTo(true)
)
->will($this->returnCallback(function ($userId, $node, $flag) use ($shareTypes, $dummyShares) {
return [111 => $dummyShares];
diff --git a/apps/dav/tests/unit/Files/FileSearchBackendTest.php b/apps/dav/tests/unit/Files/FileSearchBackendTest.php
index 24b9a9c51e6..7de92c59763 100644
--- a/apps/dav/tests/unit/Files/FileSearchBackendTest.php
+++ b/apps/dav/tests/unit/Files/FileSearchBackendTest.php
@@ -122,7 +122,8 @@ class FileSearchBackendTest extends TestCase {
),
0,
0,
- []
+ [],
+ $this->user
))
->will($this->returnValue([
new \OC\Files\Node\Folder($this->rootFolder, $this->view, '/test/path')
@@ -150,7 +151,8 @@ class FileSearchBackendTest extends TestCase {
),
0,
0,
- []
+ [],
+ $this->user
))
->will($this->returnValue([
new \OC\Files\Node\Folder($this->rootFolder, $this->view, '/test/path')
@@ -178,7 +180,8 @@ class FileSearchBackendTest extends TestCase {
),
0,
0,
- []
+ [],
+ $this->user
))
->will($this->returnValue([
new \OC\Files\Node\Folder($this->rootFolder, $this->view, '/test/path')
@@ -206,13 +209,14 @@ class FileSearchBackendTest extends TestCase {
),
0,
0,
- []
+ [],
+ $this->user
))
->will($this->returnValue([
new \OC\Files\Node\Folder($this->rootFolder, $this->view, '/test/path')
]));
- $query = $this->getBasicQuery(Operator::OPERATION_GREATER_THAN, '{DAV:}getlastmodifed', 10);
+ $query = $this->getBasicQuery(Operator::OPERATION_GREATER_THAN, '{DAV:}getlastmodified', 10);
$result = $this->search->search($query);
$this->assertCount(1, $result);
@@ -234,7 +238,8 @@ class FileSearchBackendTest extends TestCase {
),
0,
0,
- []
+ [],
+ $this->user
))
->will($this->returnValue([
new \OC\Files\Node\Folder($this->rootFolder, $this->view, '/test/path')
diff --git a/apps/encryption/l10n/lt_LT.js b/apps/encryption/l10n/lt_LT.js
index 7b8bc86191a..0e1608c80bb 100644
--- a/apps/encryption/l10n/lt_LT.js
+++ b/apps/encryption/l10n/lt_LT.js
@@ -23,8 +23,9 @@ OC.L10N.register(
"Private key password successfully updated." : "Privačiojo rakto slaptažodis sėkmingai atnaujintas.",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Jūs turite perkelti savo šifravimo raktus iš senojo šifravimo (ownCloud <= 8.0) į naująjį. Prašome vykdyti \"occ encryption:migrate\" arba susisiekti su savo administratoriumi",
"one-time password for server-side-encryption" : "Vienkartinis slaptažodis šifravimui serverio pusėje",
- "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.",
- "The share will expire on %s." : "Bendrinimo laikas baigsis %s.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nepavyksta iššifruoti šio failo, tikriausiai, tai yra bendrinamas failas. Paprašykite failo savininko iš naujo pradėti bendrinti su jumis šį failą.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nepavyksta perskaityti šio failo, tikriausiai, tai yra bendrinamas failas. Paprašykite failo savininko iš naujo pradėti bendrinti su jumis šį failą.",
+ "The share will expire on %s." : "Bendrinimo laikas pasibaigs %s.",
"Cheers!" : "Sveikinimai!",
"Default encryption module" : "Numatytasis šifravimo modulis",
"Enable recovery key" : "Įjungti atstatymo raktą",
diff --git a/apps/encryption/l10n/lt_LT.json b/apps/encryption/l10n/lt_LT.json
index 6fb74db9fd1..55164e72a1c 100644
--- a/apps/encryption/l10n/lt_LT.json
+++ b/apps/encryption/l10n/lt_LT.json
@@ -21,8 +21,9 @@
"Private key password successfully updated." : "Privačiojo rakto slaptažodis sėkmingai atnaujintas.",
"You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Jūs turite perkelti savo šifravimo raktus iš senojo šifravimo (ownCloud <= 8.0) į naująjį. Prašome vykdyti \"occ encryption:migrate\" arba susisiekti su savo administratoriumi",
"one-time password for server-side-encryption" : "Vienkartinis slaptažodis šifravimui serverio pusėje",
- "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Failo iššifruoti nepavyko, gali būti jog jis yra pasidalintas su jumis. Paprašykite failo savininko, kad jums iš naujo pateiktų šį failą.",
- "The share will expire on %s." : "Bendrinimo laikas baigsis %s.",
+ "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nepavyksta iššifruoti šio failo, tikriausiai, tai yra bendrinamas failas. Paprašykite failo savininko iš naujo pradėti bendrinti su jumis šį failą.",
+ "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Nepavyksta perskaityti šio failo, tikriausiai, tai yra bendrinamas failas. Paprašykite failo savininko iš naujo pradėti bendrinti su jumis šį failą.",
+ "The share will expire on %s." : "Bendrinimo laikas pasibaigs %s.",
"Cheers!" : "Sveikinimai!",
"Default encryption module" : "Numatytasis šifravimo modulis",
"Enable recovery key" : "Įjungti atstatymo raktą",
diff --git a/apps/encryption/l10n/tr.js b/apps/encryption/l10n/tr.js
index 5406c287516..3ec610e4adf 100644
--- a/apps/encryption/l10n/tr.js
+++ b/apps/encryption/l10n/tr.js
@@ -34,6 +34,7 @@ OC.L10N.register(
"The share will expire on %s." : "Bu paylaşım %s tarihinde sona erecek.",
"Cheers!" : "Hoşçakalın!",
"Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Selam,<br><br>Sistem yöneticisi sunucu tarafında şifrelemeyi etkinleştirdi. Dosyalarınız <strong>%s</strong> parolası kullanılarak şifrelendi.<br><br>Lütfen web arayüzünde oturum açın ve kişisel ayarlarınızdan 'temel şifreleme modülü'ne giderek 'eski oturum parolası' alanına bu parolayı girdikten sonra şifreleme parolanızı ve mevcut oturum açma parolanızı güncelleyin.<br><br>",
+ "Default encryption module" : "Varsayılan şifreleme modülü",
"Encrypt the home storage" : "Ana depolamayı şifrele",
"Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Bu seçeneği etkinleştirmek ana depolamadaki bütün dosyaları şifreler, aksi takdirde sadece harici depolamadaki dosyalar şifrelenir",
"Enable recovery key" : "Kurtarma anahtarını etkinleştir",
@@ -46,6 +47,7 @@ OC.L10N.register(
"New recovery key password" : "Yeni kurtarma anahtarı parolası",
"Repeat new recovery key password" : "Yeni kurtarma anahtarı parolasını yineleyin",
"Change Password" : "Parola Değiştir",
+ "Basic encryption module" : "Temel şifreleme bölümü",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın",
"Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.",
"Set your old private key password to your current log-in password:" : "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:",
diff --git a/apps/encryption/l10n/tr.json b/apps/encryption/l10n/tr.json
index aaa478b0f8c..bc899b346c6 100644
--- a/apps/encryption/l10n/tr.json
+++ b/apps/encryption/l10n/tr.json
@@ -32,6 +32,7 @@
"The share will expire on %s." : "Bu paylaşım %s tarihinde sona erecek.",
"Cheers!" : "Hoşçakalın!",
"Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Selam,<br><br>Sistem yöneticisi sunucu tarafında şifrelemeyi etkinleştirdi. Dosyalarınız <strong>%s</strong> parolası kullanılarak şifrelendi.<br><br>Lütfen web arayüzünde oturum açın ve kişisel ayarlarınızdan 'temel şifreleme modülü'ne giderek 'eski oturum parolası' alanına bu parolayı girdikten sonra şifreleme parolanızı ve mevcut oturum açma parolanızı güncelleyin.<br><br>",
+ "Default encryption module" : "Varsayılan şifreleme modülü",
"Encrypt the home storage" : "Ana depolamayı şifrele",
"Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Bu seçeneği etkinleştirmek ana depolamadaki bütün dosyaları şifreler, aksi takdirde sadece harici depolamadaki dosyalar şifrelenir",
"Enable recovery key" : "Kurtarma anahtarını etkinleştir",
@@ -44,6 +45,7 @@
"New recovery key password" : "Yeni kurtarma anahtarı parolası",
"Repeat new recovery key password" : "Yeni kurtarma anahtarı parolasını yineleyin",
"Change Password" : "Parola Değiştir",
+ "Basic encryption module" : "Temel şifreleme bölümü",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Şifreleme Uygulaması etkin ancak anahtarlarınız başlatılmamış. Lütfen oturumu kapatıp yeniden açın",
"Your private key password no longer matches your log-in password." : "Özel anahtar parolanız artık oturum açma parolanız ile eşleşmiyor.",
"Set your old private key password to your current log-in password:" : "Eski özel anahtar parolanızı, geçerli oturum açma parolanız olarak ayarlayın:",
diff --git a/apps/encryption/lib/Crypto/Crypt.php b/apps/encryption/lib/Crypto/Crypt.php
index 7d6636d882e..4303cb9e940 100644
--- a/apps/encryption/lib/Crypto/Crypt.php
+++ b/apps/encryption/lib/Crypto/Crypt.php
@@ -29,7 +29,6 @@ namespace OCA\Encryption\Crypto;
use OC\Encryption\Exceptions\DecryptionFailedException;
use OC\Encryption\Exceptions\EncryptionFailedException;
-use OC\HintException;
use OCA\Encryption\Exceptions\MultiKeyDecryptException;
use OCA\Encryption\Exceptions\MultiKeyEncryptException;
use OCP\Encryption\Exceptions\GenericEncryptionException;
@@ -476,12 +475,12 @@ class Crypt {
* @param string $data
* @param string $passPhrase
* @param string $expectedSignature
- * @throws HintException
+ * @throws GenericEncryptionException
*/
private function checkSignature($data, $passPhrase, $expectedSignature) {
$signature = $this->createSignature($data, $passPhrase);
if (!hash_equals($expectedSignature, $signature)) {
- throw new HintException('Bad Signature', $this->l->t('Bad Signature'));
+ throw new GenericEncryptionException('Bad Signature', $this->l->t('Bad Signature'));
}
}
@@ -552,7 +551,7 @@ class Crypt {
* @param string $catFile
* @param string $cipher
* @return bool
- * @throws HintException
+ * @throws GenericEncryptionException
*/
private function hasSignature($catFile, $cipher) {
$meta = substr($catFile, -93);
@@ -560,7 +559,7 @@ class Crypt {
// enforce signature for the new 'CTR' ciphers
if ($signaturePosition === false && strpos(strtolower($cipher), 'ctr') !== false) {
- throw new HintException('Missing Signature', $this->l->t('Missing Signature'));
+ throw new GenericEncryptionException('Missing Signature', $this->l->t('Missing Signature'));
}
return ($signaturePosition !== false);
diff --git a/apps/encryption/tests/Crypto/CryptTest.php b/apps/encryption/tests/Crypto/CryptTest.php
index b808acaf199..3c226ed94ab 100644
--- a/apps/encryption/tests/Crypto/CryptTest.php
+++ b/apps/encryption/tests/Crypto/CryptTest.php
@@ -247,7 +247,7 @@ class CryptTest extends TestCase {
/**
* @dataProvider dataTestHasSignatureFail
- * @expectedException \OC\HintException
+ * @expectedException \OCP\Encryption\Exceptions\GenericEncryptionException
*/
public function testHasSignatureFail($cipher) {
$data = 'encryptedContent00iv001234567890123456xx';
diff --git a/apps/federatedfilesharing/appinfo/app.php b/apps/federatedfilesharing/appinfo/app.php
index 4a5492b0f15..b6a145bcc2c 100644
--- a/apps/federatedfilesharing/appinfo/app.php
+++ b/apps/federatedfilesharing/appinfo/app.php
@@ -24,7 +24,6 @@
use OCA\FederatedFileSharing\Notifier;
$app = new \OCA\FederatedFileSharing\AppInfo\Application();
-$l = \OC::$server->getL10N('files_sharing');
$eventDispatcher = \OC::$server->getEventDispatcher();
$app->registerSettings();
@@ -32,7 +31,8 @@ $app->registerSettings();
$manager = \OC::$server->getNotificationManager();
$manager->registerNotifier(function() {
return \OC::$server->query(Notifier::class);
-}, function() use ($l) {
+}, function() {
+ $l = \OC::$server->getL10N('files_sharing');
return [
'id' => 'files_sharing',
'name' => $l->t('Federated sharing'),
diff --git a/apps/federatedfilesharing/l10n/zh_CN.js b/apps/federatedfilesharing/l10n/zh_CN.js
index 9e3c5700328..6c675674bf0 100644
--- a/apps/federatedfilesharing/l10n/zh_CN.js
+++ b/apps/federatedfilesharing/l10n/zh_CN.js
@@ -29,9 +29,13 @@ OC.L10N.register(
"File is already shared with %s" : "文件已经共享与 %s",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "共享 %s 失败, 无法找到 %s, 可能该服务器当前无法访问或者使用自签名证书.",
"Could not find share" : "没有发现共享",
+ "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "你得到“%3$s\"做为远程分享从”%1$s(代替\"%2$s)",
+ "You received {share} as a remote share from {user} (on behalf of {behalf})" : "你得到[共享]是从[用户]做为远程共享(代替原来的)",
+ "You received \"%3$s\" as a remote share from %1$s" : "你从“%1$s\"得到\"%3$s\"做为远程共享",
"You received {share} as a remote share from {user}" : "您从 {user} 收到了 {share} 作为远程共享",
"Accept" : "接受",
"Decline" : "拒绝",
+ "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "通过我的联合云ID,分享给我,看%s",
"Share with me through my #Nextcloud Federated Cloud ID" : "通过我的#Nextcloud联合云ID与我共享",
"Federated Cloud Sharing" : "联合云共享",
"Open documentation" : "打开文档",
diff --git a/apps/federatedfilesharing/l10n/zh_CN.json b/apps/federatedfilesharing/l10n/zh_CN.json
index 552ee8596c5..239cee71b1c 100644
--- a/apps/federatedfilesharing/l10n/zh_CN.json
+++ b/apps/federatedfilesharing/l10n/zh_CN.json
@@ -27,9 +27,13 @@
"File is already shared with %s" : "文件已经共享与 %s",
"Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "共享 %s 失败, 无法找到 %s, 可能该服务器当前无法访问或者使用自签名证书.",
"Could not find share" : "没有发现共享",
+ "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "你得到“%3$s\"做为远程分享从”%1$s(代替\"%2$s)",
+ "You received {share} as a remote share from {user} (on behalf of {behalf})" : "你得到[共享]是从[用户]做为远程共享(代替原来的)",
+ "You received \"%3$s\" as a remote share from %1$s" : "你从“%1$s\"得到\"%3$s\"做为远程共享",
"You received {share} as a remote share from {user}" : "您从 {user} 收到了 {share} 作为远程共享",
"Accept" : "接受",
"Decline" : "拒绝",
+ "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "通过我的联合云ID,分享给我,看%s",
"Share with me through my #Nextcloud Federated Cloud ID" : "通过我的#Nextcloud联合云ID与我共享",
"Federated Cloud Sharing" : "联合云共享",
"Open documentation" : "打开文档",
diff --git a/apps/federatedfilesharing/tests/TestCase.php b/apps/federatedfilesharing/tests/TestCase.php
index 7ccf76bbbc6..b31772e4e9e 100644
--- a/apps/federatedfilesharing/tests/TestCase.php
+++ b/apps/federatedfilesharing/tests/TestCase.php
@@ -42,7 +42,7 @@ abstract class TestCase extends \Test\TestCase {
// reset backend
\OC_User::clearBackends();
- \OC_Group::clearBackends();
+ \OC::$server->getGroupManager()->clearBackends();
// create users
$backend = new \Test\Util\User\Dummy();
@@ -76,8 +76,8 @@ abstract class TestCase extends \Test\TestCase {
// reset backend
\OC_User::clearBackends();
\OC_User::useBackend('database');
- \OC_Group::clearBackends();
- \OC_Group::useBackend(new Database());
+ \OC::$server->getGroupManager()->clearBackends();
+ \OC::$server->getGroupManager()->addBackend(new Database());
parent::tearDownAfterClass();
}
@@ -94,9 +94,15 @@ abstract class TestCase extends \Test\TestCase {
}
if ($create) {
- \OC::$server->getUserManager()->createUser($user, $password);
- \OC_Group::createGroup('group');
- \OC_Group::addToGroup($user, 'group');
+ $userManager = \OC::$server->getUserManager();
+ $groupManager = \OC::$server->getGroupManager();
+
+ $userObject = $userManager->createUser($user, $password);
+ $group = $groupManager->createGroup('group');
+
+ if ($group and $userObject) {
+ $group->addUser($userObject);
+ }
}
self::resetStorage();
diff --git a/apps/federation/appinfo/routes.php b/apps/federation/appinfo/routes.php
index b9515812a01..4c742dd705c 100644
--- a/apps/federation/appinfo/routes.php
+++ b/apps/federation/appinfo/routes.php
@@ -43,6 +43,7 @@ $application->registerRoutes(
],
],
'ocs' => [
+ // old endpoints, only used by Nextcloud and ownCloud
[
'name' => 'OCSAuthAPI#getSharedSecret',
'url' => '/api/v1/shared-secret',
@@ -53,6 +54,19 @@ $application->registerRoutes(
'url' => '/api/v1/request-shared-secret',
'verb' => 'POST',
],
+ // new endpoints, published as public api
+ [
+ 'name' => 'OCSAuthAPI#getSharedSecret',
+ 'root' => '/cloud',
+ 'url' => '/shared-secret',
+ 'verb' => 'GET',
+ ],
+ [
+ 'name' => 'OCSAuthAPI#requestSharedSecret',
+ 'root' => '/cloud',
+ 'url' => '/shared-secret',
+ 'verb' => 'POST',
+ ],
],
]
);
diff --git a/apps/federation/l10n/nl.js b/apps/federation/l10n/nl.js
index 8d571f28ba5..60d07aeb51a 100644
--- a/apps/federation/l10n/nl.js
+++ b/apps/federation/l10n/nl.js
@@ -12,8 +12,8 @@ OC.L10N.register(
"+ Add trusted server" : "+ Toevoegen vertrouwde server",
"Trusted server" : "Vertrouwde server",
"Add" : "Toevoegen",
- "Trusted Servers" : "Vertrouwde servers",
- "+ Add Nextcloud server" : "+ Toevoegen Nextcloud server",
+ "Trusted Servers" : "Vertrouwde Servers",
+ "+ Add Nextcloud server" : "+ Nextcloud server toevoegen",
"Nextcloud Server" : "Nextcloud Server"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/federation/l10n/nl.json b/apps/federation/l10n/nl.json
index e29994fb4ea..f481e31e79e 100644
--- a/apps/federation/l10n/nl.json
+++ b/apps/federation/l10n/nl.json
@@ -10,8 +10,8 @@
"+ Add trusted server" : "+ Toevoegen vertrouwde server",
"Trusted server" : "Vertrouwde server",
"Add" : "Toevoegen",
- "Trusted Servers" : "Vertrouwde servers",
- "+ Add Nextcloud server" : "+ Toevoegen Nextcloud server",
+ "Trusted Servers" : "Vertrouwde Servers",
+ "+ Add Nextcloud server" : "+ Nextcloud server toevoegen",
"Nextcloud Server" : "Nextcloud Server"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js
index c93abd5244d..2b28380e0b0 100644
--- a/apps/files/js/file-upload.js
+++ b/apps/files/js/file-upload.js
@@ -220,11 +220,6 @@ OC.FileUpload.prototype = {
this.data.headers['If-None-Match'] = '*';
}
- if (file.lastModified) {
- // preserve timestamp
- this.data.headers['X-OC-Mtime'] = file.lastModified / 1000;
- }
-
var userName = this.uploader.filesClient.getUserName();
var password = this.uploader.filesClient.getPassword();
if (userName) {
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 1f4b8f0ec68..1385fe26771 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -2553,7 +2553,7 @@
$('#searchresults').addClass('filter-empty');
$('#searchresults .emptycontent').addClass('emptycontent-search');
if ( $('#searchresults').length === 0 || $('#searchresults').hasClass('hidden') ) {
- var error = t('files', "No search results in other folders for '{tag}{filter}{endtag}'", {filter:this._filter}, null, {'escape': false});
+ var error = t('files', 'No search results in other folders for {tag}{filter}{endtag}', {filter:this._filter});
this.$el.find('.nofilterresults').removeClass('hidden').
find('p').html(error.replace('{tag}', '<strong>').replace('{endtag}', '</strong>'));
}
diff --git a/apps/files/l10n/ca.js b/apps/files/l10n/ca.js
index f43200a5a05..7ab199c4c42 100644
--- a/apps/files/l10n/ca.js
+++ b/apps/files/l10n/ca.js
@@ -47,6 +47,7 @@ OC.L10N.register(
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetes"],
"_%n file_::_%n files_" : ["%n fitxer","%n fitxers"],
"{dirs} and {files}" : "{dirs} i {files}",
+ "_including %n hidden_::_including %n hidden_" : ["incloent %n ocult","incloent %n ocults"],
"You don’t have permission to upload or create files here" : "No teniu permisos per a pujar o crear els fitxers aquí",
"_Uploading %n file_::_Uploading %n files_" : ["Pujant %n fitxer","Pujant %n fitxers"],
"New" : "Nou",
@@ -59,6 +60,7 @@ OC.L10N.register(
"_matches '{filter}'_::_match '{filter}'_" : ["coincidències '{filter}'","coincidència '{filter}'"],
"View in folder" : "Veure a la carpeta",
"Path" : "Ruta",
+ "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Agregat a favorits",
"Favorite" : "Preferits",
"Copy local link" : "C",
@@ -76,6 +78,7 @@ OC.L10N.register(
"Restored by {user}" : "Restaurat per {user}",
"Renamed by {user}" : "Reanomenat per {user}",
"Moved by {user}" : "Mogut per {user}",
+ "You created {file}" : "Has creat {file}",
"You deleted {file}" : "Heu esborrat {file}",
"You renamed {oldfile} to {newfile}" : "Heu reanomenat {oldfile} a {newfile}",
"{user} renamed {oldfile} to {newfile}" : "{user} ha reanomenat {oldfile} a {newfile}",
diff --git a/apps/files/l10n/ca.json b/apps/files/l10n/ca.json
index 0f52e17bdbb..40d96e8afda 100644
--- a/apps/files/l10n/ca.json
+++ b/apps/files/l10n/ca.json
@@ -45,6 +45,7 @@
"_%n folder_::_%n folders_" : ["%n carpeta","%n carpetes"],
"_%n file_::_%n files_" : ["%n fitxer","%n fitxers"],
"{dirs} and {files}" : "{dirs} i {files}",
+ "_including %n hidden_::_including %n hidden_" : ["incloent %n ocult","incloent %n ocults"],
"You don’t have permission to upload or create files here" : "No teniu permisos per a pujar o crear els fitxers aquí",
"_Uploading %n file_::_Uploading %n files_" : ["Pujant %n fitxer","Pujant %n fitxers"],
"New" : "Nou",
@@ -57,6 +58,7 @@
"_matches '{filter}'_::_match '{filter}'_" : ["coincidències '{filter}'","coincidència '{filter}'"],
"View in folder" : "Veure a la carpeta",
"Path" : "Ruta",
+ "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"],
"Favorited" : "Agregat a favorits",
"Favorite" : "Preferits",
"Copy local link" : "C",
@@ -74,6 +76,7 @@
"Restored by {user}" : "Restaurat per {user}",
"Renamed by {user}" : "Reanomenat per {user}",
"Moved by {user}" : "Mogut per {user}",
+ "You created {file}" : "Has creat {file}",
"You deleted {file}" : "Heu esborrat {file}",
"You renamed {oldfile} to {newfile}" : "Heu reanomenat {oldfile} a {newfile}",
"{user} renamed {oldfile} to {newfile}" : "{user} ha reanomenat {oldfile} a {newfile}",
diff --git a/apps/files/l10n/ja.js b/apps/files/l10n/ja.js
index 58585944f9c..f01be7e1b85 100644
--- a/apps/files/l10n/ja.js
+++ b/apps/files/l10n/ja.js
@@ -174,6 +174,9 @@ OC.L10N.register(
"%2$s restored %1$s" : "%2$s は、 %1$s を復元しました",
"Changed by %2$s" : "%2$s により更新",
"Deleted by %2$s" : "%2$s により削除",
- "Restored by %2$s" : "%2$s により復元"
+ "Restored by %2$s" : "%2$s により復元",
+ "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["残り {hours}:{minutes}:{seconds} 時間"],
+ "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["残り {minutes}:{seconds} 分"],
+ "_{seconds} second left_::_{seconds} seconds left_" : ["残り {seconds} 秒"]
},
"nplurals=1; plural=0;");
diff --git a/apps/files/l10n/ja.json b/apps/files/l10n/ja.json
index 12cf9d4907c..7a69ccf1b7e 100644
--- a/apps/files/l10n/ja.json
+++ b/apps/files/l10n/ja.json
@@ -172,6 +172,9 @@
"%2$s restored %1$s" : "%2$s は、 %1$s を復元しました",
"Changed by %2$s" : "%2$s により更新",
"Deleted by %2$s" : "%2$s により削除",
- "Restored by %2$s" : "%2$s により復元"
+ "Restored by %2$s" : "%2$s により復元",
+ "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["残り {hours}:{minutes}:{seconds} 時間"],
+ "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["残り {minutes}:{seconds} 分"],
+ "_{seconds} second left_::_{seconds} seconds left_" : ["残り {seconds} 秒"]
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/apps/files/l10n/lt_LT.js b/apps/files/l10n/lt_LT.js
index a70a8286e99..a48332d2f8c 100644
--- a/apps/files/l10n/lt_LT.js
+++ b/apps/files/l10n/lt_LT.js
@@ -26,7 +26,7 @@ OC.L10N.register(
"Target folder" : "Paskirties aplankas",
"Delete" : "Ištrinti",
"Disconnect storage" : "Atjungti saugyklą",
- "Unshare" : "Nebesidalinti",
+ "Unshare" : "Nebebendrinti",
"Could not load info for file \"{file}\"" : "Nepavyko įkelti informacijos failui \"{file}\"",
"Files" : "Failai",
"Details" : "Informacija",
diff --git a/apps/files/l10n/lt_LT.json b/apps/files/l10n/lt_LT.json
index 5abb29f5248..f1a43d46fe8 100644
--- a/apps/files/l10n/lt_LT.json
+++ b/apps/files/l10n/lt_LT.json
@@ -24,7 +24,7 @@
"Target folder" : "Paskirties aplankas",
"Delete" : "Ištrinti",
"Disconnect storage" : "Atjungti saugyklą",
- "Unshare" : "Nebesidalinti",
+ "Unshare" : "Nebebendrinti",
"Could not load info for file \"{file}\"" : "Nepavyko įkelti informacijos failui \"{file}\"",
"Files" : "Failai",
"Details" : "Informacija",
diff --git a/apps/files/l10n/sv.js b/apps/files/l10n/sv.js
index 001fc6b07b8..b66ffc8333f 100644
--- a/apps/files/l10n/sv.js
+++ b/apps/files/l10n/sv.js
@@ -174,6 +174,9 @@ OC.L10N.register(
"%2$s restored %1$s" : "%2$s återskapade %1$s",
"Changed by %2$s" : "Ändrad av %2$s",
"Deleted by %2$s" : "Bortagen av %2$s",
- "Restored by %2$s" : "Återställd av %2$s"
+ "Restored by %2$s" : "Återställd av %2$s",
+ "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["{hours}:{minutes}:{seconds} timme kvar","{hours}:{minutes}:{seconds} timmar kvar"],
+ "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["{minutes}:{seconds} minut kvar","{minutes}:{seconds} minuter kvar"],
+ "_{seconds} second left_::_{seconds} seconds left_" : ["{seconds} sekund kvar","{seconds} sekunder kvar"]
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/sv.json b/apps/files/l10n/sv.json
index 62e44c6c28e..ebaa4c51ec5 100644
--- a/apps/files/l10n/sv.json
+++ b/apps/files/l10n/sv.json
@@ -172,6 +172,9 @@
"%2$s restored %1$s" : "%2$s återskapade %1$s",
"Changed by %2$s" : "Ändrad av %2$s",
"Deleted by %2$s" : "Bortagen av %2$s",
- "Restored by %2$s" : "Återställd av %2$s"
+ "Restored by %2$s" : "Återställd av %2$s",
+ "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["{hours}:{minutes}:{seconds} timme kvar","{hours}:{minutes}:{seconds} timmar kvar"],
+ "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["{minutes}:{seconds} minut kvar","{minutes}:{seconds} minuter kvar"],
+ "_{seconds} second left_::_{seconds} seconds left_" : ["{seconds} sekund kvar","{seconds} sekunder kvar"]
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files/l10n/tr.js b/apps/files/l10n/tr.js
index e46a11abb6c..7859557590f 100644
--- a/apps/files/l10n/tr.js
+++ b/apps/files/l10n/tr.js
@@ -1,37 +1,39 @@
OC.L10N.register(
"files",
{
- "Storage is temporarily not available" : "Gecici depolama alani mevcut değil",
+ "Storage is temporarily not available" : "Depolama geçici olarak kullanılamıyor",
"Storage invalid" : "Depolama geçersiz",
- "Unknown error" : "Bilinmeyen hata",
+ "Unknown error" : "Bilinmeyen sorun",
"All files" : "Tüm dosyalar",
"Recent" : "Son",
"File could not be found" : "Dosya bulunamadı",
"Home" : "Ev",
"Close" : "Kapat",
- "Favorites" : "Sık kullanılanlar",
+ "Favorites" : "Sık Kullanılanlar",
"Could not create folder \"{dir}\"" : "\"{dir}\" klasörü oluşturulamadı",
"Upload cancelled." : "Yükleme iptal edildi.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} bir dizin veya 0 bayt olduğundan yüklenemedi",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterince boş alan yok. Gönderdiğiniz boyut {size1} ancak {size2} alan mevcut",
- "Not enough free space" : "Yeterli disk alanı yok",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} bir klasör ya da 0 bayt boyutunda olduğundan yüklenemedi",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterli boş alan yok. Yüklemek istediğiniz boyut {size1} ancak yalnız {size2} boş alan var",
+ "Target folder \"{dir}\" does not exist any more" : "\"{dir}\" hedef klasörü artık yok",
+ "Not enough free space" : "Yeterli boş alan yok",
"Uploading..." : "Yükleniyor...",
"..." : "...",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})",
- "Actions" : "Eylemler",
+ "Actions" : "İşlemler",
"Download" : "İndir",
- "Rename" : "Yeniden adlandır",
+ "Rename" : "Yeniden Adlandır",
"Move" : "Taşı",
- "Target folder" : "Hedeflenen klasör",
+ "Target folder" : "Hedef klasör",
"Delete" : "Sil",
"Disconnect storage" : "Depolama bağlantısını kes",
- "Unshare" : "Paylaşmayı Kaldır",
+ "Unshare" : "Paylaşımı Kaldır",
+ "Could not load info for file \"{file}\"" : "\"{file}\" dosyasının bilgileri alınamadı",
"Files" : "Dosyalar",
"Details" : "Ayrıntılar",
- "Select" : "Seç",
+ "Select" : "Seçin",
"Pending" : "Bekliyor",
- "Unable to determine date" : "Tarih tespit edilemedi",
- "This operation is forbidden" : "Bu işlem yasak",
+ "Unable to determine date" : "Tarih belirlenemedi",
+ "This operation is forbidden" : "Bu işleme izin verilmiyor",
"This directory is unavailable, please check the logs or contact the administrator" : "Bu dizine yazılamıyor, lütfen günlüğü kontrol edin veya yönetici ile iletişime geçin",
"Could not move \"{file}\", target exists" : "\"{file}\" taşınamadı, hedef mevcut",
"Could not move \"{file}\"" : "\"{file}\" taşınamadı",
@@ -85,6 +87,7 @@ OC.L10N.register(
"{user} created {file}" : "{user} tarafından {file} oluşturuldu",
"You changed {file}" : "Siz {file} dosyasını değiştirdiniz",
"You deleted {file}" : "Siz {file} dosyasını sildiniz",
+ "{user} deleted {file}" : "{user} tarafından {file} silindi",
"A new file or folder has been <strong>created</strong>" : "Yeni bir dosya veya klasör <strong>oluşturuldu</strong>",
"Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>Sık kullanılan dosyalarınızın</strong> oluşturulma ve değiştirilme hakkındaki bildirimlerini sınırla <em>(Sadece akışta)</em>",
"Upload (max. %s)" : "Yükle (azami: %s)",
diff --git a/apps/files/l10n/tr.json b/apps/files/l10n/tr.json
index d5b70fa9b58..89028393bb0 100644
--- a/apps/files/l10n/tr.json
+++ b/apps/files/l10n/tr.json
@@ -1,35 +1,37 @@
{ "translations": {
- "Storage is temporarily not available" : "Gecici depolama alani mevcut değil",
+ "Storage is temporarily not available" : "Depolama geçici olarak kullanılamıyor",
"Storage invalid" : "Depolama geçersiz",
- "Unknown error" : "Bilinmeyen hata",
+ "Unknown error" : "Bilinmeyen sorun",
"All files" : "Tüm dosyalar",
"Recent" : "Son",
"File could not be found" : "Dosya bulunamadı",
"Home" : "Ev",
"Close" : "Kapat",
- "Favorites" : "Sık kullanılanlar",
+ "Favorites" : "Sık Kullanılanlar",
"Could not create folder \"{dir}\"" : "\"{dir}\" klasörü oluşturulamadı",
"Upload cancelled." : "Yükleme iptal edildi.",
- "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} bir dizin veya 0 bayt olduğundan yüklenemedi",
- "Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterince boş alan yok. Gönderdiğiniz boyut {size1} ancak {size2} alan mevcut",
- "Not enough free space" : "Yeterli disk alanı yok",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "{filename} bir klasör ya da 0 bayt boyutunda olduğundan yüklenemedi",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Yeterli boş alan yok. Yüklemek istediğiniz boyut {size1} ancak yalnız {size2} boş alan var",
+ "Target folder \"{dir}\" does not exist any more" : "\"{dir}\" hedef klasörü artık yok",
+ "Not enough free space" : "Yeterli boş alan yok",
"Uploading..." : "Yükleniyor...",
"..." : "...",
"{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} / {totalSize} ({bitrate})",
- "Actions" : "Eylemler",
+ "Actions" : "İşlemler",
"Download" : "İndir",
- "Rename" : "Yeniden adlandır",
+ "Rename" : "Yeniden Adlandır",
"Move" : "Taşı",
- "Target folder" : "Hedeflenen klasör",
+ "Target folder" : "Hedef klasör",
"Delete" : "Sil",
"Disconnect storage" : "Depolama bağlantısını kes",
- "Unshare" : "Paylaşmayı Kaldır",
+ "Unshare" : "Paylaşımı Kaldır",
+ "Could not load info for file \"{file}\"" : "\"{file}\" dosyasının bilgileri alınamadı",
"Files" : "Dosyalar",
"Details" : "Ayrıntılar",
- "Select" : "Seç",
+ "Select" : "Seçin",
"Pending" : "Bekliyor",
- "Unable to determine date" : "Tarih tespit edilemedi",
- "This operation is forbidden" : "Bu işlem yasak",
+ "Unable to determine date" : "Tarih belirlenemedi",
+ "This operation is forbidden" : "Bu işleme izin verilmiyor",
"This directory is unavailable, please check the logs or contact the administrator" : "Bu dizine yazılamıyor, lütfen günlüğü kontrol edin veya yönetici ile iletişime geçin",
"Could not move \"{file}\", target exists" : "\"{file}\" taşınamadı, hedef mevcut",
"Could not move \"{file}\"" : "\"{file}\" taşınamadı",
@@ -83,6 +85,7 @@
"{user} created {file}" : "{user} tarafından {file} oluşturuldu",
"You changed {file}" : "Siz {file} dosyasını değiştirdiniz",
"You deleted {file}" : "Siz {file} dosyasını sildiniz",
+ "{user} deleted {file}" : "{user} tarafından {file} silindi",
"A new file or folder has been <strong>created</strong>" : "Yeni bir dosya veya klasör <strong>oluşturuldu</strong>",
"Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "<strong>Sık kullanılan dosyalarınızın</strong> oluşturulma ve değiştirilme hakkındaki bildirimlerini sınırla <em>(Sadece akışta)</em>",
"Upload (max. %s)" : "Yükle (azami: %s)",
diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php
index 3a90cf0c2c1..925596198cf 100644
--- a/apps/files_external/appinfo/app.php
+++ b/apps/files_external/appinfo/app.php
@@ -37,15 +37,16 @@ $appContainer = \OC_Mount_Config::$app->getContainer();
\OC_Mount_Config::$app->registerSettings();
-$l = \OC::$server->getL10N('files_external');
-
-\OCA\Files\App::getNavigationManager()->add([
- "id" => 'extstoragemounts',
- "appname" => 'files_external',
- "script" => 'list.php',
- "order" => 30,
- "name" => $l->t('External storage')
-]);
+\OCA\Files\App::getNavigationManager()->add(function () {
+ $l = \OC::$server->getL10N('files_external');
+ return [
+ 'id' => 'extstoragemounts',
+ 'appname' => 'files_external',
+ 'script' => 'list.php',
+ 'order' => 30,
+ 'name' => $l->t('External storage'),
+ ];
+});
$mountProvider = $appContainer->query('OCA\Files_External\Config\ConfigAdapter');
\OC::$server->getMountProviderCollection()->registerProvider($mountProvider);
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index 4fed51b1194..8228e761592 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -26,8 +26,6 @@
*
*/
-$l = \OC::$server->getL10N('files_sharing');
-
\OCA\Files_Sharing\Helper::registerHooks();
\OCP\Share::registerBackend('file', 'OCA\Files_Sharing\ShareBackend\File');
@@ -52,39 +50,41 @@ $eventDispatcher->addListener(
$config = \OC::$server->getConfig();
if ($config->getAppValue('core', 'shareapi_enabled', 'yes') === 'yes') {
-
- \OCA\Files\App::getNavigationManager()->add(
- array(
- "id" => 'sharingin',
- "appname" => 'files_sharing',
- "script" => 'list.php',
- "order" => 10,
- "name" => $l->t('Shared with you')
- )
- );
+ \OCA\Files\App::getNavigationManager()->add(function () {
+ $l = \OC::$server->getL10N('files_sharing');
+ return [
+ 'id' => 'sharingin',
+ 'appname' => 'files_sharing',
+ 'script' => 'list.php',
+ 'order' => 10,
+ 'name' => $l->t('Shared with you'),
+ ];
+ });
if (\OCP\Util::isSharingDisabledForUser() === false) {
+ \OCA\Files\App::getNavigationManager()->add(function () {
+ $l = \OC::$server->getL10N('files_sharing');
+ return [
+ 'id' => 'sharingout',
+ 'appname' => 'files_sharing',
+ 'script' => 'list.php',
+ 'order' => 15,
+ 'name' => $l->t('Shared with others'),
+ ];
+ });
- \OCA\Files\App::getNavigationManager()->add(
- array(
- "id" => 'sharingout',
- "appname" => 'files_sharing',
- "script" => 'list.php',
- "order" => 15,
- "name" => $l->t('Shared with others')
- )
- );
// Check if sharing by link is enabled
if ($config->getAppValue('core', 'shareapi_allow_links', 'yes') === 'yes') {
- \OCA\Files\App::getNavigationManager()->add(
- array(
- "id" => 'sharinglinks',
- "appname" => 'files_sharing',
- "script" => 'list.php',
- "order" => 20,
- "name" => $l->t('Shared by link')
- )
- );
+ \OCA\Files\App::getNavigationManager()->add(function () {
+ $l = \OC::$server->getL10N('files_sharing');
+ return [
+ 'id' => 'sharinglinks',
+ 'appname' => 'files_sharing',
+ 'script' => 'list.php',
+ 'order' => 20,
+ 'name' => $l->t('Shared by link'),
+ ];
+ });
}
}
}
diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js
index e0066f826c0..a30fe353918 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -36,13 +36,13 @@ OC.L10N.register(
"Public link expired" : "Collegamento pubblico scaduto",
"{actor} shared as public link" : "{actor} ha condiviso tramite collegamento pubblico",
"{actor} removed public link" : "{actor} ha rimosso il collegamento pubblico",
- "Public link of {actor} expired" : "Link pubblico di {actor} scaduto",
+ "Public link of {actor} expired" : "Collegamento pubblico di {actor} scaduto",
"You shared {file} as public link" : "Hai condiviso {file} tramite collegamento",
"You removed public link for {file}" : "Hai rimosso il collegamento pubblico per {file}",
- "Public link expired for {file}" : "Link pubblico scaduto per {file}",
+ "Public link expired for {file}" : "Collegamento pubblico scaduto per {file}",
"{actor} shared {file} as public link" : "{actor} ha condiviso {file} tramite collegamento pubblico",
"{actor} removed public link for {file}" : "{actor} ha rimosso il collegamento pubblico per {file}",
- "Public link of {actor} for {file} expired" : "Link pubblico di {actor} per {file} scaduto",
+ "Public link of {actor} for {file} expired" : "Collegamento pubblico di {actor} per {file} scaduto",
"{user} accepted the remote share" : "{user} ha accettato la condivisione remota",
"{user} declined the remote share" : "{user} ha rifiutato la condivisione remota",
"You received a new remote share {file} from {user}" : "Hai ricevuto una nuova condivisione remota {file} da {user}",
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index 95c41ea1c4d..89b955ac31d 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -34,13 +34,13 @@
"Public link expired" : "Collegamento pubblico scaduto",
"{actor} shared as public link" : "{actor} ha condiviso tramite collegamento pubblico",
"{actor} removed public link" : "{actor} ha rimosso il collegamento pubblico",
- "Public link of {actor} expired" : "Link pubblico di {actor} scaduto",
+ "Public link of {actor} expired" : "Collegamento pubblico di {actor} scaduto",
"You shared {file} as public link" : "Hai condiviso {file} tramite collegamento",
"You removed public link for {file}" : "Hai rimosso il collegamento pubblico per {file}",
- "Public link expired for {file}" : "Link pubblico scaduto per {file}",
+ "Public link expired for {file}" : "Collegamento pubblico scaduto per {file}",
"{actor} shared {file} as public link" : "{actor} ha condiviso {file} tramite collegamento pubblico",
"{actor} removed public link for {file}" : "{actor} ha rimosso il collegamento pubblico per {file}",
- "Public link of {actor} for {file} expired" : "Link pubblico di {actor} per {file} scaduto",
+ "Public link of {actor} for {file} expired" : "Collegamento pubblico di {actor} per {file} scaduto",
"{user} accepted the remote share" : "{user} ha accettato la condivisione remota",
"{user} declined the remote share" : "{user} ha rifiutato la condivisione remota",
"You received a new remote share {file} from {user}" : "Hai ricevuto una nuova condivisione remota {file} da {user}",
diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js
index 163b6721074..661d19f7166 100644
--- a/apps/files_sharing/l10n/sv.js
+++ b/apps/files_sharing/l10n/sv.js
@@ -36,10 +36,13 @@ OC.L10N.register(
"Public link expired" : "Tidsgräns för offentlig länk har löpt ut",
"{actor} shared as public link" : "{actor} delade offentligt",
"{actor} removed public link" : "{actor} tog bort offentlig länk",
+ "Public link of {actor} expired" : "Offentlig länk av {actor} har utgått",
"You shared {file} as public link" : "Du delade {file} offentligt",
"You removed public link for {file}" : "Du tog bort den offentliga länken för {file}",
+ "Public link expired for {file}" : "Offentlig länk har utgått för {file}",
"{actor} shared {file} as public link" : "{actor} delade {file} offentligt",
"{actor} removed public link for {file}" : "{actor} tog bort den offentliga länken för {file}",
+ "Public link of {actor} for {file} expired" : "Offentlig länk av {actor} för {file} har utgått",
"{user} accepted the remote share" : "{user} accepterade extern delning",
"{user} declined the remote share" : "{user} nekade extern delning",
"You received a new remote share {file} from {user}" : "Du har fått en ny extern delning {file} från {user}",
diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json
index a5f97053249..df91154f6f7 100644
--- a/apps/files_sharing/l10n/sv.json
+++ b/apps/files_sharing/l10n/sv.json
@@ -34,10 +34,13 @@
"Public link expired" : "Tidsgräns för offentlig länk har löpt ut",
"{actor} shared as public link" : "{actor} delade offentligt",
"{actor} removed public link" : "{actor} tog bort offentlig länk",
+ "Public link of {actor} expired" : "Offentlig länk av {actor} har utgått",
"You shared {file} as public link" : "Du delade {file} offentligt",
"You removed public link for {file}" : "Du tog bort den offentliga länken för {file}",
+ "Public link expired for {file}" : "Offentlig länk har utgått för {file}",
"{actor} shared {file} as public link" : "{actor} delade {file} offentligt",
"{actor} removed public link for {file}" : "{actor} tog bort den offentliga länken för {file}",
+ "Public link of {actor} for {file} expired" : "Offentlig länk av {actor} för {file} har utgått",
"{user} accepted the remote share" : "{user} accepterade extern delning",
"{user} declined the remote share" : "{user} nekade extern delning",
"You received a new remote share {file} from {user}" : "Du har fått en ny extern delning {file} från {user}",
diff --git a/apps/files_sharing/tests/TestCase.php b/apps/files_sharing/tests/TestCase.php
index a9163a086bf..3b1ccb71a94 100644
--- a/apps/files_sharing/tests/TestCase.php
+++ b/apps/files_sharing/tests/TestCase.php
@@ -75,7 +75,7 @@ abstract class TestCase extends \Test\TestCase {
// reset backend
\OC_User::clearBackends();
- \OC_Group::clearBackends();
+ \OC::$server->getGroupManager()->clearBackends();
// clear share hooks
\OC_Hook::clear('OCP\\Share');
@@ -103,7 +103,7 @@ abstract class TestCase extends \Test\TestCase {
$groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER3, 'group2');
$groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER4, 'group3');
$groupBackend->addToGroup(self::TEST_FILES_SHARING_API_USER2, self::TEST_FILES_SHARING_API_GROUP1);
- \OC_Group::useBackend($groupBackend);
+ \OC::$server->getGroupManager()->addBackend($groupBackend);
}
protected function setUp() {
@@ -136,7 +136,10 @@ abstract class TestCase extends \Test\TestCase {
if ($user !== null) { $user->delete(); }
// delete group
- \OC_Group::deleteGroup(self::TEST_FILES_SHARING_API_GROUP1);
+ $group = \OC::$server->getGroupManager()->get(self::TEST_FILES_SHARING_API_GROUP1);
+ if ($group) {
+ $group->delete();
+ }
\OC_Util::tearDownFS();
\OC_User::setUserId('');
@@ -145,8 +148,8 @@ abstract class TestCase extends \Test\TestCase {
// reset backend
\OC_User::clearBackends();
\OC_User::useBackend('database');
- \OC_Group::clearBackends();
- \OC_Group::useBackend(new \OC\Group\Database());
+ \OC::$server->getGroupManager()->clearBackends();
+ \OC::$server->getGroupManager()->addBackend(new \OC\Group\Database());
parent::tearDownAfterClass();
}
@@ -163,9 +166,15 @@ abstract class TestCase extends \Test\TestCase {
}
if ($create) {
- \OC::$server->getUserManager()->createUser($user, $password);
- \OC_Group::createGroup('group');
- \OC_Group::addToGroup($user, 'group');
+ $userManager = \OC::$server->getUserManager();
+ $groupManager = \OC::$server->getGroupManager();
+
+ $userObject = $userManager->createUser($user, $password);
+ $group = $groupManager->createGroup('group');
+
+ if ($group and $userObject) {
+ $group->addUser($userObject);
+ }
}
self::resetStorage();
diff --git a/apps/files_trashbin/appinfo/app.php b/apps/files_trashbin/appinfo/app.php
index ed53657d22a..d4e44b78850 100644
--- a/apps/files_trashbin/appinfo/app.php
+++ b/apps/files_trashbin/appinfo/app.php
@@ -25,17 +25,16 @@
*
*/
-$l = \OC::$server->getL10N('files_trashbin');
-
// register hooks
\OCA\Files_Trashbin\Trashbin::registerHooks();
-\OCA\Files\App::getNavigationManager()->add(
-array(
- "id" => 'trashbin',
- "appname" => 'files_trashbin',
- "script" => 'list.php',
- "order" => 50,
- "name" => $l->t('Deleted files')
-)
-);
+\OCA\Files\App::getNavigationManager()->add(function () {
+ $l = \OC::$server->getL10N('files_trashbin');
+ return [
+ 'id' => 'trashbin',
+ 'appname' => 'files_trashbin',
+ 'script' => 'list.php',
+ 'order' => 50,
+ 'name' => $l->t('Deleted files'),
+ ];
+});
diff --git a/apps/files_trashbin/lib/Storage.php b/apps/files_trashbin/lib/Storage.php
index b8f154ea051..e3fe648281c 100644
--- a/apps/files_trashbin/lib/Storage.php
+++ b/apps/files_trashbin/lib/Storage.php
@@ -28,6 +28,8 @@ namespace OCA\Files_Trashbin;
use OC\Files\Filesystem;
use OC\Files\Storage\Wrapper\Wrapper;
use OC\Files\View;
+use OCP\Encryption\Exceptions\GenericEncryptionException;
+use OCP\ILogger;
use OCP\IUserManager;
class Storage extends Wrapper {
@@ -55,15 +57,21 @@ class Storage extends Wrapper {
/** @var IUserManager */
private $userManager;
+ /** @var ILogger */
+ private $logger;
+
/**
* Storage constructor.
*
* @param array $parameters
* @param IUserManager|null $userManager
*/
- public function __construct($parameters, IUserManager $userManager = null) {
+ public function __construct($parameters,
+ IUserManager $userManager = null,
+ ILogger $logger = null) {
$this->mountPoint = $parameters['mountPoint'];
$this->userManager = $userManager;
+ $this->logger = $logger;
parent::__construct($parameters);
}
@@ -147,11 +155,20 @@ class Storage extends Wrapper {
* @return bool true if the operation succeeded, false otherwise
*/
public function unlink($path) {
- if (isset(self::$moveOutOfSharedFolder[$this->mountPoint . $path])) {
- $result = $this->doDelete($path, 'unlink', true);
- unset(self::$moveOutOfSharedFolder[$this->mountPoint . $path]);
- } else {
- $result = $this->doDelete($path, 'unlink');
+ try {
+ if (isset(self::$moveOutOfSharedFolder[$this->mountPoint . $path])) {
+ $result = $this->doDelete($path, 'unlink', true);
+ unset(self::$moveOutOfSharedFolder[$this->mountPoint . $path]);
+ } else {
+ $result = $this->doDelete($path, 'unlink');
+ }
+ } catch (GenericEncryptionException $e) {
+ // in case of a encryption exception we delete the file right away
+ $this->logger->info(
+ "Can't move file" . $path .
+ "to the trash bin, therefore it was deleted right away");
+
+ $result = $this->storage->unlink($path);
}
return $result;
@@ -251,7 +268,8 @@ class Storage extends Wrapper {
\OC\Files\Filesystem::addStorageWrapper('oc_trashbin', function ($mountPoint, $storage) {
return new \OCA\Files_Trashbin\Storage(
array('storage' => $storage, 'mountPoint' => $mountPoint),
- \OC::$server->getUserManager()
+ \OC::$server->getUserManager(),
+ \OC::$server->getLogger()
);
}, 1);
}
diff --git a/apps/files_trashbin/tests/StorageTest.php b/apps/files_trashbin/tests/StorageTest.php
index 2aebe6414f7..52d5f056148 100644
--- a/apps/files_trashbin/tests/StorageTest.php
+++ b/apps/files_trashbin/tests/StorageTest.php
@@ -31,6 +31,7 @@ namespace OCA\Files_Trashbin\Tests;
use OC\Files\Storage\Temporary;
use OC\Files\Filesystem;
+use OCP\ILogger;
/**
* Class Storage
@@ -528,9 +529,11 @@ class StorageTest extends \Test\TestCase {
->disableOriginalConstructor()->getMock();
$userManager->expects($this->any())
->method('userExists')->willReturn($userExists);
+ $logger = $this->getMockBuilder(ILogger::class)->getMock();
$storage = new \OCA\Files_Trashbin\Storage(
['mountPoint' => $mountPoint, 'storage' => $tmpStorage],
- $userManager
+ $userManager,
+ $logger
);
$this->assertSame($expected,
diff --git a/apps/files_versions/l10n/ro.js b/apps/files_versions/l10n/ro.js
index 45ccc69cf9f..7574103eb86 100644
--- a/apps/files_versions/l10n/ro.js
+++ b/apps/files_versions/l10n/ro.js
@@ -4,7 +4,9 @@ OC.L10N.register(
"Could not revert: %s" : "Nu s-a putut reveni: %s",
"Versions" : "Versiuni",
"Failed to revert {file} to revision {timestamp}." : "S-a eșuat restaurarea fișierului {file} la revizia {timestamp}.",
+ "_%n byte_::_%n bytes_" : ["%n byte","%n byți","%n byți"],
"Restore" : "Restaurare",
+ "No versions available" : "Nu există versiuni disponibile",
"More versions..." : "Mai multe versiuni...",
"No other versions available" : "Nu există alte versiuni disponibile"
},
diff --git a/apps/files_versions/l10n/ro.json b/apps/files_versions/l10n/ro.json
index d6117a65cb5..cbd970ad3b3 100644
--- a/apps/files_versions/l10n/ro.json
+++ b/apps/files_versions/l10n/ro.json
@@ -2,7 +2,9 @@
"Could not revert: %s" : "Nu s-a putut reveni: %s",
"Versions" : "Versiuni",
"Failed to revert {file} to revision {timestamp}." : "S-a eșuat restaurarea fișierului {file} la revizia {timestamp}.",
+ "_%n byte_::_%n bytes_" : ["%n byte","%n byți","%n byți"],
"Restore" : "Restaurare",
+ "No versions available" : "Nu există versiuni disponibile",
"More versions..." : "Mai multe versiuni...",
"No other versions available" : "Nu există alte versiuni disponibile"
},"pluralForm" :"nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));"
diff --git a/apps/sharebymail/l10n/it.js b/apps/sharebymail/l10n/it.js
new file mode 100644
index 00000000000..6711acbef00
--- /dev/null
+++ b/apps/sharebymail/l10n/it.js
@@ -0,0 +1,24 @@
+OC.L10N.register(
+ "sharebymail",
+ {
+ "Shared with %1$s" : "Condivisa con %1$s",
+ "Shared with {email}" : "Condivisa con {email}",
+ "Shared with %1$s by %2$s" : "Condivisa con %1$s da %2$s",
+ "Shared with {email} by {actor}" : "Condivisa con {email} da {actor}",
+ "You shared %1$s with %2$s by mail" : "Hai condiviso %1$s con %2$s tramite posta",
+ "You shared {file} with {email} by mail" : "Hai condiviso {file} con {user} tramite posta",
+ "%3$s shared %1$s with %2$s by mail" : "%3$s ha condiviso %1$s con %2$s tramite email",
+ "{actor} shared {file} with {email} by mail" : "{actor} ha condiviso {file} con {email} tramite email",
+ "Sharing %s failed, this item is already shared with %s" : "Condivisione %s non riuscita, questo elemento è già condiviso con %s",
+ "Failed to send share by E-mail" : "Invio non riuscito della condivisione tramite email",
+ "%s shared »%s« with you" : "%s ha condiviso »%s« con te",
+ "%s shared »%s« with you on behalf of %s" : "%s ha condiviso «%s» con te per conto di %s",
+ "Failed to create the E-mail" : "Creazione dell'email non riuscita",
+ "Could not find share" : "Non è stato possibile trovare la condivisione",
+ "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Ciao,\n\n%s ha condiviso «%s» con te per conto di %s.\n\n%s\n\n",
+ "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Ciao,\n\n%s ha condiviso «%s» con te.\n\n%s\n\n",
+ "Cheers!" : "Saluti!",
+ "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Ciao, <br><br>%s ha condiviso <a href=\"%s\">%s</a> con te per conto di %s.<br><br>",
+ "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Ciao, <br><br>%s ha condiviso <a href=\"%s\">%s</a> con te.<br><br>"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/it.json b/apps/sharebymail/l10n/it.json
new file mode 100644
index 00000000000..d08dc8f7f2c
--- /dev/null
+++ b/apps/sharebymail/l10n/it.json
@@ -0,0 +1,22 @@
+{ "translations": {
+ "Shared with %1$s" : "Condivisa con %1$s",
+ "Shared with {email}" : "Condivisa con {email}",
+ "Shared with %1$s by %2$s" : "Condivisa con %1$s da %2$s",
+ "Shared with {email} by {actor}" : "Condivisa con {email} da {actor}",
+ "You shared %1$s with %2$s by mail" : "Hai condiviso %1$s con %2$s tramite posta",
+ "You shared {file} with {email} by mail" : "Hai condiviso {file} con {user} tramite posta",
+ "%3$s shared %1$s with %2$s by mail" : "%3$s ha condiviso %1$s con %2$s tramite email",
+ "{actor} shared {file} with {email} by mail" : "{actor} ha condiviso {file} con {email} tramite email",
+ "Sharing %s failed, this item is already shared with %s" : "Condivisione %s non riuscita, questo elemento è già condiviso con %s",
+ "Failed to send share by E-mail" : "Invio non riuscito della condivisione tramite email",
+ "%s shared »%s« with you" : "%s ha condiviso »%s« con te",
+ "%s shared »%s« with you on behalf of %s" : "%s ha condiviso «%s» con te per conto di %s",
+ "Failed to create the E-mail" : "Creazione dell'email non riuscita",
+ "Could not find share" : "Non è stato possibile trovare la condivisione",
+ "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Ciao,\n\n%s ha condiviso «%s» con te per conto di %s.\n\n%s\n\n",
+ "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Ciao,\n\n%s ha condiviso «%s» con te.\n\n%s\n\n",
+ "Cheers!" : "Saluti!",
+ "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Ciao, <br><br>%s ha condiviso <a href=\"%s\">%s</a> con te per conto di %s.<br><br>",
+ "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Ciao, <br><br>%s ha condiviso <a href=\"%s\">%s</a> con te.<br><br>"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/sv.js b/apps/sharebymail/l10n/sv.js
new file mode 100644
index 00000000000..fb0a4fc44db
--- /dev/null
+++ b/apps/sharebymail/l10n/sv.js
@@ -0,0 +1,21 @@
+OC.L10N.register(
+ "sharebymail",
+ {
+ "Shared with %1$s" : "Delad med %1$s",
+ "Shared with {email}" : "Delad med {email}",
+ "Shared with %1$s by %2$s" : "Delad med %1$s av %2$s",
+ "Shared with {email} by {actor}" : "Delad med {email} av {actor}",
+ "You shared %1$s with %2$s by mail" : "Du delade %1$s med %2$s via e-post",
+ "You shared {file} with {email} by mail" : "Du delade {file} med {email} via e-post",
+ "%3$s shared %1$s with %2$s by mail" : "%3$s delade %1$s med %2$s via e-post",
+ "{actor} shared {file} with {email} by mail" : "{actor} delade {file} med {email} via e-post",
+ "Sharing %s failed, this item is already shared with %s" : "Delning av %s misslyckades, det är redan delat med %s",
+ "Failed to send share by E-mail" : "Misslyckades att dela via e-post",
+ "%s shared »%s« with you" : "%s delade »%s« med dig",
+ "%s shared »%s« with you on behalf of %s" : "%s delade »%s« med dig på begäran av %s",
+ "Failed to create the E-mail" : "Misslyckades att skapa e-post",
+ "Could not find share" : "Kunde inte hitta delning",
+ "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hej,\n\n%s delade »%s« med dig.\n\n%s\n",
+ "Cheers!" : "Skål!"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/sharebymail/l10n/sv.json b/apps/sharebymail/l10n/sv.json
new file mode 100644
index 00000000000..028271c60f2
--- /dev/null
+++ b/apps/sharebymail/l10n/sv.json
@@ -0,0 +1,19 @@
+{ "translations": {
+ "Shared with %1$s" : "Delad med %1$s",
+ "Shared with {email}" : "Delad med {email}",
+ "Shared with %1$s by %2$s" : "Delad med %1$s av %2$s",
+ "Shared with {email} by {actor}" : "Delad med {email} av {actor}",
+ "You shared %1$s with %2$s by mail" : "Du delade %1$s med %2$s via e-post",
+ "You shared {file} with {email} by mail" : "Du delade {file} med {email} via e-post",
+ "%3$s shared %1$s with %2$s by mail" : "%3$s delade %1$s med %2$s via e-post",
+ "{actor} shared {file} with {email} by mail" : "{actor} delade {file} med {email} via e-post",
+ "Sharing %s failed, this item is already shared with %s" : "Delning av %s misslyckades, det är redan delat med %s",
+ "Failed to send share by E-mail" : "Misslyckades att dela via e-post",
+ "%s shared »%s« with you" : "%s delade »%s« med dig",
+ "%s shared »%s« with you on behalf of %s" : "%s delade »%s« med dig på begäran av %s",
+ "Failed to create the E-mail" : "Misslyckades att skapa e-post",
+ "Could not find share" : "Kunde inte hitta delning",
+ "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hej,\n\n%s delade »%s« med dig.\n\n%s\n",
+ "Cheers!" : "Skål!"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/sharebymail/l10n/tr.js b/apps/sharebymail/l10n/tr.js
new file mode 100644
index 00000000000..3a9bf810f89
--- /dev/null
+++ b/apps/sharebymail/l10n/tr.js
@@ -0,0 +1,24 @@
+OC.L10N.register(
+ "sharebymail",
+ {
+ "Shared with %1$s" : "%1$s ile paylaşıldı",
+ "Shared with {email}" : "{email} ile paylaşıldı",
+ "Shared with %1$s by %2$s" : "%1$s ile %2$s tarafından paylaşıldı",
+ "Shared with {email} by {actor}" : "{email} ile {actor} tarafından paylaşıldı",
+ "You shared %1$s with %2$s by mail" : "%1$s dosyasını %2$s ile e-posta üzerinden paylaştınız",
+ "You shared {file} with {email} by mail" : "{file} dosyasını {email} ile e-posta üzerinden paylaştınız",
+ "%3$s shared %1$s with %2$s by mail" : "%3$s, %1$s dosyasını %2$s ile e-posta üzerinden paylaştı",
+ "{actor} shared {file} with {email} by mail" : "{actor}, {file} dosyasını {email} ile e-posta üzerinden paylaştı",
+ "Sharing %s failed, this item is already shared with %s" : "%s paylaşılamadı, bu öge zaten %s ile paylaşılmış",
+ "Failed to send share by E-mail" : "Paylaşım e-postası gönderilemedi",
+ "%s shared »%s« with you" : "%s sizinle »%s« ögesini paylaştı",
+ "%s shared »%s« with you on behalf of %s" : "%s sizinle »%s« ögesini %s adına paylaştı",
+ "Failed to create the E-mail" : "E-posta oluşturulamadı",
+ "Could not find share" : "Paylaşım bulunamadı",
+ "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Merhaba,\n\n%s sizinle »%s« ögesini %s adına paylaştı.\n\n%s\n\n",
+ "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Merhaba,\n\n%s sizinle »%s« ögesini paylaştı.\n\n%s\n\n",
+ "Cheers!" : "Hoşça kalın!",
+ "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Merhaba,<br><br>%s sizinle <a href=\"%s\">%s</a> ögesini %s adına paylaştı.<br><br>",
+ "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Merhaba,<br><br>%s sizinle <a href=\"%s\">%s</a> ögesini paylaştı.<br><br>"
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/apps/sharebymail/l10n/tr.json b/apps/sharebymail/l10n/tr.json
new file mode 100644
index 00000000000..b6b07c20491
--- /dev/null
+++ b/apps/sharebymail/l10n/tr.json
@@ -0,0 +1,22 @@
+{ "translations": {
+ "Shared with %1$s" : "%1$s ile paylaşıldı",
+ "Shared with {email}" : "{email} ile paylaşıldı",
+ "Shared with %1$s by %2$s" : "%1$s ile %2$s tarafından paylaşıldı",
+ "Shared with {email} by {actor}" : "{email} ile {actor} tarafından paylaşıldı",
+ "You shared %1$s with %2$s by mail" : "%1$s dosyasını %2$s ile e-posta üzerinden paylaştınız",
+ "You shared {file} with {email} by mail" : "{file} dosyasını {email} ile e-posta üzerinden paylaştınız",
+ "%3$s shared %1$s with %2$s by mail" : "%3$s, %1$s dosyasını %2$s ile e-posta üzerinden paylaştı",
+ "{actor} shared {file} with {email} by mail" : "{actor}, {file} dosyasını {email} ile e-posta üzerinden paylaştı",
+ "Sharing %s failed, this item is already shared with %s" : "%s paylaşılamadı, bu öge zaten %s ile paylaşılmış",
+ "Failed to send share by E-mail" : "Paylaşım e-postası gönderilemedi",
+ "%s shared »%s« with you" : "%s sizinle »%s« ögesini paylaştı",
+ "%s shared »%s« with you on behalf of %s" : "%s sizinle »%s« ögesini %s adına paylaştı",
+ "Failed to create the E-mail" : "E-posta oluşturulamadı",
+ "Could not find share" : "Paylaşım bulunamadı",
+ "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Merhaba,\n\n%s sizinle »%s« ögesini %s adına paylaştı.\n\n%s\n\n",
+ "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Merhaba,\n\n%s sizinle »%s« ögesini paylaştı.\n\n%s\n\n",
+ "Cheers!" : "Hoşça kalın!",
+ "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Merhaba,<br><br>%s sizinle <a href=\"%s\">%s</a> ögesini %s adına paylaştı.<br><br>",
+ "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Merhaba,<br><br>%s sizinle <a href=\"%s\">%s</a> ögesini paylaştı.<br><br>"
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+} \ No newline at end of file
diff --git a/apps/systemtags/appinfo/app.php b/apps/systemtags/appinfo/app.php
index 2c095753ce8..bb2930e9197 100644
--- a/apps/systemtags/appinfo/app.php
+++ b/apps/systemtags/appinfo/app.php
@@ -65,14 +65,14 @@ $mapperListener = function(MapperEvent $event) {
$eventDispatcher->addListener(MapperEvent::EVENT_ASSIGN, $mapperListener);
$eventDispatcher->addListener(MapperEvent::EVENT_UNASSIGN, $mapperListener);
-$l = \OC::$server->getL10N('systemtags');
-
-\OCA\Files\App::getNavigationManager()->add(
- array(
+\OCA\Files\App::getNavigationManager()->add(function () {
+ $l = \OC::$server->getL10N('systemtags');
+ return [
'id' => 'systemtagsfilter',
'appname' => 'systemtags',
'script' => 'list.php',
'order' => 25,
- 'name' => $l->t('Tags')
- )
-);
+ 'name' => $l->t('Tags'),
+ ];
+});
+
diff --git a/apps/systemtags/l10n/zh_CN.js b/apps/systemtags/l10n/zh_CN.js
index 022511042b6..08e33655812 100644
--- a/apps/systemtags/l10n/zh_CN.js
+++ b/apps/systemtags/l10n/zh_CN.js
@@ -29,6 +29,8 @@ OC.L10N.register(
"You updated system tag %2$s to %1$s" : "您已将系统标签 %2$s 更新为 %1$s",
"You updated system tag {oldsystemtag} to {newsystemtag}" : "您已将系统标签 {oldsystemtag} 更新为 {newsystemtag}",
"%1$s updated system tag %3$s to %2$s" : "%1$s 更新了系统标签 %3$s 为 %2$s",
+ "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor}更新系统标签{oldsystemtag}到{newsystemtag}",
+ "You added system tag %2$s to %1$s" : "你填加系统标签%2$s到%1$s",
"%s (restricted)" : "%s (受限)",
"%s (invisible)" : "%s (不可见)",
"<strong>System tags</strong> for a file have been modified" : "已更改的文件的<strong>系统标签</strong> ",
diff --git a/apps/systemtags/l10n/zh_CN.json b/apps/systemtags/l10n/zh_CN.json
index 5b7209f3dc8..55bb4f9b2cf 100644
--- a/apps/systemtags/l10n/zh_CN.json
+++ b/apps/systemtags/l10n/zh_CN.json
@@ -27,6 +27,8 @@
"You updated system tag %2$s to %1$s" : "您已将系统标签 %2$s 更新为 %1$s",
"You updated system tag {oldsystemtag} to {newsystemtag}" : "您已将系统标签 {oldsystemtag} 更新为 {newsystemtag}",
"%1$s updated system tag %3$s to %2$s" : "%1$s 更新了系统标签 %3$s 为 %2$s",
+ "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor}更新系统标签{oldsystemtag}到{newsystemtag}",
+ "You added system tag %2$s to %1$s" : "你填加系统标签%2$s到%1$s",
"%s (restricted)" : "%s (受限)",
"%s (invisible)" : "%s (不可见)",
"<strong>System tags</strong> for a file have been modified" : "已更改的文件的<strong>系统标签</strong> ",
diff --git a/apps/theming/l10n/hu.js b/apps/theming/l10n/hu.js
new file mode 100644
index 00000000000..a0549dfd06b
--- /dev/null
+++ b/apps/theming/l10n/hu.js
@@ -0,0 +1,27 @@
+OC.L10N.register(
+ "theming",
+ {
+ "Admin" : "Adminisztrátor",
+ "a safe home for all your data" : "biztonságos hely az adataid számára",
+ "The given name is too long" : "A bevitt név túl hosszú",
+ "The given web address is too long" : "A bevitt webcím túl hosszú",
+ "The given slogan is too long" : "A bevitt szlogen túl hosszú",
+ "The given color is invalid" : "A bevitt szín érvénytelen",
+ "Saved" : "Mentve!",
+ "No file uploaded" : "Nincs fájl feltöltve",
+ "Unsupported image type" : "Nem támogatott képtípus",
+ "You are already using a custom theme" : "Már egyedi témát használ",
+ "Theming" : "Témázás",
+ "Name" : "Név",
+ "reset to default" : "Visszaállítás alapértelmezettre",
+ "Web address" : "Webcím",
+ "Web address https://…" : "Webcím https://...",
+ "Slogan" : "Szlogen",
+ "Color" : "Szín",
+ "Logo" : "Logó",
+ "Upload new logo" : "Új logó feltöltése",
+ "Login image" : "Bejelentkező kép",
+ "Upload new login background" : "Új bejelentkező kép feltöltése",
+ "Log in image" : "Bejelentkező kép"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/hu.json b/apps/theming/l10n/hu.json
new file mode 100644
index 00000000000..6023637c81d
--- /dev/null
+++ b/apps/theming/l10n/hu.json
@@ -0,0 +1,25 @@
+{ "translations": {
+ "Admin" : "Adminisztrátor",
+ "a safe home for all your data" : "biztonságos hely az adataid számára",
+ "The given name is too long" : "A bevitt név túl hosszú",
+ "The given web address is too long" : "A bevitt webcím túl hosszú",
+ "The given slogan is too long" : "A bevitt szlogen túl hosszú",
+ "The given color is invalid" : "A bevitt szín érvénytelen",
+ "Saved" : "Mentve!",
+ "No file uploaded" : "Nincs fájl feltöltve",
+ "Unsupported image type" : "Nem támogatott képtípus",
+ "You are already using a custom theme" : "Már egyedi témát használ",
+ "Theming" : "Témázás",
+ "Name" : "Név",
+ "reset to default" : "Visszaállítás alapértelmezettre",
+ "Web address" : "Webcím",
+ "Web address https://…" : "Webcím https://...",
+ "Slogan" : "Szlogen",
+ "Color" : "Szín",
+ "Logo" : "Logó",
+ "Upload new logo" : "Új logó feltöltése",
+ "Login image" : "Bejelentkező kép",
+ "Upload new login background" : "Új bejelentkező kép feltöltése",
+ "Log in image" : "Bejelentkező kép"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/theming/l10n/it.js b/apps/theming/l10n/it.js
index 81a3889fcc6..629dc4e71dc 100644
--- a/apps/theming/l10n/it.js
+++ b/apps/theming/l10n/it.js
@@ -13,15 +13,15 @@ OC.L10N.register(
"You are already using a custom theme" : "Stai già usando un tema personalizzato",
"Theming" : "Tema",
"Name" : "Nome",
- "reset to default" : "resetta a predefinito",
+ "reset to default" : "ripristina valori predefiniti",
"Web address" : "Indirizzo web",
- "Web address https://…" : "Indirizzo Web https://…",
+ "Web address https://…" : "Indirizzo web https://…",
"Slogan" : "Slogan",
"Color" : "Colore",
"Logo" : "Logo",
"Upload new logo" : "Carica nuovo logo",
- "Login image" : "Immagine del login",
- "Upload new login background" : "Carica nuovo sfondo del login",
- "Log in image" : "Immagine del login"
+ "Login image" : "Immagine di accesso",
+ "Upload new login background" : "Carica nuovo sfondo di accesso",
+ "Log in image" : "Immagine di accesso"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/it.json b/apps/theming/l10n/it.json
index 3fc86d522a4..771d46f2189 100644
--- a/apps/theming/l10n/it.json
+++ b/apps/theming/l10n/it.json
@@ -11,15 +11,15 @@
"You are already using a custom theme" : "Stai già usando un tema personalizzato",
"Theming" : "Tema",
"Name" : "Nome",
- "reset to default" : "resetta a predefinito",
+ "reset to default" : "ripristina valori predefiniti",
"Web address" : "Indirizzo web",
- "Web address https://…" : "Indirizzo Web https://…",
+ "Web address https://…" : "Indirizzo web https://…",
"Slogan" : "Slogan",
"Color" : "Colore",
"Logo" : "Logo",
"Upload new logo" : "Carica nuovo logo",
- "Login image" : "Immagine del login",
- "Upload new login background" : "Carica nuovo sfondo del login",
- "Log in image" : "Immagine del login"
+ "Login image" : "Immagine di accesso",
+ "Upload new login background" : "Carica nuovo sfondo di accesso",
+ "Log in image" : "Immagine di accesso"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/theming/l10n/sv.js b/apps/theming/l10n/sv.js
new file mode 100644
index 00000000000..7b75d1d8511
--- /dev/null
+++ b/apps/theming/l10n/sv.js
@@ -0,0 +1,27 @@
+OC.L10N.register(
+ "theming",
+ {
+ "Admin" : "Admin",
+ "a safe home for all your data" : "En säker plats för alla dina filer och data",
+ "The given name is too long" : "Det angivna namnet är för långt",
+ "The given web address is too long" : "Den angivna adressen är för lång",
+ "The given slogan is too long" : "Den angivna slogan är för lång",
+ "The given color is invalid" : "Den angivna färgen är inte tillgänglig",
+ "Saved" : "Sparat",
+ "No file uploaded" : "Ingen fil uppladdad",
+ "Unsupported image type" : "Filtypen är ej giltig",
+ "You are already using a custom theme" : "Du använder redan ett annat tema",
+ "Theming" : "Teman",
+ "Name" : "Namn",
+ "reset to default" : "Återställ till standard",
+ "Web address" : "Webbadress",
+ "Web address https://…" : "Webbadress https://...",
+ "Slogan" : "Slogan",
+ "Color" : "Färg",
+ "Logo" : "Logotyp",
+ "Upload new logo" : "Ladda upp ny logotyp",
+ "Login image" : "Inloggningsbild",
+ "Upload new login background" : "Ladda upp ny bakgrundsbild",
+ "Log in image" : "Inloggningsbild"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/theming/l10n/sv.json b/apps/theming/l10n/sv.json
new file mode 100644
index 00000000000..3de28c76008
--- /dev/null
+++ b/apps/theming/l10n/sv.json
@@ -0,0 +1,25 @@
+{ "translations": {
+ "Admin" : "Admin",
+ "a safe home for all your data" : "En säker plats för alla dina filer och data",
+ "The given name is too long" : "Det angivna namnet är för långt",
+ "The given web address is too long" : "Den angivna adressen är för lång",
+ "The given slogan is too long" : "Den angivna slogan är för lång",
+ "The given color is invalid" : "Den angivna färgen är inte tillgänglig",
+ "Saved" : "Sparat",
+ "No file uploaded" : "Ingen fil uppladdad",
+ "Unsupported image type" : "Filtypen är ej giltig",
+ "You are already using a custom theme" : "Du använder redan ett annat tema",
+ "Theming" : "Teman",
+ "Name" : "Namn",
+ "reset to default" : "Återställ till standard",
+ "Web address" : "Webbadress",
+ "Web address https://…" : "Webbadress https://...",
+ "Slogan" : "Slogan",
+ "Color" : "Färg",
+ "Logo" : "Logotyp",
+ "Upload new logo" : "Ladda upp ny logotyp",
+ "Login image" : "Inloggningsbild",
+ "Upload new login background" : "Ladda upp ny bakgrundsbild",
+ "Log in image" : "Inloggningsbild"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/twofactor_backupcodes/l10n/tr.js b/apps/twofactor_backupcodes/l10n/tr.js
index a5c93acebfd..ff68c827c78 100644
--- a/apps/twofactor_backupcodes/l10n/tr.js
+++ b/apps/twofactor_backupcodes/l10n/tr.js
@@ -10,9 +10,12 @@ OC.L10N.register(
"If you regenerate backup codes, you automatically invalidate old codes." : "Yedek kodlarını yeniden oluşturursanız, eski kodlar geçersiz olur.",
"An error occurred while generating your backup codes" : "Yedek kodlar oluşturulurken bir sorun çıktı",
"Nextcloud backup codes" : "Nextcloud yedek kodları",
- "Two-factor authentication" : "Iki faktörlü kimlik doğrulama",
- "Backup code" : "Yedek kodu",
- "Use backup code" : "Yedek kodunu kullan",
+ "Two-factor authentication" : "Iki aşamalı kimlik doğrulama",
+ "You successfully logged in using two-factor authentication (%1$s)" : "İki aşamalı kimlik doğrulama ile oturum açtınız (%1$s)",
+ "A login attempt using two-factor authentication failed (%1$s)" : "İki aşamalı kimlik doğrulama ile oturum açma girişimi reddedildi (%1$s)",
+ "You created two-factor backup codes for your account" : "İki aşamalı kimlik doğrulama için yedek kodlarınızı oluşturdunuz",
+ "Backup code" : "Yedek kod",
+ "Use backup code" : "Yedek kodu kullan",
"Second-factor backup codes" : "İki aşamalı yedek kodları"
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/twofactor_backupcodes/l10n/tr.json b/apps/twofactor_backupcodes/l10n/tr.json
index 44c86cd60cc..fb392c867ff 100644
--- a/apps/twofactor_backupcodes/l10n/tr.json
+++ b/apps/twofactor_backupcodes/l10n/tr.json
@@ -8,9 +8,12 @@
"If you regenerate backup codes, you automatically invalidate old codes." : "Yedek kodlarını yeniden oluşturursanız, eski kodlar geçersiz olur.",
"An error occurred while generating your backup codes" : "Yedek kodlar oluşturulurken bir sorun çıktı",
"Nextcloud backup codes" : "Nextcloud yedek kodları",
- "Two-factor authentication" : "Iki faktörlü kimlik doğrulama",
- "Backup code" : "Yedek kodu",
- "Use backup code" : "Yedek kodunu kullan",
+ "Two-factor authentication" : "Iki aşamalı kimlik doğrulama",
+ "You successfully logged in using two-factor authentication (%1$s)" : "İki aşamalı kimlik doğrulama ile oturum açtınız (%1$s)",
+ "A login attempt using two-factor authentication failed (%1$s)" : "İki aşamalı kimlik doğrulama ile oturum açma girişimi reddedildi (%1$s)",
+ "You created two-factor backup codes for your account" : "İki aşamalı kimlik doğrulama için yedek kodlarınızı oluşturdunuz",
+ "Backup code" : "Yedek kod",
+ "Use backup code" : "Yedek kodu kullan",
"Second-factor backup codes" : "İki aşamalı yedek kodları"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/updatenotification/l10n/tr.js b/apps/updatenotification/l10n/tr.js
index b5160c7b6b3..21e5fde7504 100644
--- a/apps/updatenotification/l10n/tr.js
+++ b/apps/updatenotification/l10n/tr.js
@@ -18,6 +18,7 @@ OC.L10N.register(
"Notify members of the following groups about available updates:" : "Yayınlanan güncellemeler şu grupların üyelerine bildirilsin:",
"Only notification for app updates are available." : "Yalnız uygulama güncellemeleri kullanılabilir.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Seçilmiş güncelleme kanalı kullanımdan kalkmış sunucu bildirimleri için kullanılıyor.",
- "The selected update channel does not support updates of the server." : "Seçilmiş güncelleme kanalı sunucunun güncellemelerini desteklemiyor."
+ "The selected update channel does not support updates of the server." : "Seçilmiş güncelleme kanalı sunucunun güncellemelerini desteklemiyor.",
+ "You are running PHP %s. To allow you to upgrade to Nextcloud 11 and higher you need to run at least PHP 5.6. Once you upgraded your PHP version you will be able to receive update notifications for these newer versions." : "PHP %s sürümünü kullanıyorsanız. Nextcloud 11 ve üzerindeki sürümleri kullanabilmek için PHP sürümünüz en az 5.6 olmalıdır. PHP sürümünüzü yükselttikten sonra yeni sürümler ile ilgili güncelleme bildirimlerini görebilirsiniz."
},
"nplurals=2; plural=(n > 1);");
diff --git a/apps/updatenotification/l10n/tr.json b/apps/updatenotification/l10n/tr.json
index 7eba40df793..d5536cf6da2 100644
--- a/apps/updatenotification/l10n/tr.json
+++ b/apps/updatenotification/l10n/tr.json
@@ -16,6 +16,7 @@
"Notify members of the following groups about available updates:" : "Yayınlanan güncellemeler şu grupların üyelerine bildirilsin:",
"Only notification for app updates are available." : "Yalnız uygulama güncellemeleri kullanılabilir.",
"The selected update channel makes dedicated notifications for the server obsolete." : "Seçilmiş güncelleme kanalı kullanımdan kalkmış sunucu bildirimleri için kullanılıyor.",
- "The selected update channel does not support updates of the server." : "Seçilmiş güncelleme kanalı sunucunun güncellemelerini desteklemiyor."
+ "The selected update channel does not support updates of the server." : "Seçilmiş güncelleme kanalı sunucunun güncellemelerini desteklemiyor.",
+ "You are running PHP %s. To allow you to upgrade to Nextcloud 11 and higher you need to run at least PHP 5.6. Once you upgraded your PHP version you will be able to receive update notifications for these newer versions." : "PHP %s sürümünü kullanıyorsanız. Nextcloud 11 ve üzerindeki sürümleri kullanabilmek için PHP sürümünüz en az 5.6 olmalıdır. PHP sürümünüzü yükselttikten sonra yeni sürümler ile ilgili güncelleme bildirimlerini görebilirsiniz."
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php
index 995b1226649..6f930ea39f0 100644
--- a/apps/user_ldap/appinfo/app.php
+++ b/apps/user_ldap/appinfo/app.php
@@ -58,7 +58,7 @@ if(count($configPrefixes) === 1) {
if(count($configPrefixes) > 0) {
// register user backend
OC_User::useBackend($userBackend);
- OC_Group::useBackend($groupBackend);
+ \OC::$server->getGroupManager()->addBackend($groupBackend);
}
\OCP\Util::connectHook(
diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php
index cc0446ae523..ff95d96ebdb 100644
--- a/apps/user_ldap/lib/Access.php
+++ b/apps/user_ldap/lib/Access.php
@@ -570,7 +570,7 @@ class Access extends LDAPUtility implements IUserTools {
$originalTTL = $this->connection->ldapCacheTTL;
$this->connection->setConfiguration(array('ldapCacheTTL' => 0));
if(($isUser && !\OCP\User::userExists($intName))
- || (!$isUser && !\OC_Group::groupExists($intName))) {
+ || (!$isUser && !\OC::$server->getGroupManager()->groupExists($intName))) {
if($mapper->map($fdn, $intName, $uuid)) {
$this->connection->setConfiguration(array('ldapCacheTTL' => $originalTTL));
return $intName;
@@ -737,7 +737,7 @@ class Access extends LDAPUtility implements IUserTools {
// Check to be really sure it is unique
// while loop is just a precaution. If a name is not generated within
// 20 attempts, something else is very wrong. Avoids infinite loop.
- if(!\OC_Group::groupExists($altName)) {
+ if(!\OC::$server->getGroupManager()->groupExists($altName)) {
return $altName;
}
$altName = $name . '_' . ($lastNo + $attempts);
diff --git a/apps/user_ldap/tests/User_LDAPTest.php b/apps/user_ldap/tests/User_LDAPTest.php
index 606eff4e7a7..f1a23f9a6c8 100644
--- a/apps/user_ldap/tests/User_LDAPTest.php
+++ b/apps/user_ldap/tests/User_LDAPTest.php
@@ -64,7 +64,7 @@ class User_LDAPTest extends TestCase {
parent::setUp();
\OC_User::clearBackends();
- \OC_Group::clearBackends();
+ \OC::$server->getGroupManager()->clearBackends();
}
/**
diff --git a/apps/workflowengine/l10n/tr.js b/apps/workflowengine/l10n/tr.js
new file mode 100644
index 00000000000..d07c5471fe7
--- /dev/null
+++ b/apps/workflowengine/l10n/tr.js
@@ -0,0 +1,71 @@
+OC.L10N.register(
+ "workflowengine",
+ {
+ "Successfully saved" : "Kaydedildi",
+ "Saving failed:" : "Kaydedilemedi:",
+ "File mime type" : "Dosya MIME türü",
+ "is" : "şu olan",
+ "is not" : "şu olmayan",
+ "matches" : "şuna uyan",
+ "does not match" : "şuna uymayan",
+ "Example: {placeholder}" : "Örnek: {placeholder}",
+ "File size (upload)" : "Dosya boyutu (yükleme)",
+ "less" : "şundan küçük",
+ "less or equals" : "şundan küçük ya da eşit",
+ "greater or equals" : "şundan büyük ya da eşit",
+ "greater" : "şundan büyük",
+ "File system tag" : "Dosya sistemi etiketi",
+ "is tagged with" : "şununla etiketlenmiş",
+ "is not tagged with" : "şununla etiketlenmemiş",
+ "Select tag…" : "Etiketi seçin...",
+ "Request remote address" : "Uzak adres isteği",
+ "matches IPv4" : "şu IPv4 adresine uyan",
+ "does not match IPv4" : "şu IPv4 adresine uymayan",
+ "matches IPv6" : "şu IPv6 adresine uyan",
+ "does not match IPv6" : "şu IPv6 adresine uymayan",
+ "Request time" : "İstek zamanı",
+ "between" : "şunların arasında olan",
+ "not between" : "şunların arasında olmayan",
+ "Start" : "Başlangıç",
+ "End" : "Bitiş",
+ "Select timezone…" : "Saat dilimini seçin...",
+ "Request URL" : "İstek Adresi",
+ "Predefined URLs" : "Hazır Adresler",
+ "Files WebDAV" : "Dosya WebDAV",
+ "Request user agent" : "Kullanıcı yazılımı istensin",
+ "Sync clients" : "İstemciler eşitlensin",
+ "Android client" : "Android istemcisi",
+ "iOS client" : "iOS istemcisi",
+ "Desktop client" : "Masaüstü istemcisi",
+ "User group membership" : "Kullanıcı grubu üyeliği",
+ "is member of" : "şunun üyesi olan",
+ "is not member of" : "şunun üyesi olmayan",
+ "The given operator is invalid" : "Belirtilen işlem geçersiz",
+ "The given regular expression is invalid" : "Belirtilen kurallı ifade geçersiz",
+ "The given file size is invalid" : "Belirtilen dosya boyutu geçersiz",
+ "The given tag id is invalid" : "Belirtilen etiket kodu geçersiz",
+ "The given IP range is invalid" : "Belirtilen IP adresi aralığı geçersiz",
+ "The given IP range is not valid for IPv4" : "Belirtilen IP adresi aralığı IPv4 için geçersiz",
+ "The given IP range is not valid for IPv6" : "Belirtilen IP adresi aralığı IPv6 için geçersiz",
+ "The given time span is invalid" : "Belirtilen zaman aralığı geçersiz",
+ "The given start time is invalid" : "Belirtilen başlangıç zamanı geçersiz",
+ "The given end time is invalid" : "Belirtilen bitiş zamanı geçersiz",
+ "The given group does not exist" : "Belirtilen grup bulunamadı",
+ "Check %s is invalid or does not exist" : "%s denetimi geçersiz ya da bulunamadı",
+ "Operation #%s does not exist" : "#%s işlemi bulunamadı",
+ "Operation %s does not exist" : "%s işlemi bulunamadı",
+ "Operation %s is invalid" : "%s işlemi geçersiz",
+ "Check %s does not exist" : "%s denetimi bulunamadı",
+ "Check %s is invalid" : "%s denetimi geçersiz",
+ "Check #%s does not exist" : "#%s denetimi bulunamadı",
+ "Workflow" : "İş akışı",
+ "Open documentation" : "Belgeleri aç",
+ "Add rule group" : "Kural grubu ekle",
+ "Short rule description" : "Kısa kural açıklaması",
+ "Add rule" : "Kural ekle",
+ "Reset" : "Sıfırla",
+ "Save" : "Kaydet",
+ "Saving…" : "Kaydediliyor...",
+ "Loading…" : "Yükleniyor..."
+},
+"nplurals=2; plural=(n > 1);");
diff --git a/apps/workflowengine/l10n/tr.json b/apps/workflowengine/l10n/tr.json
new file mode 100644
index 00000000000..8996dffcb95
--- /dev/null
+++ b/apps/workflowengine/l10n/tr.json
@@ -0,0 +1,69 @@
+{ "translations": {
+ "Successfully saved" : "Kaydedildi",
+ "Saving failed:" : "Kaydedilemedi:",
+ "File mime type" : "Dosya MIME türü",
+ "is" : "şu olan",
+ "is not" : "şu olmayan",
+ "matches" : "şuna uyan",
+ "does not match" : "şuna uymayan",
+ "Example: {placeholder}" : "Örnek: {placeholder}",
+ "File size (upload)" : "Dosya boyutu (yükleme)",
+ "less" : "şundan küçük",
+ "less or equals" : "şundan küçük ya da eşit",
+ "greater or equals" : "şundan büyük ya da eşit",
+ "greater" : "şundan büyük",
+ "File system tag" : "Dosya sistemi etiketi",
+ "is tagged with" : "şununla etiketlenmiş",
+ "is not tagged with" : "şununla etiketlenmemiş",
+ "Select tag…" : "Etiketi seçin...",
+ "Request remote address" : "Uzak adres isteği",
+ "matches IPv4" : "şu IPv4 adresine uyan",
+ "does not match IPv4" : "şu IPv4 adresine uymayan",
+ "matches IPv6" : "şu IPv6 adresine uyan",
+ "does not match IPv6" : "şu IPv6 adresine uymayan",
+ "Request time" : "İstek zamanı",
+ "between" : "şunların arasında olan",
+ "not between" : "şunların arasında olmayan",
+ "Start" : "Başlangıç",
+ "End" : "Bitiş",
+ "Select timezone…" : "Saat dilimini seçin...",
+ "Request URL" : "İstek Adresi",
+ "Predefined URLs" : "Hazır Adresler",
+ "Files WebDAV" : "Dosya WebDAV",
+ "Request user agent" : "Kullanıcı yazılımı istensin",
+ "Sync clients" : "İstemciler eşitlensin",
+ "Android client" : "Android istemcisi",
+ "iOS client" : "iOS istemcisi",
+ "Desktop client" : "Masaüstü istemcisi",
+ "User group membership" : "Kullanıcı grubu üyeliği",
+ "is member of" : "şunun üyesi olan",
+ "is not member of" : "şunun üyesi olmayan",
+ "The given operator is invalid" : "Belirtilen işlem geçersiz",
+ "The given regular expression is invalid" : "Belirtilen kurallı ifade geçersiz",
+ "The given file size is invalid" : "Belirtilen dosya boyutu geçersiz",
+ "The given tag id is invalid" : "Belirtilen etiket kodu geçersiz",
+ "The given IP range is invalid" : "Belirtilen IP adresi aralığı geçersiz",
+ "The given IP range is not valid for IPv4" : "Belirtilen IP adresi aralığı IPv4 için geçersiz",
+ "The given IP range is not valid for IPv6" : "Belirtilen IP adresi aralığı IPv6 için geçersiz",
+ "The given time span is invalid" : "Belirtilen zaman aralığı geçersiz",
+ "The given start time is invalid" : "Belirtilen başlangıç zamanı geçersiz",
+ "The given end time is invalid" : "Belirtilen bitiş zamanı geçersiz",
+ "The given group does not exist" : "Belirtilen grup bulunamadı",
+ "Check %s is invalid or does not exist" : "%s denetimi geçersiz ya da bulunamadı",
+ "Operation #%s does not exist" : "#%s işlemi bulunamadı",
+ "Operation %s does not exist" : "%s işlemi bulunamadı",
+ "Operation %s is invalid" : "%s işlemi geçersiz",
+ "Check %s does not exist" : "%s denetimi bulunamadı",
+ "Check %s is invalid" : "%s denetimi geçersiz",
+ "Check #%s does not exist" : "#%s denetimi bulunamadı",
+ "Workflow" : "İş akışı",
+ "Open documentation" : "Belgeleri aç",
+ "Add rule group" : "Kural grubu ekle",
+ "Short rule description" : "Kısa kural açıklaması",
+ "Add rule" : "Kural ekle",
+ "Reset" : "Sıfırla",
+ "Save" : "Kaydet",
+ "Saving…" : "Kaydediliyor...",
+ "Loading…" : "Yükleniyor..."
+},"pluralForm" :"nplurals=2; plural=(n > 1);"
+} \ No newline at end of file
diff --git a/build/integration/features/bootstrap/TagsContext.php b/build/integration/features/bootstrap/TagsContext.php
index 3a48cce8aea..24ee8863e29 100644
--- a/build/integration/features/bootstrap/TagsContext.php
+++ b/build/integration/features/bootstrap/TagsContext.php
@@ -511,7 +511,7 @@ class TagsContext implements \Behat\Behat\Context\Context {
)
));
$response = file_get_contents($url, false, $context);
- preg_match_all('/\<oc:fileid\>(.*)\<\/oc:fileid\>/', $response, $matches);
+ preg_match_all('/\<oc:fileid\>(.*?)\<\/oc:fileid\>/', $response, $matches);
return (int)$matches[1][0];
}
@@ -576,7 +576,7 @@ class TagsContext implements \Behat\Behat\Context\Context {
]
);
$response = $this->client->send($request)->getBody()->getContents();
- preg_match_all('/\<oc:display-name\>(.*)\<\/oc:display-name\>/', $response, $realTags);
+ preg_match_all('/\<oc:display-name\>(.*?)\<\/oc:display-name\>/', $response, $realTags);
foreach($expectedTags as $key => $row) {
foreach($realTags as $tag) {
@@ -631,7 +631,7 @@ class TagsContext implements \Behat\Behat\Context\Context {
} catch (\GuzzleHttp\Exception\ClientException $e) {
$this->response = $e->getResponse();
}
- preg_match_all('/\<oc:display-name\>(.*)\<\/oc:display-name\>/', $this->response, $realTags);
+ preg_match_all('/\<oc:display-name\>(.*?)\<\/oc:display-name\>/', $this->response, $realTags);
$realTags = array_filter($realTags);
$expectedTags = array_filter($expectedTags);
diff --git a/core/css/fixes.css b/core/css/fixes.scss
index 3cb89c6599f..3cb89c6599f 100644
--- a/core/css/fixes.css
+++ b/core/css/fixes.scss
diff --git a/core/css/fonts.css b/core/css/fonts.scss
index f72aa2930cf..f72aa2930cf 100644
--- a/core/css/fonts.css
+++ b/core/css/fonts.scss
diff --git a/core/css/global.css b/core/css/global.scss
index 9511d4324fa..9511d4324fa 100644
--- a/core/css/global.css
+++ b/core/css/global.scss
diff --git a/core/css/guest.css b/core/css/guest.css
index c003c10cd7e..e6e194f6417 100644
--- a/core/css/guest.css
+++ b/core/css/guest.css
@@ -624,3 +624,16 @@ footer,
.push {
height: 70px;
}
+
+.hidden {
+ display: none;
+}
+
+.hidden-visually {
+ position: absolute;
+ left:-10000px;
+ top: auto;
+ width: 1px;
+ height: 1px;
+ overflow: hidden;
+}
diff --git a/core/css/mobile.css b/core/css/mobile.scss
index b0f8421345c..b0f8421345c 100644
--- a/core/css/mobile.css
+++ b/core/css/mobile.scss
diff --git a/core/css/server.scss b/core/css/server.scss
new file mode 100644
index 00000000000..516220f2ad5
--- /dev/null
+++ b/core/css/server.scss
@@ -0,0 +1,11 @@
+@import 'styles.scss';
+@import 'inputs.scss';
+@import 'header.scss';
+@import 'icons.scss';
+@import 'fonts.scss';
+@import 'apps.scss';
+@import 'global.scss';
+@import 'fixes.scss';
+@import 'multiselect.scss';
+@import 'mobile.scss';
+@import 'tooltip.scss';
diff --git a/core/js/public/appconfig.js b/core/js/public/appconfig.js
index d84ddaab404..bba39c8b805 100644
--- a/core/js/public/appconfig.js
+++ b/core/js/public/appconfig.js
@@ -38,6 +38,7 @@ OCP.AppConfig = {
return;
}
+ options = options || {};
$.ajax({
type: method.toUpperCase(),
url: OC.linkToOCS('apps/provisioning_api/api/v1', 2) + 'config/apps' + endpoint,
diff --git a/core/l10n/bg.js b/core/l10n/bg.js
index 090c9fee4b9..8f065cfd7e3 100644
--- a/core/l10n/bg.js
+++ b/core/l10n/bg.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Има проблем с проверката за цялостта на кода. Повече информация…</a>",
"Settings" : "Настройки",
"Connection to server lost" : "Връзката със сървъра е загубена",
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Проблем при зареждане на страницата, презареждане след %n секунда","Проблем при зареждане на страницата, презареждане след %n секунди"],
"Saving..." : "Запазване...",
"Dismiss" : "Отхвърляне",
"This action requires you to confirm your password" : "Това действие изисква да потвърдите паролата си",
diff --git a/core/l10n/bg.json b/core/l10n/bg.json
index 8489c60e266..009d2e0f02b 100644
--- a/core/l10n/bg.json
+++ b/core/l10n/bg.json
@@ -46,6 +46,7 @@
"<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Има проблем с проверката за цялостта на кода. Повече информация…</a>",
"Settings" : "Настройки",
"Connection to server lost" : "Връзката със сървъра е загубена",
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Проблем при зареждане на страницата, презареждане след %n секунда","Проблем при зареждане на страницата, презареждане след %n секунди"],
"Saving..." : "Запазване...",
"Dismiss" : "Отхвърляне",
"This action requires you to confirm your password" : "Това действие изисква да потвърдите паролата си",
diff --git a/core/l10n/ca.js b/core/l10n/ca.js
index d907297a45d..52039bba6f3 100644
--- a/core/l10n/ca.js
+++ b/core/l10n/ca.js
@@ -27,15 +27,22 @@ OC.L10N.register(
"Turned on maintenance mode" : "Activat el mode de manteniment",
"Turned off maintenance mode" : "Desactivat el mode de manteniment",
"Maintenance mode is kept active" : "El mode de manteniment es manté activat",
+ "Updating database schema" : "Actualitzant l'esquema de la base de dades",
"Updated database" : "Actualitzada la base de dades",
"Checked database schema update" : "S'ha comprobat l'actualització de l'esquema de la base de dades",
"Checked database schema update for apps" : "S'ha comprobat l'actualització de l'esquema de la base de dades per les apps",
"Updated \"%s\" to %s" : "Actualitzat \"%s\" a %s",
+ "Reset log level" : "Reinicia el nivell de registre",
+ "Starting code integrity check" : "Inicia el test d'integrigtat del codi",
+ "%s (3rdparty)" : "%s (de tercers)",
+ "%s (incompatible)" : "%s (incompatible)",
"Following apps have been disabled: %s" : "Les aplicacions següents s'han deshabilitat: %s",
"Already up to date" : "Ja actualitzat",
"Settings" : "Configuració",
+ "Connection to server lost" : "S'ha perdut la connexió amb el servidor",
"Saving..." : "Desant...",
"Dismiss" : "Rebutja",
+ "This action requires you to confirm your password" : "Aquesta acció requereix que confirmis la teva contrasenya",
"Authentication required" : "Es requereix autenticació",
"Password" : "Contrasenya",
"Cancel" : "Cancel·la",
@@ -93,7 +100,9 @@ OC.L10N.register(
"Share link" : "Enllaç de compartició",
"Link" : "Enllaç",
"Password protect" : "Protegir amb contrasenya",
+ "Allow upload and editing" : "Permet afegir i editar",
"Allow editing" : "Permetre edició",
+ "File drop (upload only)" : "Arrossega fitxers (només càrrega)",
"Email link to person" : "Enllaç per correu electrónic amb la persona",
"Send" : "Envia",
"Shared with you and the group {group} by {owner}" : "Compartit amb vos i amb el grup {group} per {owner}",
@@ -102,14 +111,20 @@ OC.L10N.register(
"remote" : "remot",
"email" : "email",
"Unshare" : "Deixa de compartir",
+ "can reshare" : "pot recompartir",
"can edit" : "pot editar",
"can create" : "pot crear",
"can change" : "pot canviar",
"can delete" : "Pot esborrar",
"access control" : "control d'accés",
+ "Could not unshare" : "No pot descompartir",
"No users found for {search}" : "No s'han trobat usuaris per {search}",
"An error occurred. Please try again" : "S'ha produït un error. Si us plau, torni a intentar-ho.",
+ "{sharee} (group)" : "{sharee} (grup)",
+ "{sharee} (remote)" : "{sharee} (remot)",
"Share" : "Comparteix",
+ "Share with users..." : "Comparteix amb usuaris...",
+ "Error removing share" : "Error al treure compartició",
"invisible" : "invisible",
"({scope})" : "({scope})",
"Delete" : "Esborra",
diff --git a/core/l10n/ca.json b/core/l10n/ca.json
index 49c17f21b63..3c7374e781a 100644
--- a/core/l10n/ca.json
+++ b/core/l10n/ca.json
@@ -25,15 +25,22 @@
"Turned on maintenance mode" : "Activat el mode de manteniment",
"Turned off maintenance mode" : "Desactivat el mode de manteniment",
"Maintenance mode is kept active" : "El mode de manteniment es manté activat",
+ "Updating database schema" : "Actualitzant l'esquema de la base de dades",
"Updated database" : "Actualitzada la base de dades",
"Checked database schema update" : "S'ha comprobat l'actualització de l'esquema de la base de dades",
"Checked database schema update for apps" : "S'ha comprobat l'actualització de l'esquema de la base de dades per les apps",
"Updated \"%s\" to %s" : "Actualitzat \"%s\" a %s",
+ "Reset log level" : "Reinicia el nivell de registre",
+ "Starting code integrity check" : "Inicia el test d'integrigtat del codi",
+ "%s (3rdparty)" : "%s (de tercers)",
+ "%s (incompatible)" : "%s (incompatible)",
"Following apps have been disabled: %s" : "Les aplicacions següents s'han deshabilitat: %s",
"Already up to date" : "Ja actualitzat",
"Settings" : "Configuració",
+ "Connection to server lost" : "S'ha perdut la connexió amb el servidor",
"Saving..." : "Desant...",
"Dismiss" : "Rebutja",
+ "This action requires you to confirm your password" : "Aquesta acció requereix que confirmis la teva contrasenya",
"Authentication required" : "Es requereix autenticació",
"Password" : "Contrasenya",
"Cancel" : "Cancel·la",
@@ -91,7 +98,9 @@
"Share link" : "Enllaç de compartició",
"Link" : "Enllaç",
"Password protect" : "Protegir amb contrasenya",
+ "Allow upload and editing" : "Permet afegir i editar",
"Allow editing" : "Permetre edició",
+ "File drop (upload only)" : "Arrossega fitxers (només càrrega)",
"Email link to person" : "Enllaç per correu electrónic amb la persona",
"Send" : "Envia",
"Shared with you and the group {group} by {owner}" : "Compartit amb vos i amb el grup {group} per {owner}",
@@ -100,14 +109,20 @@
"remote" : "remot",
"email" : "email",
"Unshare" : "Deixa de compartir",
+ "can reshare" : "pot recompartir",
"can edit" : "pot editar",
"can create" : "pot crear",
"can change" : "pot canviar",
"can delete" : "Pot esborrar",
"access control" : "control d'accés",
+ "Could not unshare" : "No pot descompartir",
"No users found for {search}" : "No s'han trobat usuaris per {search}",
"An error occurred. Please try again" : "S'ha produït un error. Si us plau, torni a intentar-ho.",
+ "{sharee} (group)" : "{sharee} (grup)",
+ "{sharee} (remote)" : "{sharee} (remot)",
"Share" : "Comparteix",
+ "Share with users..." : "Comparteix amb usuaris...",
+ "Error removing share" : "Error al treure compartició",
"invisible" : "invisible",
"({scope})" : "({scope})",
"Delete" : "Esborra",
diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js
index eb36269fd2a..1240bf36173 100644
--- a/core/l10n/de_DE.js
+++ b/core/l10n/de_DE.js
@@ -48,7 +48,7 @@ OC.L10N.register(
"<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Es gab Probleme bei der Code Integritätsprüfung. Mehr Informationen...</a>",
"Settings" : "Einstellungen",
"Connection to server lost" : "Verbindung zum Server verloren",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problem beim Laden der Seite, Seite wird in %n Sekunde nochmals geladen","Problem beim Laden der Seite, Seite wird in %n Sekunden nochmals geladen"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problem beim Laden der Seite, Seite wird in %n Sekunde nochmals geladen","Problem beim Laden der Seite, Seite wird in 5 Sekunden erneut geladen"],
"Saving..." : "Speichere...",
"Dismiss" : "Ausblenden",
"This action requires you to confirm your password" : "Dieser Vorgang benötigt eine Passwortbestätigung von Ihnen",
diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json
index 344acd2b0b1..20b507e78c0 100644
--- a/core/l10n/de_DE.json
+++ b/core/l10n/de_DE.json
@@ -46,7 +46,7 @@
"<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Es gab Probleme bei der Code Integritätsprüfung. Mehr Informationen...</a>",
"Settings" : "Einstellungen",
"Connection to server lost" : "Verbindung zum Server verloren",
- "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problem beim Laden der Seite, Seite wird in %n Sekunde nochmals geladen","Problem beim Laden der Seite, Seite wird in %n Sekunden nochmals geladen"],
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problem beim Laden der Seite, Seite wird in %n Sekunde nochmals geladen","Problem beim Laden der Seite, Seite wird in 5 Sekunden erneut geladen"],
"Saving..." : "Speichere...",
"Dismiss" : "Ausblenden",
"This action requires you to confirm your password" : "Dieser Vorgang benötigt eine Passwortbestätigung von Ihnen",
diff --git a/core/l10n/it.js b/core/l10n/it.js
index 9ab8da1e3fb..c008525138e 100644
--- a/core/l10n/it.js
+++ b/core/l10n/it.js
@@ -96,7 +96,7 @@ OC.L10N.register(
"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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configurazione delle intestazioni del proxy inverso non è corretta, o stai effettuando l'accesso a Nextcloud da un proxy affidabile. Se non stai effettuando l'accesso da un proxy affidabile, questo è un problema di sicurezza e può consentire a un attaccante di falsificare il suo indirizzo IP, rendendolo visibile a Nextcloud. Ulteriori informazioni sono disponibili nella nostra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentazione</a>.",
"Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached è configurato come cache distribuita, ma è installato il modulo \"memcache\" errato. \\OC\\Memcache\\Memcached supporta solo \"memcached\" e non \"memcache\". Vedi il <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">wiki di memcached per informazioni su entrambi i moduli</a>.",
"Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Alcuni file non hanno superato il controllo di integrità. Ulteriori informazioni su come risolvere questo problema sono disponibili nella nostra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentazione</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Elenco dei file non validi…</a> / <a href=\"{rescanEndpoint}\">Nuova scansione…</a>)",
- "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP OpCache non è configurata correttamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Per performance migliori consigliamo</a> di utilizzare le impostazioni in <code>php.ini</code>:",
+ "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP OpCache non è configurata correttamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Per prestazioni migliori consigliamo</a> di utilizzare le impostazioni in <code>php.ini</code>:",
"Error occurred while checking server setup" : "Si è verificato un errore durante il controllo della configurazione del server",
"Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "La cartella dei dati e i tuoi file sono probabilmente accessibili da Internet.\nIl file .htaccess non funziona. Ti consigliamo vivamente di configurare il server web in modo che la cartella dei dati non sia più accessibile o di spostare la cartella fuori dalla radice del server web.",
"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." : "L'intestazione HTTP \"{header}\" non è configurata come \"{expected}\". \nQuesto è un potenziale rischio di sicurezza o di riservatezza dei dati e noi consigliamo di modificare questa impostazione.",
@@ -142,7 +142,7 @@ OC.L10N.register(
"access control" : "controllo d'accesso",
"Could not unshare" : "Impossibile rimuovere la condivisione",
"Share details could not be loaded for this item." : "I dettagli della condivisione non possono essere caricati per questo elemento.",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Almeno {count} carattere è richiesto per l'autocompletamento","Almeno {count} caratteri sono richiesti per l'autocompletamento"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Almeno {count} carattere è richiesto per l'autocompletamento","Almeno {count} caratteri sono richiesti per il completamento automatico"],
"This list is maybe truncated - please refine your search term to see more results." : "Questa lista potrebbe essere troncata - correggi i termini di ricerca per molti altri risultati.",
"No users or groups found for {search}" : "Nessun utente o gruppo trovato per {search}",
"No users found for {search}" : "Nessun utente trovato per {search}",
diff --git a/core/l10n/it.json b/core/l10n/it.json
index 920ef252463..65a076a940d 100644
--- a/core/l10n/it.json
+++ b/core/l10n/it.json
@@ -94,7 +94,7 @@
"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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configurazione delle intestazioni del proxy inverso non è corretta, o stai effettuando l'accesso a Nextcloud da un proxy affidabile. Se non stai effettuando l'accesso da un proxy affidabile, questo è un problema di sicurezza e può consentire a un attaccante di falsificare il suo indirizzo IP, rendendolo visibile a Nextcloud. Ulteriori informazioni sono disponibili nella nostra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentazione</a>.",
"Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached è configurato come cache distribuita, ma è installato il modulo \"memcache\" errato. \\OC\\Memcache\\Memcached supporta solo \"memcached\" e non \"memcache\". Vedi il <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">wiki di memcached per informazioni su entrambi i moduli</a>.",
"Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Alcuni file non hanno superato il controllo di integrità. Ulteriori informazioni su come risolvere questo problema sono disponibili nella nostra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentazione</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Elenco dei file non validi…</a> / <a href=\"{rescanEndpoint}\">Nuova scansione…</a>)",
- "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP OpCache non è configurata correttamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Per performance migliori consigliamo</a> di utilizzare le impostazioni in <code>php.ini</code>:",
+ "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP OpCache non è configurata correttamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Per prestazioni migliori consigliamo</a> di utilizzare le impostazioni in <code>php.ini</code>:",
"Error occurred while checking server setup" : "Si è verificato un errore durante il controllo della configurazione del server",
"Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "La cartella dei dati e i tuoi file sono probabilmente accessibili da Internet.\nIl file .htaccess non funziona. Ti consigliamo vivamente di configurare il server web in modo che la cartella dei dati non sia più accessibile o di spostare la cartella fuori dalla radice del server web.",
"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." : "L'intestazione HTTP \"{header}\" non è configurata come \"{expected}\". \nQuesto è un potenziale rischio di sicurezza o di riservatezza dei dati e noi consigliamo di modificare questa impostazione.",
@@ -140,7 +140,7 @@
"access control" : "controllo d'accesso",
"Could not unshare" : "Impossibile rimuovere la condivisione",
"Share details could not be loaded for this item." : "I dettagli della condivisione non possono essere caricati per questo elemento.",
- "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Almeno {count} carattere è richiesto per l'autocompletamento","Almeno {count} caratteri sono richiesti per l'autocompletamento"],
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Almeno {count} carattere è richiesto per l'autocompletamento","Almeno {count} caratteri sono richiesti per il completamento automatico"],
"This list is maybe truncated - please refine your search term to see more results." : "Questa lista potrebbe essere troncata - correggi i termini di ricerca per molti altri risultati.",
"No users or groups found for {search}" : "Nessun utente o gruppo trovato per {search}",
"No users found for {search}" : "Nessun utente trovato per {search}",
diff --git a/core/l10n/ja.js b/core/l10n/ja.js
index ad71d7f28d6..e8e96b38b0a 100644
--- a/core/l10n/ja.js
+++ b/core/l10n/ja.js
@@ -96,6 +96,7 @@ OC.L10N.register(
"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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "リバースプロキシヘッダーの設定が正しくないか、信頼できるプロキシからNextcloudにアクセスしています。信頼できるプロキシからNextcloudにアクセスしていない場合、これはセキュリティ上の問題であり、攻撃者が自分のIPアドレスを偽装してNextcloudに見えるようにしている可能性があります。詳細については、<a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">ドキュメント</a>をご覧ください。",
"Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached は分散キャッシュとして設定されています。しかし、PHPモジュール \"memcache\"が間違ってインストールされています。 \\OC\\Memcache\\Memcached は、\"memcached\" のみをサポートしています。\"memcache\" ではありません。<a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki で両方のモジュールの情報</a> について確認してください。",
"Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "いくつかのファイルでチェックサムが適合しませんでした。この問題を解決するためは、<a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">ドキュメント</a>の詳細を見てください。(<a href=\"{codeIntegrityDownloadEndpoint}\">不適合ファイルのリスト…</a> / <a href=\"{rescanEndpoint}\">再チェック…</a>)",
+ "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP Opcache が正しく設定されていません。 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">パフォーマンスを向上させるため ↗</a> <code>php.ini</code> で次の設定を使用することをお勧めします:",
"Error occurred while checking server setup" : "サーバー設定のチェック中にエラーが発生しました",
"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ファイルが機能していません。データディレクトリがアクセスされないようにWebサーバーを設定するか、Webサーバーのドキュメントルートからデータディレクトリを移動するように強くお勧めします。",
"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}\" に設定されていません。これは潜在的なセキュリティリスクもしくはプライバシーリスクとなる可能性があるため、この設定を見直すことをおすすめします。",
diff --git a/core/l10n/ja.json b/core/l10n/ja.json
index 34e9d81823b..28ea4f40913 100644
--- a/core/l10n/ja.json
+++ b/core/l10n/ja.json
@@ -94,6 +94,7 @@
"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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "リバースプロキシヘッダーの設定が正しくないか、信頼できるプロキシからNextcloudにアクセスしています。信頼できるプロキシからNextcloudにアクセスしていない場合、これはセキュリティ上の問題であり、攻撃者が自分のIPアドレスを偽装してNextcloudに見えるようにしている可能性があります。詳細については、<a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">ドキュメント</a>をご覧ください。",
"Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached は分散キャッシュとして設定されています。しかし、PHPモジュール \"memcache\"が間違ってインストールされています。 \\OC\\Memcache\\Memcached は、\"memcached\" のみをサポートしています。\"memcache\" ではありません。<a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki で両方のモジュールの情報</a> について確認してください。",
"Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "いくつかのファイルでチェックサムが適合しませんでした。この問題を解決するためは、<a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">ドキュメント</a>の詳細を見てください。(<a href=\"{codeIntegrityDownloadEndpoint}\">不適合ファイルのリスト…</a> / <a href=\"{rescanEndpoint}\">再チェック…</a>)",
+ "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP Opcache が正しく設定されていません。 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">パフォーマンスを向上させるため ↗</a> <code>php.ini</code> で次の設定を使用することをお勧めします:",
"Error occurred while checking server setup" : "サーバー設定のチェック中にエラーが発生しました",
"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ファイルが機能していません。データディレクトリがアクセスされないようにWebサーバーを設定するか、Webサーバーのドキュメントルートからデータディレクトリを移動するように強くお勧めします。",
"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}\" に設定されていません。これは潜在的なセキュリティリスクもしくはプライバシーリスクとなる可能性があるため、この設定を見直すことをおすすめします。",
diff --git a/core/l10n/nl.js b/core/l10n/nl.js
index 75bf1dd9d3b..11c2b97e145 100644
--- a/core/l10n/nl.js
+++ b/core/l10n/nl.js
@@ -7,25 +7,25 @@ OC.L10N.register(
"The selected file cannot be read." : "Het geselecteerde bestand kan niet worden gelezen.",
"Invalid file provided" : "Ongeldig bestand opgegeven",
"No image or file provided" : "Geen afbeelding of bestand opgegeven",
- "Unknown filetype" : "Onbekend bestandsformaat",
- "Invalid image" : "Ongeldige afbeelding",
+ "Unknown filetype" : "Bestandsformaat onbekend",
+ "Invalid image" : "Afbeelding ongeldig",
"An error occurred. Please contact your admin." : "Er trad een fout op. Neem contact op met je beheerder.",
"No temporary profile picture available, try again" : "Geen tijdelijke profielafbeelding beschikbaar. Probeer het opnieuw",
"No crop data provided" : "Geen bijsnijdingsgegevens opgegeven",
"No valid crop data provided" : "Geen geldige bijsnijdingsgegevens opgegeven",
- "Crop is not square" : "Bijsnijding is niet vierkant",
+ "Crop is not square" : "Bijsnijden is niet vierkant",
"Couldn't reset password because the token is invalid" : "Kon het wachtwoord niet herstellen, omdat het token ongeldig is",
"Couldn't reset password because the token is expired" : "Kon het wachtwoord niet herstellen, omdat het token verlopen is",
"Couldn't send reset email. Please make sure your username is correct." : "Kon e-mail niet versturen. Verifieer of je gebruikersnaam correct is.",
"Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kon geen herstel e-mail versturen, omdat er geen e-mailadres bekend is bij deze gebruikersnaam. Neem contact op met je beheerder.",
- "%s password reset" : "%s wachtwoord reset",
+ "%s password reset" : "%s reset wachtwoord",
"Couldn't send reset email. Please contact your administrator." : "Kon herstel e-mail niet versturen. Neem contact op met je beheerder.",
"Preparing update" : "Update voorbereiden",
"[%d / %d]: %s" : "[%d / %d]: %s",
"Repair warning: " : "Reparatiewaarschuwing:",
"Repair error: " : "Reparatiefout:",
"Please use the command line updater because automatic updating is disabled in the config.php." : "Gebruik de commandoregel updater, omdat automatische update is uitgeschakeld in config.php.",
- "[%d / %d]: Checking table %s" : "[%d / %d]: Controleren tabel %s",
+ "[%d / %d]: Checking table %s" : "[%d / %d]: Tabel controleren %s",
"Turned on maintenance mode" : "Onderhoudsmodus ingeschakeld",
"Turned off maintenance mode" : "Onderhoudsmodus uitgeschakeld",
"Maintenance mode is kept active" : "Onderhoudsmodus blijft actief",
@@ -33,14 +33,14 @@ OC.L10N.register(
"Updated database" : "Database bijgewerkt",
"Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Controleert of het databaseschema geüpdatet kan worden (dit kan lang duren afhankelijk van de grootte van de de database)",
"Checked database schema update" : "Database schema-update gecontroleerd",
- "Checking updates of apps" : "Controleert of er updates voor apps zijn",
+ "Checking updates of apps" : "Controleert of er app updates zijn",
"Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Controleert of het databaseschema voor %s geüpdatet kan worden (dit kan lang duren afhankelijk van de grootte van de database)",
"Checked database schema update for apps" : "Databaseschema update voor apps gecontroleerd",
"Updated \"%s\" to %s" : "Bijgewerkt \"%s\" naar %s",
- "Set log level to debug" : "Logniveau instellen op debug",
+ "Set log level to debug" : "Debug logniveau instellen",
"Reset log level" : "Terugzetten logniveau",
"Starting code integrity check" : "Starten code betrouwbaarheidscontrole",
- "Finished code integrity check" : "Gereed met code betrouwbaarheidscontrole",
+ "Finished code integrity check" : "Code betrouwbaarheidscontrole beeindigd",
"%s (3rdparty)" : "%s (3rdparty)",
"%s (incompatible)" : "%s (incompatibel)",
"Following apps have been disabled: %s" : "De volgende apps zijn gedeactiveerd: %s",
@@ -50,7 +50,7 @@ OC.L10N.register(
"Connection to server lost" : "Verbinding met server verbroken",
"_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Probleem met laden pagina, herladen over %n seconde","Probleem met laden pagina, herladen over %n seconden"],
"Saving..." : "Opslaan",
- "Dismiss" : "Terzijde leggen",
+ "Dismiss" : "Negeren",
"This action requires you to confirm your password" : "Deze actie vereist dat je je wachtwoord bevestigt",
"Authentication required" : "Authenticatie vereist",
"Password" : "Wachtwoord",
@@ -96,7 +96,7 @@ OC.L10N.register(
"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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "De reverse proxy headerconfiguratie is onjuist, of je hebt toegang tot Nextcloud via een vertrouwde proxy. Als je Nextcloud niet via een vertrouwde proxy benadert, dan levert dat een beveiligingsrisico op, waardoor een aanvaller het IP-adres dat Nextcloud ziet kan vervalsen. Meer informatie is te vinden in onze <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentatie</a>.",
"Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached is geconfigureerd als gedistribueerde cache, maar de verkeerde PHP module \"memcache\" is geïnstalleerd. \\OC\\Memcache\\Memcached ondersteunt alleen \"memcached\" en niet \"memcache\". Zie de <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki over beide modules</a>.",
"Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Sommige bestanden kwamen niet door de code betrouwbaarheidscontrole. Meer informatie over het oplossen van dit probleem kan worden gevonden in onze <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentatie</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Lijst met ongeldige bestanden…</a> / <a href=\"{rescanEndpoint}\">Opnieuw…</a>)",
- "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "De PHP Opcache is niet juist geconfigureerd. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Voor betere prestaties adviseren we ↗</a> de volgende instellingen te gebruiken in <code>php.ini</code>:",
+ "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "De PHP Opcache is niet juist geconfigureerd. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Voor betere prestaties adviseren we  ↗</a> de volgende instellingen te gebruiken in <code>php.ini</code>:",
"Error occurred while checking server setup" : "Een fout trad op bij checken serverconfiguratie",
"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." : "Je data folder en je bestanden zijn waarschijnlijk vanaf het internet bereikbaar. Het .htaccess-bestand werkt niet. We raden ten zeerste aan aan om je webserver zodanig te configureren, dat de datadirectory niet bereikbaar is vanaf het internet of om je datadirectory te verplaatsen naar een locatie buiten de document-root van de webserver.",
"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." : "De \"{header}\" HTTP header is niet overeenkomstig met \"{expected}\" geconfigureerd. Dit is een potentieel security of privacy risico en we adviseren om deze instelling te wijzigen.",
@@ -119,11 +119,11 @@ OC.L10N.register(
"Press ⌘-C to copy." : "Druk op ⌘-C om te kopiëren.",
"Press Ctrl-C to copy." : "Druk op Ctrl-C om te kopiëren.",
"Resharing is not allowed" : "Verder delen is niet toegestaan",
- "Share link" : "Deel link",
+ "Share link" : "Deellink",
"Link" : "Link",
"Password protect" : "Wachtwoord beveiligd",
"Allow upload and editing" : "Toestaan uploaden en bewerken",
- "Allow editing" : "Toestaan bewerken",
+ "Allow editing" : "Bewerken toestaan",
"File drop (upload only)" : "File drop (alleen uploaden)",
"Email link to person" : "E-mail link naar persoon",
"Send" : "Versturen",
@@ -133,7 +133,7 @@ OC.L10N.register(
"group" : "groep",
"remote" : "extern",
"email" : "e-mail",
- "Unshare" : "Stop met delen",
+ "Unshare" : "Delen stoppen",
"can reshare" : "kan doordelen",
"can edit" : "kan wijzigen",
"can create" : "kan creëren",
@@ -141,7 +141,7 @@ OC.L10N.register(
"can delete" : "kan verwijderen",
"access control" : "toegangscontrole",
"Could not unshare" : "Kon delen niet ongedaan maken",
- "Share details could not be loaded for this item." : "Details van shares voor dit object konden niet worden geladen.",
+ "Share details could not be loaded for this item." : "Deel details van dit object kon niet worden geladen.",
"_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Minimaal {count} karakter benodigd voor automatisch aanvullen","Minimaal {count} karakters benodigd voor automatisch aanvullen"],
"This list is maybe truncated - please refine your search term to see more results." : "Deze lijst is misschien afgekapt - verfijn de zoekterm om meer resultaten te zien.",
"No users or groups found for {search}" : "Geen gebruikers of groepen gevonden voor {search}",
@@ -152,15 +152,15 @@ OC.L10N.register(
"{sharee} (email)" : "{sharee} (e-mail)",
"Share" : "Delen",
"Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Delen met mensen op andere servers via hun gefedereerde Cloud ID gebruikersnaam@voorbeeld.nl/nextcloud",
- "Share with users or by mail..." : "Deel met gebruikers per e-mail...",
+ "Share with users or by mail..." : "Delen met gebruikers per e-mail...",
"Share with users or remote users..." : "Deel met gebruikers of externe gebruikers...",
- "Share with users, remote users or by mail..." : "Deel met gebruikers, externe gebruikers of per e-mail...",
- "Share with users or groups..." : "Deel met gebruikers en groepen...",
- "Share with users, groups or by mail..." : "Deel met gebruikers, groepen of per e-mail...",
- "Share with users, groups or remote users..." : "Deel met gebruikers, groepen of externe gebruikers...",
- "Share with users, groups, remote users or by mail..." : "Deel met groepen, externe gebruikers of per e-mail...",
+ "Share with users, remote users or by mail..." : "Delen met gebruikers, externe gebruikers of per e-mail...",
+ "Share with users or groups..." : "Delen met gebruikers en groepen...",
+ "Share with users, groups or by mail..." : "Delen met gebruikers, groepen of per e-mail...",
+ "Share with users, groups or remote users..." : "Delen met gebruikers, groepen of externe gebruikers...",
+ "Share with users, groups, remote users or by mail..." : "Delen met groepen, externe gebruikers of per e-mail...",
"Share with users..." : "Deel met gebruikers...",
- "Error removing share" : "Fout bij verwijderen share",
+ "Error removing share" : "Fout bij verwijderen gedeelde",
"Non-existing tag #{tag}" : "Niet bestaande markering #{tag}",
"restricted" : "beperkt",
"invisible" : "onzichtbaar",
@@ -203,7 +203,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.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo daar,\n\n%s deelt %s met je.\nBekijk het hier: %s\n\n",
- "The share will expire on %s." : "De share vervalt op %s.",
+ "The share will expire on %s." : "Het gedeelde vervalt op %s.",
"Cheers!" : "Proficiat!",
"Internal Server Error" : "Interne serverfout",
"The server encountered an internal error and was unable to complete your request." : "De server ontdekte een interne fout en kon je aanvraag niet verder uitvoeren.",
@@ -352,7 +352,7 @@ OC.L10N.register(
"Email sent" : "E-mail verzonden",
"Send link via email" : "Versturen link via e-mail",
"notify by email" : "melden per e-mail",
- "can share" : "kan delen",
+ "can share" : "delen kan",
"create" : "creëer",
"change" : "wijzig",
"delete" : "verwijderen",
diff --git a/core/l10n/nl.json b/core/l10n/nl.json
index 782b3d4af81..1dc38d645a4 100644
--- a/core/l10n/nl.json
+++ b/core/l10n/nl.json
@@ -5,25 +5,25 @@
"The selected file cannot be read." : "Het geselecteerde bestand kan niet worden gelezen.",
"Invalid file provided" : "Ongeldig bestand opgegeven",
"No image or file provided" : "Geen afbeelding of bestand opgegeven",
- "Unknown filetype" : "Onbekend bestandsformaat",
- "Invalid image" : "Ongeldige afbeelding",
+ "Unknown filetype" : "Bestandsformaat onbekend",
+ "Invalid image" : "Afbeelding ongeldig",
"An error occurred. Please contact your admin." : "Er trad een fout op. Neem contact op met je beheerder.",
"No temporary profile picture available, try again" : "Geen tijdelijke profielafbeelding beschikbaar. Probeer het opnieuw",
"No crop data provided" : "Geen bijsnijdingsgegevens opgegeven",
"No valid crop data provided" : "Geen geldige bijsnijdingsgegevens opgegeven",
- "Crop is not square" : "Bijsnijding is niet vierkant",
+ "Crop is not square" : "Bijsnijden is niet vierkant",
"Couldn't reset password because the token is invalid" : "Kon het wachtwoord niet herstellen, omdat het token ongeldig is",
"Couldn't reset password because the token is expired" : "Kon het wachtwoord niet herstellen, omdat het token verlopen is",
"Couldn't send reset email. Please make sure your username is correct." : "Kon e-mail niet versturen. Verifieer of je gebruikersnaam correct is.",
"Could not send reset email because there is no email address for this username. Please contact your administrator." : "Kon geen herstel e-mail versturen, omdat er geen e-mailadres bekend is bij deze gebruikersnaam. Neem contact op met je beheerder.",
- "%s password reset" : "%s wachtwoord reset",
+ "%s password reset" : "%s reset wachtwoord",
"Couldn't send reset email. Please contact your administrator." : "Kon herstel e-mail niet versturen. Neem contact op met je beheerder.",
"Preparing update" : "Update voorbereiden",
"[%d / %d]: %s" : "[%d / %d]: %s",
"Repair warning: " : "Reparatiewaarschuwing:",
"Repair error: " : "Reparatiefout:",
"Please use the command line updater because automatic updating is disabled in the config.php." : "Gebruik de commandoregel updater, omdat automatische update is uitgeschakeld in config.php.",
- "[%d / %d]: Checking table %s" : "[%d / %d]: Controleren tabel %s",
+ "[%d / %d]: Checking table %s" : "[%d / %d]: Tabel controleren %s",
"Turned on maintenance mode" : "Onderhoudsmodus ingeschakeld",
"Turned off maintenance mode" : "Onderhoudsmodus uitgeschakeld",
"Maintenance mode is kept active" : "Onderhoudsmodus blijft actief",
@@ -31,14 +31,14 @@
"Updated database" : "Database bijgewerkt",
"Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Controleert of het databaseschema geüpdatet kan worden (dit kan lang duren afhankelijk van de grootte van de de database)",
"Checked database schema update" : "Database schema-update gecontroleerd",
- "Checking updates of apps" : "Controleert of er updates voor apps zijn",
+ "Checking updates of apps" : "Controleert of er app updates zijn",
"Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Controleert of het databaseschema voor %s geüpdatet kan worden (dit kan lang duren afhankelijk van de grootte van de database)",
"Checked database schema update for apps" : "Databaseschema update voor apps gecontroleerd",
"Updated \"%s\" to %s" : "Bijgewerkt \"%s\" naar %s",
- "Set log level to debug" : "Logniveau instellen op debug",
+ "Set log level to debug" : "Debug logniveau instellen",
"Reset log level" : "Terugzetten logniveau",
"Starting code integrity check" : "Starten code betrouwbaarheidscontrole",
- "Finished code integrity check" : "Gereed met code betrouwbaarheidscontrole",
+ "Finished code integrity check" : "Code betrouwbaarheidscontrole beeindigd",
"%s (3rdparty)" : "%s (3rdparty)",
"%s (incompatible)" : "%s (incompatibel)",
"Following apps have been disabled: %s" : "De volgende apps zijn gedeactiveerd: %s",
@@ -48,7 +48,7 @@
"Connection to server lost" : "Verbinding met server verbroken",
"_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Probleem met laden pagina, herladen over %n seconde","Probleem met laden pagina, herladen over %n seconden"],
"Saving..." : "Opslaan",
- "Dismiss" : "Terzijde leggen",
+ "Dismiss" : "Negeren",
"This action requires you to confirm your password" : "Deze actie vereist dat je je wachtwoord bevestigt",
"Authentication required" : "Authenticatie vereist",
"Password" : "Wachtwoord",
@@ -94,7 +94,7 @@
"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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "De reverse proxy headerconfiguratie is onjuist, of je hebt toegang tot Nextcloud via een vertrouwde proxy. Als je Nextcloud niet via een vertrouwde proxy benadert, dan levert dat een beveiligingsrisico op, waardoor een aanvaller het IP-adres dat Nextcloud ziet kan vervalsen. Meer informatie is te vinden in onze <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentatie</a>.",
"Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached is geconfigureerd als gedistribueerde cache, maar de verkeerde PHP module \"memcache\" is geïnstalleerd. \\OC\\Memcache\\Memcached ondersteunt alleen \"memcached\" en niet \"memcache\". Zie de <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki over beide modules</a>.",
"Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Sommige bestanden kwamen niet door de code betrouwbaarheidscontrole. Meer informatie over het oplossen van dit probleem kan worden gevonden in onze <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentatie</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Lijst met ongeldige bestanden…</a> / <a href=\"{rescanEndpoint}\">Opnieuw…</a>)",
- "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "De PHP Opcache is niet juist geconfigureerd. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Voor betere prestaties adviseren we ↗</a> de volgende instellingen te gebruiken in <code>php.ini</code>:",
+ "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "De PHP Opcache is niet juist geconfigureerd. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Voor betere prestaties adviseren we  ↗</a> de volgende instellingen te gebruiken in <code>php.ini</code>:",
"Error occurred while checking server setup" : "Een fout trad op bij checken serverconfiguratie",
"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." : "Je data folder en je bestanden zijn waarschijnlijk vanaf het internet bereikbaar. Het .htaccess-bestand werkt niet. We raden ten zeerste aan aan om je webserver zodanig te configureren, dat de datadirectory niet bereikbaar is vanaf het internet of om je datadirectory te verplaatsen naar een locatie buiten de document-root van de webserver.",
"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." : "De \"{header}\" HTTP header is niet overeenkomstig met \"{expected}\" geconfigureerd. Dit is een potentieel security of privacy risico en we adviseren om deze instelling te wijzigen.",
@@ -117,11 +117,11 @@
"Press ⌘-C to copy." : "Druk op ⌘-C om te kopiëren.",
"Press Ctrl-C to copy." : "Druk op Ctrl-C om te kopiëren.",
"Resharing is not allowed" : "Verder delen is niet toegestaan",
- "Share link" : "Deel link",
+ "Share link" : "Deellink",
"Link" : "Link",
"Password protect" : "Wachtwoord beveiligd",
"Allow upload and editing" : "Toestaan uploaden en bewerken",
- "Allow editing" : "Toestaan bewerken",
+ "Allow editing" : "Bewerken toestaan",
"File drop (upload only)" : "File drop (alleen uploaden)",
"Email link to person" : "E-mail link naar persoon",
"Send" : "Versturen",
@@ -131,7 +131,7 @@
"group" : "groep",
"remote" : "extern",
"email" : "e-mail",
- "Unshare" : "Stop met delen",
+ "Unshare" : "Delen stoppen",
"can reshare" : "kan doordelen",
"can edit" : "kan wijzigen",
"can create" : "kan creëren",
@@ -139,7 +139,7 @@
"can delete" : "kan verwijderen",
"access control" : "toegangscontrole",
"Could not unshare" : "Kon delen niet ongedaan maken",
- "Share details could not be loaded for this item." : "Details van shares voor dit object konden niet worden geladen.",
+ "Share details could not be loaded for this item." : "Deel details van dit object kon niet worden geladen.",
"_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Minimaal {count} karakter benodigd voor automatisch aanvullen","Minimaal {count} karakters benodigd voor automatisch aanvullen"],
"This list is maybe truncated - please refine your search term to see more results." : "Deze lijst is misschien afgekapt - verfijn de zoekterm om meer resultaten te zien.",
"No users or groups found for {search}" : "Geen gebruikers of groepen gevonden voor {search}",
@@ -150,15 +150,15 @@
"{sharee} (email)" : "{sharee} (e-mail)",
"Share" : "Delen",
"Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Delen met mensen op andere servers via hun gefedereerde Cloud ID gebruikersnaam@voorbeeld.nl/nextcloud",
- "Share with users or by mail..." : "Deel met gebruikers per e-mail...",
+ "Share with users or by mail..." : "Delen met gebruikers per e-mail...",
"Share with users or remote users..." : "Deel met gebruikers of externe gebruikers...",
- "Share with users, remote users or by mail..." : "Deel met gebruikers, externe gebruikers of per e-mail...",
- "Share with users or groups..." : "Deel met gebruikers en groepen...",
- "Share with users, groups or by mail..." : "Deel met gebruikers, groepen of per e-mail...",
- "Share with users, groups or remote users..." : "Deel met gebruikers, groepen of externe gebruikers...",
- "Share with users, groups, remote users or by mail..." : "Deel met groepen, externe gebruikers of per e-mail...",
+ "Share with users, remote users or by mail..." : "Delen met gebruikers, externe gebruikers of per e-mail...",
+ "Share with users or groups..." : "Delen met gebruikers en groepen...",
+ "Share with users, groups or by mail..." : "Delen met gebruikers, groepen of per e-mail...",
+ "Share with users, groups or remote users..." : "Delen met gebruikers, groepen of externe gebruikers...",
+ "Share with users, groups, remote users or by mail..." : "Delen met groepen, externe gebruikers of per e-mail...",
"Share with users..." : "Deel met gebruikers...",
- "Error removing share" : "Fout bij verwijderen share",
+ "Error removing share" : "Fout bij verwijderen gedeelde",
"Non-existing tag #{tag}" : "Niet bestaande markering #{tag}",
"restricted" : "beperkt",
"invisible" : "onzichtbaar",
@@ -201,7 +201,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.",
"Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hallo daar,\n\n%s deelt %s met je.\nBekijk het hier: %s\n\n",
- "The share will expire on %s." : "De share vervalt op %s.",
+ "The share will expire on %s." : "Het gedeelde vervalt op %s.",
"Cheers!" : "Proficiat!",
"Internal Server Error" : "Interne serverfout",
"The server encountered an internal error and was unable to complete your request." : "De server ontdekte een interne fout en kon je aanvraag niet verder uitvoeren.",
@@ -350,7 +350,7 @@
"Email sent" : "E-mail verzonden",
"Send link via email" : "Versturen link via e-mail",
"notify by email" : "melden per e-mail",
- "can share" : "kan delen",
+ "can share" : "delen kan",
"create" : "creëer",
"change" : "wijzig",
"delete" : "verwijderen",
diff --git a/core/l10n/sv.js b/core/l10n/sv.js
index 49c547fc5d0..c48b26b5bd3 100644
--- a/core/l10n/sv.js
+++ b/core/l10n/sv.js
@@ -48,6 +48,7 @@ OC.L10N.register(
"<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\"> Ett problem uppstod under integritetskontrollen av koden. Mer information ... </a>",
"Settings" : "Inställningar",
"Connection to server lost" : "Anslutning till server förlorad",
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problem med att ladda sidan, laddar om sidan om %n sekund","Problem med att ladda sidan, laddar om sidan om %n sekunder"],
"Saving..." : "Sparar...",
"Dismiss" : "Avfärda",
"This action requires you to confirm your password" : "Denna åtgärd kräver att du bekräftar ditt lösenord",
diff --git a/core/l10n/sv.json b/core/l10n/sv.json
index 2d1b34f7a8c..60fc0051d70 100644
--- a/core/l10n/sv.json
+++ b/core/l10n/sv.json
@@ -46,6 +46,7 @@
"<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\"> Ett problem uppstod under integritetskontrollen av koden. Mer information ... </a>",
"Settings" : "Inställningar",
"Connection to server lost" : "Anslutning till server förlorad",
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Problem med att ladda sidan, laddar om sidan om %n sekund","Problem med att ladda sidan, laddar om sidan om %n sekunder"],
"Saving..." : "Sparar...",
"Dismiss" : "Avfärda",
"This action requires you to confirm your password" : "Denna åtgärd kräver att du bekräftar ditt lösenord",
diff --git a/core/l10n/tr.js b/core/l10n/tr.js
index 8e6b02f4239..3d1212efe28 100644
--- a/core/l10n/tr.js
+++ b/core/l10n/tr.js
@@ -3,253 +3,301 @@ OC.L10N.register(
{
"Please select a file." : "Lütfen bir dosya seçin.",
"File is too big" : "Dosya çok büyük",
- "Invalid file provided" : "Geçersiz dosya sağlandı",
- "No image or file provided" : "Resim veya dosya belirtilmedi",
- "Unknown filetype" : "Bilinmeyen dosya türü",
- "Invalid image" : "Geçersiz resim",
- "An error occurred. Please contact your admin." : "Bir hata oluştu. Lütfen yöneticinize başvurun.",
- "No temporary profile picture available, try again" : "Kullanılabilir geçici profil resmi yok, tekrar deneyin",
- "No crop data provided" : "Kesme verisi sağlanmamış",
- "No valid crop data provided" : "Geçerli kırpma verisi sağlanmadı",
- "Crop is not square" : "Kırpma kare değil",
- "Couldn't reset password because the token is invalid" : "Belirteç geçersiz olduğundan parola sıfırlanamadı",
- "Couldn't reset password because the token is expired" : "Jeton zaman aşımına uğradığından parola sıfırlanamadı",
+ "The selected file is not an image." : "Seçilmiş dosya bir görsel dosyası değil.",
+ "The selected file cannot be read." : "Seçilmiş dosya okunamadı.",
+ "Invalid file provided" : "Belirtilen dosya geçersiz",
+ "No image or file provided" : "Bir görsel ya da dosya belirtilmemiş",
+ "Unknown filetype" : "Dosya türü bilinmiyor",
+ "Invalid image" : "Görsel geçersiz",
+ "An error occurred. Please contact your admin." : "Bir sorun çıktı. Lütfen yöneticinizle görüşün.",
+ "No temporary profile picture available, try again" : "Kullanılabilecek geçici bir profil görseli bulunamadı. Yeniden deneyin",
+ "No crop data provided" : "Kırpma verileri belirtilmemiş",
+ "No valid crop data provided" : "Geçerli bir kırpma verisi belirtilmemiş",
+ "Crop is not square" : "Kırpma kare şeklinde değil",
+ "Couldn't reset password because the token is invalid" : "Kod geçersiz olduğundan parola sıfırlanamadı",
+ "Couldn't reset password because the token is expired" : "Kodun süresi geçtiğinden parola sıfırlanamadı",
"Couldn't send reset email. Please make sure your username is correct." : "Sıfırlama e-postası gönderilemedi. Lütfen kullanıcı adınızın doğru olduğundan emin olun.",
- "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Sıfırlama e-postası, bu kullanıcı için bir e-posta adresi olmadığından gönderilemedi. Lütfen yöneticiniz ile iletişime geçin.",
+ "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Bu kullanıcı için bir e-posta adresi olmadığından sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile görüşün.",
"%s password reset" : "%s parola sıfırlama",
- "Couldn't send reset email. Please contact your administrator." : "Sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile iletişime geçin.",
+ "Couldn't send reset email. Please contact your administrator." : "Sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile görüşün.",
"Preparing update" : "Güncelleme hazırlanıyor",
"[%d / %d]: %s" : "[%d / %d]: %s",
"Repair warning: " : "Onarım uyarısı:",
"Repair error: " : "Onarım hatası:",
- "Please use the command line updater because automatic updating is disabled in the config.php." : "Otomatik güncellemeler config.php dosyasından pasif duruma getirildiği için, lütfen komut satırı güncelleyicisini kullanın. Oto",
- "[%d / %d]: Checking table %s" : "[%d / %d]: Tablo kontroi ediliyor %s",
+ "Please use the command line updater because automatic updating is disabled in the config.php." : "Otomatik güncellemeler config.php dosyasında devre dışı bırakılmış olduğundan, komut satırı güncelleyicisini kullanın.",
+ "[%d / %d]: Checking table %s" : "[%d / %d]: %s tablosu denetleniyor",
"Turned on maintenance mode" : "Bakım kipi etkinleştirildi",
- "Turned off maintenance mode" : "Bakım kipi kapatıldı",
+ "Turned off maintenance mode" : "Bakım kipi devre dışı bırakıldı",
"Maintenance mode is kept active" : "Bakım kipi etkin tutuldu",
"Updating database schema" : "Veritabanı şeması güncelleniyor",
"Updated database" : "Veritabanı güncellendi",
- "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Veritabanı şeması güncellenebilirliği denetleniyor (Veritabanının büyüklüğüne bağlı olarak uzun sürebilir)",
- "Checked database schema update" : "Veritabanı şema güncellemesi denetlendi",
- "Checking updates of apps" : "Uygulamaların güncellemeleri denetleniyor",
- "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "%s için veritabanı güncellenebilirliği denetleniyor (Veritabanının büyüklüğüne bağlı olarak uzun sürebilir)",
+ "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Veritabanı şeması güncellemesi denetleniyor (veritabanının büyüklüğüne bağlı olarak uzun sürebilir)",
+ "Checked database schema update" : "Veritabanı şeması güncellemesi denetlendi",
+ "Checking updates of apps" : "Uygulama güncellemeleri denetleniyor",
+ "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "%s için veritabanı şeması güncellemesi denetleniyor (veritabanının büyüklüğüne bağlı olarak uzun sürebilir)",
"Checked database schema update for apps" : "Uygulamalar için veritabanı şema güncellemesi denetlendi",
"Updated \"%s\" to %s" : "\"%s\", %s sürümüne güncellendi",
- "Set log level to debug" : "Günlük seviyesini hata ayıklama olarak ayarla",
- "Reset log level" : "Günlük seviyesini sıfırla",
+ "Set log level to debug" : "Günlükleme düzeyini Hata Ayıklama olarak ayarla",
+ "Reset log level" : "Günlükleme düzeyini sıfırla",
"Starting code integrity check" : "Kod bütünlük sınaması başlatılıyor",
"Finished code integrity check" : "Kod bütünlük sınaması bitti",
- "%s (3rdparty)" : "%s (3. parti)",
+ "%s (3rdparty)" : "%s (3. taraf)",
"%s (incompatible)" : "%s (uyumsuz)",
"Following apps have been disabled: %s" : "Aşağıdaki uygulamalar devre dışı bırakıldı: %s",
"Already up to date" : "Zaten güncel",
- "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Kod bütünlük sınamasında sorunlar oluştu. Daha fazla bilgi…</a>",
+ "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Kod bütünlük sınamasında sorunlar çıktı. Ayrıntılı bilgi…</a>",
"Settings" : "Ayarlar",
+ "Connection to server lost" : "Sunucu bağlantısı kesildi",
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Sayfa yüklenirken bir sorun çıktı. %n saniye sonra yeniden yüklenecek","Sayfa yüklenirken bir sorun çıktı. %n saniye sonra yeniden yüklenecek"],
"Saving..." : "Kaydediliyor...",
- "Dismiss" : "İptal et",
+ "Dismiss" : "Yoksay",
+ "This action requires you to confirm your password" : "Bu işlemi yapabilmek için parolanızı yazmalısınız",
+ "Authentication required" : "Kimlik doğrulaması gerekli",
"Password" : "Parola",
"Cancel" : "İptal",
- "seconds ago" : "saniyeler önce",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi. Makul bir süre içerisinde almadıysanız spam/gereksiz klasörlerini kontrol ediniz.<br>Bu konumlarda da yoksa yerel sistem yöneticinize sorunuz.",
+ "Confirm" : "Onayla",
+ "Failed to authenticate, try again" : "Kimlik doğrulanamadı, yeniden deneyin",
+ "seconds ago" : "saniye önce",
+ "Logging in …" : "Oturum açılıyor ...",
+ "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Parola sıfırlama bağlantısı e-posta adresinize gönderildi. Bir kaç dakika içinde e-postayı almazsanız spam/gereksiz klasörlerinize bakın.<br>E-postayı göremiyorsanız yerel sistem yöneticinizle görüşün.",
+ "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Parola sıfırlama işleminden sonra verilerinize erişemeyeceksiniz.<br />Ne yapacağınızdan emin değilseniz, ilerlemeden önce sistem yöneticiniz ile görüşün.<br />Gerçekten devam etmek istiyor musunuz?",
"I know what I'm doing" : "Ne yaptığımı biliyorum",
- "Password can not be changed. Please contact your administrator." : "Parola değiştirilemedi. Lütfen yöneticiniz ile iletişime geçin.",
+ "Password can not be changed. Please contact your administrator." : "Parola değiştirilemedi. Lütfen yöneticiniz ile görüşün.",
"No" : "Hayır",
"Yes" : "Evet",
- "Choose" : "Seç",
- "Error loading file picker template: {error}" : "Dosya seçici şablonu yüklenirken hata: {error}",
+ "No files in here" : "Burada herhangi bir dosya yok",
+ "Choose" : "Seçin",
+ "Error loading file picker template: {error}" : "Dosya seçme kalıbı yüklenirken sorun çıktı: {error}",
"Ok" : "Tamam",
- "Error loading message template: {error}" : "İleti şablonu yüklenirken hata: {error}",
+ "Error loading message template: {error}" : "İleti kalıbı yüklenirken sorun çıktı: {error}",
"read-only" : "salt okunur",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} dosya çakışması","{count} dosya çakışması"],
"One file conflict" : "Bir dosya çakışması",
"New Files" : "Yeni Dosyalar",
- "Already existing files" : "Zaten mevcut olan dosyalar",
+ "Already existing files" : "Zaten var olan dosyalar",
"Which files do you want to keep?" : "Hangi dosyaları saklamak istiyorsunuz?",
- "If you select both versions, the copied file will have a number added to its name." : "İki sürümü de seçerseniz, kopyalanan dosyanın ismine bir sayı ilave edilecektir.",
+ "If you select both versions, the copied file will have a number added to its name." : "İki sürümü de seçerseniz, kopyalanan dosyanın adına bir sayı eklenir.",
"Continue" : "Devam et",
- "(all selected)" : "(tümü seçildi)",
- "({count} selected)" : "({count} seçildi)",
- "Error loading file exists template" : "Dosya mevcut şablonu yüklenirken hata",
- "Very weak password" : "Çok güçsüz parola",
- "Weak password" : "Güçsüz parola",
- "So-so password" : "Normal parola",
- "Good password" : "İyi parola",
- "Strong password" : "Güçlü parola",
- "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Web sunucunuz dosya transferi için düzgün bir şekilde yapılandırılmamış. WevDAV arabirimini sorunlu gözüküyor.",
- "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Web sunucunuz \"{url}\" adresini çözümleyecek şekilde uygun yapılandırılmamış. Daha fazla bilgi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulunabilir.",
- "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." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Birden fazla uç noktaya ulaşılamıyor. Bu, harici depolama alanı bağlama, güncelleştirme bildirimleri veya üçüncü parti uygulama kurma gibi bazı özellikler çalışmayacak demektir. Uzak dosyalara erişim ve e-posta ile bildirim gönderme de çalışmayacaktır. Eğer bu özelliklerin tamamını kullanmak istiyorsanız, sunucu için İnternet bağlantısını etkinleştirmenizi öneriyoruz.",
- "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Hafıza önbelleği yapılandırılmamış. İmkanı varsa performansı iyileştirmek için bir önbellek yapılandırması yapın. Daha fazla bilgiyi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulabilirsiniz.",
- "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Güvenlik nedeniyle çokça önerilen /dev/urandom PHP tarafından okunamıyor. Daha fazla bilgiyi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulabilirsiniz.",
- "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Halen PHP {version} kullanıyorsunuz. Dağıtımınız destekler desteklemez PHP sürümünüzü güncelleyerek <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performans ve güvenlik geliştirmelerinden</a> faydalanmanızı öneriyoruz.",
- "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached dağıtık bellek olarak yapılandırılmış ama hatalı PHP \"memcache\" modülü kurulmuş. \\OC\\Memcache\\Memcached sadece \"memcached\" modülünü destekler, \"memcache\"i değil. <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wikisinde iki modül hakkında da</a> bilgi bulabilirsiniz.",
- "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Bazı dosyalar bütünlük kontrolünü geçemedi. Bu sorunun üstesinden nasıl geleceğinizi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulabilirsiniz. (<a href=\"{codeIntegrityDownloadEndpoint}\">Geçersiz dosyaların listesi…</a> / <a href=\"{rescanEndpoint}\">Tekrar tara…</a>)",
- "Error occurred while checking server setup" : "Sunucu yapılandırması denetlenirken hata oluştu",
- "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 dizininiz ve dosyalarınız büyük ihtimalle İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu belge dizini dışına almanızı şiddetle tavsiye ederiz.",
- "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 başlığı \"{expected}\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir güvenlik veya gizlilik riski olduğundan bu ayarı düzeltmenizi öneririz.",
- "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP başlığı en azından\"{seconds}\" saniyedir yapılandırılmamış. Gelişmiş güvenlik için <a href=\"{docUrl}\" rel=\"noreferrer\">güvenlik ipuçlarında</a> tarif edildiği gibi HSTS'nin etkinleştirilmesini öneririz.",
- "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Bu siteye HTTP aracılığıyla erişiyorsunuz. Sunucunuzu <a href=\"{docUrl}\">güvenlik ipuçlarımızda</a> gösterildiği şekilde HTTPS kullanımını zorlamak üzere yapılandırmanızı şiddetle öneririz.",
- "Shared" : "Paylaşılan",
+ "(all selected)" : "(tüm seçilmişler)",
+ "({count} selected)" : "({count} seçilmiş)",
+ "Error loading file exists template" : "Dosya var kalıbı yüklenirken sorun çıktı",
+ "Pending" : "Bekliyor",
+ "Very weak password" : "Parola çok zayıf",
+ "Weak password" : "Parola zayıf",
+ "So-so password" : "Parola idare eder",
+ "Good password" : "Parola iyi",
+ "Strong password" : "Parola güçlü",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Web sunucunuz dosya eşitlemesi için doğru şekilde ayarlanmamış. WevDAV arabirimi sorunlu görünüyor.",
+ "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Web sunucunuz \"{url}\" adresi çözümlemesi için doğru şekilde ayarlanmamış. Ayrıntılı bilgi almak için <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> 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. We suggest to enable Internet connection for this server if you want to have 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 sunucunun İnternet bağlantısını etkinleştirmeniz önerilir.",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> bakabilirsiniz.",
+ "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Güvenlik nedeniyle kullanılması önerilen /dev/urandom klasörü PHP tarafından okunamıyor. Ayrıntılı bilgi almak için <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> bakabilirsiniz.",
+ "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Şu anda PHP {version} sürümünü kullanıyorsunuz. Kullandığınız Linux dağıtımı desteklediği zaman PHP sürümünüzü güncelleyerek <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">PHP grubu tarafından sağlanan başarım ve güvenlik geliştirmelerinden</a> faydalanmanızı öneririz.",
+ "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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Ters vekil sunucu üst bilgi yapılandırmanız hatalı ya da Nextcloud üzerine güvenilen bir vekil sunucudan erişiyorsunuz. Nextcloud üzerine güvenilen bir vekil sunucudan erişmiyorsanız bu bir güvenlik sorunudur ve bir saldırganın IP adresini farklıymış gibi göstermesine izin verebilir. Ayrıntlı bilgi almak için <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> 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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached dağıtık bellek olarak yapılandırılmış ancak kurulmuş PHP \"memcache\" modülü hatalı. \\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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki sayfasına</a> bakabilirsiniz.",
+ "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Bazı dosyalar bütünlük denetiminden geçemedi. Bu sorunun çözümü ile ilgili bilgi almak için <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> bakabilirsiniz. (<a href=\"{codeIntegrityDownloadEndpoint}\">Geçersiz dosyaların listesi…</a> / <a href=\"{rescanEndpoint}\">Yeniden Tara…</a>)",
+ "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP Opcache doğru şekilde ayarlanmamış. Daha iyi sonuç almak için  <code>php.ini</code> dosyasında <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">şu ayarların kullanılması önerilir ↗</a>:",
+ "Error occurred while checking server setup" : "Sunucu ayarları denetlenirken bir sorun çıktı",
+ "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." : "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 configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP üst bilgisi \"{expected}\" ile eşleşmek üzere yapılandırılmamış. Bu durum muhtemel bir güvenlik ya da gizlilik riski oluşturduğundan bu ayarı düzeltmeniz önerilir.",
+ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP üst bilgisi en azından\"{seconds}\" saniyedir yapılandırılmamış. Gelişmiş güvenlik sağlamak için <a href=\"{docUrl}\" rel=\"noreferrer\">güvenlik ipuçlarında</a> anlatıldığı şekilde HSTS özelliğinin etkinleştirilmesi önerilir.",
+ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Bu siteye HTTP üzerinde erişiyorsunuz. Sunucunuzu <a href=\"{docUrl}\">güvenlik ipuçlarında</a> anlatıldığı şekilde HTTPS kullanımını zorlayacak şekilde yapılandırmanız önemle önerilir.",
+ "Shared" : "Paylaşılmış",
"Shared with {recipients}" : "{recipients} ile paylaşılmış",
"Error" : "Hata",
- "Error while sharing" : "Paylaşım sırasında hata",
- "Error while unsharing" : "Paylaşım iptal edilirken hata",
- "Error setting expiration date" : "Son kullanma tarihi ayarlama hatası",
- "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan en geç {days} gün sonra sona erecek",
+ "Error while sharing" : "Paylaşılırken sorun çıktı",
+ "Error while unsharing" : "Paylaşımdan kaldırılırken sorun çıktı",
+ "Error setting expiration date" : "Son kullanma tarihi ayarlanırken sorun çıktı",
+ "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan {days} gün sonra kullanımdan kaldırılacak",
"Set expiration date" : "Son kullanma tarihini ayarla",
- "Expiration" : "Bitiş",
- "Expiration date" : "Son kullanım tarihi",
+ "Expiration" : "Son kullanma",
+ "Expiration date" : "Son kullanma tarihi",
"Choose a password for the public link" : "Herkese açık bağlantı için bir parola seçin",
"Copied!" : "Kopyalandı!",
+ "Copy" : "Kopyala",
"Not supported!" : "Desteklenmiyor!",
- "Press ⌘-C to copy." : "Kopyalamak için ⌘-C kullanın.",
- "Press Ctrl-C to copy." : "Kopyalamak için Ctrl-C kullanın.",
- "Resharing is not allowed" : "Tekrar paylaşmaya izin verilmiyor",
+ "Press ⌘-C to copy." : "Kopyalamak için ⌘-C tuşlarına basın.",
+ "Press Ctrl-C to copy." : "Kopyalamak için Ctrl-C tuşlarına basın.",
+ "Resharing is not allowed" : "Yeniden paylaşıma izin verilmiyor",
"Share link" : "Paylaşma bağlantısı",
"Link" : "Bağlantı",
"Password protect" : "Parola koruması",
- "Allow editing" : "Düzenlemeye izin ver",
+ "Allow upload and editing" : "Yükleme ve düzenleme yapılabilsin",
+ "Allow editing" : "Düzenleme yapılabilsin",
+ "File drop (upload only)" : "Dosya bırakma (yalnız yükleme)",
"Email link to person" : "Bağlantıyı e-posta ile gönder",
"Send" : "Gönder",
- "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaştırılmış",
- "Shared with you by {owner}" : "{owner} tarafından sizinle paylaşıldı",
+ "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaşılmış",
+ "Shared with you by {owner}" : "{owner} tarafından sizinle paylaşılmış",
+ "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} bağlantı ile paylaşılmış",
"group" : "grup",
"remote" : "uzak",
- "Unshare" : "Paylaşmayı Kaldır",
+ "email" : "e-posta",
+ "Unshare" : "Paylaşımdan Kaldır",
+ "can reshare" : "yeniden paylaşabilir",
"can edit" : "düzenleyebilir",
- "access control" : "erişim kontrolü",
+ "can create" : "ekleyebilir",
+ "can change" : "değiştirebilir",
+ "can delete" : "silebilir",
+ "access control" : "erişim denetimi",
"Could not unshare" : "Paylaşım kaldırılamadı",
"Share details could not be loaded for this item." : "Bu öge için paylaşma ayrıntıları yüklenemedi.",
- "No users or groups found for {search}" : "{search} için kullanıcı veya grup bulunamadı",
- "No users found for {search}" : "{search} için hiç bir kullanıcı bulunamadı",
- "An error occurred. Please try again" : "Bir hata oluştu. Lütfen yeniden deneyin",
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Otomatik tamamlama için en az {count} karakter gereklidir","Otomatik tamamlama için en az {count} karakter gereklidir"],
+ "This list is maybe truncated - please refine your search term to see more results." : "Bu liste budanmış olabilir. Lütfen daha fazla sonuç görmek için arama ifadenizi daraltın.",
+ "No users or groups found for {search}" : "{search} araması sonucunda uygun bir kullanıcı ya da grup bulunamadı",
+ "No users found for {search}" : "{search} araması sonucunda uygun bir kullanıcı bulunamadı",
+ "An error occurred. Please try again" : "Bir sorun çıktı. Lütfen yeniden deneyin",
"{sharee} (group)" : "{sharee} (grup)",
- "{sharee} (remote)" : "{sharee} (harici)",
+ "{sharee} (remote)" : "{sharee} (uzak)",
+ "{sharee} (email)" : "{sharee} (e-posta)",
"Share" : "Paylaş",
- "Error removing share" : "Paylaşım kaldırılırken hata",
- "Non-existing tag #{tag}" : "Mevcut olmayan etiket #{tag}",
- "restricted" : "yasaklı",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Birleşmiş Bulut Kodu ile diğer sunucular üzerindeki kişiler ile paylaş username@example.com/nextcloud",
+ "Share with users or by mail..." : "Kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users or remote users..." : "Kullanıcılar ya da uzak kullanıcılar ile paylaş...",
+ "Share with users, remote users or by mail..." : "Kullanıcılar, uzak kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users or groups..." : "Kullanıcı ya da gruplar ile paylaş...",
+ "Share with users, groups or by mail..." : "Kullanıcılar, gruplar ya da e-posta ile paylaş...",
+ "Share with users, groups or remote users..." : "Kullanıcılar, gruplar ya da uzak kullanıcılar ile paylaş...",
+ "Share with users, groups, remote users or by mail..." : "Kullanıcılar, gruplar, uzak kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users..." : "Kullanıcılar ile paylaş...",
+ "Error removing share" : "Paylaşımdan kaldırılırken sorun çıktı",
+ "Non-existing tag #{tag}" : "#{tag} etiketi bulunamadı",
+ "restricted" : "kısıtlı",
"invisible" : "görünmez",
"({scope})" : "({scope})",
"Delete" : "Sil",
- "Rename" : "Yeniden adlandır",
- "Collaborative tags" : "İşbirlikçi etiketler",
+ "Rename" : "Yeniden Adlandır",
+ "Collaborative tags" : "İşbirliği etiketleri",
+ "No tags found" : "Herhangi bir etiket bulunamadı",
"The object type is not specified." : "Nesne türü belirtilmemiş.",
- "Enter new" : "Yeni girin",
+ "Enter new" : "Yeni ekle",
"Add" : "Ekle",
"Edit tags" : "Etiketleri düzenle",
- "Error loading dialog template: {error}" : "İletişim şablonu yüklenirken hata: {error}",
- "No tags selected for deletion." : "Silmek için bir etiket seçilmedi.",
+ "Error loading dialog template: {error}" : "İletişim kalıbı yüklenirken sorun çıktı: {error}",
+ "No tags selected for deletion." : "Silinecek bir etiket seçilmemiş.",
"unknown text" : "bilinmeyen metin",
"Hello world!" : "Merhaba dünya!",
"sunny" : "güneşli",
"Hello {name}, the weather is {weather}" : "Merhaba {name}, hava durumu {weather}",
"Hello {name}" : "Merhaba {name}",
- "new" : "Yeni",
- "_download %n file_::_download %n files_" : ["%n dosya indir","%n dosya indir"],
- "An error occurred." : "Bir hata oluştu",
+ "new" : "yeni",
+ "_download %n file_::_download %n files_" : ["%n dosyayı indir","%n dosyayı indir"],
+ "The update is in progress, leaving this page might interrupt the process in some environments." : "Güncelleniyor. Bu sayfadan ayrılırsanız bazı işlemler yarım kalabilir.",
+ "Update to {version}" : "{version} sürümüne güncelle",
+ "An error occurred." : "Bir sorun çıktı.",
"Please reload the page." : "Lütfen sayfayı yeniden yükleyin.",
- "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Güncelleme başarısız oldu. Daha fazla bilgi için bu sorunu kapsayan <a href=\"{url}\">forum gönderimize</a> bakın.",
- "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Güncelleme işlemi maalesef başarısızlığa uğradı. Lütfen bu surunu <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud topluluğu</a>na bildirin. ",
- "The update was successful. Redirecting you to Nextcloud now." : "Güncelleme başarılı oldu. Nextcloud'a yönlendiriliyorsunuz.",
+ "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Uygulama güncellenemedi. Ayrıntılı bilgi almak için bu sorunu kapsayan <a href=\"{url}\">forum iletimize</a> bakın.",
+ "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Uygulama güncellenemedi. Lütfen bu sorunu  <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud topluluğuna</a> bildirin.",
+ "Continue to Nextcloud" : "Nextcloud kullanmaya geç",
+ "The update was successful. Redirecting you to Nextcloud now." : "Uygulama güncellendi. Nextcloud kullanmaya yönlendiriliyorsunuz.",
"Searching other places" : "Diğer konumlarda aranıyor",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["Diğer klasörlerde {count} arama sonucu","Diğer bir klasörde {count} arama sonucu"],
+ "No search results in other folders for '{tag}{filter}{endtag}'" : "'{tag}{filter}{endtag}' araması için diğer klasörlerde uygun bir sonuç yok",
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["Diğer klasörlerde {count} arama sonucu","Diğer klasörlerde {count} arama sonucu"],
"Personal" : "Kişisel",
"Users" : "Kullanıcılar",
"Apps" : "Uygulamalar",
"Admin" : "Yönetici",
"Help" : "Yardım",
- "Access forbidden" : "Erişim yasak",
+ "Access forbidden" : "Erişim engellendi",
"File not found" : "Dosya bulunamadı",
"The specified document has not been found on the server." : "Belirtilen dosya sunucuda bulunamadı.",
- "You can click here to return to %s." : "%s ana sayfasına dönmek için buraya tıklayabilirsiniz.",
- "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Merhaba,\n\nSadece %s sizinle %s paylaşımını yaptığını bildiriyoruz.\nBuradan bakabilirsiniz: %s\n\n",
+ "You can click here to return to %s." : "%s ana sayfasına dönmek için buraya tıklayın.",
+ "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Merhaba,\n\n%s kullanıcısının sizinle %s paylaşımında bulunduğunu bildirmek istedik.\nPaylaşımı şuradan görebilirsiniz: %s\n\n",
"The share will expire on %s." : "Bu paylaşım %s tarihinde sona erecek.",
"Cheers!" : "Hoşça kalın!",
- "Internal Server Error" : "Dahili Sunucu Hatası",
- "The server encountered an internal error and was unable to complete your request." : "Sunucu dahili bir hatayla karşılaştı ve isteğinizi tamamlayamadı.",
- "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Eğer bu hata birden çok kez oluştuysa, lütfen sunucu yöneticisine aşağıdaki teknik ayrıntılar ile birlikte iletişime geçin.",
- "More details can be found in the server log." : "Daha fazla ayrıntı sunucu günlüğünde bulanabilir.",
+ "Internal Server Error" : "Sunucu İçinde Sorun",
+ "The server encountered an internal error and was unable to complete your request." : "Sunucu içinde bir sorun çıktığından isteğiniz tamamlanamadı.",
+ "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Bu sorun bir kereden çok ortaya çıktıysa aşağıdaki teknik ayrıntıları da ekleyerek sunucu yöneticisiyle görüşün.",
+ "More details can be found in the server log." : "Sunucu günlüğünden ayrıntılı bilgi alabilirsiniz.",
"Technical details" : "Teknik ayrıntılar",
"Remote Address: %s" : "Uzak Adres: %s",
- "Request ID: %s" : "İstek Kimliği: %s",
+ "Request ID: %s" : "İstek Kodu: %s",
"Type: %s" : "Tür: %s",
"Code: %s" : "Kod: %s",
- "Message: %s" : "Mesaj: %s",
+ "Message: %s" : "İleti: %s",
"File: %s" : "Dosya: %s",
"Line: %s" : "Satır: %s",
"Trace" : "İz",
"Security warning" : "Güvenlik uyarısı",
- "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için İnternet'ten erişime açık.",
- "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Sunucunuzu nasıl yapılandıracağınız hakkında bilgi almak için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">belgelendirmeye</a> bakabilirsiniz.",
+ "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : ".htaccess dosyası yürürlükte olmadığından veri klasörünüz ve dosyalarınız İnternet üzerinden erişime açık.",
+ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Sunucunuzu nasıl yapılandıracağınız hakkında bilgi almak için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">belgelere</a> bakabilirsiniz.",
"Create an <strong>admin account</strong>" : "Bir <strong>yönetici hesabı</strong> oluşturun",
"Username" : "Kullanıcı Adı",
"Storage & database" : "Depolama ve veritabanı",
"Data folder" : "Veri klasörü",
"Configure the database" : "Veritabanını yapılandır",
- "Only %s is available." : "Sadece %s kullanılabilir.",
+ "Only %s is available." : "Yalnız %s kullanılabilir.",
"Install and activate additional PHP modules to choose other database types." : "Diğer veritabanı türlerini seçebilmek için ek PHP modüllerini kurun ve etkinleştirin.",
- "For more details check out the documentation." : "Daha fazla bilgi için belgelendirmeye bakın.",
+ "For more details check out the documentation." : "Ayrıntılı bilgi almak için belgelere bakın.",
"Database user" : "Veritabanı kullanıcı adı",
"Database password" : "Veritabanı parolası",
"Database name" : "Veritabanı adı",
"Database tablespace" : "Veritabanı tablo alanı",
"Database host" : "Veritabanı sunucusu",
- "Performance warning" : "Performans uyarısı",
+ "Please specify the port number along with the host name (e.g., localhost:5432)." : "Lütfen sunucu adının yanında kapı numarasını da belirtin (Örnek: localhost:5432).",
+ "Performance warning" : "Başarım uyarısı",
"SQLite will be used as database." : "Veritabanı olarak SQLite kullanılacak.",
- "For larger installations we recommend to choose a different database backend." : "Daha büyük kurulumlar için farklı bir veritabanı arka ucu seçmenizi öneriyoruz",
+ "For larger installations we recommend to choose a different database backend." : "Daha büyük kurulumlar için altyapıda farklı bir veritabanı kullanmanız önerilir.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Özellikle dosya eşitleme için masaüstü istemcisi kullanılırken SQLite kullanımı önerilmez.",
"Finish setup" : "Kurulumu tamamla",
"Finishing …" : "Tamamlanıyor ...",
- "Need help?" : "Yardım mı lazım?",
- "See the documentation" : "Belgelendirmeye bak",
- "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Bu uygulama düzgün çalışabilmesi için JavaScript gerektirir. Lütfen {linkstart}JavaScript'i etkinleştirin{linkend} ve sayfayı yeniden yükleyin.",
- "Search" : "Ara",
- "Log out" : "Çıkış yap",
- "Server side authentication failed!" : "Sunucu taraflı yetkilendirme başarısız!",
- "Please contact your administrator." : "Lütfen sistem yöneticiniz ile iletişime geçin.",
- "An internal error occurred." : "Dahili bir hata oluştu.",
- "Please try again or contact your administrator." : "Lütfen yeniden deneyin veya yöneticinizle iletişim kurun.",
- "Username or email" : "Kullanıcı adı ya da eposta",
- "Wrong password. Reset it?" : "Hatalı parola. Sıfırlansın mı?",
- "Wrong password." : "Hatalı parola.",
- "Log in" : "Giriş yap",
+ "Need help?" : "Yardım gerekiyor mu?",
+ "See the documentation" : "Belgelere bakın",
+ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Bu uygulamanın düzgün çalışabilmesi için JavaScript gereklidir. Lütfen {linkstart}JavaScript uygulamasını etkinleştirip{linkend} sayfayı yeniden yükleyin.",
+ "Search" : "Arama",
+ "Log out" : "Oturumu Kapat",
+ "This action requires you to confirm your password:" : "Bu işlemi yapabilmek için parolanızı yazmalısınız:",
+ "Confirm your password" : "Parolanızı onaylayın",
+ "Server side authentication failed!" : "Kimlik sunucu tarafında doğrulanamadı!",
+ "Please contact your administrator." : "Lütfen sistem yöneticiniz ile görüşün.",
+ "An internal error occurred." : "İçeride bir sorun çıktı.",
+ "Please try again or contact your administrator." : "Lütfen yeniden deneyin ya da yöneticinizle görüşün.",
+ "Username or email" : "Kullanıcı adı ya da e-posta",
+ "Wrong password. Reset it?" : "Parola hatalı. Sıfırlamak ister misiniz?",
+ "Wrong password." : "Parola hatalı.",
+ "Log in" : "Oturum Aç",
"Stay logged in" : "Bağlı kal",
- "Alternative Logins" : "Alternatif Girişler",
- "Use the following link to reset your password: {link}" : "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {link}",
+ "Alternative Logins" : "Alternatif Oturum Açmalar",
+ "Use the following link to reset your password: {link}" : "Parolanızı sıfırlamak için şu bağlantıyı kullanın: {link}",
"New password" : "Yeni parola",
"New Password" : "Yeni Parola",
"Reset password" : "Parolayı sıfırla",
- "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Merhaba, <br><br>%s kullanıcısının sizinle <strong>%s</strong> paylaşımında bulunduğunu bildirmek istedik.<br><a href=\"%s\">Paylaşımı gör!</a><br><br>",
- "This Nextcloud instance is currently in single user mode." : "Bu Nextcloud örneği şu anda tek kullanıcı kipinde.",
- "This means only administrators can use the instance." : "Bu, örneği sadece yöneticiler kullanabilir demektir.",
- "Contact your system administrator if this message persists or appeared unexpectedly." : "Eğer bu ileti görünmeye devam ederse veya beklenmedik şekilde ortaya çıkmışsa sistem yöneticinizle iletişime geçin.",
- "Thank you for your patience." : "Sabrınız için teşekkür ederiz.",
- "You are accessing the server from an untrusted domain." : "Sunucuya güvenilmeyen bir alan adından ulaşıyorsunuz.",
- "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." : "Lütfen yöneticiniz ile iletişime geçin. Eğer bu örneğin bir yöneticisi iseniz, config/config.php dosyası içerisindeki \"trusted_domain\" ayarını yapılandırın. Bu yapılandırmanın bir örneği config/config.sample.php dosyasında verilmiştir.",
- "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Yapılandırmanıza bağlı olarak, bir yönetici olarak bu alan adına güvenmek için aşağıdaki düğmeyi de kullanabilirsiniz.",
- "Add \"%s\" as trusted domain" : "\"%s\" alan adını güvenilir olarak ekle",
- "App update required" : "Uygulama güncellemesi gerekli",
+ "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Merhaba, <br><br>%s kullanıcısının sizinle <strong>%s</strong> paylaşımında bulunduğunu bildirmek istedik.<br><a href=\"%s\">Paylaşımı şuradan görebilirsiniz!</a><br><br>",
+ "This Nextcloud instance is currently in single user mode." : "Bu Nextcloud kopyası şu anda tek kullanıcı kipinde.",
+ "This means only administrators can use the instance." : "Yani bu kopya yalnız yöneticiler tarafından kullanılabilir.",
+ "Contact your system administrator if this message persists or appeared unexpectedly." : "Bu ileti görüntülenmeye devam ediyor ya da beklenmedik şekilde ortaya çıkıyorsa sistem yöneticinizle görüşün.",
+ "Thank you for your patience." : "Anlayışınız için teşekkür ederiz.",
+ "Two-factor authentication" : "İki aşamalı kimlik doğrulama",
+ "Enhanced security is enabled for your account. Please authenticate using a second factor." : "Hesabınız için gelişmiş güvenlik etkinleştirildi. Lütfen kimlik doğrulaması için ikinci aşamayı kullanıın.",
+ "Cancel log in" : "Oturum açmaktan vazgeç",
+ "Use backup code" : "Yedek kodu kullanacağım",
+ "Error while validating your second factor" : "İkinci aşama doğrulanırken bir sorun çıktı",
+ "You are accessing the server from an untrusted domain." : "Sunucuya güvenilmeyen bir etki alanından erişiyorsunuz.",
+ "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." : "Lütfen yöneticiniz ile görüşün. Bu kopyanın yöneticisi iseniz, config/config.php dosyası içerisindeki \"trusted_domain\" ayarını yapın. Örnek yapılandırma config/config.sample.php dosyasında görülebilir.",
+ "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Yapılandırmanıza bağlı olarak, bir yönetici olarak bu etki alanına güvenmek için aşağıdaki düğmeyi de kullanabilirsiniz.",
+ "Add \"%s\" as trusted domain" : "\"%s\" etki alanını güvenilir olarak ekle",
+ "App update required" : "Uygulamanın güncellenmesi gerekiyor",
"%s will be updated to version %s" : "%s, %s sürümüne güncellenecek",
- "These apps will be updated:" : "Bu uygulamalar güncellenecek:",
- "These incompatible apps will be disabled:" : "Bu uyumsuz uygulamalar devre dışı bırakılacak:",
+ "These apps will be updated:" : "Şu uygulamalar güncellenecek:",
+ "These incompatible apps will be disabled:" : "Şu uyumsuz uygulamalar devre dışı bırakılacak:",
"The theme %s has been disabled." : "%s teması devre dışı bırakıldı.",
- "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Devam etmeden önce lütfen veritabanının, yapılandırma ve veri klasörlerinin yedeklenmiş olduğundan emin olun.",
+ "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Devam etmeden önce lütfen veritabanı, yapılandırma klasörü ve veri klasörünün yedeklenmiş olduğundan emin olun.",
"Start update" : "Güncellemeyi başlat",
- "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Daha büyük kurulumlarda zaman aşımlarının önüne geçmek için, kurulum dizininizden aşağıdaki komutu da çalıştırabilirsiniz:",
- "Detailed logs" : "Ayrıntılı loglar",
- "Update needed" : "Güncelleme gerekli",
- "Please use the command line updater because you have a big instance." : "Lütfen güncelleme işlemini gerçekleştirmek için komut satırını kullanın. ",
- "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Yardım için, <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dökümanı</a> görüntüleyin.",
- "This %s instance is currently in maintenance mode, which may take a while." : "Bu %s örneği şu anda bakım kipinde, bu biraz zaman alabilir.",
- "This page will refresh itself when the %s instance is available again." : "Bu sayfa, %s örneği tekrar kullanılabilir olduğunda kendini yenileyecektir.",
- "Error loading tags" : "Etiketler yüklenirken hata",
- "Tag already exists" : "Etiket zaten mevcut",
- "Error deleting tag(s)" : "Etiket(ler) silinirken hata",
- "Error tagging" : "Etiketleme hatası",
- "Error untagging" : "Etiket kaldırma hatası",
- "Error favoriting" : "Beğenilirken hata",
- "Error unfavoriting" : "Beğeniden kaldırılırken hata",
- "Couldn't send mail to following users: %s " : "Şu kullanıcılara posta gönderilemedi: %s",
+ "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Daha büyük kurulumlarda zaman aşımlarının önüne geçmek için, kurulum klasörünüzden şu komutu da çalıştırabilirsiniz:",
+ "Detailed logs" : "Ayrıntılı günlükler",
+ "Update needed" : "Güncelleme gerekiyor",
+ "Please use the command line updater because you have a big instance." : "Kopyanız oldukça büyük olduğundan güncelleme için komut satırını kullanın.",
+ "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Yardım almak için, <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">belgelere</a> bakın.",
+ "This %s instance is currently in maintenance mode, which may take a while." : "Bu %s kopyası şu anda bakım kipinde, bu işlem biraz zaman alabilir.",
+ "This page will refresh itself when the %s instance is available again." : "Bu sayfa, %s kopyası yeniden kullanılabilir olduğunda kendini yenileyecek.",
+ "Error loading tags" : "Etiketler yüklenirken sorun çıktı",
+ "Tag already exists" : "Etiket zaten var",
+ "Error deleting tag(s)" : "Etiket(ler) silinirken sorun çıktı",
+ "Error tagging" : "Etiketlenirken sorun çıktı",
+ "Error untagging" : "Etiket kaldırılırken sorun çıktı",
+ "Error favoriting" : "Beğenilirken sorun çıktı",
+ "Error unfavoriting" : "Beğenilenlerden kaldırılırken sorun çıktı",
+ "Couldn't send mail to following users: %s " : "E-posta şu kullanıcılara gönderilemedi: %s",
"Sunday" : "Pazar",
"Monday" : "Pazartesi",
"Tuesday" : "Salı",
@@ -259,11 +307,11 @@ OC.L10N.register(
"Saturday" : "Cumartesi",
"Sun." : "Paz.",
"Mon." : "Pzt.",
- "Tue." : "Sal.",
- "Wed." : "Çar.",
- "Thu." : "Per.",
- "Fri." : "Cum.",
- "Sat." : "Cmt.",
+ "Tue." : "Sal",
+ "Wed." : "Çar",
+ "Thu." : "Per",
+ "Fri." : "Cum",
+ "Sat." : "Cmt",
"Su" : "Pa",
"Mo" : "Pt",
"Tu" : "Sa",
@@ -283,42 +331,46 @@ OC.L10N.register(
"October" : "Ekim",
"November" : "Kasım",
"December" : "Aralık",
- "Jan." : "Oca.",
- "Feb." : "Şbt.",
- "Mar." : "Mar.",
+ "Jan." : "Oca",
+ "Feb." : "Şub",
+ "Mar." : "Mar",
"Apr." : "Nis",
- "May." : "May.",
- "Jun." : "Haz.",
- "Jul." : "Tem.",
- "Aug." : "Ağu.",
- "Sep." : "Eyl.",
- "Oct." : "Eki.",
- "Nov." : "Kas.",
- "Dec." : "Ara.",
- "Problem loading page, reloading in 5 seconds" : "Sayfa yüklemesinde problem oluştu, 5 saniye sonra sayfa tekrar yüklenecek",
- "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Kurtarma anahtarını etkinleştirmemişseniz, parola sıfırlama işleminden sonra verilerinize erişmeniz imkansız olacak.<br />Ne yaptığınızdan emin değilseniz, devam etmeden önce sistem yöneticiniz ile iletişime geçin.<br />Gerçekten devam etmek istiyor musunuz?",
- "The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Ters vekil sunucu başlık yapılandırmanız hatalı veya ownCloud'a güvenilen bir vekil sunucudan erişiyorsunuz. Eğer erişiminiz güvenilen bir vekil sunucu aracılığıyla gerçekleşmiyorsa bu bir güvenlik sorunudur ve bir saldırganın IP adresini farklıymış gibi göstermesine neden olabilir. Daha fazla bilgiyi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulabilirsiniz.",
+ "May." : "May",
+ "Jun." : "Haz",
+ "Jul." : "Tem",
+ "Aug." : "Ağu",
+ "Sep." : "Eyl",
+ "Oct." : "Eki",
+ "Nov." : "Kas",
+ "Dec." : "Ara",
+ "Problem loading page, reloading in 5 seconds" : "Sayfa yüklenirken bir sorun çıktı, Sayfa 5 saniye içinde yeniden yüklenecek",
+ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Kurtarma anahtarını etkinleştirmediyseniz, parola sıfırlama işleminden sonra verilerinize erişemeyeceksiniz.<br />Ne yapacağınızdan emin değilseniz, ilerlemeden önce sistem yöneticiniz ile görüşün.<br />Gerçekten devam etmek istiyor musunuz?",
+ "This server has no working Internet connection. 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." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. 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 sunucunun İnternet bağlantısını etkinleştirmeniz önerilir.",
+ "The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Ters vekil sunucu üst bilgi yapılandırmanız hatalı ya da ownCloud üzerine güvenilen bir vekil sunucudan erişiyorsunuz. ownCloud üzerine güvenilen bir vekil sunucudan erişmiyorsanız bu bir güvenlik sorunudur ve bir saldırganın IP adresini farklıymış gibi göstermesine izin verebilir. Ayrıntlı bilgi almak için <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> bakabilirsiniz.",
"Hide file listing" : "Dosya listelemesini gizle",
"Sending ..." : "Gönderiliyor...",
"Email sent" : "E-posta gönderildi",
- "Send link via email" : "Linki eposta ile gönder",
+ "Send link via email" : "Bağlantıyı e-posta ile gönder",
"notify by email" : "e-posta ile bildir",
"can share" : "paylaşabilir",
- "create" : "oluştur",
- "change" : "değiştir",
- "delete" : "sil",
+ "create" : "oluşturabilir",
+ "change" : "düzenleyebilir",
+ "delete" : "silebilir",
"{sharee} (at {server})" : "{sharee} ({server} sunucusunda)",
"Share with users…" : "Kullanıcılarla paylaş...",
- "Share with users, groups or remote users…" : "Kullanıcılar, gruplar veya uzak kullanıcılarla paylaş ...",
- "Share with users or groups…" : "Kullanıcı ve gruplarla paylaş...",
- "Share with users or remote users…" : "Kullanıcılar, gruplar veya uzak kullanıcılarla paylaş ...",
+ "Share with users, groups or remote users…" : "Kullanıcılar, gruplar ya da uzak kullanıcılarla paylaş...",
+ "Share with users or groups…" : "Kullanıcı ya da gruplarla paylaş...",
+ "Share with users or remote users…" : "Kullanıcılar ya da uzak kullanıcılarla paylaş...",
"Warning" : "Uyarı",
- "Error while sending notification" : "Bildirim gönderilirken hata",
- "No search results in other folders" : "Diğer klasörlerde arama sonucu yok",
- "Two-step verification" : "2 adımlı doğrulama",
- "Enhanced security has been enabled for your account. Please authenticate using a second factor." : "Hesabınız için gelişmiş güvenlik etkinleştirildi. Lütfen ikinci etkeni kullanarak kimlik doğrulaması yapın.",
- "Cancel login" : "Girişi iptal et",
- "Please authenticate using the selected factor." : "Lütfen seçilen etkeni kullanarak kimlik doğrulaması yapın.",
- "An error occured while verifying the token" : "Anahtarı(token) doğrularken bir hata oluştu"
+ "Error while sending notification" : "Bildirim gönderilirken sorun çıktı",
+ "The upgrade is in progress, leaving this page might interrupt the process in some environments." : "Güncelleme yapılıyor, sayfadan ayrılmak bazı işlemleri kesebilir.",
+ "Updating to {version}" : "{version} sürümüne güncelleniyor",
+ "The update was successful. There were warnings." : "Güncelleme tamamlandı. Bazı uyarılar var.",
+ "No search results in other folders" : "Arama için diğer klasörlerde bir sonuç yok",
+ "Two-step verification" : "İki aşamalı doğrulama",
+ "Enhanced security has been enabled for your account. Please authenticate using a second factor." : "Hesabınız için gelişmiş güvenlik özellikleri etkinleştirildi. Lütfen ikinci etkeni kullanarak kimliği doğrulayın.",
+ "Cancel login" : "Oturum açmaktan vazgeç",
+ "Please authenticate using the selected factor." : "Lütfen seçilmiş etkeni kullanarak kimliğinizi doğrulayın.",
+ "An error occured while verifying the token" : "Kod doğrulanırken bir sorun çıktı"
},
"nplurals=2; plural=(n > 1);");
diff --git a/core/l10n/tr.json b/core/l10n/tr.json
index 09737016722..4cbaec50d59 100644
--- a/core/l10n/tr.json
+++ b/core/l10n/tr.json
@@ -1,253 +1,301 @@
{ "translations": {
"Please select a file." : "Lütfen bir dosya seçin.",
"File is too big" : "Dosya çok büyük",
- "Invalid file provided" : "Geçersiz dosya sağlandı",
- "No image or file provided" : "Resim veya dosya belirtilmedi",
- "Unknown filetype" : "Bilinmeyen dosya türü",
- "Invalid image" : "Geçersiz resim",
- "An error occurred. Please contact your admin." : "Bir hata oluştu. Lütfen yöneticinize başvurun.",
- "No temporary profile picture available, try again" : "Kullanılabilir geçici profil resmi yok, tekrar deneyin",
- "No crop data provided" : "Kesme verisi sağlanmamış",
- "No valid crop data provided" : "Geçerli kırpma verisi sağlanmadı",
- "Crop is not square" : "Kırpma kare değil",
- "Couldn't reset password because the token is invalid" : "Belirteç geçersiz olduğundan parola sıfırlanamadı",
- "Couldn't reset password because the token is expired" : "Jeton zaman aşımına uğradığından parola sıfırlanamadı",
+ "The selected file is not an image." : "Seçilmiş dosya bir görsel dosyası değil.",
+ "The selected file cannot be read." : "Seçilmiş dosya okunamadı.",
+ "Invalid file provided" : "Belirtilen dosya geçersiz",
+ "No image or file provided" : "Bir görsel ya da dosya belirtilmemiş",
+ "Unknown filetype" : "Dosya türü bilinmiyor",
+ "Invalid image" : "Görsel geçersiz",
+ "An error occurred. Please contact your admin." : "Bir sorun çıktı. Lütfen yöneticinizle görüşün.",
+ "No temporary profile picture available, try again" : "Kullanılabilecek geçici bir profil görseli bulunamadı. Yeniden deneyin",
+ "No crop data provided" : "Kırpma verileri belirtilmemiş",
+ "No valid crop data provided" : "Geçerli bir kırpma verisi belirtilmemiş",
+ "Crop is not square" : "Kırpma kare şeklinde değil",
+ "Couldn't reset password because the token is invalid" : "Kod geçersiz olduğundan parola sıfırlanamadı",
+ "Couldn't reset password because the token is expired" : "Kodun süresi geçtiğinden parola sıfırlanamadı",
"Couldn't send reset email. Please make sure your username is correct." : "Sıfırlama e-postası gönderilemedi. Lütfen kullanıcı adınızın doğru olduğundan emin olun.",
- "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Sıfırlama e-postası, bu kullanıcı için bir e-posta adresi olmadığından gönderilemedi. Lütfen yöneticiniz ile iletişime geçin.",
+ "Could not send reset email because there is no email address for this username. Please contact your administrator." : "Bu kullanıcı için bir e-posta adresi olmadığından sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile görüşün.",
"%s password reset" : "%s parola sıfırlama",
- "Couldn't send reset email. Please contact your administrator." : "Sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile iletişime geçin.",
+ "Couldn't send reset email. Please contact your administrator." : "Sıfırlama e-postası gönderilemedi. Lütfen yöneticiniz ile görüşün.",
"Preparing update" : "Güncelleme hazırlanıyor",
"[%d / %d]: %s" : "[%d / %d]: %s",
"Repair warning: " : "Onarım uyarısı:",
"Repair error: " : "Onarım hatası:",
- "Please use the command line updater because automatic updating is disabled in the config.php." : "Otomatik güncellemeler config.php dosyasından pasif duruma getirildiği için, lütfen komut satırı güncelleyicisini kullanın. Oto",
- "[%d / %d]: Checking table %s" : "[%d / %d]: Tablo kontroi ediliyor %s",
+ "Please use the command line updater because automatic updating is disabled in the config.php." : "Otomatik güncellemeler config.php dosyasında devre dışı bırakılmış olduğundan, komut satırı güncelleyicisini kullanın.",
+ "[%d / %d]: Checking table %s" : "[%d / %d]: %s tablosu denetleniyor",
"Turned on maintenance mode" : "Bakım kipi etkinleştirildi",
- "Turned off maintenance mode" : "Bakım kipi kapatıldı",
+ "Turned off maintenance mode" : "Bakım kipi devre dışı bırakıldı",
"Maintenance mode is kept active" : "Bakım kipi etkin tutuldu",
"Updating database schema" : "Veritabanı şeması güncelleniyor",
"Updated database" : "Veritabanı güncellendi",
- "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Veritabanı şeması güncellenebilirliği denetleniyor (Veritabanının büyüklüğüne bağlı olarak uzun sürebilir)",
- "Checked database schema update" : "Veritabanı şema güncellemesi denetlendi",
- "Checking updates of apps" : "Uygulamaların güncellemeleri denetleniyor",
- "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "%s için veritabanı güncellenebilirliği denetleniyor (Veritabanının büyüklüğüne bağlı olarak uzun sürebilir)",
+ "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Veritabanı şeması güncellemesi denetleniyor (veritabanının büyüklüğüne bağlı olarak uzun sürebilir)",
+ "Checked database schema update" : "Veritabanı şeması güncellemesi denetlendi",
+ "Checking updates of apps" : "Uygulama güncellemeleri denetleniyor",
+ "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "%s için veritabanı şeması güncellemesi denetleniyor (veritabanının büyüklüğüne bağlı olarak uzun sürebilir)",
"Checked database schema update for apps" : "Uygulamalar için veritabanı şema güncellemesi denetlendi",
"Updated \"%s\" to %s" : "\"%s\", %s sürümüne güncellendi",
- "Set log level to debug" : "Günlük seviyesini hata ayıklama olarak ayarla",
- "Reset log level" : "Günlük seviyesini sıfırla",
+ "Set log level to debug" : "Günlükleme düzeyini Hata Ayıklama olarak ayarla",
+ "Reset log level" : "Günlükleme düzeyini sıfırla",
"Starting code integrity check" : "Kod bütünlük sınaması başlatılıyor",
"Finished code integrity check" : "Kod bütünlük sınaması bitti",
- "%s (3rdparty)" : "%s (3. parti)",
+ "%s (3rdparty)" : "%s (3. taraf)",
"%s (incompatible)" : "%s (uyumsuz)",
"Following apps have been disabled: %s" : "Aşağıdaki uygulamalar devre dışı bırakıldı: %s",
"Already up to date" : "Zaten güncel",
- "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Kod bütünlük sınamasında sorunlar oluştu. Daha fazla bilgi…</a>",
+ "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Kod bütünlük sınamasında sorunlar çıktı. Ayrıntılı bilgi…</a>",
"Settings" : "Ayarlar",
+ "Connection to server lost" : "Sunucu bağlantısı kesildi",
+ "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Sayfa yüklenirken bir sorun çıktı. %n saniye sonra yeniden yüklenecek","Sayfa yüklenirken bir sorun çıktı. %n saniye sonra yeniden yüklenecek"],
"Saving..." : "Kaydediliyor...",
- "Dismiss" : "İptal et",
+ "Dismiss" : "Yoksay",
+ "This action requires you to confirm your password" : "Bu işlemi yapabilmek için parolanızı yazmalısınız",
+ "Authentication required" : "Kimlik doğrulaması gerekli",
"Password" : "Parola",
"Cancel" : "İptal",
- "seconds ago" : "saniyeler önce",
- "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Parolanızı değiştirme bağlantısı e-posta adresinize gönderildi. Makul bir süre içerisinde almadıysanız spam/gereksiz klasörlerini kontrol ediniz.<br>Bu konumlarda da yoksa yerel sistem yöneticinize sorunuz.",
+ "Confirm" : "Onayla",
+ "Failed to authenticate, try again" : "Kimlik doğrulanamadı, yeniden deneyin",
+ "seconds ago" : "saniye önce",
+ "Logging in …" : "Oturum açılıyor ...",
+ "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Parola sıfırlama bağlantısı e-posta adresinize gönderildi. Bir kaç dakika içinde e-postayı almazsanız spam/gereksiz klasörlerinize bakın.<br>E-postayı göremiyorsanız yerel sistem yöneticinizle görüşün.",
+ "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Parola sıfırlama işleminden sonra verilerinize erişemeyeceksiniz.<br />Ne yapacağınızdan emin değilseniz, ilerlemeden önce sistem yöneticiniz ile görüşün.<br />Gerçekten devam etmek istiyor musunuz?",
"I know what I'm doing" : "Ne yaptığımı biliyorum",
- "Password can not be changed. Please contact your administrator." : "Parola değiştirilemedi. Lütfen yöneticiniz ile iletişime geçin.",
+ "Password can not be changed. Please contact your administrator." : "Parola değiştirilemedi. Lütfen yöneticiniz ile görüşün.",
"No" : "Hayır",
"Yes" : "Evet",
- "Choose" : "Seç",
- "Error loading file picker template: {error}" : "Dosya seçici şablonu yüklenirken hata: {error}",
+ "No files in here" : "Burada herhangi bir dosya yok",
+ "Choose" : "Seçin",
+ "Error loading file picker template: {error}" : "Dosya seçme kalıbı yüklenirken sorun çıktı: {error}",
"Ok" : "Tamam",
- "Error loading message template: {error}" : "İleti şablonu yüklenirken hata: {error}",
+ "Error loading message template: {error}" : "İleti kalıbı yüklenirken sorun çıktı: {error}",
"read-only" : "salt okunur",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} dosya çakışması","{count} dosya çakışması"],
"One file conflict" : "Bir dosya çakışması",
"New Files" : "Yeni Dosyalar",
- "Already existing files" : "Zaten mevcut olan dosyalar",
+ "Already existing files" : "Zaten var olan dosyalar",
"Which files do you want to keep?" : "Hangi dosyaları saklamak istiyorsunuz?",
- "If you select both versions, the copied file will have a number added to its name." : "İki sürümü de seçerseniz, kopyalanan dosyanın ismine bir sayı ilave edilecektir.",
+ "If you select both versions, the copied file will have a number added to its name." : "İki sürümü de seçerseniz, kopyalanan dosyanın adına bir sayı eklenir.",
"Continue" : "Devam et",
- "(all selected)" : "(tümü seçildi)",
- "({count} selected)" : "({count} seçildi)",
- "Error loading file exists template" : "Dosya mevcut şablonu yüklenirken hata",
- "Very weak password" : "Çok güçsüz parola",
- "Weak password" : "Güçsüz parola",
- "So-so password" : "Normal parola",
- "Good password" : "İyi parola",
- "Strong password" : "Güçlü parola",
- "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Web sunucunuz dosya transferi için düzgün bir şekilde yapılandırılmamış. WevDAV arabirimini sorunlu gözüküyor.",
- "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Web sunucunuz \"{url}\" adresini çözümleyecek şekilde uygun yapılandırılmamış. Daha fazla bilgi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulunabilir.",
- "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." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. Birden fazla uç noktaya ulaşılamıyor. Bu, harici depolama alanı bağlama, güncelleştirme bildirimleri veya üçüncü parti uygulama kurma gibi bazı özellikler çalışmayacak demektir. Uzak dosyalara erişim ve e-posta ile bildirim gönderme de çalışmayacaktır. Eğer bu özelliklerin tamamını kullanmak istiyorsanız, sunucu için İnternet bağlantısını etkinleştirmenizi öneriyoruz.",
- "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Hafıza önbelleği yapılandırılmamış. İmkanı varsa performansı iyileştirmek için bir önbellek yapılandırması yapın. Daha fazla bilgiyi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulabilirsiniz.",
- "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Güvenlik nedeniyle çokça önerilen /dev/urandom PHP tarafından okunamıyor. Daha fazla bilgiyi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulabilirsiniz.",
- "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Halen PHP {version} kullanıyorsunuz. Dağıtımınız destekler desteklemez PHP sürümünüzü güncelleyerek <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performans ve güvenlik geliştirmelerinden</a> faydalanmanızı öneriyoruz.",
- "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached dağıtık bellek olarak yapılandırılmış ama hatalı PHP \"memcache\" modülü kurulmuş. \\OC\\Memcache\\Memcached sadece \"memcached\" modülünü destekler, \"memcache\"i değil. <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wikisinde iki modül hakkında da</a> bilgi bulabilirsiniz.",
- "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Bazı dosyalar bütünlük kontrolünü geçemedi. Bu sorunun üstesinden nasıl geleceğinizi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulabilirsiniz. (<a href=\"{codeIntegrityDownloadEndpoint}\">Geçersiz dosyaların listesi…</a> / <a href=\"{rescanEndpoint}\">Tekrar tara…</a>)",
- "Error occurred while checking server setup" : "Sunucu yapılandırması denetlenirken hata oluştu",
- "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 dizininiz ve dosyalarınız büyük ihtimalle İnternet üzerinden erişilebilir. .htaccess dosyası çalışmıyor. Web sunucunuzu yapılandırarak data dizinine erişimi kapatmanızı veya data dizinini web sunucu belge dizini dışına almanızı şiddetle tavsiye ederiz.",
- "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 başlığı \"{expected}\" ile eşleşmek üzere yapılandırılmamış. Bu muhtemel bir güvenlik veya gizlilik riski olduğundan bu ayarı düzeltmenizi öneririz.",
- "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP başlığı en azından\"{seconds}\" saniyedir yapılandırılmamış. Gelişmiş güvenlik için <a href=\"{docUrl}\" rel=\"noreferrer\">güvenlik ipuçlarında</a> tarif edildiği gibi HSTS'nin etkinleştirilmesini öneririz.",
- "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Bu siteye HTTP aracılığıyla erişiyorsunuz. Sunucunuzu <a href=\"{docUrl}\">güvenlik ipuçlarımızda</a> gösterildiği şekilde HTTPS kullanımını zorlamak üzere yapılandırmanızı şiddetle öneririz.",
- "Shared" : "Paylaşılan",
+ "(all selected)" : "(tüm seçilmişler)",
+ "({count} selected)" : "({count} seçilmiş)",
+ "Error loading file exists template" : "Dosya var kalıbı yüklenirken sorun çıktı",
+ "Pending" : "Bekliyor",
+ "Very weak password" : "Parola çok zayıf",
+ "Weak password" : "Parola zayıf",
+ "So-so password" : "Parola idare eder",
+ "Good password" : "Parola iyi",
+ "Strong password" : "Parola güçlü",
+ "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Web sunucunuz dosya eşitlemesi için doğru şekilde ayarlanmamış. WevDAV arabirimi sorunlu görünüyor.",
+ "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Web sunucunuz \"{url}\" adresi çözümlemesi için doğru şekilde ayarlanmamış. Ayrıntılı bilgi almak için <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> 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. We suggest to enable Internet connection for this server if you want to have 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 sunucunun İnternet bağlantısını etkinleştirmeniz önerilir.",
+ "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> bakabilirsiniz.",
+ "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Güvenlik nedeniyle kullanılması önerilen /dev/urandom klasörü PHP tarafından okunamıyor. Ayrıntılı bilgi almak için <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> bakabilirsiniz.",
+ "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Şu anda PHP {version} sürümünü kullanıyorsunuz. Kullandığınız Linux dağıtımı desteklediği zaman PHP sürümünüzü güncelleyerek <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">PHP grubu tarafından sağlanan başarım ve güvenlik geliştirmelerinden</a> faydalanmanızı öneririz.",
+ "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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Ters vekil sunucu üst bilgi yapılandırmanız hatalı ya da Nextcloud üzerine güvenilen bir vekil sunucudan erişiyorsunuz. Nextcloud üzerine güvenilen bir vekil sunucudan erişmiyorsanız bu bir güvenlik sorunudur ve bir saldırganın IP adresini farklıymış gibi göstermesine izin verebilir. Ayrıntlı bilgi almak için <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> 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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached dağıtık bellek olarak yapılandırılmış ancak kurulmuş PHP \"memcache\" modülü hatalı. \\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 <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki sayfasına</a> bakabilirsiniz.",
+ "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Bazı dosyalar bütünlük denetiminden geçemedi. Bu sorunun çözümü ile ilgili bilgi almak için <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> bakabilirsiniz. (<a href=\"{codeIntegrityDownloadEndpoint}\">Geçersiz dosyaların listesi…</a> / <a href=\"{rescanEndpoint}\">Yeniden Tara…</a>)",
+ "The PHP Opcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend ↗</a> to use following settings in the <code>php.ini</code>:" : "PHP Opcache doğru şekilde ayarlanmamış. Daha iyi sonuç almak için  <code>php.ini</code> dosyasında <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">şu ayarların kullanılması önerilir ↗</a>:",
+ "Error occurred while checking server setup" : "Sunucu ayarları denetlenirken bir sorun çıktı",
+ "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." : "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 configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "\"{header}\" HTTP üst bilgisi \"{expected}\" ile eşleşmek üzere yapılandırılmamış. Bu durum muhtemel bir güvenlik ya da gizlilik riski oluşturduğundan bu ayarı düzeltmeniz önerilir.",
+ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP üst bilgisi en azından\"{seconds}\" saniyedir yapılandırılmamış. Gelişmiş güvenlik sağlamak için <a href=\"{docUrl}\" rel=\"noreferrer\">güvenlik ipuçlarında</a> anlatıldığı şekilde HSTS özelliğinin etkinleştirilmesi önerilir.",
+ "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Bu siteye HTTP üzerinde erişiyorsunuz. Sunucunuzu <a href=\"{docUrl}\">güvenlik ipuçlarında</a> anlatıldığı şekilde HTTPS kullanımını zorlayacak şekilde yapılandırmanız önemle önerilir.",
+ "Shared" : "Paylaşılmış",
"Shared with {recipients}" : "{recipients} ile paylaşılmış",
"Error" : "Hata",
- "Error while sharing" : "Paylaşım sırasında hata",
- "Error while unsharing" : "Paylaşım iptal edilirken hata",
- "Error setting expiration date" : "Son kullanma tarihi ayarlama hatası",
- "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan en geç {days} gün sonra sona erecek",
+ "Error while sharing" : "Paylaşılırken sorun çıktı",
+ "Error while unsharing" : "Paylaşımdan kaldırılırken sorun çıktı",
+ "Error setting expiration date" : "Son kullanma tarihi ayarlanırken sorun çıktı",
+ "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan {days} gün sonra kullanımdan kaldırılacak",
"Set expiration date" : "Son kullanma tarihini ayarla",
- "Expiration" : "Bitiş",
- "Expiration date" : "Son kullanım tarihi",
+ "Expiration" : "Son kullanma",
+ "Expiration date" : "Son kullanma tarihi",
"Choose a password for the public link" : "Herkese açık bağlantı için bir parola seçin",
"Copied!" : "Kopyalandı!",
+ "Copy" : "Kopyala",
"Not supported!" : "Desteklenmiyor!",
- "Press ⌘-C to copy." : "Kopyalamak için ⌘-C kullanın.",
- "Press Ctrl-C to copy." : "Kopyalamak için Ctrl-C kullanın.",
- "Resharing is not allowed" : "Tekrar paylaşmaya izin verilmiyor",
+ "Press ⌘-C to copy." : "Kopyalamak için ⌘-C tuşlarına basın.",
+ "Press Ctrl-C to copy." : "Kopyalamak için Ctrl-C tuşlarına basın.",
+ "Resharing is not allowed" : "Yeniden paylaşıma izin verilmiyor",
"Share link" : "Paylaşma bağlantısı",
"Link" : "Bağlantı",
"Password protect" : "Parola koruması",
- "Allow editing" : "Düzenlemeye izin ver",
+ "Allow upload and editing" : "Yükleme ve düzenleme yapılabilsin",
+ "Allow editing" : "Düzenleme yapılabilsin",
+ "File drop (upload only)" : "Dosya bırakma (yalnız yükleme)",
"Email link to person" : "Bağlantıyı e-posta ile gönder",
"Send" : "Gönder",
- "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaştırılmış",
- "Shared with you by {owner}" : "{owner} tarafından sizinle paylaşıldı",
+ "Shared with you and the group {group} by {owner}" : "{owner} tarafından sizinle ve {group} ile paylaşılmış",
+ "Shared with you by {owner}" : "{owner} tarafından sizinle paylaşılmış",
+ "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} bağlantı ile paylaşılmış",
"group" : "grup",
"remote" : "uzak",
- "Unshare" : "Paylaşmayı Kaldır",
+ "email" : "e-posta",
+ "Unshare" : "Paylaşımdan Kaldır",
+ "can reshare" : "yeniden paylaşabilir",
"can edit" : "düzenleyebilir",
- "access control" : "erişim kontrolü",
+ "can create" : "ekleyebilir",
+ "can change" : "değiştirebilir",
+ "can delete" : "silebilir",
+ "access control" : "erişim denetimi",
"Could not unshare" : "Paylaşım kaldırılamadı",
"Share details could not be loaded for this item." : "Bu öge için paylaşma ayrıntıları yüklenemedi.",
- "No users or groups found for {search}" : "{search} için kullanıcı veya grup bulunamadı",
- "No users found for {search}" : "{search} için hiç bir kullanıcı bulunamadı",
- "An error occurred. Please try again" : "Bir hata oluştu. Lütfen yeniden deneyin",
+ "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Otomatik tamamlama için en az {count} karakter gereklidir","Otomatik tamamlama için en az {count} karakter gereklidir"],
+ "This list is maybe truncated - please refine your search term to see more results." : "Bu liste budanmış olabilir. Lütfen daha fazla sonuç görmek için arama ifadenizi daraltın.",
+ "No users or groups found for {search}" : "{search} araması sonucunda uygun bir kullanıcı ya da grup bulunamadı",
+ "No users found for {search}" : "{search} araması sonucunda uygun bir kullanıcı bulunamadı",
+ "An error occurred. Please try again" : "Bir sorun çıktı. Lütfen yeniden deneyin",
"{sharee} (group)" : "{sharee} (grup)",
- "{sharee} (remote)" : "{sharee} (harici)",
+ "{sharee} (remote)" : "{sharee} (uzak)",
+ "{sharee} (email)" : "{sharee} (e-posta)",
"Share" : "Paylaş",
- "Error removing share" : "Paylaşım kaldırılırken hata",
- "Non-existing tag #{tag}" : "Mevcut olmayan etiket #{tag}",
- "restricted" : "yasaklı",
+ "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Birleşmiş Bulut Kodu ile diğer sunucular üzerindeki kişiler ile paylaş username@example.com/nextcloud",
+ "Share with users or by mail..." : "Kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users or remote users..." : "Kullanıcılar ya da uzak kullanıcılar ile paylaş...",
+ "Share with users, remote users or by mail..." : "Kullanıcılar, uzak kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users or groups..." : "Kullanıcı ya da gruplar ile paylaş...",
+ "Share with users, groups or by mail..." : "Kullanıcılar, gruplar ya da e-posta ile paylaş...",
+ "Share with users, groups or remote users..." : "Kullanıcılar, gruplar ya da uzak kullanıcılar ile paylaş...",
+ "Share with users, groups, remote users or by mail..." : "Kullanıcılar, gruplar, uzak kullanıcılar ya da e-posta ile paylaş...",
+ "Share with users..." : "Kullanıcılar ile paylaş...",
+ "Error removing share" : "Paylaşımdan kaldırılırken sorun çıktı",
+ "Non-existing tag #{tag}" : "#{tag} etiketi bulunamadı",
+ "restricted" : "kısıtlı",
"invisible" : "görünmez",
"({scope})" : "({scope})",
"Delete" : "Sil",
- "Rename" : "Yeniden adlandır",
- "Collaborative tags" : "İşbirlikçi etiketler",
+ "Rename" : "Yeniden Adlandır",
+ "Collaborative tags" : "İşbirliği etiketleri",
+ "No tags found" : "Herhangi bir etiket bulunamadı",
"The object type is not specified." : "Nesne türü belirtilmemiş.",
- "Enter new" : "Yeni girin",
+ "Enter new" : "Yeni ekle",
"Add" : "Ekle",
"Edit tags" : "Etiketleri düzenle",
- "Error loading dialog template: {error}" : "İletişim şablonu yüklenirken hata: {error}",
- "No tags selected for deletion." : "Silmek için bir etiket seçilmedi.",
+ "Error loading dialog template: {error}" : "İletişim kalıbı yüklenirken sorun çıktı: {error}",
+ "No tags selected for deletion." : "Silinecek bir etiket seçilmemiş.",
"unknown text" : "bilinmeyen metin",
"Hello world!" : "Merhaba dünya!",
"sunny" : "güneşli",
"Hello {name}, the weather is {weather}" : "Merhaba {name}, hava durumu {weather}",
"Hello {name}" : "Merhaba {name}",
- "new" : "Yeni",
- "_download %n file_::_download %n files_" : ["%n dosya indir","%n dosya indir"],
- "An error occurred." : "Bir hata oluştu",
+ "new" : "yeni",
+ "_download %n file_::_download %n files_" : ["%n dosyayı indir","%n dosyayı indir"],
+ "The update is in progress, leaving this page might interrupt the process in some environments." : "Güncelleniyor. Bu sayfadan ayrılırsanız bazı işlemler yarım kalabilir.",
+ "Update to {version}" : "{version} sürümüne güncelle",
+ "An error occurred." : "Bir sorun çıktı.",
"Please reload the page." : "Lütfen sayfayı yeniden yükleyin.",
- "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Güncelleme başarısız oldu. Daha fazla bilgi için bu sorunu kapsayan <a href=\"{url}\">forum gönderimize</a> bakın.",
- "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Güncelleme işlemi maalesef başarısızlığa uğradı. Lütfen bu surunu <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud topluluğu</a>na bildirin. ",
- "The update was successful. Redirecting you to Nextcloud now." : "Güncelleme başarılı oldu. Nextcloud'a yönlendiriliyorsunuz.",
+ "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "Uygulama güncellenemedi. Ayrıntılı bilgi almak için bu sorunu kapsayan <a href=\"{url}\">forum iletimize</a> bakın.",
+ "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "Uygulama güncellenemedi. Lütfen bu sorunu  <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud topluluğuna</a> bildirin.",
+ "Continue to Nextcloud" : "Nextcloud kullanmaya geç",
+ "The update was successful. Redirecting you to Nextcloud now." : "Uygulama güncellendi. Nextcloud kullanmaya yönlendiriliyorsunuz.",
"Searching other places" : "Diğer konumlarda aranıyor",
- "_{count} search result in another folder_::_{count} search results in other folders_" : ["Diğer klasörlerde {count} arama sonucu","Diğer bir klasörde {count} arama sonucu"],
+ "No search results in other folders for '{tag}{filter}{endtag}'" : "'{tag}{filter}{endtag}' araması için diğer klasörlerde uygun bir sonuç yok",
+ "_{count} search result in another folder_::_{count} search results in other folders_" : ["Diğer klasörlerde {count} arama sonucu","Diğer klasörlerde {count} arama sonucu"],
"Personal" : "Kişisel",
"Users" : "Kullanıcılar",
"Apps" : "Uygulamalar",
"Admin" : "Yönetici",
"Help" : "Yardım",
- "Access forbidden" : "Erişim yasak",
+ "Access forbidden" : "Erişim engellendi",
"File not found" : "Dosya bulunamadı",
"The specified document has not been found on the server." : "Belirtilen dosya sunucuda bulunamadı.",
- "You can click here to return to %s." : "%s ana sayfasına dönmek için buraya tıklayabilirsiniz.",
- "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Merhaba,\n\nSadece %s sizinle %s paylaşımını yaptığını bildiriyoruz.\nBuradan bakabilirsiniz: %s\n\n",
+ "You can click here to return to %s." : "%s ana sayfasına dönmek için buraya tıklayın.",
+ "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Merhaba,\n\n%s kullanıcısının sizinle %s paylaşımında bulunduğunu bildirmek istedik.\nPaylaşımı şuradan görebilirsiniz: %s\n\n",
"The share will expire on %s." : "Bu paylaşım %s tarihinde sona erecek.",
"Cheers!" : "Hoşça kalın!",
- "Internal Server Error" : "Dahili Sunucu Hatası",
- "The server encountered an internal error and was unable to complete your request." : "Sunucu dahili bir hatayla karşılaştı ve isteğinizi tamamlayamadı.",
- "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Eğer bu hata birden çok kez oluştuysa, lütfen sunucu yöneticisine aşağıdaki teknik ayrıntılar ile birlikte iletişime geçin.",
- "More details can be found in the server log." : "Daha fazla ayrıntı sunucu günlüğünde bulanabilir.",
+ "Internal Server Error" : "Sunucu İçinde Sorun",
+ "The server encountered an internal error and was unable to complete your request." : "Sunucu içinde bir sorun çıktığından isteğiniz tamamlanamadı.",
+ "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Bu sorun bir kereden çok ortaya çıktıysa aşağıdaki teknik ayrıntıları da ekleyerek sunucu yöneticisiyle görüşün.",
+ "More details can be found in the server log." : "Sunucu günlüğünden ayrıntılı bilgi alabilirsiniz.",
"Technical details" : "Teknik ayrıntılar",
"Remote Address: %s" : "Uzak Adres: %s",
- "Request ID: %s" : "İstek Kimliği: %s",
+ "Request ID: %s" : "İstek Kodu: %s",
"Type: %s" : "Tür: %s",
"Code: %s" : "Kod: %s",
- "Message: %s" : "Mesaj: %s",
+ "Message: %s" : "İleti: %s",
"File: %s" : "Dosya: %s",
"Line: %s" : "Satır: %s",
"Trace" : "İz",
"Security warning" : "Güvenlik uyarısı",
- "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Veri klasörünüz ve dosyalarınız .htaccess dosyası çalışmadığı için İnternet'ten erişime açık.",
- "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Sunucunuzu nasıl yapılandıracağınız hakkında bilgi almak için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">belgelendirmeye</a> bakabilirsiniz.",
+ "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : ".htaccess dosyası yürürlükte olmadığından veri klasörünüz ve dosyalarınız İnternet üzerinden erişime açık.",
+ "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Sunucunuzu nasıl yapılandıracağınız hakkında bilgi almak için <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">belgelere</a> bakabilirsiniz.",
"Create an <strong>admin account</strong>" : "Bir <strong>yönetici hesabı</strong> oluşturun",
"Username" : "Kullanıcı Adı",
"Storage & database" : "Depolama ve veritabanı",
"Data folder" : "Veri klasörü",
"Configure the database" : "Veritabanını yapılandır",
- "Only %s is available." : "Sadece %s kullanılabilir.",
+ "Only %s is available." : "Yalnız %s kullanılabilir.",
"Install and activate additional PHP modules to choose other database types." : "Diğer veritabanı türlerini seçebilmek için ek PHP modüllerini kurun ve etkinleştirin.",
- "For more details check out the documentation." : "Daha fazla bilgi için belgelendirmeye bakın.",
+ "For more details check out the documentation." : "Ayrıntılı bilgi almak için belgelere bakın.",
"Database user" : "Veritabanı kullanıcı adı",
"Database password" : "Veritabanı parolası",
"Database name" : "Veritabanı adı",
"Database tablespace" : "Veritabanı tablo alanı",
"Database host" : "Veritabanı sunucusu",
- "Performance warning" : "Performans uyarısı",
+ "Please specify the port number along with the host name (e.g., localhost:5432)." : "Lütfen sunucu adının yanında kapı numarasını da belirtin (Örnek: localhost:5432).",
+ "Performance warning" : "Başarım uyarısı",
"SQLite will be used as database." : "Veritabanı olarak SQLite kullanılacak.",
- "For larger installations we recommend to choose a different database backend." : "Daha büyük kurulumlar için farklı bir veritabanı arka ucu seçmenizi öneriyoruz",
+ "For larger installations we recommend to choose a different database backend." : "Daha büyük kurulumlar için altyapıda farklı bir veritabanı kullanmanız önerilir.",
"Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "Özellikle dosya eşitleme için masaüstü istemcisi kullanılırken SQLite kullanımı önerilmez.",
"Finish setup" : "Kurulumu tamamla",
"Finishing …" : "Tamamlanıyor ...",
- "Need help?" : "Yardım mı lazım?",
- "See the documentation" : "Belgelendirmeye bak",
- "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Bu uygulama düzgün çalışabilmesi için JavaScript gerektirir. Lütfen {linkstart}JavaScript'i etkinleştirin{linkend} ve sayfayı yeniden yükleyin.",
- "Search" : "Ara",
- "Log out" : "Çıkış yap",
- "Server side authentication failed!" : "Sunucu taraflı yetkilendirme başarısız!",
- "Please contact your administrator." : "Lütfen sistem yöneticiniz ile iletişime geçin.",
- "An internal error occurred." : "Dahili bir hata oluştu.",
- "Please try again or contact your administrator." : "Lütfen yeniden deneyin veya yöneticinizle iletişim kurun.",
- "Username or email" : "Kullanıcı adı ya da eposta",
- "Wrong password. Reset it?" : "Hatalı parola. Sıfırlansın mı?",
- "Wrong password." : "Hatalı parola.",
- "Log in" : "Giriş yap",
+ "Need help?" : "Yardım gerekiyor mu?",
+ "See the documentation" : "Belgelere bakın",
+ "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Bu uygulamanın düzgün çalışabilmesi için JavaScript gereklidir. Lütfen {linkstart}JavaScript uygulamasını etkinleştirip{linkend} sayfayı yeniden yükleyin.",
+ "Search" : "Arama",
+ "Log out" : "Oturumu Kapat",
+ "This action requires you to confirm your password:" : "Bu işlemi yapabilmek için parolanızı yazmalısınız:",
+ "Confirm your password" : "Parolanızı onaylayın",
+ "Server side authentication failed!" : "Kimlik sunucu tarafında doğrulanamadı!",
+ "Please contact your administrator." : "Lütfen sistem yöneticiniz ile görüşün.",
+ "An internal error occurred." : "İçeride bir sorun çıktı.",
+ "Please try again or contact your administrator." : "Lütfen yeniden deneyin ya da yöneticinizle görüşün.",
+ "Username or email" : "Kullanıcı adı ya da e-posta",
+ "Wrong password. Reset it?" : "Parola hatalı. Sıfırlamak ister misiniz?",
+ "Wrong password." : "Parola hatalı.",
+ "Log in" : "Oturum Aç",
"Stay logged in" : "Bağlı kal",
- "Alternative Logins" : "Alternatif Girişler",
- "Use the following link to reset your password: {link}" : "Parolanızı sıfırlamak için bu bağlantıyı kullanın: {link}",
+ "Alternative Logins" : "Alternatif Oturum Açmalar",
+ "Use the following link to reset your password: {link}" : "Parolanızı sıfırlamak için şu bağlantıyı kullanın: {link}",
"New password" : "Yeni parola",
"New Password" : "Yeni Parola",
"Reset password" : "Parolayı sıfırla",
- "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Merhaba, <br><br>%s kullanıcısının sizinle <strong>%s</strong> paylaşımında bulunduğunu bildirmek istedik.<br><a href=\"%s\">Paylaşımı gör!</a><br><br>",
- "This Nextcloud instance is currently in single user mode." : "Bu Nextcloud örneği şu anda tek kullanıcı kipinde.",
- "This means only administrators can use the instance." : "Bu, örneği sadece yöneticiler kullanabilir demektir.",
- "Contact your system administrator if this message persists or appeared unexpectedly." : "Eğer bu ileti görünmeye devam ederse veya beklenmedik şekilde ortaya çıkmışsa sistem yöneticinizle iletişime geçin.",
- "Thank you for your patience." : "Sabrınız için teşekkür ederiz.",
- "You are accessing the server from an untrusted domain." : "Sunucuya güvenilmeyen bir alan adından ulaşıyorsunuz.",
- "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." : "Lütfen yöneticiniz ile iletişime geçin. Eğer bu örneğin bir yöneticisi iseniz, config/config.php dosyası içerisindeki \"trusted_domain\" ayarını yapılandırın. Bu yapılandırmanın bir örneği config/config.sample.php dosyasında verilmiştir.",
- "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Yapılandırmanıza bağlı olarak, bir yönetici olarak bu alan adına güvenmek için aşağıdaki düğmeyi de kullanabilirsiniz.",
- "Add \"%s\" as trusted domain" : "\"%s\" alan adını güvenilir olarak ekle",
- "App update required" : "Uygulama güncellemesi gerekli",
+ "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Merhaba, <br><br>%s kullanıcısının sizinle <strong>%s</strong> paylaşımında bulunduğunu bildirmek istedik.<br><a href=\"%s\">Paylaşımı şuradan görebilirsiniz!</a><br><br>",
+ "This Nextcloud instance is currently in single user mode." : "Bu Nextcloud kopyası şu anda tek kullanıcı kipinde.",
+ "This means only administrators can use the instance." : "Yani bu kopya yalnız yöneticiler tarafından kullanılabilir.",
+ "Contact your system administrator if this message persists or appeared unexpectedly." : "Bu ileti görüntülenmeye devam ediyor ya da beklenmedik şekilde ortaya çıkıyorsa sistem yöneticinizle görüşün.",
+ "Thank you for your patience." : "Anlayışınız için teşekkür ederiz.",
+ "Two-factor authentication" : "İki aşamalı kimlik doğrulama",
+ "Enhanced security is enabled for your account. Please authenticate using a second factor." : "Hesabınız için gelişmiş güvenlik etkinleştirildi. Lütfen kimlik doğrulaması için ikinci aşamayı kullanıın.",
+ "Cancel log in" : "Oturum açmaktan vazgeç",
+ "Use backup code" : "Yedek kodu kullanacağım",
+ "Error while validating your second factor" : "İkinci aşama doğrulanırken bir sorun çıktı",
+ "You are accessing the server from an untrusted domain." : "Sunucuya güvenilmeyen bir etki alanından erişiyorsunuz.",
+ "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." : "Lütfen yöneticiniz ile görüşün. Bu kopyanın yöneticisi iseniz, config/config.php dosyası içerisindeki \"trusted_domain\" ayarını yapın. Örnek yapılandırma config/config.sample.php dosyasında görülebilir.",
+ "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Yapılandırmanıza bağlı olarak, bir yönetici olarak bu etki alanına güvenmek için aşağıdaki düğmeyi de kullanabilirsiniz.",
+ "Add \"%s\" as trusted domain" : "\"%s\" etki alanını güvenilir olarak ekle",
+ "App update required" : "Uygulamanın güncellenmesi gerekiyor",
"%s will be updated to version %s" : "%s, %s sürümüne güncellenecek",
- "These apps will be updated:" : "Bu uygulamalar güncellenecek:",
- "These incompatible apps will be disabled:" : "Bu uyumsuz uygulamalar devre dışı bırakılacak:",
+ "These apps will be updated:" : "Şu uygulamalar güncellenecek:",
+ "These incompatible apps will be disabled:" : "Şu uyumsuz uygulamalar devre dışı bırakılacak:",
"The theme %s has been disabled." : "%s teması devre dışı bırakıldı.",
- "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Devam etmeden önce lütfen veritabanının, yapılandırma ve veri klasörlerinin yedeklenmiş olduğundan emin olun.",
+ "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Devam etmeden önce lütfen veritabanı, yapılandırma klasörü ve veri klasörünün yedeklenmiş olduğundan emin olun.",
"Start update" : "Güncellemeyi başlat",
- "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Daha büyük kurulumlarda zaman aşımlarının önüne geçmek için, kurulum dizininizden aşağıdaki komutu da çalıştırabilirsiniz:",
- "Detailed logs" : "Ayrıntılı loglar",
- "Update needed" : "Güncelleme gerekli",
- "Please use the command line updater because you have a big instance." : "Lütfen güncelleme işlemini gerçekleştirmek için komut satırını kullanın. ",
- "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Yardım için, <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">dökümanı</a> görüntüleyin.",
- "This %s instance is currently in maintenance mode, which may take a while." : "Bu %s örneği şu anda bakım kipinde, bu biraz zaman alabilir.",
- "This page will refresh itself when the %s instance is available again." : "Bu sayfa, %s örneği tekrar kullanılabilir olduğunda kendini yenileyecektir.",
- "Error loading tags" : "Etiketler yüklenirken hata",
- "Tag already exists" : "Etiket zaten mevcut",
- "Error deleting tag(s)" : "Etiket(ler) silinirken hata",
- "Error tagging" : "Etiketleme hatası",
- "Error untagging" : "Etiket kaldırma hatası",
- "Error favoriting" : "Beğenilirken hata",
- "Error unfavoriting" : "Beğeniden kaldırılırken hata",
- "Couldn't send mail to following users: %s " : "Şu kullanıcılara posta gönderilemedi: %s",
+ "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Daha büyük kurulumlarda zaman aşımlarının önüne geçmek için, kurulum klasörünüzden şu komutu da çalıştırabilirsiniz:",
+ "Detailed logs" : "Ayrıntılı günlükler",
+ "Update needed" : "Güncelleme gerekiyor",
+ "Please use the command line updater because you have a big instance." : "Kopyanız oldukça büyük olduğundan güncelleme için komut satırını kullanın.",
+ "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Yardım almak için, <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">belgelere</a> bakın.",
+ "This %s instance is currently in maintenance mode, which may take a while." : "Bu %s kopyası şu anda bakım kipinde, bu işlem biraz zaman alabilir.",
+ "This page will refresh itself when the %s instance is available again." : "Bu sayfa, %s kopyası yeniden kullanılabilir olduğunda kendini yenileyecek.",
+ "Error loading tags" : "Etiketler yüklenirken sorun çıktı",
+ "Tag already exists" : "Etiket zaten var",
+ "Error deleting tag(s)" : "Etiket(ler) silinirken sorun çıktı",
+ "Error tagging" : "Etiketlenirken sorun çıktı",
+ "Error untagging" : "Etiket kaldırılırken sorun çıktı",
+ "Error favoriting" : "Beğenilirken sorun çıktı",
+ "Error unfavoriting" : "Beğenilenlerden kaldırılırken sorun çıktı",
+ "Couldn't send mail to following users: %s " : "E-posta şu kullanıcılara gönderilemedi: %s",
"Sunday" : "Pazar",
"Monday" : "Pazartesi",
"Tuesday" : "Salı",
@@ -257,11 +305,11 @@
"Saturday" : "Cumartesi",
"Sun." : "Paz.",
"Mon." : "Pzt.",
- "Tue." : "Sal.",
- "Wed." : "Çar.",
- "Thu." : "Per.",
- "Fri." : "Cum.",
- "Sat." : "Cmt.",
+ "Tue." : "Sal",
+ "Wed." : "Çar",
+ "Thu." : "Per",
+ "Fri." : "Cum",
+ "Sat." : "Cmt",
"Su" : "Pa",
"Mo" : "Pt",
"Tu" : "Sa",
@@ -281,42 +329,46 @@
"October" : "Ekim",
"November" : "Kasım",
"December" : "Aralık",
- "Jan." : "Oca.",
- "Feb." : "Şbt.",
- "Mar." : "Mar.",
+ "Jan." : "Oca",
+ "Feb." : "Şub",
+ "Mar." : "Mar",
"Apr." : "Nis",
- "May." : "May.",
- "Jun." : "Haz.",
- "Jul." : "Tem.",
- "Aug." : "Ağu.",
- "Sep." : "Eyl.",
- "Oct." : "Eki.",
- "Nov." : "Kas.",
- "Dec." : "Ara.",
- "Problem loading page, reloading in 5 seconds" : "Sayfa yüklemesinde problem oluştu, 5 saniye sonra sayfa tekrar yüklenecek",
- "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Kurtarma anahtarını etkinleştirmemişseniz, parola sıfırlama işleminden sonra verilerinize erişmeniz imkansız olacak.<br />Ne yaptığınızdan emin değilseniz, devam etmeden önce sistem yöneticiniz ile iletişime geçin.<br />Gerçekten devam etmek istiyor musunuz?",
- "The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Ters vekil sunucu başlık yapılandırmanız hatalı veya ownCloud'a güvenilen bir vekil sunucudan erişiyorsunuz. Eğer erişiminiz güvenilen bir vekil sunucu aracılığıyla gerçekleşmiyorsa bu bir güvenlik sorunudur ve bir saldırganın IP adresini farklıymış gibi göstermesine neden olabilir. Daha fazla bilgiyi <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelendirmemizde</a> bulabilirsiniz.",
+ "May." : "May",
+ "Jun." : "Haz",
+ "Jul." : "Tem",
+ "Aug." : "Ağu",
+ "Sep." : "Eyl",
+ "Oct." : "Eki",
+ "Nov." : "Kas",
+ "Dec." : "Ara",
+ "Problem loading page, reloading in 5 seconds" : "Sayfa yüklenirken bir sorun çıktı, Sayfa 5 saniye içinde yeniden yüklenecek",
+ "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Dosyalarınız şifrelenmiş. Kurtarma anahtarını etkinleştirmediyseniz, parola sıfırlama işleminden sonra verilerinize erişemeyeceksiniz.<br />Ne yapacağınızdan emin değilseniz, ilerlemeden önce sistem yöneticiniz ile görüşün.<br />Gerçekten devam etmek istiyor musunuz?",
+ "This server has no working Internet connection. 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." : "Bu sunucunun çalışan bir İnternet bağlantısı yok. 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 sunucunun İnternet bağlantısını etkinleştirmeniz önerilir.",
+ "The reverse proxy headers configuration is incorrect, or you are accessing ownCloud from a trusted proxy. If you are not accessing ownCloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to ownCloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Ters vekil sunucu üst bilgi yapılandırmanız hatalı ya da ownCloud üzerine güvenilen bir vekil sunucudan erişiyorsunuz. ownCloud üzerine güvenilen bir vekil sunucudan erişmiyorsanız bu bir güvenlik sorunudur ve bir saldırganın IP adresini farklıymış gibi göstermesine izin verebilir. Ayrıntlı bilgi almak için <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">belgelere</a> bakabilirsiniz.",
"Hide file listing" : "Dosya listelemesini gizle",
"Sending ..." : "Gönderiliyor...",
"Email sent" : "E-posta gönderildi",
- "Send link via email" : "Linki eposta ile gönder",
+ "Send link via email" : "Bağlantıyı e-posta ile gönder",
"notify by email" : "e-posta ile bildir",
"can share" : "paylaşabilir",
- "create" : "oluştur",
- "change" : "değiştir",
- "delete" : "sil",
+ "create" : "oluşturabilir",
+ "change" : "düzenleyebilir",
+ "delete" : "silebilir",
"{sharee} (at {server})" : "{sharee} ({server} sunucusunda)",
"Share with users…" : "Kullanıcılarla paylaş...",
- "Share with users, groups or remote users…" : "Kullanıcılar, gruplar veya uzak kullanıcılarla paylaş ...",
- "Share with users or groups…" : "Kullanıcı ve gruplarla paylaş...",
- "Share with users or remote users…" : "Kullanıcılar, gruplar veya uzak kullanıcılarla paylaş ...",
+ "Share with users, groups or remote users…" : "Kullanıcılar, gruplar ya da uzak kullanıcılarla paylaş...",
+ "Share with users or groups…" : "Kullanıcı ya da gruplarla paylaş...",
+ "Share with users or remote users…" : "Kullanıcılar ya da uzak kullanıcılarla paylaş...",
"Warning" : "Uyarı",
- "Error while sending notification" : "Bildirim gönderilirken hata",
- "No search results in other folders" : "Diğer klasörlerde arama sonucu yok",
- "Two-step verification" : "2 adımlı doğrulama",
- "Enhanced security has been enabled for your account. Please authenticate using a second factor." : "Hesabınız için gelişmiş güvenlik etkinleştirildi. Lütfen ikinci etkeni kullanarak kimlik doğrulaması yapın.",
- "Cancel login" : "Girişi iptal et",
- "Please authenticate using the selected factor." : "Lütfen seçilen etkeni kullanarak kimlik doğrulaması yapın.",
- "An error occured while verifying the token" : "Anahtarı(token) doğrularken bir hata oluştu"
+ "Error while sending notification" : "Bildirim gönderilirken sorun çıktı",
+ "The upgrade is in progress, leaving this page might interrupt the process in some environments." : "Güncelleme yapılıyor, sayfadan ayrılmak bazı işlemleri kesebilir.",
+ "Updating to {version}" : "{version} sürümüne güncelleniyor",
+ "The update was successful. There were warnings." : "Güncelleme tamamlandı. Bazı uyarılar var.",
+ "No search results in other folders" : "Arama için diğer klasörlerde bir sonuç yok",
+ "Two-step verification" : "İki aşamalı doğrulama",
+ "Enhanced security has been enabled for your account. Please authenticate using a second factor." : "Hesabınız için gelişmiş güvenlik özellikleri etkinleştirildi. Lütfen ikinci etkeni kullanarak kimliği doğrulayın.",
+ "Cancel login" : "Oturum açmaktan vazgeç",
+ "Please authenticate using the selected factor." : "Lütfen seçilmiş etkeni kullanarak kimliğinizi doğrulayın.",
+ "An error occured while verifying the token" : "Kod doğrulanırken bir sorun çıktı"
},"pluralForm" :"nplurals=2; plural=(n > 1);"
} \ No newline at end of file
diff --git a/core/search/js/search.js b/core/search/js/search.js
index 44a69842374..b4175c49a3e 100644
--- a/core/search/js/search.js
+++ b/core/search/js/search.js
@@ -216,9 +216,9 @@
if (count === 0) {
$status.addClass('emptycontent').removeClass('status');
$status.html('');
- $status.append('<div class="icon-search"></div>');
- var error = t('core', "No search results in other folders for '{tag}{filter}{endtag}'", {filter:lastQuery});
- $status.append('<h2>' + error.replace('{tag}', '<strong>').replace('{endtag}', '</strong>') + '</h2>');
+ $status.append($('<div>').addClass('icon-search'));
+ var error = t('core', 'No search results in other folders for {tag}{filter}{endtag}', {filter:lastQuery});
+ $status.append($('<h2>').html(error.replace('{tag}', '<strong>').replace('{endtag}', '</strong>')));
} else {
$status.removeClass('emptycontent').addClass('status');
$status.text(n('core', '{count} search result in another folder', '{count} search results in other folders', count, {count:count}));
diff --git a/cron.php b/cron.php
index 55666fbc937..feb680bd9c2 100644
--- a/cron.php
+++ b/cron.php
@@ -89,7 +89,7 @@ try {
// the cron job must be executed with the right user
if (!function_exists('posix_getuid')) {
echo "The posix extensions are required - see http://php.net/manual/en/book.posix.php" . PHP_EOL;
- exit(0);
+ exit(1);
}
$user = posix_getpwuid(posix_getuid());
$configUser = posix_getpwuid(fileowner(OC::$configDir . 'config.php'));
@@ -97,7 +97,7 @@ try {
echo "Console has to be executed with the same user as the web server is operated" . PHP_EOL;
echo "Current user: " . $user['name'] . PHP_EOL;
echo "Web server user: " . $configUser['name'] . PHP_EOL;
- exit(0);
+ exit(1);
}
// We call ownCloud from the CLI (aka cron)
diff --git a/lib/base.php b/lib/base.php
index a4bb4f584f8..68178b06c5b 100644
--- a/lib/base.php
+++ b/lib/base.php
@@ -528,7 +528,7 @@ class OC {
//
// Questions about this code? Ask Lukas ;-)
$currentUrl = substr(explode('?',$request->getRequestUri(), 2)[0], strlen(\OC::$WEBROOT));
- if($currentUrl === '/index.php/apps/user_saml/saml/acs') {
+ if($currentUrl === '/index.php/apps/user_saml/saml/acs' || $currentUrl === '/apps/user_saml/saml/acs') {
return;
}
// For the "index.php" endpoint only a lax cookie is required.
@@ -698,7 +698,7 @@ class OC {
}
OC_User::useBackend(new \OC\User\Database());
- OC_Group::useBackend(new \OC\Group\Database());
+ \OC::$server->getGroupManager()->addBackend(new \OC\Group\Database());
// Subscribe to the hook
\OCP\Util::connectHook(
diff --git a/lib/composer/composer/ClassLoader.php b/lib/composer/composer/ClassLoader.php
index 4626994fd4d..2c72175e772 100644
--- a/lib/composer/composer/ClassLoader.php
+++ b/lib/composer/composer/ClassLoader.php
@@ -374,9 +374,13 @@ class ClassLoader
$first = $class[0];
if (isset($this->prefixLengthsPsr4[$first])) {
- foreach ($this->prefixLengthsPsr4[$first] as $prefix => $length) {
- if (0 === strpos($class, $prefix)) {
- foreach ($this->prefixDirsPsr4[$prefix] as $dir) {
+ $subPath = $class;
+ while (false !== $lastPos = strrpos($subPath, '\\')) {
+ $subPath = substr($subPath, 0, $lastPos);
+ $search = $subPath.'\\';
+ if (isset($this->prefixDirsPsr4[$search])) {
+ foreach ($this->prefixDirsPsr4[$search] as $dir) {
+ $length = $this->prefixLengthsPsr4[$first][$search];
if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
return $file;
}
diff --git a/lib/composer/composer/LICENSE b/lib/composer/composer/LICENSE
index 1a28124886d..f27399a042d 100644
--- a/lib/composer/composer/LICENSE
+++ b/lib/composer/composer/LICENSE
@@ -1,5 +1,5 @@
-Copyright (c) 2016 Nils Adermann, Jordi Boggiano
+Copyright (c) Nils Adermann, Jordi Boggiano
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/lib/l10n/ca.js b/lib/l10n/ca.js
index daa9ae7a3d6..fbbf8fdd543 100644
--- a/lib/l10n/ca.js
+++ b/lib/l10n/ca.js
@@ -12,6 +12,7 @@ OC.L10N.register(
"%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s i %4$s",
"%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s i %5$s",
"PHP %s or higher is required." : "Es requereix PHP %s o superior.",
+ "%sbit or higher PHP required." : "Es requereix PHP %s o superior.",
"Server version %s or higher is required." : "Es requereix una versió de servidor %s o superior",
"Server version %s or lower is required." : "Es requereix una versió de servidor %s o inferior",
"Unknown filetype" : "Tipus de fitxer desconegut",
diff --git a/lib/l10n/ca.json b/lib/l10n/ca.json
index f6c692aef0d..13358e42a4f 100644
--- a/lib/l10n/ca.json
+++ b/lib/l10n/ca.json
@@ -10,6 +10,7 @@
"%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s i %4$s",
"%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s i %5$s",
"PHP %s or higher is required." : "Es requereix PHP %s o superior.",
+ "%sbit or higher PHP required." : "Es requereix PHP %s o superior.",
"Server version %s or higher is required." : "Es requereix una versió de servidor %s o superior",
"Server version %s or lower is required." : "Es requereix una versió de servidor %s o inferior",
"Unknown filetype" : "Tipus de fitxer desconegut",
diff --git a/lib/l10n/is.js b/lib/l10n/is.js
index 3ecb4663bda..6294dbfeaf4 100644
--- a/lib/l10n/is.js
+++ b/lib/l10n/is.js
@@ -3,6 +3,7 @@ OC.L10N.register(
{
"Cannot write into \"config\" directory!" : "Get ekki skrifað í \"config\" möppuna!",
"See %s" : "Skoðaðu %s",
+ "Sample configuration detected" : "Fann sýnisuppsetningu",
"%1$s and %2$s" : "%1$s og %2$s",
"%1$s, %2$s and %3$s" : "%1$s, %2$s og %3$s",
"%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s og %4$s",
@@ -77,7 +78,7 @@ OC.L10N.register(
"Cannot set expiration date. Expiration date is in the past" : "Get ekki stillt gildistímann. Gildistíminn er þegar runninn út",
"Sharing backend %s not found" : "Deilingarbakendinn %s fannst ekki",
"Sharing backend for %s not found" : "Deilingarbakendi fyrir %s fannst ekki",
- "Sharing failed, because the user %s is the original sharer" : "Deiling %s mistókst, því notandinn %s er upprunalegur deilandi",
+ "Sharing failed, because the user %s is the original sharer" : "Deiling mistókst, því notandinn %s er upprunalegur deilandi",
"Sharing %s failed, because resharing is not allowed" : "Deiling %s mistókst, því endurdeiling er ekki leyfð",
"Cannot increase permissions of %s" : "Get ekki aukið aðgangsheimildir %s",
"Expiration date is in the past" : "Gildistíminn er þegar runninn út",
@@ -171,11 +172,19 @@ OC.L10N.register(
"Storage unauthorized. %s" : "Gagnageymsla ekki auðkennd. %s",
"Storage incomplete configuration. %s" : "Ófullgerð uppsetning gagnageymslu. %s",
"Storage connection error. %s" : "Villa í tengingu við gagnageymslu. %s",
+ "Storage is temporarily not available" : "Gagnageymsla ekki tiltæk í augnablikinu",
"Storage connection timeout. %s" : "Gagnageymsla féll á tíma. %s",
"4-byte characters are not supported in file names" : "4-bæta stafir eru ekki leyfilegir í skráaheitum",
+ "App directory already exists" : "Forritsmappan er þegar til",
+ "Can't create app folder. Please fix permissions. %s" : "Gat ekki búið til forritsmöppu. Lagaðu aðgangsheimildir. %s",
+ "Archive does not contain a directory named %s" : "Safnskráin inniheldur ekki möppu með heitinu %s",
+ "No source specified when installing app" : "Enginn uppruni tilgreindur þegar forrit var sett upp",
+ "No href specified when installing app from http" : "Ekkert href tilgreint þegar forrit var sett upp í gegnum http",
+ "No path specified when installing app from local file" : "Engin slóð tilgreind þegar forrit var sett upp úr staðværri skrá",
"Logging" : "Skráning annáls",
"Recommended" : "Mælt með",
"Microsoft Windows Platform is not supported" : "Ekki er stuðningur við Microsoft Windows stýrikerfið",
+ "Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "Ekki er stuðningur við að keyra Nextcloud-þjón á Microsoft Windows stýrikerfinu. Við stingum upp á því að þú notir Linux-þjón í sýndarvél, ef þú hefur ekki kost á að yfirfæra sjálfan þjóninn í Linux.",
"Storage not available" : "Gagnageymsla ekki tiltæk"
},
"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);");
diff --git a/lib/l10n/is.json b/lib/l10n/is.json
index 9d49ab40f0f..48e91de5e47 100644
--- a/lib/l10n/is.json
+++ b/lib/l10n/is.json
@@ -1,6 +1,7 @@
{ "translations": {
"Cannot write into \"config\" directory!" : "Get ekki skrifað í \"config\" möppuna!",
"See %s" : "Skoðaðu %s",
+ "Sample configuration detected" : "Fann sýnisuppsetningu",
"%1$s and %2$s" : "%1$s og %2$s",
"%1$s, %2$s and %3$s" : "%1$s, %2$s og %3$s",
"%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s og %4$s",
@@ -75,7 +76,7 @@
"Cannot set expiration date. Expiration date is in the past" : "Get ekki stillt gildistímann. Gildistíminn er þegar runninn út",
"Sharing backend %s not found" : "Deilingarbakendinn %s fannst ekki",
"Sharing backend for %s not found" : "Deilingarbakendi fyrir %s fannst ekki",
- "Sharing failed, because the user %s is the original sharer" : "Deiling %s mistókst, því notandinn %s er upprunalegur deilandi",
+ "Sharing failed, because the user %s is the original sharer" : "Deiling mistókst, því notandinn %s er upprunalegur deilandi",
"Sharing %s failed, because resharing is not allowed" : "Deiling %s mistókst, því endurdeiling er ekki leyfð",
"Cannot increase permissions of %s" : "Get ekki aukið aðgangsheimildir %s",
"Expiration date is in the past" : "Gildistíminn er þegar runninn út",
@@ -169,11 +170,19 @@
"Storage unauthorized. %s" : "Gagnageymsla ekki auðkennd. %s",
"Storage incomplete configuration. %s" : "Ófullgerð uppsetning gagnageymslu. %s",
"Storage connection error. %s" : "Villa í tengingu við gagnageymslu. %s",
+ "Storage is temporarily not available" : "Gagnageymsla ekki tiltæk í augnablikinu",
"Storage connection timeout. %s" : "Gagnageymsla féll á tíma. %s",
"4-byte characters are not supported in file names" : "4-bæta stafir eru ekki leyfilegir í skráaheitum",
+ "App directory already exists" : "Forritsmappan er þegar til",
+ "Can't create app folder. Please fix permissions. %s" : "Gat ekki búið til forritsmöppu. Lagaðu aðgangsheimildir. %s",
+ "Archive does not contain a directory named %s" : "Safnskráin inniheldur ekki möppu með heitinu %s",
+ "No source specified when installing app" : "Enginn uppruni tilgreindur þegar forrit var sett upp",
+ "No href specified when installing app from http" : "Ekkert href tilgreint þegar forrit var sett upp í gegnum http",
+ "No path specified when installing app from local file" : "Engin slóð tilgreind þegar forrit var sett upp úr staðværri skrá",
"Logging" : "Skráning annáls",
"Recommended" : "Mælt með",
"Microsoft Windows Platform is not supported" : "Ekki er stuðningur við Microsoft Windows stýrikerfið",
+ "Running Nextcloud Server on the Microsoft Windows platform is not supported. We suggest you use a Linux server in a virtual machine if you have no option for migrating the server itself." : "Ekki er stuðningur við að keyra Nextcloud-þjón á Microsoft Windows stýrikerfinu. Við stingum upp á því að þú notir Linux-þjón í sýndarvél, ef þú hefur ekki kost á að yfirfæra sjálfan þjóninn í Linux.",
"Storage not available" : "Gagnageymsla ekki tiltæk"
},"pluralForm" :"nplurals=2; plural=(n % 10 != 1 || n % 100 == 11);"
} \ No newline at end of file
diff --git a/lib/private/AppFramework/Http/Request.php b/lib/private/AppFramework/Http/Request.php
index be35f4d172f..fd43d468568 100644
--- a/lib/private/AppFramework/Http/Request.php
+++ b/lib/private/AppFramework/Http/Request.php
@@ -490,6 +490,9 @@ class Request implements \ArrayAccess, \Countable, IRequest {
* @return bool
*/
private function cookieCheckRequired() {
+ if ($this->getHeader('OCS-APIREQUEST')) {
+ return false;
+ }
if($this->getCookie(session_name()) === null && $this->getCookie('nc_token') === null) {
return false;
}
diff --git a/lib/private/Encryption/Util.php b/lib/private/Encryption/Util.php
index 3afa1bb9596..76e1200a1cb 100644
--- a/lib/private/Encryption/Util.php
+++ b/lib/private/Encryption/Util.php
@@ -273,8 +273,18 @@ class Util {
$result = \OCP\User::getUsers();
} else {
$result = array_merge($result, $users);
+
+ $groupManager = \OC::$server->getGroupManager();
foreach ($groups as $group) {
- $result = array_merge($result, \OC_Group::usersInGroup($group));
+ $groupObject = $groupManager->get($group);
+ if ($groupObject) {
+ $foundUsers = $groupObject->searchUsers('', -1, 0);
+ $userIds = [];
+ foreach ($foundUsers as $user) {
+ $userIds[] = $user->getUID();
+ }
+ $result = array_merge($result, $userIds);
+ }
}
}
diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php
index b0527d801d6..9c3b786ae87 100644
--- a/lib/private/Files/Cache/Cache.php
+++ b/lib/private/Files/Cache/Cache.php
@@ -17,6 +17,7 @@
* @author TheSFReader <TheSFReader@gmail.com>
* @author Thomas Müller <thomas.mueller@tmit.eu>
* @author Vincent Petry <pvince81@owncloud.com>
+ * @author Xuanwo <xuanwo@yunify.com>
*
* @license AGPL-3.0
*
@@ -532,7 +533,7 @@ class Cache implements ICache {
$this->connection->executeQuery($moveSql, [$targetStorageId, $targetPath, md5($targetPath), basename($targetPath), $newParentId, $sourceId]);
$this->connection->commit();
} else {
- $this->connection->executeQuery($moveSql, [$targetStorageId, $targetPath, md5($targetPath), basename($targetPath), $newParentId, $sourceId]);
+ $this->connection->executeQuery($moveSql, [$targetStorageId, $targetPath, md5($targetPath), \OC_Util::basename($targetPath), $newParentId, $sourceId]);
}
} else {
$this->moveFromCacheFallback($sourceCache, $sourcePath, $targetPath);
@@ -594,6 +595,10 @@ class Cache implements ICache {
// normalize pattern
$pattern = $this->normalize($pattern);
+ if ($pattern === '%%') {
+ return [];
+ }
+
$sql = '
SELECT `fileid`, `storage`, `path`, `parent`, `name`,
@@ -645,9 +650,22 @@ class Cache implements ICache {
$builder = \OC::$server->getDatabaseConnection()->getQueryBuilder();
$query = $builder->select(['fileid', 'storage', 'path', 'parent', 'name', 'mimetype', 'mimepart', 'size', 'mtime', 'storage_mtime', 'encrypted', 'etag', 'permissions', 'checksum'])
- ->from('filecache')
- ->where($builder->expr()->eq('storage', $builder->createNamedParameter($this->getNumericStorageId())))
- ->andWhere($this->querySearchHelper->searchOperatorToDBExpr($builder, $searchQuery->getSearchOperation()));
+ ->from('filecache', 'file');
+
+ $query->where($builder->expr()->eq('storage', $builder->createNamedParameter($this->getNumericStorageId())));
+
+ if ($this->querySearchHelper->shouldJoinTags($searchQuery->getSearchOperation())) {
+ $query
+ ->innerJoin('file', 'vcategory_to_object', 'tagmap', $builder->expr()->eq('file.fileid', 'tagmap.objid'))
+ ->innerJoin('tagmap', 'vcategory', 'tag', $builder->expr()->andX(
+ $builder->expr()->eq('tagmap.type', 'tag.type'),
+ $builder->expr()->eq('tagmap.categoryid', 'tag.id')
+ ))
+ ->andWhere($builder->expr()->eq('tag.type', $builder->createNamedParameter('files')))
+ ->andWhere($builder->expr()->eq('tag.uid', $builder->createNamedParameter($searchQuery->getUser()->getUID())));
+ }
+
+ $query->andWhere($this->querySearchHelper->searchOperatorToDBExpr($builder, $searchQuery->getSearchOperation()));
if ($searchQuery->getLimit()) {
$query->setMaxResults($searchQuery->getLimit());
@@ -660,7 +678,7 @@ class Cache implements ICache {
return $this->searchResultToCacheEntries($result);
}
- /**
+ /**
* Search for files by tag of a given users.
*
* Note that every user can tag files differently.
diff --git a/lib/private/Files/Cache/QuerySearchHelper.php b/lib/private/Files/Cache/QuerySearchHelper.php
index 931f258ec5b..7d8098f0efa 100644
--- a/lib/private/Files/Cache/QuerySearchHelper.php
+++ b/lib/private/Files/Cache/QuerySearchHelper.php
@@ -49,6 +49,8 @@ class QuerySearchHelper {
ISearchComparison::COMPARE_LESS_THAN_EQUAL => 'lt'
];
+ const TAG_FAVORITE = '_$!<Favorite>!$_';
+
/** @var IMimeTypeLoader */
private $mimetypeLoader;
@@ -61,6 +63,23 @@ class QuerySearchHelper {
$this->mimetypeLoader = $mimetypeLoader;
}
+ /**
+ * Whether or not the tag tables should be joined to complete the search
+ *
+ * @param ISearchOperator $operator
+ * @return boolean
+ */
+ public function shouldJoinTags(ISearchOperator $operator) {
+ if ($operator instanceof ISearchBinaryOperator) {
+ return array_reduce($operator->getArguments(), function ($shouldJoin, ISearchOperator $operator) {
+ return $shouldJoin || $this->shouldJoinTags($operator);
+ }, false);
+ } else if ($operator instanceof ISearchComparison) {
+ return $operator->getField() === 'tagname' || $operator->getField() === 'favorite';
+ }
+ return false;
+ }
+
public function searchOperatorToDBExpr(IQueryBuilder $builder, ISearchOperator $operator) {
$expr = $builder->expr();
if ($operator instanceof ISearchBinaryOperator) {
@@ -116,6 +135,11 @@ class QuerySearchHelper {
throw new \InvalidArgumentException('Unsupported query value for mimetype: ' . $value . ', only values in the format "mime/type" or "mime/%" are supported');
}
}
+ } else if ($field === 'favorite') {
+ $field = 'tag.category';
+ $value = self::TAG_FAVORITE;
+ } else if ($field === 'tagname') {
+ $field = 'tag.category';
}
return [$field, $value, $type];
}
@@ -125,13 +149,17 @@ class QuerySearchHelper {
'mimetype' => 'string',
'mtime' => 'integer',
'name' => 'string',
- 'size' => 'integer'
+ 'size' => 'integer',
+ 'tagname' => 'string',
+ 'favorite' => 'boolean'
];
$comparisons = [
'mimetype' => ['eq', 'like'],
'mtime' => ['eq', 'gt', 'lt', 'gte', 'lte'],
'name' => ['eq', 'like'],
- 'size' => ['eq', 'gt', 'lt', 'gte', 'lte']
+ 'size' => ['eq', 'gt', 'lt', 'gte', 'lte'],
+ 'tagname' => ['eq', 'like'],
+ 'favorite' => ['eq'],
];
if (!isset($types[$operator->getField()])) {
diff --git a/lib/private/Files/Search/SearchQuery.php b/lib/private/Files/Search/SearchQuery.php
index 8a0478ae98e..c1da5220516 100644
--- a/lib/private/Files/Search/SearchQuery.php
+++ b/lib/private/Files/Search/SearchQuery.php
@@ -24,6 +24,7 @@ namespace OC\Files\Search;
use OCP\Files\Search\ISearchOperator;
use OCP\Files\Search\ISearchOrder;
use OCP\Files\Search\ISearchQuery;
+use OCP\IUser;
class SearchQuery implements ISearchQuery {
/** @var ISearchOperator */
@@ -34,6 +35,8 @@ class SearchQuery implements ISearchQuery {
private $offset;
/** @var ISearchOrder[] */
private $order;
+ /** @var IUser */
+ private $user;
/**
* SearchQuery constructor.
@@ -42,12 +45,14 @@ class SearchQuery implements ISearchQuery {
* @param int $limit
* @param int $offset
* @param array $order
+ * @param IUser $user
*/
- public function __construct(ISearchOperator $searchOperation, $limit, $offset, array $order) {
+ public function __construct(ISearchOperator $searchOperation, $limit, $offset, array $order, IUser $user) {
$this->searchOperation = $searchOperation;
$this->limit = $limit;
$this->offset = $offset;
$this->order = $order;
+ $this->user = $user;
}
/**
@@ -77,4 +82,11 @@ class SearchQuery implements ISearchQuery {
public function getOrder() {
return $this->order;
}
+
+ /**
+ * @return IUser
+ */
+ public function getUser() {
+ return $this->user;
+ }
}
diff --git a/lib/private/Files/Storage/Common.php b/lib/private/Files/Storage/Common.php
index 6e5799be34c..5a57532f71c 100644
--- a/lib/private/Files/Storage/Common.php
+++ b/lib/private/Files/Storage/Common.php
@@ -795,4 +795,11 @@ abstract class Common implements Storage, ILockingStorage {
public function setAvailability($isAvailable) {
$this->getStorageCache()->setAvailability($isAvailable);
}
+
+ /**
+ * @return bool
+ */
+ public function needsPartFile() {
+ return true;
+ }
}
diff --git a/lib/private/Files/Storage/Wrapper/Wrapper.php b/lib/private/Files/Storage/Wrapper/Wrapper.php
index 71b64d8c82c..d7cd4b729db 100644
--- a/lib/private/Files/Storage/Wrapper/Wrapper.php
+++ b/lib/private/Files/Storage/Wrapper/Wrapper.php
@@ -610,4 +610,11 @@ class Wrapper implements \OC\Files\Storage\Storage, ILockingStorage {
$this->getWrapperStorage()->changeLock($path, $type, $provider);
}
}
+
+ /**
+ * @return bool
+ */
+ public function needsPartFile() {
+ return $this->getWrapperStorage()->needsPartFile();
+ }
}
diff --git a/lib/private/Log/File.php b/lib/private/Log/File.php
index be8b72b3a3f..4c7ef446a05 100644
--- a/lib/private/Log/File.php
+++ b/lib/private/Log/File.php
@@ -14,6 +14,7 @@
* @author Thomas Müller <thomas.mueller@tmit.eu>
* @author Thomas Pulzer <t.pulzer@kniel.de>
* @author Vincent Petry <pvince81@owncloud.com>
+ * @author Roger Szabo <roger.szabo@web.de>
*
* @license AGPL-3.0
*
@@ -101,6 +102,7 @@ class File {
} else {
$user = '--';
}
+ $userAgent = $request->getHeader('User-Agent') ?: '--';
$version = $config->getValue('version', '');
$entry = compact(
'reqId',
@@ -112,6 +114,7 @@ class File {
'method',
'url',
'user',
+ 'userAgent',
'version'
);
$entry = json_encode($entry);
diff --git a/lib/private/OCS/Provider.php b/lib/private/OCS/Provider.php
index 7d53479c6e2..2e9ed85b67b 100644
--- a/lib/private/OCS/Provider.php
+++ b/lib/private/OCS/Provider.php
@@ -70,6 +70,23 @@ class Provider extends \OCP\AppFramework\Controller {
];
}
+ if ($this->appManager->isEnabledForUser('federation')) {
+ if (isset($services['FEDERATED_SHARING'])) {
+ $services['FEDERATED_SHARING']['endpoints']['shared-secret'] = '/ocs/v2.php/cloud/shared-secret';
+ $services['FEDERATED_SHARING']['endpoints']['system-address-book'] = '/remote.php/dav/addressbooks/system/system/system';
+ $services['FEDERATED_SHARING']['endpoints']['carddav-user'] = 'system';
+ } else {
+ $services['FEDERATED_SHARING'] = [
+ 'version' => 1,
+ 'endpoints' => [
+ 'shared-secret' => '/ocs/v2.php/cloud/shared-secret',
+ 'system-address-book' => '/remote.php/dav/addressbooks/system/system/system',
+ 'carddav-user' => 'system'
+ ],
+ ];
+ }
+ }
+
if($this->appManager->isEnabledForUser('activity')) {
$services['ACTIVITY'] = [
'version' => 1,
diff --git a/lib/private/Preview/MP3.php b/lib/private/Preview/MP3.php
index 804ec7fbcd9..05cd7c0edb1 100644
--- a/lib/private/Preview/MP3.php
+++ b/lib/private/Preview/MP3.php
@@ -61,24 +61,6 @@ class MP3 extends Provider {
}
}
- return $this->getNoCoverThumbnail();
+ return false;
}
-
- /**
- * Generates a default image when the file has no cover
- *
- * @return bool|\OCP\IImage false if the default image is missing or invalid
- */
- private function getNoCoverThumbnail() {
- $icon = \OC::$SERVERROOT . '/core/img/filetypes/audio.svg';
-
- if(!file_exists($icon)) {
- return false;
- }
-
- $image = new \OC_Image();
- $image->loadFromFile($icon);
- return $image->valid() ? $image : false;
- }
-
}
diff --git a/lib/private/Setup.php b/lib/private/Setup.php
index 13e6ae2862b..df3f9e66630 100644
--- a/lib/private/Setup.php
+++ b/lib/private/Setup.php
@@ -451,6 +451,7 @@ class Setup {
$content .= "\n RewriteCond %{REQUEST_FILENAME} !/status.php";
$content .= "\n RewriteCond %{REQUEST_FILENAME} !/ocs/v1.php";
$content .= "\n RewriteCond %{REQUEST_FILENAME} !/ocs/v2.php";
+ $content .= "\n RewriteCond %{REQUEST_FILENAME} !/robots.txt";
$content .= "\n RewriteCond %{REQUEST_FILENAME} !/updater/";
$content .= "\n RewriteCond %{REQUEST_FILENAME} !/ocs-provider/";
$content .= "\n RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/.*";
diff --git a/lib/private/Share/Share.php b/lib/private/Share/Share.php
index 6abaa7dd413..8aea6049de5 100644
--- a/lib/private/Share/Share.php
+++ b/lib/private/Share/Share.php
@@ -237,8 +237,19 @@ class Share extends Constants {
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage(), \OCP\Util::ERROR);
} else {
+ $groupManager = \OC::$server->getGroupManager();
while ($row = $result->fetchRow()) {
- $usersInGroup = \OC_Group::usersInGroup($row['share_with']);
+
+ $usersInGroup = [];
+ $group = $groupManager->get($row['share_with']);
+ if ($group) {
+ $users = $group->searchUsers('', -1, 0);
+ $userIds = array();
+ foreach ($users as $user) {
+ $userIds[] = $user->getUID();
+ }
+ $usersInGroup = $userIds;
+ }
$shares = array_merge($shares, $usersInGroup);
if ($returnUserPaths) {
foreach ($usersInGroup as $user) {
@@ -258,10 +269,10 @@ class Share extends Constants {
$query = \OC_DB::prepare('
SELECT `share_with`
FROM `*PREFIX*share`
- WHERE `item_source` = ? AND `share_type` = ? AND `item_type` IN (\'file\', \'folder\')', 1
+ WHERE `item_source` = ? AND `share_type` IN (?, ?) AND `item_type` IN (\'file\', \'folder\')', 1
);
- $result = $query->execute(array($source, self::SHARE_TYPE_LINK));
+ $result = $query->execute(array($source, self::SHARE_TYPE_LINK, self::SHARE_TYPE_EMAIL));
if (\OCP\DB::isError($result)) {
\OCP\Util::writeLog('OCP\Share', \OC_DB::getErrorMessage(), \OCP\Util::ERROR);
@@ -468,7 +479,11 @@ class Share extends Constants {
//if didn't found a result than let's look for a group share.
if(empty($shares) && $user !== null) {
- $groups = \OC_Group::getUserGroups($user);
+ $userObject = \OC::$server->getUserManager()->get($user);
+ $groups = [];
+ if ($userObject) {
+ $groups = \OC::$server->getGroupManager()->getUserGroupIds($userObject);
+ }
if (!empty($groups)) {
$where = $fileDependentWhere . ' WHERE `' . $column . '` = ? AND `item_type` = ? AND `share_with` in (?)';
@@ -628,7 +643,18 @@ class Share extends Constants {
if ((int)$item['share_type'] === self::SHARE_TYPE_USER) {
$users[] = $item['share_with'];
} else if ((int)$item['share_type'] === self::SHARE_TYPE_GROUP) {
- $users = array_merge($users, \OC_Group::usersInGroup($item['share_with']));
+
+ $group = \OC::$server->getGroupManager()->get($item['share_with']);
+ $userIds = [];
+ if ($group) {
+ $users = $group->searchUsers('', -1, 0);
+ foreach ($users as $user) {
+ $userIds[] = $user->getUID();
+ }
+ return $userIds;
+ }
+
+ $users = array_merge($users, $userIds);
}
}
}
@@ -740,7 +766,19 @@ class Share extends Constants {
throw new \Exception($message_t);
}
if ($shareWithinGroupOnly) {
- $inGroup = array_intersect(\OC_Group::getUserGroups($uidOwner), \OC_Group::getUserGroups($shareWith));
+ $userManager = \OC::$server->getUserManager();
+ $groupManager = \OC::$server->getGroupManager();
+ $userOwner = $userManager->get($uidOwner);
+ $userShareWith = $userManager->get($shareWith);
+ $groupsOwner = [];
+ $groupsShareWith = [];
+ if ($userOwner) {
+ $groupsOwner = $groupManager->getUserGroupIds($userOwner);
+ }
+ if ($userShareWith) {
+ $groupsShareWith = $groupManager->getUserGroupIds($userShareWith);
+ }
+ $inGroup = array_intersect($groupsOwner, $groupsShareWith);
if (empty($inGroup)) {
$message = 'Sharing %s failed, because the user '
.'%s is not a member of any groups that %s is a member of';
@@ -775,18 +813,22 @@ class Share extends Constants {
}
}
} else if ($shareType === self::SHARE_TYPE_GROUP) {
- if (!\OC_Group::groupExists($shareWith)) {
+ if (!\OC::$server->getGroupManager()->groupExists($shareWith)) {
$message = 'Sharing %s failed, because the group %s does not exist';
$message_t = $l->t('Sharing %s failed, because the group %s does not exist', array($itemSourceName, $shareWith));
\OCP\Util::writeLog('OCP\Share', sprintf($message, $itemSourceName, $shareWith), \OCP\Util::DEBUG);
throw new \Exception($message_t);
}
if ($shareWithinGroupOnly && !\OC_Group::inGroup($uidOwner, $shareWith)) {
- $message = 'Sharing %s failed, because '
- .'%s is not a member of the group %s';
- $message_t = $l->t('Sharing %s failed, because %s is not a member of the group %s', array($itemSourceName, $uidOwner, $shareWith));
- \OCP\Util::writeLog('OCP\Share', sprintf($message, $itemSourceName, $uidOwner, $shareWith), \OCP\Util::DEBUG);
- throw new \Exception($message_t);
+ $group = \OC::$server->getGroupManager()->get($shareWith);
+ $user = \OC::$server->getUserManager()->get($uidOwner);
+ if (!$group || !$user || !$group->inGroup($user)) {
+ $message = 'Sharing %s failed, because '
+ . '%s is not a member of the group %s';
+ $message_t = $l->t('Sharing %s failed, because %s is not a member of the group %s', array($itemSourceName, $uidOwner, $shareWith));
+ \OCP\Util::writeLog('OCP\Share', sprintf($message, $itemSourceName, $uidOwner, $shareWith), \OCP\Util::DEBUG);
+ throw new \Exception($message_t);
+ }
}
// Check if the item source is already shared with the group, either from the same owner or a different user
// The check for each user in the group is done inside the put() function
@@ -804,7 +846,18 @@ class Share extends Constants {
$group = $shareWith;
$shareWith = array();
$shareWith['group'] = $group;
- $shareWith['users'] = array_diff(\OC_Group::usersInGroup($group), array($uidOwner));
+
+
+ $groupObject = \OC::$server->getGroupManager()->get($group);
+ $userIds = [];
+ if ($groupObject) {
+ $users = $groupObject->searchUsers('', -1, 0);
+ foreach ($users as $user) {
+ $userIds[] = $user->getUID();
+ }
+ }
+
+ $shareWith['users'] = array_diff($userIds, array($uidOwner));
} else if ($shareType === self::SHARE_TYPE_LINK) {
$updateExistingShare = false;
if (\OC::$server->getAppConfig()->getValue('core', 'shareapi_allow_links', 'yes') == 'yes') {
@@ -1057,7 +1110,9 @@ class Share extends Constants {
$itemUnshared = true;
break;
} elseif ((int)$share['share_type'] === \OCP\Share::SHARE_TYPE_GROUP) {
- if (\OC_Group::inGroup($uid, $share['share_with'])) {
+ $group = \OC::$server->getGroupManager()->get($share['share_with']);
+ $user = \OC::$server->getUserManager()->get($uid);
+ if ($group && $user && $group->inGroup($user)) {
$groupShare = $share;
}
} elseif ((int)$share['share_type'] === self::$shareTypeGroupUserUnique &&
@@ -1746,7 +1801,12 @@ class Share extends Constants {
$queryArgs[] = self::SHARE_TYPE_USER;
$queryArgs[] = self::$shareTypeGroupUserUnique;
$queryArgs[] = $shareWith;
- $groups = \OC_Group::getUserGroups($shareWith);
+
+ $user = \OC::$server->getUserManager()->get($shareWith);
+ $groups = [];
+ if ($user) {
+ $groups = \OC::$server->getGroupManager()->getUserGroupIds($user);
+ }
if (!empty($groups)) {
$placeholders = join(',', array_fill(0, count($groups), '?'));
$where .= ' OR (`share_type` = ? AND `share_with` IN ('.$placeholders.')) ';
@@ -2171,7 +2231,17 @@ class Share extends Constants {
if (isset($shareWith['users'])) {
$users = $shareWith['users'];
} else {
- $users = \OC_Group::usersInGroup($shareWith['group']);
+ $group = \OC::$server->getGroupManager()->get($shareWith['group']);
+ if ($group) {
+ $users = $group->searchUsers('', -1, 0);
+ $userIds = [];
+ foreach ($users as $user) {
+ $userIds[] = $user->getUID();
+ }
+ $users = $userIds;
+ } else {
+ $users = [];
+ }
}
// remove current user from list
if (in_array(\OCP\User::getUser(), $users)) {
@@ -2811,7 +2881,7 @@ class Share extends Constants {
/**
* @param IConfig $config
- * @return bool
+ * @return bool
*/
public static function enforcePassword(IConfig $config) {
$enforcePassword = $config->getAppValue('core', 'shareapi_enforce_links_password', 'no');
diff --git a/lib/private/Share20/DefaultShareProvider.php b/lib/private/Share20/DefaultShareProvider.php
index 23e8db34d7f..fe6472c31a0 100644
--- a/lib/private/Share20/DefaultShareProvider.php
+++ b/lib/private/Share20/DefaultShareProvider.php
@@ -642,7 +642,8 @@ class DefaultShareProvider implements IShareProvider {
// exclude shares leading to trashbin on home storages
$pathSections = explode('/', $data['path'], 2);
// FIXME: would not detect rare md5'd home storage case properly
- if ($pathSections[0] !== 'files' && explode(':', $data['storage_string_id'], 2)[0] === 'home') {
+ if ($pathSections[0] !== 'files'
+ && in_array(explode(':', $data['storage_string_id'], 2)[0], array('home', 'object'))) {
return false;
}
return true;
diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php
index d6f5a2c6fd3..744ea80761e 100644
--- a/lib/private/Template/SCSSCacher.php
+++ b/lib/private/Template/SCSSCacher.php
@@ -103,10 +103,17 @@ class SCSSCacher {
private function isCached($fileNameCSS, $fileNameSCSS, ISimpleFolder $folder, $path) {
try{
$cachedFile = $folder->getFile($fileNameCSS);
- if( $cachedFile->getMTime() > filemtime($path.'/'.$fileNameSCSS)
- && $cachedFile->getSize() > 0 ) {
- return true;
+ if ($cachedFile->getSize() > 0) {
+ $depFile = $folder->getFile($fileNameCSS . '.deps');
+ $deps = json_decode($depFile->getContent(), true);
+
+ foreach ($deps as $file=>$mtime) {
+ if (!file_exists($file) || filemtime($file) > $mtime) {
+ return false;
+ }
+ }
}
+ return true;
} catch(NotFoundException $e) {
return false;
}
@@ -140,6 +147,13 @@ class SCSSCacher {
$cachedfile = $folder->newFile($fileNameCSS);
}
+ $depFileName = $fileNameCSS . '.deps';
+ try {
+ $depFile = $folder->getFile($depFileName);
+ } catch (NotFoundException $e) {
+ $depFile = $folder->newFile($depFileName);
+ }
+
// Compile
try {
$compiledScss = $scss->compile('@import "'.$fileNameSCSS.'";');
@@ -150,6 +164,7 @@ class SCSSCacher {
try {
$cachedfile->putContent($this->rebaseUrls($compiledScss, $webDir));
+ $depFile->putContent(json_encode($scss->getParsedFiles()));
$this->logger->debug($webDir.'/'.$fileNameSCSS.' compiled and successfully cached', ['app' => 'core']);
return true;
} catch(NotFoundException $e) {
diff --git a/lib/private/Updater.php b/lib/private/Updater.php
index 30a9a80cef4..4427e4c48dc 100644
--- a/lib/private/Updater.php
+++ b/lib/private/Updater.php
@@ -365,7 +365,7 @@ class Updater extends BasicEmitter {
// load authentication, filesystem and logging apps after
// upgrading them. Other apps my need to rely on modifying
// user and/or filesystem aspects.
- \OC_App::loadApp($appId, false);
+ \OC_App::loadApp($appId);
}
}
}
diff --git a/lib/private/User/User.php b/lib/private/User/User.php
index 961f70f8a8e..bca9c46bfd0 100644
--- a/lib/private/User/User.php
+++ b/lib/private/User/User.php
@@ -204,9 +204,15 @@ class User implements IUser {
// FIXME: Feels like an hack - suggestions?
+ $groupManager = \OC::$server->getGroupManager();
// We have to delete the user from all groups
- foreach (\OC::$server->getGroupManager()->getUserGroupIds($this) as $groupId) {
- \OC_Group::removeFromGroup($this->uid, $groupId);
+ foreach ($groupManager->getUserGroupIds($this) as $groupId) {
+ $group = $groupManager->get($groupId);
+ if ($group) {
+ \OC_Hook::emit("OC_Group", "pre_removeFromGroup", ["run" => true, "uid" => $this->uid, "gid" => $groupId]);
+ $group->removeUser($this);
+ \OC_Hook::emit("OC_User", "post_removeFromGroup", ["uid" => $this->uid, "gid" => $groupId]);
+ }
}
// Delete the user's keys in preferences
\OC::$server->getConfig()->deleteAllUserValues($this->uid);
diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php
index d5af15bdc20..f89f32f069a 100644
--- a/lib/private/legacy/app.php
+++ b/lib/private/legacy/app.php
@@ -134,10 +134,8 @@ class OC_App {
* load a single app
*
* @param string $app
- * @param bool $checkUpgrade whether an upgrade check should be done
- * @throws \OC\NeedsUpdateException
*/
- public static function loadApp($app, $checkUpgrade = true) {
+ public static function loadApp($app) {
self::$loadedApps[] = $app;
$appPath = self::getAppPath($app);
if($appPath === false) {
@@ -149,9 +147,6 @@ class OC_App {
if (is_file($appPath . '/appinfo/app.php')) {
\OC::$server->getEventLogger()->start('load_app_' . $app, 'Load app: ' . $app);
- if ($checkUpgrade and self::shouldUpgrade($app)) {
- throw new \OC\NeedsUpdateException();
- }
self::requireAppFile($app);
if (self::isType($app, array('authentication'))) {
// since authentication apps affect the "is app enabled for group" check,
@@ -1138,7 +1133,7 @@ class OC_App {
unset(self::$appVersion[$appId]);
// run upgrade code
if (file_exists($appPath . '/appinfo/update.php')) {
- self::loadApp($appId, false);
+ self::loadApp($appId);
include $appPath . '/appinfo/update.php';
}
self::setupBackgroundJobs($appData['background-jobs']);
@@ -1183,7 +1178,7 @@ class OC_App {
return;
}
// load the app
- self::loadApp($appId, false);
+ self::loadApp($appId);
$dispatcher = OC::$server->getEventDispatcher();
diff --git a/lib/private/legacy/group.php b/lib/private/legacy/group.php
deleted file mode 100644
index 6b58cb4c834..00000000000
--- a/lib/private/legacy/group.php
+++ /dev/null
@@ -1,302 +0,0 @@
-<?php
-/**
- * @copyright Copyright (c) 2016, ownCloud, Inc.
- *
- * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
- * @author Bart Visscher <bartv@thisnet.nl>
- * @author Björn Schießle <bjoern@schiessle.org>
- * @author Georg Ehrke <georg@owncloud.com>
- * @author goodkiller <markopraakli@gmail.com>
- * @author Jakob Sack <mail@jakobsack.de>
- * @author Lukas Reschke <lukas@statuscode.ch>
- * @author macjohnny <estebanmarin@gmx.ch>
- * @author Michael Gapczynski <GapczynskiM@gmail.com>
- * @author Morris Jobke <hey@morrisjobke.de>
- * @author Qingping Hou <dave2008713@gmail.com>
- * @author Robin Appelman <robin@icewind.nl>
- * @author Robin McCorkell <robin@mccorkell.me.uk>
- * @author Roeland Jago Douma <roeland@famdouma.nl>
- * @author Thomas Müller <thomas.mueller@tmit.eu>
- *
- * @license AGPL-3.0
- *
- * This code is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Affero General Public License, version 3,
- * as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Affero General Public License for more details.
- *
- * You should have received a copy of the GNU Affero General Public License, version 3,
- * along with this program. If not, see <http://www.gnu.org/licenses/>
- *
- */
-
-/**
- * This class provides all methods needed for managing groups.
- *
- * Note that &run is deprecated and won't work anymore.
- * Hooks provided:
- * pre_createGroup(&run, gid)
- * post_createGroup(gid)
- * pre_deleteGroup(&run, gid)
- * post_deleteGroup(gid)
- * pre_addToGroup(&run, uid, gid)
- * post_addToGroup(uid, gid)
- * pre_removeFromGroup(&run, uid, gid)
- * post_removeFromGroup(uid, gid)
- */
-class OC_Group {
-
- /**
- * @return \OC\Group\Manager
- * @deprecated Use \OC::$server->getGroupManager();
- */
- public static function getManager() {
- return \OC::$server->getGroupManager();
- }
-
- /**
- * @return \OC\User\Manager
- * @deprecated Use \OC::$server->getUserManager()
- */
- private static function getUserManager() {
- return \OC::$server->getUserManager();
- }
-
- /**
- * set the group backend
- * @param \OC\Group\Backend $backend The backend to use for user management
- * @return bool
- */
- public static function useBackend($backend) {
- self::getManager()->addBackend($backend);
- return true;
- }
-
- /**
- * remove all used backends
- */
- public static function clearBackends() {
- self::getManager()->clearBackends();
- }
-
- /**
- * Try to create a new group
- * @param string $gid The name of the group to create
- * @return bool
- *
- * Tries to create a new group. If the group name already exists, false will
- * be returned. Basic checking of Group name
- * @deprecated Use \OC::$server->getGroupManager()->createGroup() instead
- */
- public static function createGroup($gid) {
- if (self::getManager()->createGroup($gid)) {
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * delete a group
- * @param string $gid gid of the group to delete
- * @return bool
- *
- * Deletes a group and removes it from the group_user-table
- * @deprecated Use \OC::$server->getGroupManager()->delete() instead
- */
- public static function deleteGroup($gid) {
- $group = self::getManager()->get($gid);
- if ($group) {
- if ($group->delete()) {
- return true;
- }
- }
- return false;
- }
-
- /**
- * is user in group?
- * @param string $uid uid of the user
- * @param string $gid gid of the group
- * @return bool
- *
- * Checks whether the user is member of a group or not.
- * @deprecated Use \OC::$server->getGroupManager->inGroup($user);
- */
- public static function inGroup($uid, $gid) {
- $group = self::getManager()->get($gid);
- $user = self::getUserManager()->get($uid);
- if ($group and $user) {
- return $group->inGroup($user);
- }
- return false;
- }
-
- /**
- * Add a user to a group
- * @param string $uid Name of the user to add to group
- * @param string $gid Name of the group in which add the user
- * @return bool
- *
- * Adds a user to a group.
- * @deprecated Use \OC::$server->getGroupManager->addUser();
- */
- public static function addToGroup($uid, $gid) {
- $group = self::getManager()->get($gid);
- $user = self::getUserManager()->get($uid);
- if ($group and $user) {
- $group->addUser($user);
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * Removes a user from a group
- * @param string $uid Name of the user to remove from group
- * @param string $gid Name of the group from which remove the user
- * @return bool
- *
- * removes the user from a group.
- */
- public static function removeFromGroup($uid, $gid) {
- $group = self::getManager()->get($gid);
- $user = self::getUserManager()->get($uid);
- if ($group and $user) {
- OC_Hook::emit("OC_Group", "pre_removeFromGroup", array("run" => true, "uid" => $uid, "gid" => $gid));
- $group->removeUser($user);
- OC_Hook::emit("OC_User", "post_removeFromGroup", array("uid" => $uid, "gid" => $gid));
- return true;
- } else {
- return false;
- }
- }
-
- /**
- * Get all groups a user belongs to
- * @param string $uid Name of the user
- * @return array an array of group names
- *
- * This function fetches all groups a user belongs to. It does not check
- * if the user exists at all.
- * @deprecated Use \OC::$server->getGroupManager->getUserGroupIds($user)
- */
- public static function getUserGroups($uid) {
- $user = self::getUserManager()->get($uid);
- if ($user) {
- return self::getManager()->getUserGroupIds($user);
- } else {
- return array();
- }
- }
-
- /**
- * get a list of all groups
- * @param string $search
- * @param int|null $limit
- * @param int|null $offset
- * @return array an array of group names
- *
- * Returns a list with all groups
- */
- public static function getGroups($search = '', $limit = null, $offset = null) {
- $groups = self::getManager()->search($search, $limit, $offset);
- $groupIds = array();
- foreach ($groups as $group) {
- $groupIds[] = $group->getGID();
- }
- return $groupIds;
- }
-
- /**
- * check if a group exists
- *
- * @param string $gid
- * @return bool
- * @deprecated Use \OC::$server->getGroupManager->groupExists($gid)
- */
- public static function groupExists($gid) {
- return self::getManager()->groupExists($gid);
- }
-
- /**
- * get a list of all users in a group
- * @param string $gid
- * @param string $search
- * @param int $limit
- * @param int $offset
- * @return array an array of user ids
- */
- public static function usersInGroup($gid, $search = '', $limit = -1, $offset = 0) {
- $group = self::getManager()->get($gid);
- if ($group) {
- $users = $group->searchUsers($search, $limit, $offset);
- $userIds = array();
- foreach ($users as $user) {
- $userIds[] = $user->getUID();
- }
- return $userIds;
- } else {
- return array();
- }
- }
-
- /**
- * get a list of all users in several groups
- * @param string[] $gids
- * @param string $search
- * @param int $limit
- * @param int $offset
- * @return array an array of user ids
- */
- public static function usersInGroups($gids, $search = '', $limit = -1, $offset = 0) {
- $users = array();
- foreach ($gids as $gid) {
- // TODO Need to apply limits to groups as total
- $users = array_merge(array_diff(self::usersInGroup($gid, $search, $limit, $offset), $users), $users);
- }
- return $users;
- }
-
- /**
- * get a list of all display names in a group
- * @param string $gid
- * @param string $search
- * @param int $limit
- * @param int $offset
- * @return array an array of display names (value) and user ids(key)
- * @deprecated Use \OC::$server->getGroupManager->displayNamesInGroup($gid, $search, $limit, $offset)
- */
- public static function displayNamesInGroup($gid, $search = '', $limit = -1, $offset = 0) {
- return self::getManager()->displayNamesInGroup($gid, $search, $limit, $offset);
- }
-
- /**
- * get a list of all display names in several groups
- * @param array $gids
- * @param string $search
- * @param int $limit
- * @param int $offset
- * @return array an array of display names (Key) user ids (value)
- */
- public static function displayNamesInGroups($gids, $search = '', $limit = -1, $offset = 0) {
- $displayNames = array();
- foreach ($gids as $gid) {
- // TODO Need to apply limits to groups as total
- $diff = array_diff(
- self::displayNamesInGroup($gid, $search, $limit, $offset),
- $displayNames
- );
- if ($diff) {
- // A fix for LDAP users. array_merge loses keys...
- $displayNames = $diff + $displayNames;
- }
- }
- return $displayNames;
- }
-}
diff --git a/lib/private/legacy/image.php b/lib/private/legacy/image.php
index ed7dfce29a6..e26148bdf15 100644
--- a/lib/private/legacy/image.php
+++ b/lib/private/legacy/image.php
@@ -562,7 +562,11 @@ class OC_Image implements \OCP\IImage {
break;
case IMAGETYPE_JPEG:
if (imagetypes() & IMG_JPG) {
- $this->resource = imagecreatefromjpeg($imagePath);
+ if (getimagesize($imagePath) !== false) {
+ $this->resource = imagecreatefromjpeg($imagePath);
+ } else {
+ $this->logger->debug('OC_Image->loadFromFile, JPG image not valid: ' . $imagePath, array('app' => 'core'));
+ }
} else {
$this->logger->debug('OC_Image->loadFromFile, JPG images not supported: ' . $imagePath, array('app' => 'core'));
}
diff --git a/lib/private/legacy/template.php b/lib/private/legacy/template.php
index 09e3d130f49..8535e018879 100644
--- a/lib/private/legacy/template.php
+++ b/lib/private/legacy/template.php
@@ -106,19 +106,9 @@ class OC_Template extends \OC\Template\Base {
}
}
- OC_Util::addStyle("tooltip",null,true);
OC_Util::addStyle('jquery-ui-fixes',null,true);
OC_Util::addVendorStyle('jquery-ui/themes/base/jquery-ui',null,true);
- OC_Util::addStyle("mobile",null,true);
- OC_Util::addStyle("multiselect",null,true);
- OC_Util::addStyle("fixes",null,true);
- OC_Util::addStyle("global",null,true);
- OC_Util::addStyle("apps",null,true);
- OC_Util::addStyle("fonts",null,true);
- OC_Util::addStyle("icons",null,true);
- OC_Util::addStyle("header",null,true);
- OC_Util::addStyle("inputs");
- OC_Util::addStyle("styles",null,true);
+ OC_Util::addStyle('server', null, true);
// avatars
\OC_Util::addScript('jquery.avatar', null, true);
diff --git a/lib/private/legacy/user.php b/lib/private/legacy/user.php
index 661242a659a..621ea3535b1 100644
--- a/lib/private/legacy/user.php
+++ b/lib/private/legacy/user.php
@@ -333,7 +333,9 @@ class OC_User {
* @return bool
*/
public static function isAdminUser($uid) {
- if (OC_Group::inGroup($uid, 'admin') && self::$incognitoMode === false) {
+ $group = \OC::$server->getGroupManager()->get('admin');
+ $user = \OC::$server->getUserManager()->get($uid);
+ if ($group && $user && $group->inGroup($user) && self::$incognitoMode === false) {
return true;
}
return false;
diff --git a/lib/public/Files/Search/ISearchQuery.php b/lib/public/Files/Search/ISearchQuery.php
index 5a701b321b1..531e285a593 100644
--- a/lib/public/Files/Search/ISearchQuery.php
+++ b/lib/public/Files/Search/ISearchQuery.php
@@ -21,6 +21,8 @@
namespace OCP\Files\Search;
+use OCP\IUser;
+
/**
* @since 12.0.0
*/
@@ -54,4 +56,12 @@ interface ISearchQuery {
* @since 12.0.0
*/
public function getOrder();
+
+ /**
+ * The user that issued the search
+ *
+ * @return IUser
+ * @since 12.0.0
+ */
+ public function getUser();
}
diff --git a/lib/public/Files/Storage.php b/lib/public/Files/Storage.php
index 1532c84b621..213bbc0e549 100644
--- a/lib/public/Files/Storage.php
+++ b/lib/public/Files/Storage.php
@@ -458,4 +458,6 @@ interface Storage extends IStorage {
* @param bool $isAvailable
*/
public function setAvailability($isAvailable);
+
+ public function needsPartFile();
}
diff --git a/settings/js/admin.js b/settings/js/admin.js
index 094b12b2bab..985e318e34b 100644
--- a/settings/js/admin.js
+++ b/settings/js/admin.js
@@ -46,9 +46,12 @@ $(document).ready(function(){
if($(this).is(':checked')){
var mode = $(this).val();
if (mode === 'ajax' || mode === 'webcron' || mode === 'cron') {
- OCP.AppConfig.setValue('core', 'backgroundjobs_mode', mode);
- // clear cron errors on background job mode change
- OCP.AppConfig.deleteKey('core', 'cronErrors');
+ OCP.AppConfig.setValue('core', 'backgroundjobs_mode', mode, {
+ success: function() {
+ // clear cron errors on background job mode change
+ OCP.AppConfig.deleteKey('core', 'cronErrors');
+ }
+ });
}
}
});
diff --git a/settings/js/authtoken_view.js b/settings/js/authtoken_view.js
index 365057b5fc6..9931be2ae1f 100644
--- a/settings/js/authtoken_view.js
+++ b/settings/js/authtoken_view.js
@@ -230,6 +230,12 @@
this._tokenName = $('#app-password-name');
this._addAppPasswordBtn = $('#add-app-password');
this._addAppPasswordBtn.click(_.bind(this._addAppPassword, this));
+ this._appPasswordName = $('#app-password-name');
+ this._appPasswordName.on('keypress', function(event) {
+ if (event.which === 13) {
+ _this._addAppPassword();
+ }
+ });
this._result = $('#app-password-result');
this._newAppLoginName = $('#new-app-login-name');
diff --git a/settings/js/users/users.js b/settings/js/users/users.js
index 46bfea4b35c..16f043b4576 100644
--- a/settings/js/users/users.js
+++ b/settings/js/users/users.js
@@ -425,7 +425,7 @@ var UserList = {
applyGroupSelect: function (element, user, checked) {
if (OC.PasswordConfirmation.requiresPasswordConfirmation()) {
- OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.applySubadminSelect, this, element, user, checked));
+ OC.PasswordConfirmation.requirePasswordConfirmation(_.bind(this.applyGroupSelect, this, element, user, checked));
return;
}
diff --git a/settings/l10n/cs.js b/settings/l10n/cs.js
index 3da9b16a9e7..c3bfdd57ee3 100644
--- a/settings/l10n/cs.js
+++ b/settings/l10n/cs.js
@@ -125,6 +125,7 @@ OC.L10N.register(
"undo" : "vrátit zpět",
"never" : "nikdy",
"deleted {userName}" : "smazán {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Vzoru <strong>{pattern}<</strong> neodpovídá žádný úživatel",
"Unable to add user to group {group}" : "Nelze přidat uživatele do skupiny {group}",
"Unable to remove user from group {group}" : "Nelze odebrat uživatele ze skupiny {group}",
"Add group" : "Přidat skupinu",
@@ -233,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Ladění výkonu",
"Improving the config.php" : "Vylepšení souboru config.php",
"Theming" : "Vzhledy",
+ "Check the security of your Nextcloud over our security scan" : "Zkontrolujte bezpečnost vašeho Nextcloudu pomocí našeho bezpečnostního skenu",
"Hardening and security guidance" : "Průvodce vylepšením bezpečnosti",
"Developer documentation" : "Vývojářská dokumentace",
"by %s" : "%s",
diff --git a/settings/l10n/cs.json b/settings/l10n/cs.json
index 910c503e010..ec21a774a83 100644
--- a/settings/l10n/cs.json
+++ b/settings/l10n/cs.json
@@ -123,6 +123,7 @@
"undo" : "vrátit zpět",
"never" : "nikdy",
"deleted {userName}" : "smazán {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Vzoru <strong>{pattern}<</strong> neodpovídá žádný úživatel",
"Unable to add user to group {group}" : "Nelze přidat uživatele do skupiny {group}",
"Unable to remove user from group {group}" : "Nelze odebrat uživatele ze skupiny {group}",
"Add group" : "Přidat skupinu",
@@ -231,6 +232,7 @@
"Performance tuning" : "Ladění výkonu",
"Improving the config.php" : "Vylepšení souboru config.php",
"Theming" : "Vzhledy",
+ "Check the security of your Nextcloud over our security scan" : "Zkontrolujte bezpečnost vašeho Nextcloudu pomocí našeho bezpečnostního skenu",
"Hardening and security guidance" : "Průvodce vylepšením bezpečnosti",
"Developer documentation" : "Vývojářská dokumentace",
"by %s" : "%s",
diff --git a/settings/l10n/de.js b/settings/l10n/de.js
index 2843806b069..0437c157255 100644
--- a/settings/l10n/de.js
+++ b/settings/l10n/de.js
@@ -125,6 +125,7 @@ OC.L10N.register(
"undo" : "rückgängig machen",
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
+ "No user found for <strong>{pattern}</strong>" : "Keine Benutzer für <strong>{pattern}</strong> gefunden",
"Unable to add user to group {group}" : "Benutzer kann nicht zur Gruppe {group} hinzugefügt werden ",
"Unable to remove user from group {group}" : "Benutzer kann nicht aus der Gruppe {group} entfernt werden ",
"Add group" : "Gruppe hinzufügen",
@@ -233,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Leistungsoptimierung",
"Improving the config.php" : "Die config.php optimieren",
"Theming" : "Themen verwenden",
+ "Check the security of your Nextcloud over our security scan" : "Überprüfen Sie die Sicherheit Ihrer Nextcloud mit unserem Sicherheits-Scan",
"Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen",
"Developer documentation" : "Dokumentation für Entwickler",
"by %s" : "von %s",
diff --git a/settings/l10n/de.json b/settings/l10n/de.json
index 115d89312ff..ff9fbee98df 100644
--- a/settings/l10n/de.json
+++ b/settings/l10n/de.json
@@ -123,6 +123,7 @@
"undo" : "rückgängig machen",
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
+ "No user found for <strong>{pattern}</strong>" : "Keine Benutzer für <strong>{pattern}</strong> gefunden",
"Unable to add user to group {group}" : "Benutzer kann nicht zur Gruppe {group} hinzugefügt werden ",
"Unable to remove user from group {group}" : "Benutzer kann nicht aus der Gruppe {group} entfernt werden ",
"Add group" : "Gruppe hinzufügen",
@@ -231,6 +232,7 @@
"Performance tuning" : "Leistungsoptimierung",
"Improving the config.php" : "Die config.php optimieren",
"Theming" : "Themen verwenden",
+ "Check the security of your Nextcloud over our security scan" : "Überprüfen Sie die Sicherheit Ihrer Nextcloud mit unserem Sicherheits-Scan",
"Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen",
"Developer documentation" : "Dokumentation für Entwickler",
"by %s" : "von %s",
diff --git a/settings/l10n/de_DE.js b/settings/l10n/de_DE.js
index 63a68200bd7..e1df60148be 100644
--- a/settings/l10n/de_DE.js
+++ b/settings/l10n/de_DE.js
@@ -125,6 +125,7 @@ OC.L10N.register(
"undo" : "rückgängig machen",
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
+ "No user found for <strong>{pattern}</strong>" : "Keine Benutzer für <strong>{pattern}</strong> gefunden",
"Unable to add user to group {group}" : "Benutzer kann nicht zur Gruppe {group} hinzugefügt werden ",
"Unable to remove user from group {group}" : "Benutzer kann nicht aus der Gruppe {group} entfernt werden ",
"Add group" : "Gruppe hinzufügen",
@@ -233,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Leistungsoptimierung",
"Improving the config.php" : "Die config.php optimieren",
"Theming" : "Themes verwenden",
+ "Check the security of your Nextcloud over our security scan" : "Überprüfen Sie die Sicherheit Ihrer Nextcloud mit unserem Sicherheits-Scan",
"Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen",
"Developer documentation" : "Dokumentation für Entwickler",
"by %s" : "von %s",
diff --git a/settings/l10n/de_DE.json b/settings/l10n/de_DE.json
index 3e0ab8eab9e..2388890ad02 100644
--- a/settings/l10n/de_DE.json
+++ b/settings/l10n/de_DE.json
@@ -123,6 +123,7 @@
"undo" : "rückgängig machen",
"never" : "niemals",
"deleted {userName}" : "{userName} gelöscht",
+ "No user found for <strong>{pattern}</strong>" : "Keine Benutzer für <strong>{pattern}</strong> gefunden",
"Unable to add user to group {group}" : "Benutzer kann nicht zur Gruppe {group} hinzugefügt werden ",
"Unable to remove user from group {group}" : "Benutzer kann nicht aus der Gruppe {group} entfernt werden ",
"Add group" : "Gruppe hinzufügen",
@@ -231,6 +232,7 @@
"Performance tuning" : "Leistungsoptimierung",
"Improving the config.php" : "Die config.php optimieren",
"Theming" : "Themes verwenden",
+ "Check the security of your Nextcloud over our security scan" : "Überprüfen Sie die Sicherheit Ihrer Nextcloud mit unserem Sicherheits-Scan",
"Hardening and security guidance" : "Systemhärtung und Sicherheitsempfehlungen",
"Developer documentation" : "Dokumentation für Entwickler",
"by %s" : "von %s",
diff --git a/settings/l10n/es.js b/settings/l10n/es.js
index 6f4fda38a6b..c11de5961f6 100644
--- a/settings/l10n/es.js
+++ b/settings/l10n/es.js
@@ -125,6 +125,7 @@ OC.L10N.register(
"undo" : "deshacer",
"never" : "nunca",
"deleted {userName}" : "borrado {userName}",
+ "No user found for <strong>{pattern}</strong>" : "No se encontró usuario para <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "No se puede añadir el usuario al grupo {group}",
"Unable to remove user from group {group}" : "No se puede eliminar el usuario del grupo {group}",
"Add group" : "Añadir grupo",
@@ -233,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Ajuste de rendimiento",
"Improving the config.php" : "Mejorar el config.php",
"Theming" : "Personalizar el tema",
+ "Check the security of your Nextcloud over our security scan" : "Comprueba la seguridad de tu Nextcloud mediante nuestro escaneo de seguridad",
"Hardening and security guidance" : "Guía de protección y seguridad",
"Developer documentation" : "Documentación de desarrollador",
"by %s" : "por %s",
diff --git a/settings/l10n/es.json b/settings/l10n/es.json
index 77691ab80e8..b4f69684bd6 100644
--- a/settings/l10n/es.json
+++ b/settings/l10n/es.json
@@ -123,6 +123,7 @@
"undo" : "deshacer",
"never" : "nunca",
"deleted {userName}" : "borrado {userName}",
+ "No user found for <strong>{pattern}</strong>" : "No se encontró usuario para <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "No se puede añadir el usuario al grupo {group}",
"Unable to remove user from group {group}" : "No se puede eliminar el usuario del grupo {group}",
"Add group" : "Añadir grupo",
@@ -231,6 +232,7 @@
"Performance tuning" : "Ajuste de rendimiento",
"Improving the config.php" : "Mejorar el config.php",
"Theming" : "Personalizar el tema",
+ "Check the security of your Nextcloud over our security scan" : "Comprueba la seguridad de tu Nextcloud mediante nuestro escaneo de seguridad",
"Hardening and security guidance" : "Guía de protección y seguridad",
"Developer documentation" : "Documentación de desarrollador",
"by %s" : "por %s",
diff --git a/settings/l10n/eu.js b/settings/l10n/eu.js
index e533f692df0..b3a360cace5 100644
--- a/settings/l10n/eu.js
+++ b/settings/l10n/eu.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "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." : "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." : "This app is not checked for security issues and is new or known to be unstable. Install at your own risk.",
+ "Disabling app …" : "Aplikazioa desgaitzen...",
"Error while disabling app" : "Erroea izan da aplikazioa desgaitzerakoan",
"Disable" : "Ez-gaitu",
"Enable" : "Gaitu",
@@ -109,6 +110,7 @@ OC.L10N.register(
"Contacts" : "Kontaktuak",
"Visible to local users and to trusted servers" : "Bertako erabiltzaile eta zerbitzarien jendearentzat ikusgai",
"Public" : "Publikoa",
+ "Will be synced to a global and public address book" : "Helbide liburu global eta publikoan sinkronizatuko da",
"Select a profile picture" : "Profilaren irudia aukeratu",
"Very weak password" : "Pasahitz oso ahula",
"Weak password" : "Pasahitz ahula",
@@ -123,6 +125,7 @@ OC.L10N.register(
"undo" : "desegin",
"never" : "inoiz",
"deleted {userName}" : "{userName} ezabatuta",
+ "No user found for <strong>{pattern}</strong>" : "Ez da aurkitu <strong>{pattern}</strong>erabiltzailea",
"Unable to add user to group {group}" : "Ezin erabiltzailea {group} taldera gehitu",
"Unable to remove user from group {group}" : "Ezin erabiltzailea {group} taldetik kendu",
"Add group" : "Taldea gehitu",
@@ -173,6 +176,7 @@ OC.L10N.register(
"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." : "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?" : "This is the final warning: Do you really want to enable encryption?",
"Enable encryption" : "Gaitu enkriptatzea",
+ "Security & setup warnings" : "Segurtasun eta konfigurazio abisuak",
"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." : "Bakarrik irakurtzeko konfigurazioa gaitu da. Honek web-interfazearen bidez konfigurazio batzuk aldatzea ekiditzen du. Are gehiago, fitxategia eskuz ezarri behar da idazteko moduan eguneraketa bakoitzerako.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.",
@@ -181,11 +185,15 @@ OC.L10N.register(
"This means that there might be problems with certain characters in file names." : "Honek esan nahi du fitxategien izenetako karaktere batzuekin arazoak egon daitezkeela.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Biziki gomendatzen dizugu beharrezkoak diren paketea zure sisteman instalatzea honi euskarria eman ahal izateko: %s.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Zure instalazioa ez badago domeinuaren sustraian egina eta erabiltzen badu sistemaren cron-a, arazoak izan daitezke URL sorreran. Arazo horiek saihesteko ezarri \"overwrite.cli.url\" opzioa zure config.php fitxategian zure instalazioaren webroot bidera (Proposatua: \"%s\")",
+ "All checks passed." : "Egiaztapen guztiak gaindituta.",
"Cron" : "Cron",
+ "Last cron job execution: %s." : "Azken cron lan exekuzioa: %s.",
+ "Last cron job execution: %s. Something seems wrong." : "Azken cron lan exekuzioa: %s. Zerbait gaizki dirudi.",
"Cron was not executed yet!" : "Cron-a oraindik ez da exekutatu!",
"Execute one task with each page loaded" : "Exekutatu zeregin bat orri karga bakoitzean",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php webcron zerbitzu batean erregistratua dago cron.php 15 minuturo http bidez deitzeko.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Erabili sistemaren cron zerbitzua deitzeko cron.php fitxategia 15 minutuan behin.",
+ "The cron.php needs to be executed by the system user \"%s\"." : "Sistemako \"%s\" erabiltzaileak, cron.php exekutatu behar du.",
"Version" : "Bertsioa",
"Sharing" : "Partekatzea",
"Allow apps to use the Share API" : "Baimendu aplikazioak partekatzeko APIa erabiltzeko",
@@ -197,9 +205,11 @@ OC.L10N.register(
"days" : "egun",
"Enforce expiration date" : "Muga data betearazi",
"Allow resharing" : "Baimendu birpartekatzea",
+ "Allow sharing with groups" : "Onartu taldeekin partekatzen",
"Restrict users to only share with users in their groups" : "Mugatu partekatzeak taldeko erabiltzaileetara",
"Exclude groups from sharing" : "Baztertu taldeak partekatzean",
"These groups will still be able to receive shares, but not to initiate them." : "Talde hauek oraindik jaso ahal izango dute partekatzeak, baina ezingo dute partekatu",
+ "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Onartu elkarbanatze elkarrizketan, erabiltzaile osatze automatikoa. Desgaituta badago, erabiltzaile izena osoa sartu behar da.",
"Tips & tricks" : "Aholkuak eta trikimailuak",
"To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>.",
"How to do backups" : "Nola egin babes kopiak",
@@ -215,6 +225,7 @@ OC.L10N.register(
"User documentation" : "Erabiltzailearen dokumentazioa",
"Admin documentation" : "Administratzailearen dokumentazioa",
"Visit website" : "Web orria ikusi",
+ "Report a bug" : "Akats baten berri eman",
"Show description …" : "Erakutsi deskribapena ...",
"Hide description …" : "Ezkutatu deskribapena ...",
"This app has an update available." : "Aplikazio honek eguneraketa bat eskuragarri ditu.",
@@ -232,9 +243,14 @@ OC.L10N.register(
"Cheers!" : "Ongi izan!",
"Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Kaixo,\n\nJakinarazi nahi dizugu, badaukazula %s kontua.\n\nZure erabiltzaile izena: %s \nSar zaitez: %s\n",
"Administrator documentation" : "Administratzaile dokumentazioa",
+ "Online documentation" : "Online dokumentazioa",
"Forum" : "Foroa",
+ "Getting help" : "Laguntza lortzen",
+ "Commercial support" : "Merkataritza laguntza",
+ "You are using <strong>%s</strong> of <strong>%s</strong>" : "Zuk <strong>%s</strong> erabiltzen ari zara <strong>%s</strong>-tik",
"Profile picture" : "Zure irudia",
"Upload new" : "Igo berria",
+ "Select from Files" : "Aukeratu fitxategien artean",
"Remove image" : "Irudia ezabatu",
"Picture provided by original account" : "Irudia jatorrizko kontutik hartuta",
"Cancel" : "Ezeztatu",
@@ -244,12 +260,16 @@ OC.L10N.register(
"Email" : "E-posta",
"Your email address" : "Zure e-posta",
"No email address set" : "Ez da eposta helbidea ezarri",
+ "For password reset and notifications" : "Pasahitza berrezartzeko eta jakinarazpenerako",
"Phone number" : "Telefono zenbakia",
"Your phone number" : "Zure telefono zenbakia",
"Address" : "Helbidea",
"Your postal address" : "Zure helbidea",
"Website" : "Web orria",
"Your website" : "Zure web orria",
+ "Twitter" : "Twitter",
+ "Your Twitter handle" : "Zure Twitter erabiltzailea",
+ "You are member of the following groups:" : "Zuk honako talde kide zara:",
"Password" : "Pasahitza",
"Current password" : "Uneko pasahitza",
"New password" : "Pasahitz berria",
@@ -261,7 +281,15 @@ OC.L10N.register(
"Android app" : "Android aplikazioa",
"iOS app" : "iOS aplikazioa",
"Show First Run Wizard again" : "Erakutsi berriz Lehenengo Aldiko Morroia",
+ "Web, desktop and mobile clients currently logged in to your account." : "Web-gune, mahaigain eta mugikorrean zure kontuan saioa hasita dago.",
+ "Device" : "Gailu",
+ "Last activity" : "Azken jarduera",
+ "Passcodes that give an app or device permissions to access your account." : "Zure kontuan sartzeko aplikazio edo gailuei baimena ematen dien pasahitzak.",
"Name" : "Izena",
+ "App name" : "Aplikazioaren izena",
+ "Create new app password" : "Sortu app pasahitza berria",
+ "Use the credentials below to configure your app or device." : "Erabili kredentzialak beheko zure aplikazioa edo gailua konfiguratzeko.",
+ "For security reasons this password will only be shown once." : "Segurtasun arrazoiengatik, pasahitz hau behin soilik erakutsiko da.",
"Username" : "Erabiltzaile izena",
"Done" : "Egina",
"Show storage location" : "Erakutsi biltegiaren kokapena",
@@ -273,11 +301,17 @@ OC.L10N.register(
"Create" : "Sortu",
"Admin Recovery Password" : "Administratzailearen pasahitza berreskuratzea",
"Enter the recovery password in order to recover the users files during password change" : "Berreskuratze pasahitza idatzi pasahitz aldaketan erabiltzaileen fitxategiak berreskuratzeko",
+ "Group name" : "Taldearen izena",
"Everyone" : "Edonor",
"Admins" : "Administratzaileak",
+ "Default quota" : "Kuota lehenetsia",
"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Mesedez sartu biltegiratze kouta (adb: \"512 MB\" edo \"12 GB\")",
"Other" : "Bestelakoa",
+ "Group admin for" : "Talde honen administratzailea",
"Quota" : "Kuota",
+ "Storage location" : "Biltegiratze kokapena",
+ "User backend" : "Erabiltzaile jatorria",
+ "Last login" : "Azken saioa",
"change full name" : "aldatu izena",
"set new password" : "ezarri pasahitz berria",
"change email address" : "aldatu eposta helbidea",
@@ -289,6 +323,7 @@ OC.L10N.register(
"Unable to remove user from group %s" : "Ezin izan da erabiltzailea %s taldetik ezabatu",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ziur zaude gehitu nahi duzula \"{domain}\" domeinu fidagarri gisa?",
"Please wait...." : "Itxoin mesedez...",
+ "add group" : "Taldea gehitu",
"Everything (fatal issues, errors, warnings, info, debug)" : "Dena (arazo larriak, erroreak, abisuak, informazioa, arazketa)",
"Info, warnings, errors and fatal issues" : "Informazioa, abisuak, erroreak eta arazo larriak.",
"Warnings, errors and fatal issues" : "Abisuak, erroreak eta arazo larriak",
@@ -303,7 +338,13 @@ OC.L10N.register(
"Uninstall App" : "Desinstalatu aplikazioa",
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Kaixo,<br><br>orain %s kontu bat duzula esateko besterik ez.<br><br>Zure erabiltzailea: %s<br>Sar zaitez: <a href=\"%s\">%s</a><br><br>",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Kaixo,\n\norain %s kontu bat duzula esateko besterik ez.\n\nZure erabiltzailea: %s\nSar zaitez: %s\n\n",
+ "Add Group" : "Gehitu taldea",
"Group" : "Taldea",
- "Full Name" : "Izen osoa"
+ "Default Quota" : "Lehenetsitako kuota",
+ "Full Name" : "Izen osoa",
+ "Group Admin for" : "Talde honen administratzailea",
+ "Storage Location" : "Biltegiratze kokapena",
+ "User Backend" : "Erabiltzaile jatorria",
+ "Last Login" : "Azken saioa"
},
"nplurals=2; plural=(n != 1);");
diff --git a/settings/l10n/eu.json b/settings/l10n/eu.json
index b5421f74f07..f7c05b2a41b 100644
--- a/settings/l10n/eu.json
+++ b/settings/l10n/eu.json
@@ -55,6 +55,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "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." : "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." : "This app is not checked for security issues and is new or known to be unstable. Install at your own risk.",
+ "Disabling app …" : "Aplikazioa desgaitzen...",
"Error while disabling app" : "Erroea izan da aplikazioa desgaitzerakoan",
"Disable" : "Ez-gaitu",
"Enable" : "Gaitu",
@@ -107,6 +108,7 @@
"Contacts" : "Kontaktuak",
"Visible to local users and to trusted servers" : "Bertako erabiltzaile eta zerbitzarien jendearentzat ikusgai",
"Public" : "Publikoa",
+ "Will be synced to a global and public address book" : "Helbide liburu global eta publikoan sinkronizatuko da",
"Select a profile picture" : "Profilaren irudia aukeratu",
"Very weak password" : "Pasahitz oso ahula",
"Weak password" : "Pasahitz ahula",
@@ -121,6 +123,7 @@
"undo" : "desegin",
"never" : "inoiz",
"deleted {userName}" : "{userName} ezabatuta",
+ "No user found for <strong>{pattern}</strong>" : "Ez da aurkitu <strong>{pattern}</strong>erabiltzailea",
"Unable to add user to group {group}" : "Ezin erabiltzailea {group} taldera gehitu",
"Unable to remove user from group {group}" : "Ezin erabiltzailea {group} taldetik kendu",
"Add group" : "Taldea gehitu",
@@ -171,6 +174,7 @@
"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." : "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?" : "This is the final warning: Do you really want to enable encryption?",
"Enable encryption" : "Gaitu enkriptatzea",
+ "Security & setup warnings" : "Segurtasun eta konfigurazio abisuak",
"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." : "Bakarrik irakurtzeko konfigurazioa gaitu da. Honek web-interfazearen bidez konfigurazio batzuk aldatzea ekiditzen du. Are gehiago, fitxategia eskuz ezarri behar da idazteko moduan eguneraketa bakoitzerako.",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Badirudi PHP konfiguratuta dagoela lineako dokumentu blokeak aldatzeko. Honek zenbait oinarrizko aplikazio eskuraezin bihurtuko ditu.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Hau ziur aski cache/accelerator batek eragin du, hala nola Zend OPcache edo eAccelerator.",
@@ -179,11 +183,15 @@
"This means that there might be problems with certain characters in file names." : "Honek esan nahi du fitxategien izenetako karaktere batzuekin arazoak egon daitezkeela.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Biziki gomendatzen dizugu beharrezkoak diren paketea zure sisteman instalatzea honi euskarria eman ahal izateko: %s.",
"If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Zure instalazioa ez badago domeinuaren sustraian egina eta erabiltzen badu sistemaren cron-a, arazoak izan daitezke URL sorreran. Arazo horiek saihesteko ezarri \"overwrite.cli.url\" opzioa zure config.php fitxategian zure instalazioaren webroot bidera (Proposatua: \"%s\")",
+ "All checks passed." : "Egiaztapen guztiak gaindituta.",
"Cron" : "Cron",
+ "Last cron job execution: %s." : "Azken cron lan exekuzioa: %s.",
+ "Last cron job execution: %s. Something seems wrong." : "Azken cron lan exekuzioa: %s. Zerbait gaizki dirudi.",
"Cron was not executed yet!" : "Cron-a oraindik ez da exekutatu!",
"Execute one task with each page loaded" : "Exekutatu zeregin bat orri karga bakoitzean",
"cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php webcron zerbitzu batean erregistratua dago cron.php 15 minuturo http bidez deitzeko.",
"Use system's cron service to call the cron.php file every 15 minutes." : "Erabili sistemaren cron zerbitzua deitzeko cron.php fitxategia 15 minutuan behin.",
+ "The cron.php needs to be executed by the system user \"%s\"." : "Sistemako \"%s\" erabiltzaileak, cron.php exekutatu behar du.",
"Version" : "Bertsioa",
"Sharing" : "Partekatzea",
"Allow apps to use the Share API" : "Baimendu aplikazioak partekatzeko APIa erabiltzeko",
@@ -195,9 +203,11 @@
"days" : "egun",
"Enforce expiration date" : "Muga data betearazi",
"Allow resharing" : "Baimendu birpartekatzea",
+ "Allow sharing with groups" : "Onartu taldeekin partekatzen",
"Restrict users to only share with users in their groups" : "Mugatu partekatzeak taldeko erabiltzaileetara",
"Exclude groups from sharing" : "Baztertu taldeak partekatzean",
"These groups will still be able to receive shares, but not to initiate them." : "Talde hauek oraindik jaso ahal izango dute partekatzeak, baina ezingo dute partekatu",
+ "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Onartu elkarbanatze elkarrizketan, erabiltzaile osatze automatikoa. Desgaituta badago, erabiltzaile izena osoa sartu behar da.",
"Tips & tricks" : "Aholkuak eta trikimailuak",
"To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>.",
"How to do backups" : "Nola egin babes kopiak",
@@ -213,6 +223,7 @@
"User documentation" : "Erabiltzailearen dokumentazioa",
"Admin documentation" : "Administratzailearen dokumentazioa",
"Visit website" : "Web orria ikusi",
+ "Report a bug" : "Akats baten berri eman",
"Show description …" : "Erakutsi deskribapena ...",
"Hide description …" : "Ezkutatu deskribapena ...",
"This app has an update available." : "Aplikazio honek eguneraketa bat eskuragarri ditu.",
@@ -230,9 +241,14 @@
"Cheers!" : "Ongi izan!",
"Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Kaixo,\n\nJakinarazi nahi dizugu, badaukazula %s kontua.\n\nZure erabiltzaile izena: %s \nSar zaitez: %s\n",
"Administrator documentation" : "Administratzaile dokumentazioa",
+ "Online documentation" : "Online dokumentazioa",
"Forum" : "Foroa",
+ "Getting help" : "Laguntza lortzen",
+ "Commercial support" : "Merkataritza laguntza",
+ "You are using <strong>%s</strong> of <strong>%s</strong>" : "Zuk <strong>%s</strong> erabiltzen ari zara <strong>%s</strong>-tik",
"Profile picture" : "Zure irudia",
"Upload new" : "Igo berria",
+ "Select from Files" : "Aukeratu fitxategien artean",
"Remove image" : "Irudia ezabatu",
"Picture provided by original account" : "Irudia jatorrizko kontutik hartuta",
"Cancel" : "Ezeztatu",
@@ -242,12 +258,16 @@
"Email" : "E-posta",
"Your email address" : "Zure e-posta",
"No email address set" : "Ez da eposta helbidea ezarri",
+ "For password reset and notifications" : "Pasahitza berrezartzeko eta jakinarazpenerako",
"Phone number" : "Telefono zenbakia",
"Your phone number" : "Zure telefono zenbakia",
"Address" : "Helbidea",
"Your postal address" : "Zure helbidea",
"Website" : "Web orria",
"Your website" : "Zure web orria",
+ "Twitter" : "Twitter",
+ "Your Twitter handle" : "Zure Twitter erabiltzailea",
+ "You are member of the following groups:" : "Zuk honako talde kide zara:",
"Password" : "Pasahitza",
"Current password" : "Uneko pasahitza",
"New password" : "Pasahitz berria",
@@ -259,7 +279,15 @@
"Android app" : "Android aplikazioa",
"iOS app" : "iOS aplikazioa",
"Show First Run Wizard again" : "Erakutsi berriz Lehenengo Aldiko Morroia",
+ "Web, desktop and mobile clients currently logged in to your account." : "Web-gune, mahaigain eta mugikorrean zure kontuan saioa hasita dago.",
+ "Device" : "Gailu",
+ "Last activity" : "Azken jarduera",
+ "Passcodes that give an app or device permissions to access your account." : "Zure kontuan sartzeko aplikazio edo gailuei baimena ematen dien pasahitzak.",
"Name" : "Izena",
+ "App name" : "Aplikazioaren izena",
+ "Create new app password" : "Sortu app pasahitza berria",
+ "Use the credentials below to configure your app or device." : "Erabili kredentzialak beheko zure aplikazioa edo gailua konfiguratzeko.",
+ "For security reasons this password will only be shown once." : "Segurtasun arrazoiengatik, pasahitz hau behin soilik erakutsiko da.",
"Username" : "Erabiltzaile izena",
"Done" : "Egina",
"Show storage location" : "Erakutsi biltegiaren kokapena",
@@ -271,11 +299,17 @@
"Create" : "Sortu",
"Admin Recovery Password" : "Administratzailearen pasahitza berreskuratzea",
"Enter the recovery password in order to recover the users files during password change" : "Berreskuratze pasahitza idatzi pasahitz aldaketan erabiltzaileen fitxategiak berreskuratzeko",
+ "Group name" : "Taldearen izena",
"Everyone" : "Edonor",
"Admins" : "Administratzaileak",
+ "Default quota" : "Kuota lehenetsia",
"Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Mesedez sartu biltegiratze kouta (adb: \"512 MB\" edo \"12 GB\")",
"Other" : "Bestelakoa",
+ "Group admin for" : "Talde honen administratzailea",
"Quota" : "Kuota",
+ "Storage location" : "Biltegiratze kokapena",
+ "User backend" : "Erabiltzaile jatorria",
+ "Last login" : "Azken saioa",
"change full name" : "aldatu izena",
"set new password" : "ezarri pasahitz berria",
"change email address" : "aldatu eposta helbidea",
@@ -287,6 +321,7 @@
"Unable to remove user from group %s" : "Ezin izan da erabiltzailea %s taldetik ezabatu",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ziur zaude gehitu nahi duzula \"{domain}\" domeinu fidagarri gisa?",
"Please wait...." : "Itxoin mesedez...",
+ "add group" : "Taldea gehitu",
"Everything (fatal issues, errors, warnings, info, debug)" : "Dena (arazo larriak, erroreak, abisuak, informazioa, arazketa)",
"Info, warnings, errors and fatal issues" : "Informazioa, abisuak, erroreak eta arazo larriak.",
"Warnings, errors and fatal issues" : "Abisuak, erroreak eta arazo larriak",
@@ -301,7 +336,13 @@
"Uninstall App" : "Desinstalatu aplikazioa",
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Kaixo,<br><br>orain %s kontu bat duzula esateko besterik ez.<br><br>Zure erabiltzailea: %s<br>Sar zaitez: <a href=\"%s\">%s</a><br><br>",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Kaixo,\n\norain %s kontu bat duzula esateko besterik ez.\n\nZure erabiltzailea: %s\nSar zaitez: %s\n\n",
+ "Add Group" : "Gehitu taldea",
"Group" : "Taldea",
- "Full Name" : "Izen osoa"
+ "Default Quota" : "Lehenetsitako kuota",
+ "Full Name" : "Izen osoa",
+ "Group Admin for" : "Talde honen administratzailea",
+ "Storage Location" : "Biltegiratze kokapena",
+ "User Backend" : "Erabiltzaile jatorria",
+ "Last Login" : "Azken saioa"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/settings/l10n/fr.js b/settings/l10n/fr.js
index ab82fb252cb..351684a9332 100644
--- a/settings/l10n/fr.js
+++ b/settings/l10n/fr.js
@@ -68,7 +68,7 @@ OC.L10N.register(
"Error while disabling broken app" : "Erreur lors de la désactivation de l'application cassé .",
"Updating...." : "Mise à jour...",
"Error while updating app" : "Erreur lors de la mise à jour de l'application",
- "Updated" : "Mise à jour effectuée",
+ "Updated" : "Mise à jour terminée",
"Uninstalling ...." : "Désinstallation...",
"Error while uninstalling app" : "Erreur lors de la désinstallation de l'application",
"Uninstall" : "Désinstaller",
@@ -125,6 +125,7 @@ OC.L10N.register(
"undo" : "annuler",
"never" : "jamais",
"deleted {userName}" : "{userName} supprimé",
+ "No user found for <strong>{pattern}</strong>" : "Aucun utilisateur trouvé pour <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "Impossible d'ajouter l'utilisateur au groupe {group}",
"Unable to remove user from group {group}" : "Impossible de supprimer l'utilisateur du groupe {group}",
"Add group" : "Ajouter un groupe",
@@ -233,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Ajustement des performances",
"Improving the config.php" : "Amélioration du config.php ",
"Theming" : "Personnalisation de l'apparence",
+ "Check the security of your Nextcloud over our security scan" : "Vérifier la sécurité de votre Nextcloud grâce à notre scan de sécurité",
"Hardening and security guidance" : "Guide pour le renforcement et la sécurité",
"Developer documentation" : "Documentation pour développeurs",
"by %s" : "par %s",
@@ -357,10 +359,10 @@ OC.L10N.register(
"Fatal issues only" : "Erreurs fatales uniquement",
"Log" : "Log",
"What to log" : "Ce qu'il faut journaliser",
- "Download logfile" : "Télécharger le fichier de journalisation",
+ "Download logfile" : "Télécharger le fichier journal",
"More" : "Plus",
"Less" : "Moins",
- "The logfile is bigger than 100 MB. Downloading it may take some time!" : "La taille du fichier journal excède 100 Mo. Le télécharger peut prendre un certain temps!",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "La taille du fichier journal excède 100 Mo. Le télécharger peut prendre du temps !",
"Allow users to send mail notification for shared files" : "Autoriser les utilisateurs à envoyer des notifications de partage par e-mail",
"Allow users to send mail notification for shared files to other users" : "Autoriser les utilisateurs à envoyer des notifications de partage par e-mail",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite est actuellement utilisé comme gestionnaire de base de données. Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données.",
diff --git a/settings/l10n/fr.json b/settings/l10n/fr.json
index 60c50acb5d9..a475191857a 100644
--- a/settings/l10n/fr.json
+++ b/settings/l10n/fr.json
@@ -66,7 +66,7 @@
"Error while disabling broken app" : "Erreur lors de la désactivation de l'application cassé .",
"Updating...." : "Mise à jour...",
"Error while updating app" : "Erreur lors de la mise à jour de l'application",
- "Updated" : "Mise à jour effectuée",
+ "Updated" : "Mise à jour terminée",
"Uninstalling ...." : "Désinstallation...",
"Error while uninstalling app" : "Erreur lors de la désinstallation de l'application",
"Uninstall" : "Désinstaller",
@@ -123,6 +123,7 @@
"undo" : "annuler",
"never" : "jamais",
"deleted {userName}" : "{userName} supprimé",
+ "No user found for <strong>{pattern}</strong>" : "Aucun utilisateur trouvé pour <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "Impossible d'ajouter l'utilisateur au groupe {group}",
"Unable to remove user from group {group}" : "Impossible de supprimer l'utilisateur du groupe {group}",
"Add group" : "Ajouter un groupe",
@@ -231,6 +232,7 @@
"Performance tuning" : "Ajustement des performances",
"Improving the config.php" : "Amélioration du config.php ",
"Theming" : "Personnalisation de l'apparence",
+ "Check the security of your Nextcloud over our security scan" : "Vérifier la sécurité de votre Nextcloud grâce à notre scan de sécurité",
"Hardening and security guidance" : "Guide pour le renforcement et la sécurité",
"Developer documentation" : "Documentation pour développeurs",
"by %s" : "par %s",
@@ -355,10 +357,10 @@
"Fatal issues only" : "Erreurs fatales uniquement",
"Log" : "Log",
"What to log" : "Ce qu'il faut journaliser",
- "Download logfile" : "Télécharger le fichier de journalisation",
+ "Download logfile" : "Télécharger le fichier journal",
"More" : "Plus",
"Less" : "Moins",
- "The logfile is bigger than 100 MB. Downloading it may take some time!" : "La taille du fichier journal excède 100 Mo. Le télécharger peut prendre un certain temps!",
+ "The logfile is bigger than 100 MB. Downloading it may take some time!" : "La taille du fichier journal excède 100 Mo. Le télécharger peut prendre du temps !",
"Allow users to send mail notification for shared files" : "Autoriser les utilisateurs à envoyer des notifications de partage par e-mail",
"Allow users to send mail notification for shared files to other users" : "Autoriser les utilisateurs à envoyer des notifications de partage par e-mail",
"SQLite is used as database. For larger installations we recommend to switch to a different database backend." : "SQLite est actuellement utilisé comme gestionnaire de base de données. Pour des installations plus volumineuses, nous vous conseillons d'utiliser un autre gestionnaire de base de données.",
diff --git a/settings/l10n/hu.js b/settings/l10n/hu.js
index ce63c3307de..df7e4f0f098 100644
--- a/settings/l10n/hu.js
+++ b/settings/l10n/hu.js
@@ -25,6 +25,7 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Előbb meg kell adnia az e-mail címét, mielőtt tesztelni tudná az e-mail küldést.",
"Invalid request" : "Érvénytelen kérés",
"Invalid mail address" : "Érvénytelen e-mail cím",
+ "No valid group selected" : "Nincs érvényes csoport kiválasztva",
"A user with that name already exists." : "Ilyen névvel már létezik felhasználó!",
"Unable to create user." : "Nem lehet létrehozni a felhasználót.",
"Your %s account was created" : "%s fiók létrehozva",
@@ -55,6 +56,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "A hivatalos alkalmazásokat a közösség fejleszti. Ezek adják a központi funkcionalitásokat és éles rendszerekben használhatóak.",
"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." : "A jóváhagyott alkalmazásokat megbízható fejlesztők készítik, amik megfelelnek a felületes biztonsági ellenőrzésnek. Nyílt forráskódú tárolóban aktívan karbantartják és biztosítják a stabil használatot.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Ez az alkalmazás még nincs biztonságilag ellenőrizve és vagy új, vagy ismert instabil. Telepítés csak saját felelősségre!",
+ "Disabling app …" : "Alkalmazás tiltása...",
"Error while disabling app" : "Hiba az alkalmazás letiltása közben",
"Disable" : "Letiltás",
"Enable" : "Engedélyezés",
@@ -273,6 +275,7 @@ OC.L10N.register(
"Email" : "E-mail",
"Your email address" : "Az Ön e-mail címe",
"No email address set" : "Nincs e-mail cím beállítva",
+ "For password reset and notifications" : "Jelszóvisszaállításhoz és értesítésekhez",
"Phone number" : "Telefonszám",
"Your phone number" : "A telefonszámod",
"Address" : "Cím",
diff --git a/settings/l10n/hu.json b/settings/l10n/hu.json
index d72c12ede36..4faedf0fdcf 100644
--- a/settings/l10n/hu.json
+++ b/settings/l10n/hu.json
@@ -23,6 +23,7 @@
"You need to set your user email before being able to send test emails." : "Előbb meg kell adnia az e-mail címét, mielőtt tesztelni tudná az e-mail küldést.",
"Invalid request" : "Érvénytelen kérés",
"Invalid mail address" : "Érvénytelen e-mail cím",
+ "No valid group selected" : "Nincs érvényes csoport kiválasztva",
"A user with that name already exists." : "Ilyen névvel már létezik felhasználó!",
"Unable to create user." : "Nem lehet létrehozni a felhasználót.",
"Your %s account was created" : "%s fiók létrehozva",
@@ -53,6 +54,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "A hivatalos alkalmazásokat a közösség fejleszti. Ezek adják a központi funkcionalitásokat és éles rendszerekben használhatóak.",
"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." : "A jóváhagyott alkalmazásokat megbízható fejlesztők készítik, amik megfelelnek a felületes biztonsági ellenőrzésnek. Nyílt forráskódú tárolóban aktívan karbantartják és biztosítják a stabil használatot.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Ez az alkalmazás még nincs biztonságilag ellenőrizve és vagy új, vagy ismert instabil. Telepítés csak saját felelősségre!",
+ "Disabling app …" : "Alkalmazás tiltása...",
"Error while disabling app" : "Hiba az alkalmazás letiltása közben",
"Disable" : "Letiltás",
"Enable" : "Engedélyezés",
@@ -271,6 +273,7 @@
"Email" : "E-mail",
"Your email address" : "Az Ön e-mail címe",
"No email address set" : "Nincs e-mail cím beállítva",
+ "For password reset and notifications" : "Jelszóvisszaállításhoz és értesítésekhez",
"Phone number" : "Telefonszám",
"Your phone number" : "A telefonszámod",
"Address" : "Cím",
diff --git a/settings/l10n/is.js b/settings/l10n/is.js
index cedd821dd17..b97df80e5ed 100644
--- a/settings/l10n/is.js
+++ b/settings/l10n/is.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Opinber forrit eru þróuð af og innan samfélagsins. Þau bjóða upp á ýmsa kjarnaeiginleika og eru tilbúin til notkunar í raunvinnslu.",
"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." : "Samþykkt forrit eru þróuð af treystum forriturum og hafa gengist undir lauslegar öryggisprófanir. Þau eru í virku viðhaldi í opnum hugbúnaðarsöfnum og umsjónarmenn þeirra dæma þau nógu stöðug til notkunar í allri venjulegri vinnslu.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Þetta forrit hefur ekki verið öryggisprófað, er nýtt erða þekkt fyrir ótöðugleika við vissar aðstæður. Uppsetning er á þína ábyrgð.",
+ "Disabling app …" : "Geri forrit óvirkt …",
"Error while disabling app" : "Villa við að afvirkja forrit",
"Disable" : "Gera óvirkt",
"Enable" : "Virkja",
@@ -124,6 +125,7 @@ OC.L10N.register(
"undo" : "afturkalla",
"never" : "aldrei",
"deleted {userName}" : "eyddi {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Enginn notandi fannst fyrir <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "Tókst ekki að bæta notanda við hópinn {group}",
"Unable to remove user from group {group}" : "Ekki tókst að fjarlægja notanda úr hópnum {group}",
"Add group" : "Bæta við hópi",
@@ -168,6 +170,7 @@ OC.L10N.register(
"Server-side encryption" : "Dulritun á þjóni",
"Enable server-side encryption" : "Virkja dulritun á þjóni",
"Please read carefully before activating server-side encryption: " : "Lestu eftirfarandi gaumgæfilega áður en þú virkjar dulritun á þjóni: ",
+ "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." : "Þegar dulritun er virkjuð, munu frá þeim tímapunkti allar skrár sem sendar eru inn á þjóninn verða dulritaðar inni á honum. Einungis mun verða hægt að afvirkja dulritun síðar, ef virka dulritunareiningin styður þá aðgerð, og ef allar forsendur (t.d. að setja endurheimtulykil) eru uppfylltar.",
"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." : "Dulritun ein og sér tryggir ekki öryggi kerfisins. Endilega skoðaðu hjálparskjölin um hvernig dulritunarforritið virkar, og dæmi um hvaða uppsetningar eru studdar.",
"Be aware that encryption always increases the file size." : "Hafðu í huga að dulritun eykur alltaf skráastærð.",
"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." : "Það er góður siður að taka regluleg öryggisafrit af gögnunum þínum; ef um dulrituð gögn er að ræða, gakktu úr skugga um að einnig sé tekið öryggisafrit af dulritunarlyklum ásamt gögnunum.",
@@ -182,13 +185,16 @@ OC.L10N.register(
"php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Það lítur út eins og að PHP sé ekki rétt sett upp varðandi fyrirspurnir um umhverfisbreytur. Prófun með getenv(\"PATH\") skilar auðu svari.",
"Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Endilega skoðaðu <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">hjálparskjöl uppsetningarinnar ↗</a> varðandi athugasemdir vegna uppsetningar PHP og sjálfa uppsetningu PHP-þjónsins, Sérstaklega ef þú notar 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." : "Skrifvarða stillingaskráin hefur verið virkjuð. Þetta kemur í veg fyrir að hægt sé að sýsla með sumar stillingar í gegnum vefviðmótið. Að auki þarf þessi skrá að vera skrifanleg við hverja uppfærslu.",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP virðist vera sett upp to fjarlægja innantextablokkir (inline doc blocks). Þetta mun gera ýmis kjarnaforrit óaðgengileg.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Þessu veldur væntanlega biðminni/hraðall á borð við Zend OPcache eða eAccelerator.",
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Gagnagrunnurinn keyrir ekki með \"READ COMMITTED\" færsluaðgreiningarstiginu. Þetta getur valdið vandamálum þegar margar aðgerðir eru keyrðar í einu.",
"%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s eldra en útgáfa %2$s er uppsett, en vegna stöðugleika og afkasta mælum við með að útgáfa %1$s verði sett upp.",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP-eininguna 'fileinfo' vantar. Við mælum eindregið með notkun þessarar einingar til að fá bestu útkomu við greiningu á MIME-skráagerðum.",
+ "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 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "Færslulæsing skráa (transactional file locking) er óvirk, þetta gæti leitt til vandamála út frá forgangsskilyrðum (race conditions). Virkjaðu 'filelocking.enabled' í config.php til að forðast slík vandamál. Skoðaðu <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">hjálparskjölin ↗</a> til að sjá nánari upplýsingar.",
"System locale can not be set to a one which supports UTF-8." : "Ekki var hægt að setja staðfærslu kerfisins á neina sem styður UTF-8.",
"This means that there might be problems with certain characters in file names." : "Þetta þýðir að það geta komið upp vandamál við að birta ákveðna stafi í skráaheitum.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Við mælum eindregið með því að þessir nauðsynlegu pakkar séu á kerfinu til stuðnings einnar af eftirfarandi staðfærslum: %s",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ef uppsetningin þín er ekki á rót lénsins og þú notar cron stýrikerfisins, þá geta komið upp vandamál við gerð URL-slóða. Til að forðast slík vandamál, skaltu stilla \"overwrite.cli.url\" valkostinn í config.php skránni þinni á slóð vefrótarinnar (webroot) í uppsetningunni (tillaga: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Ekki var hægt að keyra cron-verkið á skipanalínu. Eftirfarandi tæknilegar villur komu upp:",
"Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Yfirfarðu vandlega <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">uppsetningarleiðbeiningarnar ↗</a>, og athugaðu hvort nokkrar villumeldingar eða aðvaranir séu í <a href=\"%s\">annálnum</a>.",
"All checks passed." : "Stóðst allar prófanir.",
@@ -228,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Fínstilling afkasta",
"Improving the config.php" : "Bæting á config.php skránni",
"Theming" : "Þemu",
+ "Check the security of your Nextcloud over our security scan" : "Athugaðu öryggi Nextcloud-skýsins með öryggisskönnun okkar",
"Hardening and security guidance" : "Brynjun og öryggisleiðbeiningar",
"Developer documentation" : "Skjölun fyrir þróunaraðila",
"by %s" : "frá %s",
@@ -367,6 +374,7 @@ OC.L10N.register(
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Hæ þú,<br><br>bara að láta þig vita að þú átt núna %s aðgang.<br><br>Notandanafnið þitt: %s<br>Tengstu honum: <a href=\"%s\">%s</a><br><br>",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hæ þú,\n\nbara að láta þig vita að þú átt núna %s aðgang.\n\nNotandanafnið þitt: %s\nTengstu honum: %s\n\n",
"For password recovery and notifications" : "Fyrir tilkynningar og endurheimtingu lykilorðs",
+ "If you want to support the project\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "Ef þú vilt styðja við verkefnið\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">taktu þátt í þróuninni</a>\n\t\teða\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">láttu orð út ganga</a>!",
"Add Group" : "Bæta við hópi",
"Group" : "Hópur",
"Default Quota" : "Sjálfgefinn kvóti",
diff --git a/settings/l10n/is.json b/settings/l10n/is.json
index 286323f8c11..455f1ff4f51 100644
--- a/settings/l10n/is.json
+++ b/settings/l10n/is.json
@@ -55,6 +55,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Opinber forrit eru þróuð af og innan samfélagsins. Þau bjóða upp á ýmsa kjarnaeiginleika og eru tilbúin til notkunar í raunvinnslu.",
"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." : "Samþykkt forrit eru þróuð af treystum forriturum og hafa gengist undir lauslegar öryggisprófanir. Þau eru í virku viðhaldi í opnum hugbúnaðarsöfnum og umsjónarmenn þeirra dæma þau nógu stöðug til notkunar í allri venjulegri vinnslu.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Þetta forrit hefur ekki verið öryggisprófað, er nýtt erða þekkt fyrir ótöðugleika við vissar aðstæður. Uppsetning er á þína ábyrgð.",
+ "Disabling app …" : "Geri forrit óvirkt …",
"Error while disabling app" : "Villa við að afvirkja forrit",
"Disable" : "Gera óvirkt",
"Enable" : "Virkja",
@@ -122,6 +123,7 @@
"undo" : "afturkalla",
"never" : "aldrei",
"deleted {userName}" : "eyddi {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Enginn notandi fannst fyrir <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "Tókst ekki að bæta notanda við hópinn {group}",
"Unable to remove user from group {group}" : "Ekki tókst að fjarlægja notanda úr hópnum {group}",
"Add group" : "Bæta við hópi",
@@ -166,6 +168,7 @@
"Server-side encryption" : "Dulritun á þjóni",
"Enable server-side encryption" : "Virkja dulritun á þjóni",
"Please read carefully before activating server-side encryption: " : "Lestu eftirfarandi gaumgæfilega áður en þú virkjar dulritun á þjóni: ",
+ "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." : "Þegar dulritun er virkjuð, munu frá þeim tímapunkti allar skrár sem sendar eru inn á þjóninn verða dulritaðar inni á honum. Einungis mun verða hægt að afvirkja dulritun síðar, ef virka dulritunareiningin styður þá aðgerð, og ef allar forsendur (t.d. að setja endurheimtulykil) eru uppfylltar.",
"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." : "Dulritun ein og sér tryggir ekki öryggi kerfisins. Endilega skoðaðu hjálparskjölin um hvernig dulritunarforritið virkar, og dæmi um hvaða uppsetningar eru studdar.",
"Be aware that encryption always increases the file size." : "Hafðu í huga að dulritun eykur alltaf skráastærð.",
"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." : "Það er góður siður að taka regluleg öryggisafrit af gögnunum þínum; ef um dulrituð gögn er að ræða, gakktu úr skugga um að einnig sé tekið öryggisafrit af dulritunarlyklum ásamt gögnunum.",
@@ -180,13 +183,16 @@
"php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Það lítur út eins og að PHP sé ekki rétt sett upp varðandi fyrirspurnir um umhverfisbreytur. Prófun með getenv(\"PATH\") skilar auðu svari.",
"Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Endilega skoðaðu <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">hjálparskjöl uppsetningarinnar ↗</a> varðandi athugasemdir vegna uppsetningar PHP og sjálfa uppsetningu PHP-þjónsins, Sérstaklega ef þú notar 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." : "Skrifvarða stillingaskráin hefur verið virkjuð. Þetta kemur í veg fyrir að hægt sé að sýsla með sumar stillingar í gegnum vefviðmótið. Að auki þarf þessi skrá að vera skrifanleg við hverja uppfærslu.",
+ "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP virðist vera sett upp to fjarlægja innantextablokkir (inline doc blocks). Þetta mun gera ýmis kjarnaforrit óaðgengileg.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Þessu veldur væntanlega biðminni/hraðall á borð við Zend OPcache eða eAccelerator.",
"Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Gagnagrunnurinn keyrir ekki með \"READ COMMITTED\" færsluaðgreiningarstiginu. Þetta getur valdið vandamálum þegar margar aðgerðir eru keyrðar í einu.",
"%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s eldra en útgáfa %2$s er uppsett, en vegna stöðugleika og afkasta mælum við með að útgáfa %1$s verði sett upp.",
"The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "PHP-eininguna 'fileinfo' vantar. Við mælum eindregið með notkun þessarar einingar til að fá bestu útkomu við greiningu á MIME-skráagerðum.",
+ "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 <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "Færslulæsing skráa (transactional file locking) er óvirk, þetta gæti leitt til vandamála út frá forgangsskilyrðum (race conditions). Virkjaðu 'filelocking.enabled' í config.php til að forðast slík vandamál. Skoðaðu <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">hjálparskjölin ↗</a> til að sjá nánari upplýsingar.",
"System locale can not be set to a one which supports UTF-8." : "Ekki var hægt að setja staðfærslu kerfisins á neina sem styður UTF-8.",
"This means that there might be problems with certain characters in file names." : "Þetta þýðir að það geta komið upp vandamál við að birta ákveðna stafi í skráaheitum.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Við mælum eindregið með því að þessir nauðsynlegu pakkar séu á kerfinu til stuðnings einnar af eftirfarandi staðfærslum: %s",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Ef uppsetningin þín er ekki á rót lénsins og þú notar cron stýrikerfisins, þá geta komið upp vandamál við gerð URL-slóða. Til að forðast slík vandamál, skaltu stilla \"overwrite.cli.url\" valkostinn í config.php skránni þinni á slóð vefrótarinnar (webroot) í uppsetningunni (tillaga: \"%s\")",
"It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "Ekki var hægt að keyra cron-verkið á skipanalínu. Eftirfarandi tæknilegar villur komu upp:",
"Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Yfirfarðu vandlega <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">uppsetningarleiðbeiningarnar ↗</a>, og athugaðu hvort nokkrar villumeldingar eða aðvaranir séu í <a href=\"%s\">annálnum</a>.",
"All checks passed." : "Stóðst allar prófanir.",
@@ -226,6 +232,7 @@
"Performance tuning" : "Fínstilling afkasta",
"Improving the config.php" : "Bæting á config.php skránni",
"Theming" : "Þemu",
+ "Check the security of your Nextcloud over our security scan" : "Athugaðu öryggi Nextcloud-skýsins með öryggisskönnun okkar",
"Hardening and security guidance" : "Brynjun og öryggisleiðbeiningar",
"Developer documentation" : "Skjölun fyrir þróunaraðila",
"by %s" : "frá %s",
@@ -365,6 +372,7 @@
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Hæ þú,<br><br>bara að láta þig vita að þú átt núna %s aðgang.<br><br>Notandanafnið þitt: %s<br>Tengstu honum: <a href=\"%s\">%s</a><br><br>",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hæ þú,\n\nbara að láta þig vita að þú átt núna %s aðgang.\n\nNotandanafnið þitt: %s\nTengstu honum: %s\n\n",
"For password recovery and notifications" : "Fyrir tilkynningar og endurheimtingu lykilorðs",
+ "If you want to support the project\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "Ef þú vilt styðja við verkefnið\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">taktu þátt í þróuninni</a>\n\t\teða\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">láttu orð út ganga</a>!",
"Add Group" : "Bæta við hópi",
"Group" : "Hópur",
"Default Quota" : "Sjálfgefinn kvóti",
diff --git a/settings/l10n/it.js b/settings/l10n/it.js
index 505705ee691..6b6680ce1f5 100644
--- a/settings/l10n/it.js
+++ b/settings/l10n/it.js
@@ -27,7 +27,7 @@ OC.L10N.register(
"Invalid mail address" : "Indirizzo email non valido",
"No valid group selected" : "Nessun gruppo valido selezionato",
"A user with that name already exists." : "Un utente con quel nome esiste già.",
- "To send a password link to the user an email address is required." : "Per inviare un link password all'utente è richiesta una email.",
+ "To send a password link to the user an email address is required." : "Per inviare un collegamento della password all'utente è richiesto un indirizzo email.",
"Unable to create user." : "Impossibile creare l'utente.",
"Your %s account was created" : "Il tuo account %s è stato creato",
"Unable to delete user." : "Impossibile eliminare l'utente.",
@@ -57,7 +57,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Le applicazioni ufficiali sono sviluppate dalla comunità. Esse offrono nuove funzionalità e sono pronte per l'uso in produzione.",
"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." : "Le applicazioni approvate sono sviluppate da sviluppatori affidabili e hanno passato un rapido controllo di sicurezza. Sono attivamente mantenute in un deposito aperto del codice e i loro responsabili le ritengono pronte sia per un utilizzo casuale che per un utilizzo continuativo.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Questa applicazione non è stata sottoposta a controlli di sicurezza, è nuova o notoriamente instabile. Installala a tuo rischio.",
- "Disabling app …" : "Disabilita applicazione...",
+ "Disabling app …" : "Disabilitazione applicazione...",
"Error while disabling app" : "Errore durante la disattivazione",
"Disable" : "Disabilita",
"Enable" : "Abilita",
@@ -278,7 +278,7 @@ OC.L10N.register(
"Email" : "Posta elettronica",
"Your email address" : "Il tuo indirizzo email",
"No email address set" : "Nessun indirizzo email impostato",
- "For password reset and notifications" : "Per il reset della password e notifiche",
+ "For password reset and notifications" : "Per ripristino della password e notifiche",
"Phone number" : "Numero di telefono",
"Your phone number" : "Il tuo numero di telefono",
"Address" : "Indirizzo",
@@ -321,7 +321,7 @@ OC.L10N.register(
"Show last log in" : "Mostra ultimo accesso",
"Show user backend" : "Mostra il motore utente",
"Send email to new user" : "Invia email al nuovo utente",
- "When the password of the new user is left empty an activation email with a link to set the password is send to the user" : "Quando la password del nuovo utente è lasciata vuota una email con un link per impostare la password è inviata all'utente",
+ "When the password of the new user is left empty an activation email with a link to set the password is send to the user" : "Quando la password del nuovo utente è lasciata vuota una email con un collegamento per impostare la password è inviata all'utente",
"Show email address" : "Mostra l'indirizzo email",
"E-Mail" : "Posta elettronica",
"Create" : "Crea",
@@ -372,7 +372,7 @@ OC.L10N.register(
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Ciao,<br><br>volevo informarti che ora hai un account %s.<br><br>Il tuo nome utente: %s<br>Accedi: <a href=\"%s\">%s</a><br><br>",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ciao,\n\nvolevo informarti che ora hai un account %s.\n\nIl tuo nome utente: %s\nAccedi: %s\n\n",
"For password recovery and notifications" : "Per il ripristino della password e per le notifiche",
- "If you want to support the project\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "Se vuoi supportare il progetto\n⇥⇥<a href=\"https://nextcloud.com/contribute\"\n⇥⇥⇥target=\"_blank\" rel=\"noreferrer\">sviluppa</a>\n⇥⇥o\n⇥⇥<a href=\"https://nextcloud.com/contribute\"\n⇥⇥⇥target=\"_blank\" rel=\"noreferrer\">fai girare la voce</a>!",
+ "If you want to support the project\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "Se vuoi supportare il progetto\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">contribuisci allo sviluppo</a>\n\t\to\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">diffondi il verbo</a>!",
"Add Group" : "Aggiungi gruppo",
"Group" : "Gruppo",
"Default Quota" : "Quota predefinita",
diff --git a/settings/l10n/it.json b/settings/l10n/it.json
index 1ee7cf556ca..413dde60f42 100644
--- a/settings/l10n/it.json
+++ b/settings/l10n/it.json
@@ -25,7 +25,7 @@
"Invalid mail address" : "Indirizzo email non valido",
"No valid group selected" : "Nessun gruppo valido selezionato",
"A user with that name already exists." : "Un utente con quel nome esiste già.",
- "To send a password link to the user an email address is required." : "Per inviare un link password all'utente è richiesta una email.",
+ "To send a password link to the user an email address is required." : "Per inviare un collegamento della password all'utente è richiesto un indirizzo email.",
"Unable to create user." : "Impossibile creare l'utente.",
"Your %s account was created" : "Il tuo account %s è stato creato",
"Unable to delete user." : "Impossibile eliminare l'utente.",
@@ -55,7 +55,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Le applicazioni ufficiali sono sviluppate dalla comunità. Esse offrono nuove funzionalità e sono pronte per l'uso in produzione.",
"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." : "Le applicazioni approvate sono sviluppate da sviluppatori affidabili e hanno passato un rapido controllo di sicurezza. Sono attivamente mantenute in un deposito aperto del codice e i loro responsabili le ritengono pronte sia per un utilizzo casuale che per un utilizzo continuativo.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Questa applicazione non è stata sottoposta a controlli di sicurezza, è nuova o notoriamente instabile. Installala a tuo rischio.",
- "Disabling app …" : "Disabilita applicazione...",
+ "Disabling app …" : "Disabilitazione applicazione...",
"Error while disabling app" : "Errore durante la disattivazione",
"Disable" : "Disabilita",
"Enable" : "Abilita",
@@ -276,7 +276,7 @@
"Email" : "Posta elettronica",
"Your email address" : "Il tuo indirizzo email",
"No email address set" : "Nessun indirizzo email impostato",
- "For password reset and notifications" : "Per il reset della password e notifiche",
+ "For password reset and notifications" : "Per ripristino della password e notifiche",
"Phone number" : "Numero di telefono",
"Your phone number" : "Il tuo numero di telefono",
"Address" : "Indirizzo",
@@ -319,7 +319,7 @@
"Show last log in" : "Mostra ultimo accesso",
"Show user backend" : "Mostra il motore utente",
"Send email to new user" : "Invia email al nuovo utente",
- "When the password of the new user is left empty an activation email with a link to set the password is send to the user" : "Quando la password del nuovo utente è lasciata vuota una email con un link per impostare la password è inviata all'utente",
+ "When the password of the new user is left empty an activation email with a link to set the password is send to the user" : "Quando la password del nuovo utente è lasciata vuota una email con un collegamento per impostare la password è inviata all'utente",
"Show email address" : "Mostra l'indirizzo email",
"E-Mail" : "Posta elettronica",
"Create" : "Crea",
@@ -370,7 +370,7 @@
"Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Ciao,<br><br>volevo informarti che ora hai un account %s.<br><br>Il tuo nome utente: %s<br>Accedi: <a href=\"%s\">%s</a><br><br>",
"Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Ciao,\n\nvolevo informarti che ora hai un account %s.\n\nIl tuo nome utente: %s\nAccedi: %s\n\n",
"For password recovery and notifications" : "Per il ripristino della password e per le notifiche",
- "If you want to support the project\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "Se vuoi supportare il progetto\n⇥⇥<a href=\"https://nextcloud.com/contribute\"\n⇥⇥⇥target=\"_blank\" rel=\"noreferrer\">sviluppa</a>\n⇥⇥o\n⇥⇥<a href=\"https://nextcloud.com/contribute\"\n⇥⇥⇥target=\"_blank\" rel=\"noreferrer\">fai girare la voce</a>!",
+ "If you want to support the project\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">join development</a>\n\t\tor\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">spread the word</a>!" : "Se vuoi supportare il progetto\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">contribuisci allo sviluppo</a>\n\t\to\n\t\t<a href=\"https://nextcloud.com/contribute\"\n\t\t\ttarget=\"_blank\" rel=\"noreferrer\">diffondi il verbo</a>!",
"Add Group" : "Aggiungi gruppo",
"Group" : "Gruppo",
"Default Quota" : "Quota predefinita",
diff --git a/settings/l10n/nl.js b/settings/l10n/nl.js
index c5c23bad83c..acb7f4eecc0 100644
--- a/settings/l10n/nl.js
+++ b/settings/l10n/nl.js
@@ -125,6 +125,7 @@ OC.L10N.register(
"undo" : "ongedaan maken",
"never" : "geen",
"deleted {userName}" : "verwijderd {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Geen gebruikers gevonden voor <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "Kan niet worden toegevoegd aan gebruikersgroep {group}",
"Unable to remove user from group {group}" : "Gebruiker kan niet worden verwijderd van groep {group}",
"Add group" : "Groep toevoegen",
@@ -233,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Prestatie afstelling",
"Improving the config.php" : "config.php verbeteren",
"Theming" : "Thema's",
+ "Check the security of your Nextcloud over our security scan" : "Controleer de beveiliging van je Nextcloud met onze securityscan",
"Hardening and security guidance" : "Hardening en security advies",
"Developer documentation" : "Ontwikkelaarsdocumentatie",
"by %s" : "op %s",
diff --git a/settings/l10n/nl.json b/settings/l10n/nl.json
index 8de3e5d5e6f..7684b6ebc39 100644
--- a/settings/l10n/nl.json
+++ b/settings/l10n/nl.json
@@ -123,6 +123,7 @@
"undo" : "ongedaan maken",
"never" : "geen",
"deleted {userName}" : "verwijderd {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Geen gebruikers gevonden voor <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "Kan niet worden toegevoegd aan gebruikersgroep {group}",
"Unable to remove user from group {group}" : "Gebruiker kan niet worden verwijderd van groep {group}",
"Add group" : "Groep toevoegen",
@@ -231,6 +232,7 @@
"Performance tuning" : "Prestatie afstelling",
"Improving the config.php" : "config.php verbeteren",
"Theming" : "Thema's",
+ "Check the security of your Nextcloud over our security scan" : "Controleer de beveiliging van je Nextcloud met onze securityscan",
"Hardening and security guidance" : "Hardening en security advies",
"Developer documentation" : "Ontwikkelaarsdocumentatie",
"by %s" : "op %s",
diff --git a/settings/l10n/pl.js b/settings/l10n/pl.js
index f46fa84052a..a7290c92d13 100644
--- a/settings/l10n/pl.js
+++ b/settings/l10n/pl.js
@@ -125,6 +125,7 @@ OC.L10N.register(
"undo" : "cofnij",
"never" : "nigdy",
"deleted {userName}" : "usunięto {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Nie znaleziono użytkownika dla <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "Nie mogę dodać użytkownika do grupy {group}",
"Unable to remove user from group {group}" : "Nie mogę usunąć użytkownika z grupy {group}",
"Add group" : "Dodaj grupę",
@@ -233,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Podnoszenie wydajności",
"Improving the config.php" : "Udoskonalać się w config.php",
"Theming" : "Motyw",
+ "Check the security of your Nextcloud over our security scan" : "Sprawdź bezpieczeństwo swojego Nextclouda przez nasz skan zabezpieczeń",
"Hardening and security guidance" : "Kierowanie i wzmacnianie bezpieczeństwa",
"Developer documentation" : "Dokumentacja dewelopera",
"by %s" : "autorstwa %s",
diff --git a/settings/l10n/pl.json b/settings/l10n/pl.json
index 6bcb77480a4..2a03384a6b1 100644
--- a/settings/l10n/pl.json
+++ b/settings/l10n/pl.json
@@ -123,6 +123,7 @@
"undo" : "cofnij",
"never" : "nigdy",
"deleted {userName}" : "usunięto {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Nie znaleziono użytkownika dla <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "Nie mogę dodać użytkownika do grupy {group}",
"Unable to remove user from group {group}" : "Nie mogę usunąć użytkownika z grupy {group}",
"Add group" : "Dodaj grupę",
@@ -231,6 +232,7 @@
"Performance tuning" : "Podnoszenie wydajności",
"Improving the config.php" : "Udoskonalać się w config.php",
"Theming" : "Motyw",
+ "Check the security of your Nextcloud over our security scan" : "Sprawdź bezpieczeństwo swojego Nextclouda przez nasz skan zabezpieczeń",
"Hardening and security guidance" : "Kierowanie i wzmacnianie bezpieczeństwa",
"Developer documentation" : "Dokumentacja dewelopera",
"by %s" : "autorstwa %s",
diff --git a/settings/l10n/pt_BR.js b/settings/l10n/pt_BR.js
index 14e52679104..d797c14da02 100644
--- a/settings/l10n/pt_BR.js
+++ b/settings/l10n/pt_BR.js
@@ -125,6 +125,7 @@ OC.L10N.register(
"undo" : "desfazer",
"never" : "nunca",
"deleted {userName}" : "eliminado {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Nenhum usuário encontrado para <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "Não é possível adicionar usuário ao grupo {group}",
"Unable to remove user from group {group}" : "Não é possível remover usuário do grupo {group}",
"Add group" : "Adicionar grupo",
@@ -233,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Aprimorando performance",
"Improving the config.php" : "Melhorando o config.php",
"Theming" : "Elaborar um tema",
+ "Check the security of your Nextcloud over our security scan" : "Verifique a segurança da sua Nextcloud sobre a nossa análise de segurança",
"Hardening and security guidance" : "Orientações de proteção e segurança",
"Developer documentation" : "Documentação do desenvolvedor",
"by %s" : "por %s",
diff --git a/settings/l10n/pt_BR.json b/settings/l10n/pt_BR.json
index 803ee756a89..fecedd5f40b 100644
--- a/settings/l10n/pt_BR.json
+++ b/settings/l10n/pt_BR.json
@@ -123,6 +123,7 @@
"undo" : "desfazer",
"never" : "nunca",
"deleted {userName}" : "eliminado {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Nenhum usuário encontrado para <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "Não é possível adicionar usuário ao grupo {group}",
"Unable to remove user from group {group}" : "Não é possível remover usuário do grupo {group}",
"Add group" : "Adicionar grupo",
@@ -231,6 +232,7 @@
"Performance tuning" : "Aprimorando performance",
"Improving the config.php" : "Melhorando o config.php",
"Theming" : "Elaborar um tema",
+ "Check the security of your Nextcloud over our security scan" : "Verifique a segurança da sua Nextcloud sobre a nossa análise de segurança",
"Hardening and security guidance" : "Orientações de proteção e segurança",
"Developer documentation" : "Documentação do desenvolvedor",
"by %s" : "por %s",
diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js
index 051659a36b6..7245eaff457 100644
--- a/settings/l10n/ru.js
+++ b/settings/l10n/ru.js
@@ -125,6 +125,7 @@ OC.L10N.register(
"undo" : "отмена",
"never" : "никогда",
"deleted {userName}" : "удалён {userName}",
+ "No user found for <strong>{pattern}</strong>" : "По шаблону <strong>{pattern}</strong> пользователей не найдено",
"Unable to add user to group {group}" : "Невозможно добавить пользователя в группу {group}",
"Unable to remove user from group {group}" : "Невозможно удалить пользователя из группы {group}",
"Add group" : "Добавить группу",
@@ -233,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Настройка производительности",
"Improving the config.php" : "Улучшение config.php",
"Theming" : "Темы оформления",
+ "Check the security of your Nextcloud over our security scan" : "Проверить безопасность вашего Nextcloud нашем сканером",
"Hardening and security guidance" : "Руководство по безопасности и защите",
"Developer documentation" : "Документация для разработчиков",
"by %s" : "от %s",
diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json
index ef49c52e404..345bac3745b 100644
--- a/settings/l10n/ru.json
+++ b/settings/l10n/ru.json
@@ -123,6 +123,7 @@
"undo" : "отмена",
"never" : "никогда",
"deleted {userName}" : "удалён {userName}",
+ "No user found for <strong>{pattern}</strong>" : "По шаблону <strong>{pattern}</strong> пользователей не найдено",
"Unable to add user to group {group}" : "Невозможно добавить пользователя в группу {group}",
"Unable to remove user from group {group}" : "Невозможно удалить пользователя из группы {group}",
"Add group" : "Добавить группу",
@@ -231,6 +232,7 @@
"Performance tuning" : "Настройка производительности",
"Improving the config.php" : "Улучшение config.php",
"Theming" : "Темы оформления",
+ "Check the security of your Nextcloud over our security scan" : "Проверить безопасность вашего Nextcloud нашем сканером",
"Hardening and security guidance" : "Руководство по безопасности и защите",
"Developer documentation" : "Документация для разработчиков",
"by %s" : "от %s",
diff --git a/settings/l10n/sv.js b/settings/l10n/sv.js
index 4f21b72730f..c877b784840 100644
--- a/settings/l10n/sv.js
+++ b/settings/l10n/sv.js
@@ -25,7 +25,9 @@ OC.L10N.register(
"You need to set your user email before being able to send test emails." : "Du behöver ställa in din användares e-postadress före du kan skicka test e-post.",
"Invalid request" : "Ogiltig begäran",
"Invalid mail address" : "Ogiltig e-postadress",
+ "No valid group selected" : "Ingen giltig grupp vald",
"A user with that name already exists." : "En användare med det namnet existerar redan.",
+ "To send a password link to the user an email address is required." : "För att skicka en länk med lösenord till användaren så krävs en e-postadress.",
"Unable to create user." : "Kan inte skapa användare.",
"Your %s account was created" : "Ditt %s konto skapades",
"Unable to delete user." : "Kan inte radera användare.",
@@ -55,6 +57,7 @@ OC.L10N.register(
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiella appar är utvecklade av Nextclouds community. De erbjuder central funktionalitet och är redo för att användas i produktion.",
"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." : "Godkända appar är utvecklade av betrodda utvecklare och har genomgått enklare säkerhetstester. De är aktivt utvecklade i ett öppet kodbibliotek och deras underhållare anser dom stabila nog för enklare till normalt användande.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Denna applikation är ej kontrollerad för säkerhetsbrister och är ny eller känd att orsaka instabilitetsproblem. Installera på egen risk.",
+ "Disabling app …" : "Inaktiverar app ...",
"Error while disabling app" : "Fel vid inaktivering av app",
"Disable" : "Inaktivera",
"Enable" : "Aktivera",
@@ -122,6 +125,9 @@ OC.L10N.register(
"undo" : "ångra",
"never" : "aldrig",
"deleted {userName}" : "raderade {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Ingen användare hittades för <strong>{pattern}</strong>",
+ "Unable to add user to group {group}" : "Gick inte att lägga till användaren i gruppen {group}",
+ "Unable to remove user from group {group}" : "Gick inte att ta bort användaren från gruppen {group}",
"Add group" : "Lägg till grupp",
"Invalid quota value \"{val}\"" : "Ogiltigt quota värde \"{val}\"",
"no group" : "ingen grupp",
@@ -228,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "Prestanda inställningar",
"Improving the config.php" : "Förbättra config.php",
"Theming" : "Teman",
+ "Check the security of your Nextcloud over our security scan" : "Kontrollera säkerheten för ditt Nextcloud med vår säkerhets-skanning",
"Hardening and security guidance" : "Säkerhetsriktlinjer",
"Developer documentation" : "Utvecklardokumentation",
"by %s" : "av %s",
@@ -273,6 +280,7 @@ OC.L10N.register(
"Email" : "E-post",
"Your email address" : "Din e-postadress",
"No email address set" : "Ingen e-postadress angiven",
+ "For password reset and notifications" : "För lösenordsåterställning och notifikationer",
"Phone number" : "Telefonnummer",
"Your phone number" : "Ditt telefonnummer",
"Address" : "Adress",
@@ -315,6 +323,7 @@ OC.L10N.register(
"Show last log in" : "Visa senaste inloggning",
"Show user backend" : "Visa användar-backend",
"Send email to new user" : "Skicka e-post till ny användare",
+ "When the password of the new user is left empty an activation email with a link to set the password is send to the user" : "När lösenordet för en ny användare lämnas tomt så skickas ett aktiveringsmail till användaren med ett länk där användaren kan välja ett lösenord",
"Show email address" : "Visa e-postadress",
"E-Mail" : "E-post",
"Create" : "Skapa",
diff --git a/settings/l10n/sv.json b/settings/l10n/sv.json
index b3908ae2d30..f0ce888b011 100644
--- a/settings/l10n/sv.json
+++ b/settings/l10n/sv.json
@@ -23,7 +23,9 @@
"You need to set your user email before being able to send test emails." : "Du behöver ställa in din användares e-postadress före du kan skicka test e-post.",
"Invalid request" : "Ogiltig begäran",
"Invalid mail address" : "Ogiltig e-postadress",
+ "No valid group selected" : "Ingen giltig grupp vald",
"A user with that name already exists." : "En användare med det namnet existerar redan.",
+ "To send a password link to the user an email address is required." : "För att skicka en länk med lösenord till användaren så krävs en e-postadress.",
"Unable to create user." : "Kan inte skapa användare.",
"Your %s account was created" : "Ditt %s konto skapades",
"Unable to delete user." : "Kan inte radera användare.",
@@ -53,6 +55,7 @@
"Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Officiella appar är utvecklade av Nextclouds community. De erbjuder central funktionalitet och är redo för att användas i produktion.",
"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." : "Godkända appar är utvecklade av betrodda utvecklare och har genomgått enklare säkerhetstester. De är aktivt utvecklade i ett öppet kodbibliotek och deras underhållare anser dom stabila nog för enklare till normalt användande.",
"This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Denna applikation är ej kontrollerad för säkerhetsbrister och är ny eller känd att orsaka instabilitetsproblem. Installera på egen risk.",
+ "Disabling app …" : "Inaktiverar app ...",
"Error while disabling app" : "Fel vid inaktivering av app",
"Disable" : "Inaktivera",
"Enable" : "Aktivera",
@@ -120,6 +123,9 @@
"undo" : "ångra",
"never" : "aldrig",
"deleted {userName}" : "raderade {userName}",
+ "No user found for <strong>{pattern}</strong>" : "Ingen användare hittades för <strong>{pattern}</strong>",
+ "Unable to add user to group {group}" : "Gick inte att lägga till användaren i gruppen {group}",
+ "Unable to remove user from group {group}" : "Gick inte att ta bort användaren från gruppen {group}",
"Add group" : "Lägg till grupp",
"Invalid quota value \"{val}\"" : "Ogiltigt quota värde \"{val}\"",
"no group" : "ingen grupp",
@@ -226,6 +232,7 @@
"Performance tuning" : "Prestanda inställningar",
"Improving the config.php" : "Förbättra config.php",
"Theming" : "Teman",
+ "Check the security of your Nextcloud over our security scan" : "Kontrollera säkerheten för ditt Nextcloud med vår säkerhets-skanning",
"Hardening and security guidance" : "Säkerhetsriktlinjer",
"Developer documentation" : "Utvecklardokumentation",
"by %s" : "av %s",
@@ -271,6 +278,7 @@
"Email" : "E-post",
"Your email address" : "Din e-postadress",
"No email address set" : "Ingen e-postadress angiven",
+ "For password reset and notifications" : "För lösenordsåterställning och notifikationer",
"Phone number" : "Telefonnummer",
"Your phone number" : "Ditt telefonnummer",
"Address" : "Adress",
@@ -313,6 +321,7 @@
"Show last log in" : "Visa senaste inloggning",
"Show user backend" : "Visa användar-backend",
"Send email to new user" : "Skicka e-post till ny användare",
+ "When the password of the new user is left empty an activation email with a link to set the password is send to the user" : "När lösenordet för en ny användare lämnas tomt så skickas ett aktiveringsmail till användaren med ett länk där användaren kan välja ett lösenord",
"Show email address" : "Visa e-postadress",
"E-Mail" : "E-post",
"Create" : "Skapa",
diff --git a/settings/l10n/zh_CN.js b/settings/l10n/zh_CN.js
index 62d78e97204..c92f605002b 100644
--- a/settings/l10n/zh_CN.js
+++ b/settings/l10n/zh_CN.js
@@ -80,12 +80,12 @@ OC.L10N.register(
"Allow filesystem access" : "允许访问文件系统",
"Disconnect" : "断开连接",
"Revoke" : "撤销",
- "Internet Explorer" : "Internet Explorer",
- "Edge" : "Edge",
- "Firefox" : "Firefox",
- "Google Chrome" : "Google Chrome",
- "Safari" : "Safari",
- "Google Chrome for Android" : "Google Chrome for Android",
+ "Internet Explorer" : "IE浏览器",
+ "Edge" : "Edge浏览器",
+ "Firefox" : "火狐浏览器",
+ "Google Chrome" : "谷歌浏览器",
+ "Safari" : "Safari浏览器",
+ "Google Chrome for Android" : "安卓版谷歌浏览器",
"iPhone iOS" : "iPhone iOS",
"iPad iOS" : "iPad iOS",
"iOS Client" : "iOS 客户端",
@@ -125,6 +125,7 @@ OC.L10N.register(
"undo" : "撤销",
"never" : "从不",
"deleted {userName}" : "已删除 {userName}",
+ "No user found for <strong>{pattern}</strong>" : "没有用户发现 <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "无法将用户添加到分组 {group}",
"Unable to remove user from group {group}" : "无法从分组 {group} 中移除用户",
"Add group" : "添加分组",
@@ -233,6 +234,7 @@ OC.L10N.register(
"Performance tuning" : "性能优化",
"Improving the config.php" : "优化 config.php",
"Theming" : "主题",
+ "Check the security of your Nextcloud over our security scan" : "通过我们的安全扫描来检查Nextcloud的安全性",
"Hardening and security guidance" : "强化和安全指南",
"Developer documentation" : "开发者文档",
"by %s" : "由 %s",
diff --git a/settings/l10n/zh_CN.json b/settings/l10n/zh_CN.json
index a20d4d0d8ca..e6b902ae655 100644
--- a/settings/l10n/zh_CN.json
+++ b/settings/l10n/zh_CN.json
@@ -78,12 +78,12 @@
"Allow filesystem access" : "允许访问文件系统",
"Disconnect" : "断开连接",
"Revoke" : "撤销",
- "Internet Explorer" : "Internet Explorer",
- "Edge" : "Edge",
- "Firefox" : "Firefox",
- "Google Chrome" : "Google Chrome",
- "Safari" : "Safari",
- "Google Chrome for Android" : "Google Chrome for Android",
+ "Internet Explorer" : "IE浏览器",
+ "Edge" : "Edge浏览器",
+ "Firefox" : "火狐浏览器",
+ "Google Chrome" : "谷歌浏览器",
+ "Safari" : "Safari浏览器",
+ "Google Chrome for Android" : "安卓版谷歌浏览器",
"iPhone iOS" : "iPhone iOS",
"iPad iOS" : "iPad iOS",
"iOS Client" : "iOS 客户端",
@@ -123,6 +123,7 @@
"undo" : "撤销",
"never" : "从不",
"deleted {userName}" : "已删除 {userName}",
+ "No user found for <strong>{pattern}</strong>" : "没有用户发现 <strong>{pattern}</strong>",
"Unable to add user to group {group}" : "无法将用户添加到分组 {group}",
"Unable to remove user from group {group}" : "无法从分组 {group} 中移除用户",
"Add group" : "添加分组",
@@ -231,6 +232,7 @@
"Performance tuning" : "性能优化",
"Improving the config.php" : "优化 config.php",
"Theming" : "主题",
+ "Check the security of your Nextcloud over our security scan" : "通过我们的安全扫描来检查Nextcloud的安全性",
"Hardening and security guidance" : "强化和安全指南",
"Developer documentation" : "开发者文档",
"by %s" : "由 %s",
diff --git a/settings/templates/admin/tipstricks.php b/settings/templates/admin/tipstricks.php
index 0282deda420..cee5cd8032d 100644
--- a/settings/templates/admin/tipstricks.php
+++ b/settings/templates/admin/tipstricks.php
@@ -44,6 +44,7 @@
<li><a target="_blank" rel="noreferrer" href="<?php p(link_to_docs('admin-performance')); ?>"><?php p($l->t('Performance tuning'));?> ↗</a></li>
<li><a target="_blank" rel="noreferrer" href="<?php p(link_to_docs('admin-config')); ?>"><?php p($l->t('Improving the config.php'));?> ↗</a></li>
<li><a target="_blank" rel="noreferrer" href="<?php p(link_to_docs('developer-theming')); ?>"><?php p($l->t('Theming'));?> ↗</a></li>
+ <li><a target="_blank" rel="noreferrer" href="https://scan.nextcloud.com"><?php p($l->t('Check the security of your Nextcloud over our security scan'));?> ↗</a></li>
<li><a target="_blank" rel="noreferrer" href="<?php p(link_to_docs('admin-security')); ?>"><?php p($l->t('Hardening and security guidance'));?> ↗</a></li>
</ul>
</div>
diff --git a/settings/users.php b/settings/users.php
index 1b0f4f7b8e8..1986592af75 100644
--- a/settings/users.php
+++ b/settings/users.php
@@ -40,7 +40,7 @@ OC_Util::checkSubAdminUser();
\OC::$server->getNavigationManager()->setActiveEntry('core_users');
$userManager = \OC::$server->getUserManager();
-$groupManager = \OC_Group::getManager();
+$groupManager = \OC::$server->getGroupManager();
// Set the sort option: SORT_USERCOUNT or SORT_GROUPNAME
$sortGroupsBy = \OC\Group\MetaData::SORT_USERCOUNT;
diff --git a/tests/lib/AppFramework/Http/RequestTest.php b/tests/lib/AppFramework/Http/RequestTest.php
index 6c6504b4de8..cc4bbee2d8d 100644
--- a/tests/lib/AppFramework/Http/RequestTest.php
+++ b/tests/lib/AppFramework/Http/RequestTest.php
@@ -1787,6 +1787,31 @@ class RequestTest extends \Test\TestCase {
$this->assertFalse($request->passesLaxCookieCheck());
}
+ public function testSkipCookieCheckForOCSRequests() {
+ /** @var Request $request */
+ $request = $this->getMockBuilder('\OC\AppFramework\Http\Request')
+ ->setMethods(['getScriptName'])
+ ->setConstructorArgs([
+ [
+ 'server' => [
+ 'HTTP_REQUESTTOKEN' => 'AAAHGxsTCTc3BgMQESAcNR0OAR0=:MyTotalSecretShareds',
+ 'HTTP_OCS_APIREQUEST' => 'true',
+ ],
+ 'cookies' => [
+ session_name() => 'asdf',
+ 'nc_sameSiteCookiestrict' => 'false',
+ ],
+ ],
+ $this->secureRandom,
+ $this->config,
+ $this->csrfTokenManager,
+ $this->stream
+ ])
+ ->getMock();
+
+ $this->assertTrue($request->passesStrictCookieCheck());
+ }
+
/**
* @return array
*/
diff --git a/tests/lib/Files/Cache/CacheTest.php b/tests/lib/Files/Cache/CacheTest.php
index 1bcf8832c63..0038cef1f63 100644
--- a/tests/lib/Files/Cache/CacheTest.php
+++ b/tests/lib/Files/Cache/CacheTest.php
@@ -14,6 +14,7 @@ use OC\Files\Cache\Cache;
use OC\Files\Search\SearchComparison;
use OC\Files\Search\SearchQuery;
use OCP\Files\Search\ISearchComparison;
+use OCP\IUser;
class LongId extends \OC\Files\Storage\Temporary {
public function getId() {
@@ -397,6 +398,61 @@ class CacheTest extends \Test\TestCase {
}
}
+ function testSearchQueryByTag() {
+ $userId = static::getUniqueID('user');
+ \OC::$server->getUserManager()->createUser($userId, $userId);
+ static::loginAsUser($userId);
+ $user = new \OC\User\User($userId, null);
+
+ $file1 = 'folder';
+ $file2 = 'folder/foobar';
+ $file3 = 'folder/foo';
+ $file4 = 'folder/foo2';
+ $file5 = 'folder/foo3';
+ $data1 = array('size' => 100, 'mtime' => 50, 'mimetype' => 'foo/folder');
+ $fileData = array();
+ $fileData['foobar'] = array('size' => 1000, 'mtime' => 20, 'mimetype' => 'foo/file');
+ $fileData['foo'] = array('size' => 20, 'mtime' => 25, 'mimetype' => 'foo/file');
+ $fileData['foo2'] = array('size' => 25, 'mtime' => 28, 'mimetype' => 'foo/file');
+ $fileData['foo3'] = array('size' => 88, 'mtime' => 34, 'mimetype' => 'foo/file');
+
+ $id1 = $this->cache->put($file1, $data1);
+ $id2 = $this->cache->put($file2, $fileData['foobar']);
+ $id3 = $this->cache->put($file3, $fileData['foo']);
+ $id4 = $this->cache->put($file4, $fileData['foo2']);
+ $id5 = $this->cache->put($file5, $fileData['foo3']);
+
+ $tagManager = \OC::$server->getTagManager()->load('files', null, null, $userId);
+ $this->assertTrue($tagManager->tagAs($id1, 'tag1'));
+ $this->assertTrue($tagManager->tagAs($id1, 'tag2'));
+ $this->assertTrue($tagManager->tagAs($id2, 'tag2'));
+ $this->assertTrue($tagManager->tagAs($id3, 'tag1'));
+ $this->assertTrue($tagManager->tagAs($id4, 'tag2'));
+
+ $results = $this->cache->searchQuery(new SearchQuery(
+ new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'tagname', 'tag2'),
+ 0, 0, [], $user
+ ));
+ $this->assertEquals(3, count($results));
+
+ usort($results, function ($value1, $value2) {
+ return $value1['name'] >= $value2['name'];
+ });
+
+ $this->assertEquals('folder', $results[0]['name']);
+ $this->assertEquals('foo2', $results[1]['name']);
+ $this->assertEquals('foobar', $results[2]['name']);
+
+ $tagManager->delete('tag1');
+ $tagManager->delete('tag2');
+
+ static::logout();
+ $user = \OC::$server->getUserManager()->get($userId);
+ if ($user !== null) {
+ $user->delete();
+ }
+ }
+
function testSearchByQuery() {
$file1 = 'folder';
$file2 = 'folder/foobar';
@@ -409,25 +465,27 @@ class CacheTest extends \Test\TestCase {
$this->cache->put($file1, $data1);
$this->cache->put($file2, $fileData['foobar']);
$this->cache->put($file3, $fileData['foo']);
+ /** @var IUser $user */
+ $user = $this->createMock(IUser::class);
$this->assertCount(1, $this->cache->searchQuery(new SearchQuery(
new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'name', 'foo')
- , 10, 0, [])));
+ , 10, 0, [], $user)));
$this->assertCount(2, $this->cache->searchQuery(new SearchQuery(
new SearchComparison(ISearchComparison::COMPARE_LIKE, 'name', 'foo%')
- , 10, 0, [])));
+ , 10, 0, [], $user)));
$this->assertCount(2, $this->cache->searchQuery(new SearchQuery(
new SearchComparison(ISearchComparison::COMPARE_EQUAL, 'mimetype', 'foo/file')
- , 10, 0, [])));
+ , 10, 0, [], $user)));
$this->assertCount(3, $this->cache->searchQuery(new SearchQuery(
new SearchComparison(ISearchComparison::COMPARE_LIKE, 'mimetype', 'foo/%')
- , 10, 0, [])));
+ , 10, 0, [], $user)));
$this->assertCount(1, $this->cache->searchQuery(new SearchQuery(
new SearchComparison(ISearchComparison::COMPARE_GREATER_THAN, 'size', 100)
- , 10, 0, [])));
+ , 10, 0, [], $user)));
$this->assertCount(2, $this->cache->searchQuery(new SearchQuery(
new SearchComparison(ISearchComparison::COMPARE_GREATER_THAN_EQUAL, 'size', 100)
- , 10, 0, [])));
+ , 10, 0, [], $user)));
}
function testMove() {
diff --git a/tests/lib/Group/LegacyGroupTest.php b/tests/lib/Group/LegacyGroupTest.php
deleted file mode 100644
index b7d13437a64..00000000000
--- a/tests/lib/Group/LegacyGroupTest.php
+++ /dev/null
@@ -1,208 +0,0 @@
-<?php
-/**
- * ownCloud
- *
- * @author Robin Appelman
- * @author Bernhard Posselt
- * @copyright 2012 Robin Appelman <icewind@owncloud.com>
- * @copyright 2012 Bernhard Posselt <dev@bernhard-posselt.com>
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library 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 library. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-
-namespace Test\Group;
-
-use OC_Group;
-use OC_User;
-
-/**
- * Class LegacyGroupTest
- *
- * @package Test\Group
- * @group DB
- */
-class LegacyGroupTest extends \Test\TestCase {
- protected function setUp() {
- parent::setUp();
- OC_Group::clearBackends();
- OC_User::clearBackends();
- }
-
- public function testSingleBackend() {
- $userBackend = new \Test\Util\User\Dummy();
- \OC::$server->getUserManager()->registerBackend($userBackend);
- OC_Group::useBackend(new \Test\Util\Group\Dummy());
-
- $group1 = $this->getUniqueID();
- $group2 = $this->getUniqueID();
- OC_Group::createGroup($group1);
- OC_Group::createGroup($group2);
-
- $user1 = $this->getUniqueID();
- $user2 = $this->getUniqueID();
- $userBackend->createUser($user1, '');
- $userBackend->createUser($user2, '');
-
- $this->assertFalse(OC_Group::inGroup($user1, $group1), 'Asserting that user1 is not in group1');
- $this->assertFalse(OC_Group::inGroup($user2, $group1), 'Asserting that user2 is not in group1');
- $this->assertFalse(OC_Group::inGroup($user1, $group2), 'Asserting that user1 is not in group2');
- $this->assertFalse(OC_Group::inGroup($user2, $group2), 'Asserting that user2 is not in group2');
-
- $this->assertTrue(OC_Group::addToGroup($user1, $group1));
-
- $this->assertTrue(OC_Group::inGroup($user1, $group1), 'Asserting that user1 is in group1');
- $this->assertFalse(OC_Group::inGroup($user2, $group1), 'Asserting that user2 is not in group1');
- $this->assertFalse(OC_Group::inGroup($user1, $group2), 'Asserting that user1 is not in group2');
- $this->assertFalse(OC_Group::inGroup($user2, $group2), 'Asserting that user2 is not in group2');
-
- $this->assertTrue(OC_Group::addToGroup($user1, $group1));
-
- $this->assertEquals(array($user1), OC_Group::usersInGroup($group1));
- $this->assertEquals(array(), OC_Group::usersInGroup($group2));
-
- $this->assertEquals(array($group1), OC_Group::getUserGroups($user1));
- $this->assertEquals(array(), OC_Group::getUserGroups($user2));
-
- OC_Group::deleteGroup($group1);
- $this->assertEquals(array(), OC_Group::getUserGroups($user1));
- $this->assertEquals(array(), OC_Group::usersInGroup($group1));
- $this->assertFalse(OC_Group::inGroup($user1, $group1));
- }
-
-
- public function testNoEmptyGIDs() {
- OC_Group::useBackend(new \Test\Util\Group\Dummy());
- $emptyGroup = null;
-
- $this->assertFalse(OC_Group::createGroup($emptyGroup));
- }
-
-
- public function testNoGroupsTwice() {
- OC_Group::useBackend(new \Test\Util\Group\Dummy());
- $group = $this->getUniqueID();
- OC_Group::createGroup($group);
-
- $groupCopy = $group;
-
- OC_Group::createGroup($groupCopy);
- $this->assertEquals(array($group), OC_Group::getGroups());
- }
-
-
- public function testDontDeleteAdminGroup() {
- OC_Group::useBackend(new \Test\Util\Group\Dummy());
- $adminGroup = 'admin';
- OC_Group::createGroup($adminGroup);
-
- $this->assertFalse(OC_Group::deleteGroup($adminGroup));
- $this->assertEquals(array($adminGroup), OC_Group::getGroups());
- }
-
-
- public function testDontAddUserToNonexistentGroup() {
- OC_Group::useBackend(new \Test\Util\Group\Dummy());
- $groupNonExistent = 'notExistent';
- $user = $this->getUniqueID();
-
- $this->assertEquals(false, OC_Group::addToGroup($user, $groupNonExistent));
- $this->assertEquals(array(), OC_Group::getGroups());
- }
-
- public function testUsersInGroup() {
- OC_Group::useBackend(new \Test\Util\Group\Dummy());
- $userBackend = new \Test\Util\User\Dummy();
- \OC::$server->getUserManager()->registerBackend($userBackend);
-
- $group1 = $this->getUniqueID();
- $group2 = $this->getUniqueID();
- $group3 = $this->getUniqueID();
- $user1 = $this->getUniqueID();
- $user2 = $this->getUniqueID();
- $user3 = $this->getUniqueID();
- OC_Group::createGroup($group1);
- OC_Group::createGroup($group2);
- OC_Group::createGroup($group3);
-
- $userBackend->createUser($user1, '');
- $userBackend->createUser($user2, '');
- $userBackend->createUser($user3, '');
-
- OC_Group::addToGroup($user1, $group1);
- OC_Group::addToGroup($user2, $group1);
- OC_Group::addToGroup($user3, $group1);
- OC_Group::addToGroup($user3, $group2);
-
- $this->assertEquals(array($user1, $user2, $user3),
- OC_Group::usersInGroups(array($group1, $group2, $group3)));
-
- // FIXME: needs more parameter variation
- }
-
- public function testMultiBackend() {
- $userBackend = new \Test\Util\User\Dummy();
- \OC::$server->getUserManager()->registerBackend($userBackend);
- $backend1 = new \Test\Util\Group\Dummy();
- $backend2 = new \Test\Util\Group\Dummy();
- OC_Group::useBackend($backend1);
- OC_Group::useBackend($backend2);
-
- $group1 = $this->getUniqueID();
- $group2 = $this->getUniqueID();
- OC_Group::createGroup($group1);
-
- //groups should be added to the first registered backend
- $this->assertEquals(array($group1), $backend1->getGroups());
- $this->assertEquals(array(), $backend2->getGroups());
-
- $this->assertEquals(array($group1), OC_Group::getGroups());
- $this->assertTrue(OC_Group::groupExists($group1));
- $this->assertFalse(OC_Group::groupExists($group2));
-
- $backend1->createGroup($group2);
-
- $this->assertEquals(array($group1, $group2), OC_Group::getGroups());
- $this->assertTrue(OC_Group::groupExists($group1));
- $this->assertTrue(OC_Group::groupExists($group2));
-
- $user1 = $this->getUniqueID();
- $user2 = $this->getUniqueID();
-
- $userBackend->createUser($user1, '');
- $userBackend->createUser($user2, '');
-
- $this->assertFalse(OC_Group::inGroup($user1, $group1));
- $this->assertFalse(OC_Group::inGroup($user2, $group1));
-
-
- $this->assertTrue(OC_Group::addToGroup($user1, $group1));
-
- $this->assertTrue(OC_Group::inGroup($user1, $group1));
- $this->assertFalse(OC_Group::inGroup($user2, $group1));
- $this->assertFalse($backend2->inGroup($user1, $group1));
-
- OC_Group::addToGroup($user1, $group1);
-
- $this->assertEquals(array($user1), OC_Group::usersInGroup($group1));
-
- $this->assertEquals(array($group1), OC_Group::getUserGroups($user1));
- $this->assertEquals(array(), OC_Group::getUserGroups($user2));
-
- OC_Group::deleteGroup($group1);
- $this->assertEquals(array(), OC_Group::getUserGroups($user1));
- $this->assertEquals(array(), OC_Group::usersInGroup($group1));
- $this->assertFalse(OC_Group::inGroup($user1, $group1));
- }
-}
diff --git a/tests/lib/OCS/ProviderTest.php b/tests/lib/OCS/ProviderTest.php
index 399fd3933d9..9444544d12a 100644
--- a/tests/lib/OCS/ProviderTest.php
+++ b/tests/lib/OCS/ProviderTest.php
@@ -48,11 +48,16 @@ class ProviderTest extends \Test\TestCase {
$this->appManager
->expects($this->at(1))
->method('isEnabledForUser')
- ->with('activity')
+ ->with('federation')
->will($this->returnValue(false));
$this->appManager
->expects($this->at(2))
->method('isEnabledForUser')
+ ->with('activity')
+ ->will($this->returnValue(false));
+ $this->appManager
+ ->expects($this->at(3))
+ ->method('isEnabledForUser')
->with('provisioning_api')
->will($this->returnValue(false));
@@ -84,11 +89,16 @@ class ProviderTest extends \Test\TestCase {
$this->appManager
->expects($this->at(1))
->method('isEnabledForUser')
- ->with('activity')
+ ->with('federation')
->will($this->returnValue(false));
$this->appManager
->expects($this->at(2))
->method('isEnabledForUser')
+ ->with('activity')
+ ->will($this->returnValue(false));
+ $this->appManager
+ ->expects($this->at(3))
+ ->method('isEnabledForUser')
->with('provisioning_api')
->will($this->returnValue(false));
@@ -124,6 +134,55 @@ class ProviderTest extends \Test\TestCase {
$this->assertEquals($expected, $this->ocsProvider->buildProviderList());
}
+ public function testBuildProviderListWithFederationEnabled() {
+ $this->appManager
+ ->expects($this->at(0))
+ ->method('isEnabledForUser')
+ ->with('files_sharing')
+ ->will($this->returnValue(false));
+ $this->appManager
+ ->expects($this->at(1))
+ ->method('isEnabledForUser')
+ ->with('federation')
+ ->will($this->returnValue(true));
+ $this->appManager
+ ->expects($this->at(2))
+ ->method('isEnabledForUser')
+ ->with('activity')
+ ->will($this->returnValue(false));
+ $this->appManager
+ ->expects($this->at(3))
+ ->method('isEnabledForUser')
+ ->with('provisioning_api')
+ ->will($this->returnValue(false));
+
+ $expected = new \OCP\AppFramework\Http\JSONResponse(
+ [
+ 'version' => 2,
+ 'services' => [
+ 'PRIVATE_DATA' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'store' => '/ocs/v2.php/privatedata/setattribute',
+ 'read' => '/ocs/v2.php/privatedata/getattribute',
+ 'delete' => '/ocs/v2.php/privatedata/deleteattribute',
+ ],
+ ],
+ 'FEDERATED_SHARING' => [
+ 'version' => 1,
+ 'endpoints' => [
+ 'shared-secret' => '/ocs/v2.php/cloud/shared-secret',
+ 'system-address-book' => '/remote.php/dav/addressbooks/system/system/system',
+ 'carddav-user' => 'system'
+ ],
+ ],
+ ],
+ ]
+ );
+
+ $this->assertEquals($expected, $this->ocsProvider->buildProviderList());
+ }
+
public function testBuildProviderListWithEverythingEnabled() {
$this->appManager
->expects($this->any())
@@ -147,6 +206,9 @@ class ProviderTest extends \Test\TestCase {
'endpoints' => [
'share' => '/ocs/v2.php/cloud/shares',
'webdav' => '/public.php/webdav/',
+ 'shared-secret' => '/ocs/v2.php/cloud/shared-secret',
+ 'system-address-book' => '/remote.php/dav/addressbooks/system/system/system',
+ 'carddav-user' => 'system'
],
],
'SHARING' => [