Otherwise this will fetch all mounts for the file id which is quite
expensive and causes long saving times in big sharing structures
Signed-off-by: Julius Härtl <jus@bitgrid.net>
If userA has a lot of recent files. But only shares 1 file with userB
(that has no files at all). We could keep searching until we run out of
recent files for userA.
Now assume the inactive userB has 20 incomming shares like that from
different users. getRecent then basically keeps consuming huge amounts
of resources and with each iteration the load on the DB increases
(because of the offset).
This makes sure we do not get more than 3 times the limit we search for
or more than 5 queries.
This means we might miss some recent entries but we should fix that
separatly. This is just to make sure the load on the DB stays sane.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
The tests check an user share and a link share; there is a slight
difference in style between them as each one is based on the test above
it, which tests increasing reshare permissions.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
The admin user is not deleted after each integration test is run, so
folders created by the admin user in one test are still there when the
next tests run; tests should be independent one from each other, so a
regular user that is created and deleted for each test should be used
instead.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Before this change the node you shared was checked for permissions.
This works when you reshare the folder that was shared with you.
However when you reshared a subfolder (e.g. as public link),
you could afterwards update the permissions and grant
create+update permissions although the share you receive was read-only.
Signed-off-by: Joas Schilling <coding@schilljs.com>
The preview element in the public share page was always wrapped with a
link to download the file; now that link is included only if the "Hide
download" option of the share is not enabled.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
* reading the config directly will return the value with line breaks
* using the proper accessor gives us all bases in an array
* returns the first matching one
* having user id provided for the group base is strange and does not let
us operate like this. here we return the first one. might change in
future, a backportable fix won't have an API change however.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
there is not such strange return mode. Having invalid user ids caused this
check to fail, and as side effect share limitation to groups to not work.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
The header is the full http header like: HTTP/1.1 304 Not Modified
So comparing this to an int always yields false
This also makes the 304 RFC compliant as the resulting content length
should otherwise be the length of the message and not 0.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Although the collapse button has an absolute position Internet Explorer
11 needs the left position of that button to be explicitly set to 0
(other browsers do it implicitly due to the absolute position);
otherwise the button appears to the right of the link (and behind the
app content).
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
I saw instances where people had a lot of files (each with custom
properties) and all this prefetching blew up and started to consume an
insane amount of RAM resulting in the process getting killed.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Apparently the if statement doesn't work in all cases (even if I could
not reproduce it). So for the time being we will just not directly
stream to swift.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
If for whatever reason appdata got into a strange state this will at
least propegate up and not make it do boom the next run.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
LDAP plugins must change the createUser method to return the DN, as we
need this to update the cache.
Signed-off-by: Vinicius Cubas Brand <viniciuscb@gmail.com>
This commit fix an error happening when the subadmin tries to create an
user, adding him/her to the group s/he is subadmin of, using a LDAP
User/Group plugin.
This just forces the cache to be reset after an user is added to a
group.
Signed-off-by: Vinicius Cubas Brand <viniciuscb@gmail.com>
This fixes collisions that were causing uploads to break in a very
terrible way.
Kudos to @kesselb for finding the problematic place and to
@hottwister for the proposed solution.
Fixes#10527.
If a file is on external storage there is no owner. WHich means we can't
check. So just return an empty array then.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Don't try to connect to the lookup server if the lookup server was disabled
by the admin or an empty lookup server URL was given
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
we can only store etags up to 40 characters long in the database, so when we get an etag that's longer we simply hash it to bring down the length
Signed-off-by: Robin Appelman <robin@icewind.nl>
* tests/acceptance/features/login.feature:15
<details><summary>Show full log</summary>
```
Scenario: log in with valid user and invalid password once fixed by admin # /drone/src/github.com/nextcloud/server/tests/acceptance/features/login.feature:15
Given I act as John # ActorContext::iActAs()
And I can not log in with user user0 and password 654231 # LoginPageContext::iCanNotLogInWithUserAndPassword()
When I act as Jane # ActorContext::iActAs()
And I am logged in as the admin # LoginPageContext::iAmLoggedInAsTheAdmin()
And I open the User settings # SettingsMenuContext::iOpenTheUserSettings()
And I set the password for user0 to 654321 # UsersSettingsContext::iSetTheFieldForUserTo()
And I act as John # ActorContext::iActAs()
And I log in with user user0 and password 654321 # LoginPageContext::iLogInWithUserAndPassword()
Then I see that the current page is the Files app # FilesAppContext::iSeeThatTheCurrentPageIsTheFilesApp()
Failed asserting that 'http://acceptance-login/index.php/login?user=user0' starts with "http://acceptance-login/index.php/apps/files/".
```
</details>
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Fails with:
* tests/acceptance/features/app-files.feature:90
<details><summary>Show full log</summary>
```
Scenario: show favorites # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files.feature:90
Given I am logged in # LoginPageContext::iAmLoggedIn()
And I mark "welcome.txt" as favorite # FileListContext::iMarkAsFavorite()
When I open the "Favorites" section # AppNavigationContext::iOpenTheSection()
Then I see that the current section is "Favorites" # AppNavigationContext::iSeeThatTheCurrentSectionIs()
Then I see that the file list contains a file named "welcome.txt" # FileListContext::iSeeThatTheFileListContainsAFileNamed()
Row for file welcome.txt in file list could not be found after 100 seconds (NoSuchElementException)
```
</details>
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Fails with:
* tests/acceptance/features/apps.feature:66
<details><summary>Show full log</summary>
```
Scenario: Show section from app store # /drone/src/github.com/nextcloud/server/tests/acceptance/features/apps.feature:66
Given I act as Jane # ActorContext::iActAs()
And I am logged in as the admin # LoginPageContext::iAmLoggedInAsTheAdmin()
And I open the Apps management # SettingsMenuContext::iOpenTheAppsManagement()
And I see that the current section is "Your apps" # AppNavigationContext::iSeeThatTheCurrentSectionIs()
When I open the "Files" section # AppNavigationContext::iOpenTheSection()
Files section item in App Navigation could not be found after 100 seconds (NoSuchElementException)
Then I see that there some apps listed from the app store # AppsManagementContext::iSeeThatThereSomeAppsListedFromTheAppStore()
And I see that the current section is "Files" # AppNavigationContext::iSeeThatTheCurrentSectionIs()
```
</details>
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Fails with:
* tests/acceptance/features/app-files-tags.feature:42
<details><summary>Show full log</summary>
```
Scenario: add tags using the dropdown in the details view # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files-tags.feature:42
Given I am logged in as the admin # LoginPageContext::iAmLoggedInAsTheAdmin()
And I visit the settings page # SettingsMenuContext::iVisitTheSettingsPage()
And I open the "Tag management" section # AppNavigationContext::iOpenTheSection()
And I see that the button to select tags is shown # SettingsContext::iSeeThatTheButtonToSelectTagsIsShown()
And I create the tag "tag1" in the settings # SettingsContext::iCreateTheTagInTheSettings()
And I create the tag "tag2" in the settings # SettingsContext::iCreateTheTagInTheSettings()
And I create the tag "tag3" in the settings # SettingsContext::iCreateTheTagInTheSettings()
And I create the tag "tag4" in the settings # SettingsContext::iCreateTheTagInTheSettings()
And I see that the dropdown for tags in the settings eventually contains the tag "tag1" # SettingsContext::iSeeThatTheDropdownForTagsInTheSettingsEventuallyContainsTheTag()
And I see that the dropdown for tags in the settings eventually contains the tag "tag2" # SettingsContext::iSeeThatTheDropdownForTagsInTheSettingsEventuallyContainsTheTag()
And I see that the dropdown for tags in the settings eventually contains the tag "tag3" # SettingsContext::iSeeThatTheDropdownForTagsInTheSettingsEventuallyContainsTheTag()
And I see that the dropdown for tags in the settings eventually contains the tag "tag4" # SettingsContext::iSeeThatTheDropdownForTagsInTheSettingsEventuallyContainsTheTag()
And I log out # SettingsMenuContext::iLogOut()
And I am logged in # LoginPageContext::iAmLoggedIn()
And I open the details view for "welcome.txt" # FileListContext::iOpenTheDetailsViewFor()
And I open the input field for tags in the details view # FilesAppContext::iOpenTheInputFieldForTagsInTheDetailsView()
When I check the tag "tag2" in the dropdown for tags in the details view # FilesAppContext::iCheckTheTagInTheDropdownForTagsInTheDetailsView()
And I check the tag "tag4" in the dropdown for tags in the details view # FilesAppContext::iCheckTheTagInTheDropdownForTagsInTheDetailsView()
Then I see that the tag "tag2" in the dropdown for tags in the details view is checked # FilesAppContext::iSeeThatTheTagInTheDropdownForTagsInTheDetailsViewIsChecked()
And I see that the tag "tag4" in the dropdown for tags in the details view is checked # FilesAppContext::iSeeThatTheTagInTheDropdownForTagsInTheDetailsViewIsChecked()
And I see that the input field for tags in the details view contains the tag "tag2" # FilesAppContext::iSeeThatTheInputFieldForTagsInTheDetailsViewContainsTheTag()
Failed asserting that false is true.
And I see that the input field for tags in the details view contains the tag "tag4" # FilesAppContext::iSeeThatTheInputFieldForTagsInTheDetailsViewContainsTheTag()
```
</details>
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Fails with:
* build/integration/federation_features/federated.feature:183
* build/integration/federation_features/federated.feature:232
* build/integration/federation_features/federated.feature:247
* build/integration/federation_features/federated.feature:263
<details><summary>Show full log</summary>
```
Scenario: Reshare a federated shared file # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:183
Given Using server "REMOTE" # FederationContext::usingServer()
And user "user1" exists # FederationContext::assureUserExists()
And user "user2" exists # FederationContext::assureUserExists()
And Using server "LOCAL" # FederationContext::usingServer()
And user "user0" exists # FederationContext::assureUserExists()
And User "user0" from server "LOCAL" shares "/textfile0.txt" with user "user1" from server "REMOTE" # FederationContext::federateSharing()
And User "user1" from server "REMOTE" accepts last pending share # FederationContext::acceptLastPendingShare()
And Using server "REMOTE" # FederationContext::usingServer()
And As an "user1" # FederationContext::asAn()
When creating a share with # FederationContext::creatingShare()
| path | /textfile0 (2).txt |
| shareType | 0 |
| shareWith | user2 |
| permissions | 19 |
Then the OCS status code should be "100" # FederationContext::theOCSStatusCodeShouldBe()
Failed asserting that SimpleXMLElement Object &000000007d8e0d3c00000000403fd08a (
0 => '404'
) matches expected '100'.
...
{"message":"Can not find share with ID: 8"}
Scenario: Overwrite a federated shared folder as recipient # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:232
Given Using server "REMOTE" # FederationContext::usingServer()
And user "user1" exists # FederationContext::assureUserExists()
And user "user2" exists # FederationContext::assureUserExists()
And Using server "LOCAL" # FederationContext::usingServer()
And user "user0" exists # FederationContext::assureUserExists()
And User "user0" from server "LOCAL" shares "/PARENT" with user "user1" from server "REMOTE" # FederationContext::federateSharing()
And User "user1" from server "REMOTE" accepts last pending share # FederationContext::acceptLastPendingShare()
And Using server "REMOTE" # FederationContext::usingServer()
And As an "user1" # FederationContext::asAn()
And User "user1" modifies text of "/textfile0.txt" with text "BLABLABLA" # FederationContext::modifyTextOfFile()
When User "user1" uploads file "../../data/user1/files/textfile0.txt" to "/PARENT (2)/textfile0.txt" # FederationContext::userUploadsAFileTo()
Client error: `PUT http://localhost:8180/remote.php/webdav/PARENT%20(2)/textfile0.txt` resulted in a `404 Not Found` response:
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DA (truncated...)
(GuzzleHttp\Exception\ClientException)
...
{"message":"Can not find share with ID: 10"}
Scenario: Overwrite a federated shared file as recipient using old chunking # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:247
Given Using server "REMOTE" # FederationContext::usingServer()
And user "user1" exists # FederationContext::assureUserExists()
And user "user2" exists # FederationContext::assureUserExists()
And Using server "LOCAL" # FederationContext::usingServer()
And user "user0" exists # FederationContext::assureUserExists()
And User "user0" from server "LOCAL" shares "/textfile0.txt" with user "user1" from server "REMOTE" # FederationContext::federateSharing()
And User "user1" from server "REMOTE" accepts last pending share # FederationContext::acceptLastPendingShare()
And Using server "REMOTE" # FederationContext::usingServer()
And As an "user1" # FederationContext::asAn()
And user "user1" uploads chunk file "1" of "3" with "AAAAA" to "/textfile0 (2).txt" # FederationContext::userUploadsChunkFileOfWithToWithChecksum()
Client error: `PUT http://localhost:8180/remote.php/webdav/textfile0%20(2).txt-chunking-42-3-0` resulted in a `404 Not Found` response:
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DA (truncated...)
(GuzzleHttp\Exception\ClientException)
...
{"message":"Can not find share with ID: 11"}
Scenario: Overwrite a federated shared folder as recipient using old chunking # /drone/src/github.com/nextcloud/server/build/integration/federation_features/federated.feature:263
Given Using server "REMOTE" # FederationContext::usingServer()
And user "user1" exists # FederationContext::assureUserExists()
And user "user2" exists # FederationContext::assureUserExists()
And Using server "LOCAL" # FederationContext::usingServer()
And user "user0" exists # FederationContext::assureUserExists()
And User "user0" from server "LOCAL" shares "/PARENT" with user "user1" from server "REMOTE" # FederationContext::federateSharing()
And User "user1" from server "REMOTE" accepts last pending share # FederationContext::acceptLastPendingShare()
And Using server "REMOTE" # FederationContext::usingServer()
And As an "user1" # FederationContext::asAn()
And user "user1" uploads chunk file "1" of "3" with "AAAAA" to "/PARENT (2)/textfile0.txt" # FederationContext::userUploadsChunkFileOfWithToWithChecksum()
Client error: `PUT http://localhost:8180/remote.php/webdav/PARENT%20(2)/textfile0.txt-chunking-42-3-0` resulted in a `404 Not Found` response:
<?xml version="1.0" encoding="utf-8"?>
<d:error xmlns:d="DAV:" xmlns:s="http://sabredav.org/ns">
<s:exception>Sabre\DA (truncated...)
(GuzzleHttp\Exception\ClientException)
...
{"message":"Can not find share with ID: 12"}
```
</details>
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Fails with:
There was 1 failure:
1) TrashbinTest::testExpireOldFiles
Failed asserting that null is identical to 'file2.txt'.
/drone/src/github.com/nextcloud/server/apps/files_trashbin/tests/TrashbinTest.php:186
OR
1) TrashbinTest::testExpireOldFiles
Failed asserting that null is identical to 'file2.txt'.
/drone/src/github.com/nextcloud/server/apps/files_trashbin/tests/TrashbinTest.php:193
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Nested groups are now cached in a CappedMemoryCache object to reduce
queries to the LDAP backend.
Signed-off-by: Roland Tapken <roland@bitarbeiter.net>
The previous patch fixed the problem only for one level of indirection
because groupsMatchFilter() had been applied on each recursive call (and
thus there would be no second level if the first level fails the check).
This new implementation replaces the recursive call with a stack that
iterates all nested groups before filtering with groupsMatchFilter().
Signed-off-by: Roland Tapken <roland@bitarbeiter.net>
Currently groupsMatchFilter is called before nested groups are resolved.
This basicly breaks this feature since it is not possible to inherit
membership in a group from another group.
Minimal example:
Group filter: (&(objectClass=group),(cn=nextcloud))
Nested groups: enabled
cn=nextcloud,ou=Nextcloud,ou=groups,dn=company,dn=local
objectClass: group
cn=IT,ou=groups,dn=company,dn=local
objectClass: group
memberOf: cn=nextcloud,ou=Nextcloud,ou=groups,dn=company,dn=local
cn=John Doe,ou=users,dn=company,dn=local
objectClass: person
memberOf: cn=IT,ou=groups,dn=company,dn=local
Since 'cn=IT,ou=groups,dn=company,dn=local' doesn't match the group
filter, John wouldn't be a member of group 'nextcloud'.
This patch fixes this by filtering the groups after all nested groups
have been collected. If nested groups is disabled the result will be the
same as without this patch.
Signed-off-by: Roland Tapken <roland@bitarbeiter.net>
If the job is still present we should also not fire it off if there is
not a single active 2FA provider.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Fixes#14125
Listen to 2FA disable event. If a provider is disabled for a user. We
check if there are no more providers. If there are no more providers we
Remove the backupcode reminder notification (if still present).
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
When $data is null (which can happen when $request->getBodyAsStream() returns
null), the Exceptions says "copied bytes: 0, expected filesize: 0", which
sounds more like success...
when an addBodyListItem() is not directly followed by addBodyButton(), resulting HTML is broken
Signed-off-by: Tomasz Paluszkiewicz <tomasz.paluszkiewicz@gmail.com>
Without the lookupserver GS is kind of useless.
If the admin places their lookup sever outside of the reachable network
that is not something we can help.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Fixes#14298
If a storage doesn'tclose the write stream then $isEOF is not yet set.
So we have to fallback.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
The stream is already closed at this point. Which means feof will always
return false. We have to determine if the stream is EOF in the
preCloseCallback. And pass this info along. Then the logic works as
expected.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Fixes#12568
Since the clearing of the execution context causes another reload. We
should not do the redirect_uri handling as this results in redirecting
back to the logout page on login.
This adds a simple middleware that will just check if the
ClearExecutionContext session variable is set. If that is the case it
will just redirect back to the login page.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
otherwise they will be skipped when the results is being formatted and the
lower-cased result keys do not match.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
When a single file was dropped on the trash bin the file information was
gotten from the original element in the file list. When several files
were dropped on the trash bin the file information was gotten from the
helper elements being dragged around. The helper element also contain
the needed file information when a single file is being dragged, so the
handling was unified to always get the file information from the helper
elements.
As the handling of several files is the same as before there is still
the issue of only deleting those files shown in the drag helper instead
of all the selected files.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
The "droppedOnTrash" event was being triggered when the file list was
initialized, but it should be triggered only when the user actually
drops a file on the trash bin.
Besides that, the event had no effect; only the file list handles it,
but as it was not triggered on any element it ended being triggered on
the document, and thus not handled. Moreover, even if it had been
triggered on the file list it would have been done before the handler
was set, so it would not have been handled anyway. And even if it had
been handled no data was provided, so the handler would have failed.
In conclusion, triggering the event there was not needed, and thus it
was removed.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Since 6ad7f32938 SVG icons are directly embedded in "icons-vars.css", so
the starred trash icon is now loaded along with the regular trash icon
all at once. Therefore it is not needed to explicitly prefetch it using
a hidden div.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
In order to show the autocompletion it was needed to type at least
another character after "@", so only the mentions that matched that
character were shown. Now the autocompletion is shown as soon as "@" is
typed, which shows all the possible mentions.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
log the error in case a notification mail of a new share couldn't
be send to the recipient and finish the share operation successfully
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
When a password is reste we should make sure that all users are properly
logged in. Pending states should be cleared. For example a session where
the 2FA code is not entered yet should be cleared.
The token is now removed so the session will be killed the next time
this is checked (within 5 minutes).
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
To make sure that the versions in the legacy backend are shared again we
have to check the storage of a file. Since all shared files are still on
the owners storage.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
The password input was shown in the popup menu when passwords were not
enforced, or when they were enforced but no password was set, which
prevented updating/changing the password once set. As the password input
should be shown too when password are enforced and a password is set no
condition is needed, so now the password input is always shown.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When the uploaded files have a relative path (that is, when a folder is
uploaded) it is first ensured that all the parent folders exist, which
is done by trying to create them. When a folder is created in the
currently opened folder the file list is updated and a row for the new
folder is added. However, this was done too when the folder already
existed, which caused the previous row to be removed and a new one added
to replace it.
For security reasons, some special headers need to be set in requests;
this is done automatically for jQuery by handling the "ajaxSend" event
in the document. In the case of DAV requests, if the headers are not set
the server rejects the request with "CSRF check not passed".
When a file or folder is dropped on a folder row the jQuery upload
events are chained from the initial drop event, which has the row as its
target. In order to upload the file jQuery performs a request, which
triggers the "ajaxSend" event in the row; this event then bubbles up to
the document, which is then handled by adding the special headers to the
request.
However, when a folder was dropped on a folder row that folder row was
removed when ensuring that the folder exists. The jQuery upload events
were still triggered on the row, but as it had been removed it had no
parent nodes, and thus the events did not bubble up. Due to this the
"ajaxSend" event never reached the document when triggered on the
removed row, the headers were not set, and the upload failed.
All this is simply fixed by not removing the folder row when trying to
create it if it existed already.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
parallel search is not compatible with paged search, but the letter is
usually always applied.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
If the remember_login_cookie_lifetime is set to 0 this means we do not
want to use remember me at all. In that case we should also not creatae
a remember me cookie and should create a proper temp token.
Further this specifies that is not 0 the remember me time should always
be larger than the session timeout. Because else the behavior is not
really defined.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Fixes#13285
The wrapper logger should not be used here. But we need the real logger.
Since this in internal we can just pass that on directly.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
It seems iOS doesn't like us to change the location. So now we submit it
to the server that geneartes the redirect.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Admin should _not_ be able to change password when:
- if an encryption module is loaded and it uses per-user keys
- if encryption is enabled but no encryption modules are loaded
Admin should be able to change the password when:
- no encryption module is loaded and encryption is disabled
- encryption module is loaded but it doesn't require per user keys
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
Before the joining and filtering removed unkown files. Resulting in
manual queries for all the files with no (unread) comments (the 99%).
Long story short. This will return a list of all the files in the parent
folder with their unread comment count (can be 0). But this makes sure
that the result is properly cached. In the dav handling.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
"OC.dirname" removes everything after the last "/", so a path without
slashes is returned without changes. "result.path" does not include
leading nor trailing "/", so when the path is for a file or folder in
the base folder "OC.dirname(result.path)" returns "result.path".
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When id column has no autoincrement flag query for lastInsertId fails
on postgres because no value has been generated. Call lastInsertId only
if id is null.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
Else on scss files we'd get <file>?v=<hash>?v=<hash2>
This is of course not valid. Now it becomes <file>?v=<hash>-<hash2>
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Fixes#7084
Now entering wrongly cased email (roeland@ instead of Roeland@) for
password reset etc. Will also work.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Because the redirect from the SAML/SSO endpoint is a POST the lax/strict
cookies are not properly send.
Note that it is not strictly requried on this endpoint as we do not need
the remember me data. Only the real session info is enough. The endpoint
is also already protected by a state token.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
during login they might be cached as non-existing and cause an Exception
in the long run
reduces some duplication, too
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
This prevent the object store and cache from getting out of sync
when an objectstore silently fails or the php process get's killed
during the upload without giving us the chance to cleanup
Signed-off-by: Robin Appelman <robin@icewind.nl>
Disabled buttons use the default cursor, but as the cursor property for
primary buttons is set after the cursor property for disabled buttons
the latter is always overridden, even if the primary button is also
disabled. Due to this it is necessary to explicitly set the default
cursor for disabled primary buttons.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Fixes#12588
Probably needs more fixing for the other cases. But this is the quick
fix I could come up with for now.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
When a touch is done (i.e. when creating a new file in the node API)
The hooks contain 'write' and 'touch' (and the operation is touch as
well). This would cause a double write update. Which doesn't make sense.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
The second execute statement should be inside the if block. Else it gets
executed twice which makes no sense.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Fixes#9058
If the option to autocomplete users is disabled. We also should not
enumerate the users on this endpoint.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
c23a66cda4 broke the system address book.
We now move the ACL rules for this special case up and all is good in
the world again.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Having both "FilesAppSharingContext" and "FilesSharingAppContext" was
confusing, so "FilesSharingAppContext" was renamed to a more descriptive
name.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
To reshare a file there must be at least three enabled users in the
system; although it would be possible to run the steps to create a third
user in the scenarios that need it for convenience a third enabled user
besides "admin" and "user0" was added to the default setup.
In a similar way, a new step was added too to login as a given user
name, similar to the steps to log in as "user0" and as "admin".
Finally, another actor, "Jim", was introduced for those scenarios which
should be played by three standard actors (that is, without a special
configuration like "Rubeus").
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
If the server is too slow, changing to a different file immediately
after sending a new comment but without waiting for the comment to be
shown for the original file could cause the new comment to be shown for
the current file instead.
This is, indeed, a bug in the comments. However, it is not possible to
test it reliably in the acceptance tests, as it depends on how fast the
server adds the message and how fast the client changes to a different
file; sometimes the test would fail and sometimes it would not.
Therefore, now it is waited for the comment to be added before changing
to another file, as in this case it can be reliably tested that changing
to a different file does not cause the comments from the previous file
to be shown in the current file (this was a different bug already fixed
and due to which this test was added in the first place).
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When the "Comments" tab is open the empty content element is always in
the DOM, although it is only shown once the message collection was
fetched and there were no messages. Due to this it is necessary to
explicitly wait for it to be shown instead of relying on the implicit
wait made to find the element; otherwise it would be found immediately
and if the collection was not fetched yet it would not be visible,
causing the test to fail.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
@@ -4,7 +4,7 @@ If you have questions about how to install or use Nextcloud, please direct these
### Short version
* The [**issue templates can be found here**][templates] but be aware of the different repositories! See list below. Please always use an issue template when reporting issues.
* The [**issue template can be found here**][template] but be aware of the different repositories! See list below. Please always use the issue template when reporting issues.
### Guidelines
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
@@ -12,14 +12,14 @@ If you have questions about how to install or use Nextcloud, please direct these
- You can also filter by appending e. g. "state:open" to the search string.
- More info on [search syntax within github](https://help.github.com/articles/searching-issues)
* This repository ([server](https://github.com/nextcloud/server/issues)) is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* __SECURITY__: Report any potential security bug to us via [our HackerOne page](https://hackerone.com/nextcloud) following our [security policy](https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* __SECURITY__: Report any potential security bug to us via [our HackerOne page](https://hackerone.com/nextcloud) or security@nextcloud.com following our [security policy](https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our [GitHub Organization](https://github.com/nextcloud/)
* Report the issue using one of our [templates][templates], they include all the information we need to track down the issue.
* Report the issue using our [template][template], it includes all the information we need to track down the issue.
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
Thanks for reporting issues back to Nextcloud! This is the issue tracker of Nextcloud, if you have any support question please check out https://nextcloud.com/support
This is the bug tracker for the Server component. Find other components at https://github.com/nextcloud/
For reporting potential security issues please see https://nextcloud.com/security/
To make it possible for us to help you please fill out below information carefully.
You can also use the Issue Template application to prefill most of the required information: https://apps.nextcloud.com/apps/issuetemplate
If you are a customer, please submit your issue directly in the Nextcloud Portal https://portal.nextcloud.com so it gets resolved more quickly by our dedicated engineers.
Note that Nextcloud is an open source project backed by Nextcloud GmbH. Most of our volunteers are home users and thus primarily care about issues that affect home users. Our paid engineers prioritize issues of our customers. If you are neither a home user nor a customer, consider paying somebody to fix your issue, do it yourself or become a customer.
-->
### Steps to reproduce
1.
2.
3.
### Expected behaviour
Tell us what should happen
### Actual behaviour
Tell us what happens instead
### Server configuration
**Operating system**:
**Web server:**
**Database:**
**PHP version:**
**Nextcloud version:** (see Nextcloud admin page)
**Updated from an older Nextcloud/ownCloud or fresh install:**
**Where did you install Nextcloud from:**
**Signing status:**
<details>
<summary>Signing status</summary>
```
Login as admin user into your Nextcloud and access
description:"Submit a report and help us improve Nextcloud Server"
title:"[Bug]: "
labels:["bug","0. Needs triage"]
body:
- type:markdown
attributes:
value:|
### 👍 Thank you for contributing to our project!
Please note this is a **free and open-source** project. Most people take on their own time to help you, so please, be patient.
You can obtain [Enterprise support](https://nextcloud.com/support/) if you run Nextcloud Server in a mission critical environment.
- type:checkboxes
id:before-posting
attributes:
label:"⚠️ This issue respects the following points: ⚠️"
description:All conditions are **required**. Your issue can be closed if these are checked incorrectly.
options:
- label:This is a **bug**, not a question or a configuration/webserver/proxy issue.
required:true
- label:This issue is **not** already reported on Github _(I've searched it)_.
required:true
- label:Nextcloud Server **is** up to date. See [Maintenance and Release Schedule](https://github.com/nextcloud/server/wiki/Maintenance-and-Release-Schedule) for supported versions.
required:true
- label:I agree to follow Nextcloud's [Code of Conduct](https://nextcloud.com/contribute/code-of-conduct/).
required:true
- type:textarea
id:bug-description
attributes:
label:Bug description
description:|
Provide a description of the bug you're experiencing.
Don't just expect someone will guess what your specific problem is and provide full details.
validations:
required:true
- type:textarea
id:reproduce
attributes:
label:Steps to reproduce
description:|
Describe the steps to reproduce the bug.
The better your description is _(go 'here', click 'there'...)_ the fastest you'll get an _(accurate)_ answer.
value:|
1.
2.
3.
validations:
required:true
- type:textarea
id:expected-behavior
attributes:
label:Expected behavior
description:Describe what you expected to happen instead.
validations:
required:true
- type:dropdown
id:install-method
attributes:
label:Installation method
description:|
Select installation method you've used.
_Describe the method in the "Additional info" section if you chose "Other"._
options:
- "Manual installation"
- "Official Docker image"
- "Official VM scripts"
- "Official SNAP package"
- "Official All-in-One appliance"
- "Web installer on a VPS or web space"
- "Other"
- type:dropdown
id:system
attributes:
label:Operating system
description:|
Select operating system where Nextcloud Server is installed.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "Debian/Ubuntu"
- "RHEL/CentOS"
- "Other"
- type:dropdown
id:php
attributes:
label:PHP engine version
description:|
Select PHP engine version serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "PHP 7.3"
- "PHP 7.4"
- "PHP 8.0"
- "PHP 8.1"
- "Other"
- type:dropdown
id:webserver
attributes:
label:Web server
description:|
Select Webserver serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "Apache (supported)"
- "Nginx"
- "Lighttpd"
- "Other"
- type:dropdown
id:database
attributes:
label:Database engine version
description:|
Select Database engine serving Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- "MySQL"
- "MariaDB"
- "PostgreSQL"
- "SQlite"
- "Oracle"
- "Other"
- type:dropdown
id:fresh
attributes:
label:Is this bug present after an update or on a fresh install?
description:|
Select if bug is present after an update or on a fresh install.
options:
- "Updated from a minor version (ex. 22.2.3 to 22.2.4)"
- "Updated to a major version (ex. 22.2.3 to 23.0.1)"
- "Fresh Nextcloud Server install"
- type:dropdown
id:encryption
attributes:
label:Are you using the Nextcloud Server Encryption module?
description:Select if encryption is Enabled on your Nextcloud Server.
options:
- "Encryption is Enabled"
- "Encryption is Disabled"
- type:checkboxes
id:users
attributes:
label:What user-backends are you using?
description:|
Select **all** user-backends Enabled on your Nextcloud Server.
_Describe in the "Additional info" section if you chose "Other"._
options:
- label:"Default user-backend _(database)_"
- label:"LDAP/ Active Directory"
- label:"SSO - SAML"
- label:"Other"
- type:textarea
id:configs
attributes:
label:Configuration report
description:|
Provide information about your configuration.
To get this information, execute one of the following commands on the CLI:
```shell
sudo -u www-data php occ config:list system
php occ config:list system
./occ config:list system
```
> NOTE: This will be automatically formatted into code for better readability.
render:shell
- type:textarea
id:apps
attributes:
label:List of activated Apps
description:|
Provide information about your apps.
To get this information, execute one of the following commands on the CLI:
```shell
sudo -u www-data php occ app:list
php occ app:list
./occ app:list
```
> NOTE: This will be automatically formatted into code for better readability.
render:shell
validations:
required:true
- type:textarea
id:nextcloud-signingstatus
attributes:
label:Nextcloud Signing status
description:|
Provide Nextcloud Signing status.
First, login as Admin user into your Nextcloud, then access this URL:
Note: This is the **issue tracker of Nextcloud**, please do NOT use this to get answers to your questions or get help for fixing your installation. This is a place to report bugs to developers, after your server has been debugged. You can find help debugging your system on our home user forums: https://help.nextcloud.com or, if you use Nextcloud in a large organization, ask our engineers on https://portal.nextcloud.com. See also https://nextcloud.com/support for support options.
Nextcloud is an open source project backed by Nextcloud GmbH. Most of our volunteers are home users and thus primarily care about issues that affect home users. Our paid engineers prioritize issues of our customers. If you are neither a home user nor a customer, consider paying somebody to fix your issue, do it yourself or become a customer.
Guidelines for submitting issues:
* Please search the existing issues first, it's likely that your issue was already reported or even fixed.
- Go to https://github.com/nextcloud and type any word in the top search/command bar. You probably see something like "We couldn’t find any repositories matching ..." then click "Issues" in the left navigation.
- You can also filter by appending e. g. "state:open" to the search string.
- More info on search syntax within github: https://help.github.com/articles/searching-issues
* This repository https://github.com/nextcloud/server/issues is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* SECURITY: Report any potential security bug to us via our HackerOne page (https://hackerone.com/nextcloud) following our security policy (https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our GitHub Organization (https://github.com/nextcloud/)
-->
<!--- Please keep this note for other contributors -->
### How to use GitHub
* Please use the 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to show that you are interested into the same feature.
* Please don't comment if you have no relevant information to add. It's just extra noise for everyone subscribed to this issue.
* Subscribe to receive notifications on status change and new comments.
**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
**Describe the solution you'd like**
A clear and concise description of what you want to happen.
**Describe alternatives you've considered**
A clear and concise description of any alternative solutions or features you've considered.
**Additional context**
Add any other context or screenshots about the feature request here.
Thanks for your first pull request and welcome to the community!
Feel free to keep them coming! If you are looking for issues to tackle then have a look at this selection: https://github.com/nextcloud/server/issues?q=is%3Aopen+is%3Aissue+label%3A%22good+first+issue%22
Most developers hang out on IRC. So join \#nextcloud-dev on Freenode for a chat!
* 📁 **Access your Data** You can store your files, contacts, calendars and more on a server of your choosing.
* 🔄 **Sync your Data** You keep your files, contacts, calendars and more synchronized amongst your devices.
* 🙌 **Share your Data** …by giving others access to the stuff you want them to see or to collaborate with.
* 🚀 **Expandable with hundreds of Apps** ...like [Calendar](https://github.com/nextcloud/calendar), [Contacts](https://github.com/nextcloud/contacts), [Mail](https://github.com/nextcloud/mail), [Video Chat](https://github.com/nextcloud/spreed) and all those you can discover in our [App Store](https://apps.nextcloud.com)
* 🚀 **Expandable with dozens of Apps** ...like [Calendar](https://github.com/nextcloud/calendar), [Contacts](https://github.com/nextcloud/contacts), [Mail](https://github.com/nextcloud/mail) and all those you can discover in our [App Store](https://apps.nextcloud.com)
* 🔒 **Security** with our encryption mechanisms, [HackerOne bounty program](https://hackerone.com/nextcloud) and two-factor authentication.
You want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and at your organization? [**Learn about all our Features**](https://nextcloud.com/athome/).
You want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and at your Enterprise? [**Learn about all our Features**](https://nextcloud.com/features).
## Get your Nextcloud 🚚
- ☑️ [**Simply sign up**](https://nextcloud.com/signup/) at one of our providers either through our website or through the apps directly.
- ☑️ [**Simply sign up**](https://nextcloud.com/signup/) either through our website or through the apps directly.
- 🖥 [**Install** a server by yourself](https://nextcloud.com/install/#instructions-server) on your own hardware or by using one of our ready to use **appliances**
- 📦 Buy one of the [awesome **devices** coming with a preinstalled Nextcloud](https://nextcloud.com/devices/)
- 🏢 Find a [service **provider**](https://nextcloud.com/providers/) who hosts Nextcloud for you or your company
Enterprise? Public Sector or Education user? You may want to have a look into [**Nextcloud Enterprise**](https://nextcloud.com/enterprise/) provided by Nextcloud GmbH.
Enterprise? Public Sector or Education user? You may want to have a look into the [**Enterprise Support Subscription**](https://nextcloud.com/enterprise/) provided by the Nextcloud GmbH.
@@ -43,7 +45,7 @@ There are many ways to contribute, of which development is only one! Find out [h
### Development setup 👩💻
1. 🚀 [Set up your local development environment](https://docs.nextcloud.com/server/latest/developer_manual/getting_started/devenv.html)
1. 🚀 [Set up your local development environment](https://docs.nextcloud.com/server/14/developer_manual/general/devenv.html)
2. 🐛 [Pick a good first issue](https://github.com/nextcloud/server/labels/good%20first%20issue)
3. 👩🔧 Create a branch and make your changes. Remember to sign off your commits using `git commit -sm "Your commit message"`
4. ⬆ Create a [pull request](https://opensource.guide/how-to-contribute/#opening-a-pull-request) and `@mention` the people from the issue to review
@@ -56,13 +58,12 @@ Several apps that are included by default in regular releases such as [First run
Otherwise, git checkouts can be handled the same as release archives, by using the `stable*` branches. Note they should never be used on production systems.
### Working with front-end code 🏗
#### Building
### Building front-end code 🏗
We are moving more and more towards using Vue.js in the frontend, starting with Settings. For building the code on changes, use these terminal commands in the root folder:
We move more and more towards using Vue.js in the frontend, starting with Settings. For building the code on changes, use these terminal commands in the `settings` subfolder:
```bash
``` bash
# install dependencies
make dev-setup
@@ -74,47 +75,25 @@ make watch-js
# build for production with minification
make build-js-production
```
#### Committing changes
# clean output files
make clean
```
**When making changes, also commit the compiled files!**
We still use Handlebars templates some places in Files and Settings. We will replace these step-by-step with Vue.js, but in the meantime you need to compile them separately.
If you don’t have Handlebars installed yet, you can do it with this terminal command:
```bash
```
sudo npm install -g handlebars
```
Then inside the root folder of your local Nextcloud development installation, run this command in the terminal every time you changed a `.handlebars` file to compile it:
```bash
```
./build/compile-handlebars-templates.sh
```
Before checking in JS changes, make sure to also build for production:
```bash
make build-js-production
```
Then add the compiled files for committing.
To save some time, to only rebuild for a specific app, use the following and replace the module with the app name:
```bash
MODULE=user_status make build-js-production
```
Please note that if you used `make build-js` or `make watch-js` before, you'll notice that a lot of files were marked as changed, so might need to clear the workspace first.
### Working with back-end code 🏗
When changing back-end PHP code, in general no additional steps are needed before checking in.
However, if new files were created, you will need to run the following command to update the autoloader files:
```bash
build/autoloaderchecker.sh
```
After that, please also include the autoloader file changes in your commits.
$err='Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
thrownew\OutOfBoundsException('Package "'.$packageName.'" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
thrownew\OutOfBoundsException('Package "'.$packageName.'" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
thrownew\OutOfBoundsException('Package "'.$packageName.'" is not installed');
}
/**
* @param string $packageName
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
* Returns the raw installed.php data for custom implementations
*
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.',E_USER_DEPRECATED);
if(null===self::$installed){
// only require the installed.php file if this file is loaded from its dumped location,
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
if(substr(__DIR__,-8,1)!=='C'){
self::$installed=include__DIR__.'/installed.php';
}else{
self::$installed=array();
}
}
returnself::$installed;
}
/**
* Returns the raw data of all installed.php which are currently loaded for custom implementations
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"’n Donker tema om u oë ’n ruskans te gee deur die algehele ligsterkte en helderheid te verminder. Dit word nog ontwikkel; rapporteer asb. enige probleme wat u ervaar.",
"High contrast mode":"Hoëkontrasmodus",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"’n Hoëkontrasmodus om u navigasie te vergemaklik. Visuele kwaliteit sal verminder word, maar die duidelikheid sal verbeter.",
"High contrast theme":"Hoëkontrastema",
"A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased.":"’n Hoëkontrastema om u navigasie te vergemaklik. Visuele kwaliteit sal verminder word, maar die duidelikheid sal verbeter.",
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"’n Donkertema om u oë ’n ruskans te geen deur die algehele ligsterkte en helderheid te verminder. Dit word nog ontwikkel; rapporteer asb. enige probleme wat u ervaar.",
"Dyslexia font":"Disleksie-font",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"OpenDyslexic is ’n gratis lettertipe/font wat ontwerp is om sommige van die algemene leesfoute wat deur disleksie veroorsaak word, te versag.",
"Accessibility":"Toeganklikheid",
"Accessibility options for nextcloud":"Toeganklikheidsopsies vir nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud":"Bied veelvuldige toeganklikheidsopsies om u gebruik van Nextcloud te vergemaklik"
"Provides multiple accessibilities options to ease your use of Nextcloud":"Bied veelvuldige toeganklikheidsopsies om u gebruik van Nextcloud te vergemaklik",
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"’n Donker tema om u oë ’n ruskans te gee deur die algehele ligsterkte en helderheid te verminder. Dit word nog ontwikkel; rapporteer asb. enige probleme wat u ervaar.",
"High contrast mode":"Hoëkontrasmodus",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"’n Hoëkontrasmodus om u navigasie te vergemaklik. Visuele kwaliteit sal verminder word, maar die duidelikheid sal verbeter.",
"High contrast theme":"Hoëkontrastema",
"A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased.":"’n Hoëkontrastema om u navigasie te vergemaklik. Visuele kwaliteit sal verminder word, maar die duidelikheid sal verbeter.",
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"’n Donkertema om u oë ’n ruskans te geen deur die algehele ligsterkte en helderheid te verminder. Dit word nog ontwikkel; rapporteer asb. enige probleme wat u ervaar.",
"Dyslexia font":"Disleksie-font",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"OpenDyslexic is ’n gratis lettertipe/font wat ontwerp is om sommige van die algemene leesfoute wat deur disleksie veroorsaak word, te versag.",
"Accessibility":"Toeganklikheid",
"Accessibility options for nextcloud":"Toeganklikheidsopsies vir nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud":"Bied veelvuldige toeganklikheidsopsies om u gebruik van Nextcloud te vergemaklik"
"Provides multiple accessibilities options to ease your use of Nextcloud":"Bied veelvuldige toeganklikheidsopsies om u gebruik van Nextcloud te vergemaklik",
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"المظهر الداكن يخفف من الإرهاق على عينيك، وذلك بتخفيض حدّة الإضاءة والسطوع. هذه الميزة لا تزال تحت التطوير، لهذا نود منكم الإبلاغ عن أي مشكلة قد تصادفكم.",
"High contrast mode":"وضع تباين الألوان العالي",
"Enable high contrast mode":"تفعيل وضع تباين الألوان العالي",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"وضع تباين الألوان العالي يساعدك على التنقل في الموقع بسهولة. الجودة المرئية سوف تقل بينما الوضوح سيزداد.",
"Dyslexia font":"خط خاص بالمصابين بعسر القراءة",
"Enable dyslexia font":"تفعيل الخط الخاص بالمصابين بعسر القراءة",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"OpenDyslexic خط مجاني مصمم للمساعدة على تفادي الأخطاء لمن يعانون من عسر القراءة.",
"Accessibility":"تسهيل الإستعمال",
"Accessibility options for nextcloud":"خيارات تسهيل إستعمال نكست كلاود",
"Provides multiple accessibilities options to ease your use of Nextcloud":"توفر عدة خيارات تسهيل إستعمال لتسهيل تنقلك على نكست كلاود",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.":"الوصول الشامل مهم جدا بالنسبة لنا. نحن نتبع معايير ويب صارمة ونتأكد من أن كل شيء يمكن إستعماله حتى دون الحاجة للفأرة أو إلى أي برامج مساعدة مثل برامج قراءة الشاشة. هدفنا أن نكون متوافقين مع {guidelines} توجيهات تسهيل إستعمال محتوى الويب {linkend} 2.1 بمستوى AA، ومتوافقين مع مظهر تباين الألوان العالي بمستوى يصل حتى إلى AAA.",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!":"إذا واجهت أي مشاكل، لا تتردد بالإبلاغ عنها على {issuetracker} متعقب المشاكل الخاص بنا {linkend}. أما إذا أردت المشاركة في التطوير، إنضم إلى {designteam} فريق التصميم {linkend}!"
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"المظهر الداكن يخفف من الإرهاق على عينيك، وذلك بتخفيض حدّة الإضاءة والسطوع. هذه الميزة لا تزال تحت التطوير، لهذا نود منكم الإبلاغ عن أي مشكلة قد تصادفكم.",
"High contrast mode":"وضع تباين الألوان العالي",
"Enable high contrast mode":"تفعيل وضع تباين الألوان العالي",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"وضع تباين الألوان العالي يساعدك على التنقل في الموقع بسهولة. الجودة المرئية سوف تقل بينما الوضوح سيزداد.",
"Dyslexia font":"خط خاص بالمصابين بعسر القراءة",
"Enable dyslexia font":"تفعيل الخط الخاص بالمصابين بعسر القراءة",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"OpenDyslexic خط مجاني مصمم للمساعدة على تفادي الأخطاء لمن يعانون من عسر القراءة.",
"Accessibility":"تسهيل الإستعمال",
"Accessibility options for nextcloud":"خيارات تسهيل إستعمال نكست كلاود",
"Provides multiple accessibilities options to ease your use of Nextcloud":"توفر عدة خيارات تسهيل إستعمال لتسهيل تنقلك على نكست كلاود",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.":"الوصول الشامل مهم جدا بالنسبة لنا. نحن نتبع معايير ويب صارمة ونتأكد من أن كل شيء يمكن إستعماله حتى دون الحاجة للفأرة أو إلى أي برامج مساعدة مثل برامج قراءة الشاشة. هدفنا أن نكون متوافقين مع {guidelines} توجيهات تسهيل إستعمال محتوى الويب {linkend} 2.1 بمستوى AA، ومتوافقين مع مظهر تباين الألوان العالي بمستوى يصل حتى إلى AAA.",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!":"إذا واجهت أي مشاكل، لا تتردد بالإبلاغ عنها على {issuetracker} متعقب المشاكل الخاص بنا {linkend}. أما إذا أردت المشاركة في التطوير، إنضم إلى {designteam} فريق التصميم {linkend}!"
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"Цёмная тэма зніжае напружанне на вочы зніжаючы яркасць. Функцыя знаходзіцца ў стадыі распрацоўкі, таму, калі ласка, паведамляйце пра ўсе знойдзеныя памылкі.",
"High contrast mode":"Рэжым высокай кантраснасці",
"Enable high contrast mode":"Уключыць рэжым высокай кантраснасці",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"Рэжым высокай кантраснасці каб палегчыць навігацыю. Гэта паменшыць візуальную якасць, але палепшыць зразумеласць.",
"Dyslexia font":"Шрыфт для людзей з дыслексіяй",
"Enable dyslexia font":"Выкарыстоўваць шрыфт для людзей з дыслексіяй",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"OpenDyslexic — гэта бясплатны шрыфт, распрацаваны каб паменшыць колькасць частых памылак чытання, якія выкліканы дыслексіяй,",
"Accessibility":"Спецыяльныя магчымасці",
"Accessibility options for nextcloud":"Налады спецыяльных магчымасцяў для Nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud":"Налады спецыяльных магчымасцяў, якія спрашчаюць карыстанне Nextcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.":"Універсальны доступ вельмі важны для нас. Мы прытрымліваемся стандартам і правяраем магчымасць выкарыстоўвання нашых сэрвісаў без мышы ці з выкарыстоўваннем дапаможных праграм, такіх, як экраны дыктар. Мы стараемся цалкам адпавядаць {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 на ўзроўні AA, а разам з рэжымам высокай кантраснасці на ўзроўні AAA.",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!":"Калі вы знайшлі нейкую праблему, не саромейцеся напісаць у {issuetracker}наш трэкер памылак{linkend}. Таксама калі вы жадаеце прыняць удзел, можаце прыяднацца да {designteam}нашай каманды дызайнераў{linkend}!"
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"Цёмная тэма зніжае напружанне на вочы зніжаючы яркасць. Функцыя знаходзіцца ў стадыі распрацоўкі, таму, калі ласка, паведамляйце пра ўсе знойдзеныя памылкі.",
"High contrast mode":"Рэжым высокай кантраснасці",
"Enable high contrast mode":"Уключыць рэжым высокай кантраснасці",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"Рэжым высокай кантраснасці каб палегчыць навігацыю. Гэта паменшыць візуальную якасць, але палепшыць зразумеласць.",
"Dyslexia font":"Шрыфт для людзей з дыслексіяй",
"Enable dyslexia font":"Выкарыстоўваць шрыфт для людзей з дыслексіяй",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"OpenDyslexic — гэта бясплатны шрыфт, распрацаваны каб паменшыць колькасць частых памылак чытання, якія выкліканы дыслексіяй,",
"Accessibility":"Спецыяльныя магчымасці",
"Accessibility options for nextcloud":"Налады спецыяльных магчымасцяў для Nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud":"Налады спецыяльных магчымасцяў, якія спрашчаюць карыстанне Nextcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.":"Універсальны доступ вельмі важны для нас. Мы прытрымліваемся стандартам і правяраем магчымасць выкарыстоўвання нашых сэрвісаў без мышы ці з выкарыстоўваннем дапаможных праграм, такіх, як экраны дыктар. Мы стараемся цалкам адпавядаць {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 на ўзроўні AA, а разам з рэжымам высокай кантраснасці на ўзроўні AAA.",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!":"Калі вы знайшлі нейкую праблему, не саромейцеся напісаць у {issuetracker}наш трэкер памылак{linkend}. Таксама калі вы жадаеце прыняць удзел, можаце прыяднацца да {designteam}нашай каманды дызайнераў{linkend}!"
"A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased.":"Тема с висок контраст за улесняване на навигацията. Визуалното качество ще бъде намалено, но яснотата ще бъде увеличена.",
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"Тъмна тема, която облекчава очите ви, като намалява яркостта. Все още е в процес на разработка, затова, моля, докладвайте за всички проблеми, които откриете.",
"High contrast mode":"Висок контраст",
"Enable high contrast mode":"Активиране на режим с висок контраст",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"Режим с висок контраст за улесняване на навигацията ви. Визуалното качество ще бъде намалено, но яснотата ще се увеличи.",
"Dyslexia font":"Шрифт за дислексия",
"Enable dyslexia font":"Активирай шрифт за дислексия",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"OpenDyslexic е безплатен шрифт, предназначен за смекчаване на някои от често срещаните грешки при четенето, причинени от дислексия.",
"Accessibility":"Достъпност",
"Accessibility options for nextcloud":"Опции за достъпност за nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud":"Осигурява множество опции за достъпност за улесняване на използването на Nextcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.":"Универсалният достъп е много важен за нас. Следваме уеб стандартите и проверяваме, за да направим всичко използваемо и без мишка, и помощен софтуер, като екранни четци. Ние се стремим да бъдем съобразени с {guidelines}Насоки за достъпност на уеб съдържанието {linkend} 2.1 на ниво АА, с темата за висок контраст дори на ниво AAA.",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!":"Ако откриете някакви проблеми, не се колебайте да ги съобщите на {issueetracker} нашия тракер на проблеми {linkend}. А ако искате да се включите, елате да се присъедините {designteam} към нашия дизайнерски екип {linkend}!"
"Web Content Accessibility Guidelines":"Указания за достъпност на уеб съдържание",
"our design team":"нашия екип",
"Enable":"Включване",
"Dark theme (beta)":"Тъмна тема (бета)",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia. The typeface was created by Abelardo Gonzalez, who released it through an open-source license.":"OpenDyslexic е безплатен шрифт, предназначен за смекчаване на някои от често срещаните грешки при четенето, причинени от дислексия.",
"Provides multiple accessibilities options to ease your use of nextcloud":"Осигурява множество опции за достъпност за улесняване на използването на Nextcloud",
"A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased.":"Тема с висок контраст за улесняване на навигацията. Визуалното качество ще бъде намалено, но яснотата ще бъде увеличена.",
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"Тъмна тема, която облекчава очите ви, като намалява яркостта. Все още е в процес на разработка, затова, моля, докладвайте за всички проблеми, които откриете.",
"High contrast mode":"Висок контраст",
"Enable high contrast mode":"Активиране на режим с висок контраст",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"Режим с висок контраст за улесняване на навигацията ви. Визуалното качество ще бъде намалено, но яснотата ще се увеличи.",
"Dyslexia font":"Шрифт за дислексия",
"Enable dyslexia font":"Активирай шрифт за дислексия",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"OpenDyslexic е безплатен шрифт, предназначен за смекчаване на някои от често срещаните грешки при четенето, причинени от дислексия.",
"Accessibility":"Достъпност",
"Accessibility options for nextcloud":"Опции за достъпност за nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud":"Осигурява множество опции за достъпност за улесняване на използването на Nextcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.":"Универсалният достъп е много важен за нас. Следваме уеб стандартите и проверяваме, за да направим всичко използваемо и без мишка, и помощен софтуер, като екранни четци. Ние се стремим да бъдем съобразени с {guidelines}Насоки за достъпност на уеб съдържанието {linkend} 2.1 на ниво АА, с темата за висок контраст дори на ниво AAA.",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!":"Ако откриете някакви проблеми, не се колебайте да ги съобщите на {issueetracker} нашия тракер на проблеми {linkend}. А ако искате да се включите, елате да се присъедините {designteam} към нашия дизайнерски екип {linkend}!"
"Web Content Accessibility Guidelines":"Указания за достъпност на уеб съдържание",
"our design team":"нашия екип",
"Enable":"Включване",
"Dark theme (beta)":"Тъмна тема (бета)",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia. The typeface was created by Abelardo Gonzalez, who released it through an open-source license.":"OpenDyslexic е безплатен шрифт, предназначен за смекчаване на някои от често срещаните грешки при четенето, причинени от дислексия.",
"Provides multiple accessibilities options to ease your use of nextcloud":"Осигурява множество опции за достъпност за улесняване на използването на Nextcloud",
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"সামগ্রিক আলোকসজ্জা এবং উজ্জ্বলতা হ্রাস করে আপনার চোখকে সহজ করার জন্য একটি অন্ধকার থিম। এটা এখনও উন্নয়ন অধীনে, তাই কোনো সমস্যা আপনি খুঁজে পেতে পারেন রিপোর্ট করুন। ",
"High contrast mode":"উচ্চ বিপরীতে মোড ",
"Enable high contrast mode":"উচ্চতর বিপরীতে মোড সক্ষম করুন",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"আপনার নেভিগেশন সহজ করতে একটি উচ্চ বিপরীতে মোড। ভিজ্যুয়াল মান হ্রাস পাবে তবে স্বচ্ছতা বাড়ানো হবে। ",
"Dyslexia font":"ডিসলেক্সিয়া হরফ",
"Enable dyslexia font":"ডিসলেক্সিয়া হরফ সক্ষম করুন",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"ওপেনডাইলেক্সিক হ'ল ফ্রি টাইপফেস / হরফ ডিজাইলেসিয়া দ্বারা সৃষ্ট কিছু সাধারণ পাঠ্য ত্রুটি প্রশমিত করার জন্য ডিজাইন করা। ",
"Accessibility":"অ্যাক্সেসযোগ্যতা",
"Accessibility options for nextcloud":"নেক্সটক্লাউডের জন্য অ্যাক্সেসযোগ্যতার বিকল্পগুলি",
"Provides multiple accessibilities options to ease your use of Nextcloud":"নেক্সটক্লাউডের আপনার ব্যবহার সহজ করার জন্য একাধিক অ্যাক্সেসিবিলিটি বিকল্প সরবরাহ করে",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.":"সর্বজনীন অ্যাক্সেস আমাদের জন্য খুব গুরুত্বপূর্ণ। আমরা ওয়েব স্ট্যান্ডার্ডগুলি অনুসরণ করি এবং মাউস ছাড়াই এবং স্ক্রিনড্রেডারের মতো সহায়ক সফ্টওয়্যার ছাড়াও সবকিছুকে ব্যবহারযোগ্য করে তুলতে পরীক্ষা করে দেখি। আমরা এএএ স্তরে এমনকি উচ্চতর বিপরীতে থিম সহ, এএ স্তরের {নির্দেশিকা} ওয়েব সামগ্রী অ্যাক্সেসিবিলিটি নির্দেশিকা {লিনএন্ড} 2.1 এর সাথে অনুগত হতে লক্ষ্য করি।",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!":"আপনি যদি কোনও সমস্যা খুঁজে পান তবে তাদেরকে আমাদের ইস্যু ট্র্যাকার {লিনএন্ড} এ প্রতিবেদন করতে দ্বিধা করবেন না} এবং আপনি যদি এতে জড়িত থাকতে চান তবে আসুন {ডিজাইনটিয়াম} আমাদের ডিজাইন দল {লিনএন্ড} এ যোগদান করুন"
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"সামগ্রিক আলোকসজ্জা এবং উজ্জ্বলতা হ্রাস করে আপনার চোখকে সহজ করার জন্য একটি অন্ধকার থিম। এটা এখনও উন্নয়ন অধীনে, তাই কোনো সমস্যা আপনি খুঁজে পেতে পারেন রিপোর্ট করুন। ",
"High contrast mode":"উচ্চ বিপরীতে মোড ",
"Enable high contrast mode":"উচ্চতর বিপরীতে মোড সক্ষম করুন",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"আপনার নেভিগেশন সহজ করতে একটি উচ্চ বিপরীতে মোড। ভিজ্যুয়াল মান হ্রাস পাবে তবে স্বচ্ছতা বাড়ানো হবে। ",
"Dyslexia font":"ডিসলেক্সিয়া হরফ",
"Enable dyslexia font":"ডিসলেক্সিয়া হরফ সক্ষম করুন",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"ওপেনডাইলেক্সিক হ'ল ফ্রি টাইপফেস / হরফ ডিজাইলেসিয়া দ্বারা সৃষ্ট কিছু সাধারণ পাঠ্য ত্রুটি প্রশমিত করার জন্য ডিজাইন করা। ",
"Accessibility":"অ্যাক্সেসযোগ্যতা",
"Accessibility options for nextcloud":"নেক্সটক্লাউডের জন্য অ্যাক্সেসযোগ্যতার বিকল্পগুলি",
"Provides multiple accessibilities options to ease your use of Nextcloud":"নেক্সটক্লাউডের আপনার ব্যবহার সহজ করার জন্য একাধিক অ্যাক্সেসিবিলিটি বিকল্প সরবরাহ করে",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.":"সর্বজনীন অ্যাক্সেস আমাদের জন্য খুব গুরুত্বপূর্ণ। আমরা ওয়েব স্ট্যান্ডার্ডগুলি অনুসরণ করি এবং মাউস ছাড়াই এবং স্ক্রিনড্রেডারের মতো সহায়ক সফ্টওয়্যার ছাড়াও সবকিছুকে ব্যবহারযোগ্য করে তুলতে পরীক্ষা করে দেখি। আমরা এএএ স্তরে এমনকি উচ্চতর বিপরীতে থিম সহ, এএ স্তরের {নির্দেশিকা} ওয়েব সামগ্রী অ্যাক্সেসিবিলিটি নির্দেশিকা {লিনএন্ড} 2.1 এর সাথে অনুগত হতে লক্ষ্য করি।",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!":"আপনি যদি কোনও সমস্যা খুঁজে পান তবে তাদেরকে আমাদের ইস্যু ট্র্যাকার {লিনএন্ড} এ প্রতিবেদন করতে দ্বিধা করবেন না} এবং আপনি যদি এতে জড়িত থাকতে চান তবে আসুন {ডিজাইনটিয়াম} আমাদের ডিজাইন দল {লিনএন্ড} এ যোগদান করুন"
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"Un tem teñval evit distanañ ho taoulagad en ur vihanaat ar sklêrijenn. War ziorren emañ c'hoazh, setu ma c'hallit kas deomp hoc'h evezhiadennoù.",
"High contrast mode":"Mod dargemm uhel",
"Enable high contrast mode":"Aotren mod an dargemm uhel",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"Ur mod dargemm uhel evit aesaat ho merdeiñ. Bihanaet e vo ar c'halite met brasaet e vo ar spisder eta.",
"Dyslexia font":"Font a-enep an dislegiezh",
"Enable dyslexia font":"Aotren ar font a-enep an dislegiezh",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"OpenDyslexic a zo ur font digoust soñjet evit disteraat ar fazioù lenn pennañ deuet diwar dislegiezh.",
"Accessibility":"Monedusted",
"Accessibility options for nextcloud":"Arventennoù monedusted Nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud":"Pourveziñ a ra meur a arventenn vonedusted evit simplaat implij Nexcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.":"Hollbouezus eo deomp ar vonedusted hollvedel. Heuliañ a reomp ar standardoù web ha gwiriañ a reomp hag-eñ e c'hall mat pep tra bezañ implijet hep logodenn zoken, ha gant meziantoù skoazellañ evel \"lennerioù skramm\". Klask a reomp doujañ da {guidelines}Reolennoù monedusted endalc'hadoù ar Web{linkend} 2.1 gant ul live AA, gant an tem gantañ un dargemm bras, d'al live AAA zoken.",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!":"Mar kavit un draen bennak, na dermit ket da reiñ deomp da c'houzout war {issuetracker}hor benveg dizreinañ{linkend}. Ha mar fell deoc'h kemer perzh e viot degemeret mat en {designteam}hor skipailh dezagn{linkend}!"
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find.":"Un tem teñval evit distanañ ho taoulagad en ur vihanaat ar sklêrijenn. War ziorren emañ c'hoazh, setu ma c'hallit kas deomp hoc'h evezhiadennoù.",
"High contrast mode":"Mod dargemm uhel",
"Enable high contrast mode":"Aotren mod an dargemm uhel",
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased.":"Ur mod dargemm uhel evit aesaat ho merdeiñ. Bihanaet e vo ar c'halite met brasaet e vo ar spisder eta.",
"Dyslexia font":"Font a-enep an dislegiezh",
"Enable dyslexia font":"Aotren ar font a-enep an dislegiezh",
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia.":"OpenDyslexic a zo ur font digoust soñjet evit disteraat ar fazioù lenn pennañ deuet diwar dislegiezh.",
"Accessibility":"Monedusted",
"Accessibility options for nextcloud":"Arventennoù monedusted Nextcloud",
"Provides multiple accessibilities options to ease your use of Nextcloud":"Pourveziñ a ra meur a arventenn vonedusted evit simplaat implij Nexcloud",
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level.":"Hollbouezus eo deomp ar vonedusted hollvedel. Heuliañ a reomp ar standardoù web ha gwiriañ a reomp hag-eñ e c'hall mat pep tra bezañ implijet hep logodenn zoken, ha gant meziantoù skoazellañ evel \"lennerioù skramm\". Klask a reomp doujañ da {guidelines}Reolennoù monedusted endalc'hadoù ar Web{linkend} 2.1 gant ul live AA, gant an tem gantañ un dargemm bras, d'al live AAA zoken.",
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!":"Mar kavit un draen bennak, na dermit ket da reiñ deomp da c'houzout war {issuetracker}hor benveg dizreinañ{linkend}. Ha mar fell deoc'h kemer perzh e viot degemeret mat en {designteam}hor skipailh dezagn{linkend}!"
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.