Since `ShareEntryLink` component is used to both create and display/list the share links,
we should only set default expiration date on `share.expireDate` when we know is a new share.
Otherwise, we overidding data from the backend.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
When marking a file as favorite from within the sidebar make sure it
really works, this fixes two issues:
1. The source needs to be the plain source not URL encoded, as otherwise
the source of the node would be encoded twice (and show with encoding
in the navigation)
2. The store should also listen for the update events as the sidebar has
no access to the real node to update it, instead the store should -
as long as we only have the legacy sidebar - update the node when
added or removed as favorite.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
When a user receives a share with share-permissions but also with
download restrictions (hide download or the modern download permission attribute),
then re-shares of that share must always also include those restrictions.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This commit introduces end-to-end tests for various public link sharing scenarios in the `files_sharing` app. It validates the behavior under multiple configurations:
- Password and expiration date enforced
- Password enforced with a default expiration date
- Expiration date enforced with optional password
- Default password and expiration date without enforcement
- Password enforced, expiration date set but not enforced
- Both password and expiration date not enforced, but defaults set
- Password not enforced, expiration date enforced
- Password not enforced, default expiration date set
- Password and expiration date not enforced with no defaults
The tests ensure proper validation and functionality of the configurations, leveraging the `setupData` and `createShare` utilities.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
This addition enhances the testing framework for public sharing by
improving the setup and management of share contexts.
Additionally, the update optimizes share permission adjustments and
improves state management, making public share setups more efficient and maintainable.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
The main providers come from both the backend and client side plugins such as `in-folder` search.
The main providers may carry callbacks functions and other information that should be passed to the `filteredProviders`.
This is important because the current code does not make a distinction between `filteredProviders` and `providers`
rightly so, becuase they are the same thing!
Without the mentioned distinction above, sooner or later, we try to access a property on the `filteredProviders` which we
did not transfer with the manual property copy.
----
This fix prevents in-folder search from searching everywhere when "load more results" is clicked; Essentially ignoring the in-folder
search filter.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
Given:
User creates a link or email share with permissions=4 (create only = file drop).
Problem:
Currently the permissions are automatically extended to permissions = 5
(READ + CREATE). Work around was to create the share and directly update
it.
Solution:
Respect what the user is requesting, create a file drop share.
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Côme Chilliet <91878298+come-nc@users.noreply.github.com>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
- Clarify that enabling server side encryption will not encrypt
existing files but only new or changed files.
- Clarify that server side encryption can only be disabled using OCC
- Ensure there is accessible information of encryption state (`disabled`
input will not be announced so make it `aria-disabled` instead)
- Make warning more prominent by moving it into a dialog
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The client-side plugin `in-folder` uses the `files` provider, this makes it
overlap with the main files provider itself.
This change follows eecda06f1a after it was discovered
that some apps/providers like `dav` use providers from another app like `contacts`
Signed-off-by: nfebe <fenn25.fn@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Each provider may search from a particular app so we should use that for searching.
Before this commit, we used `provider.id` instead of `provider.appId` the problem with the previous
approach is that it forces the provider id to be a valid search provider (an app that supports search)
limiting the developers ability to use unique IDs to identify the different providers (especially plugin providers)
inside the places filter.
For example the Files search plugin "In folder" (search in folder plugin) was required to have id as `files` while the
files provider itself already has id as `files`.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
Previously, the share owner notification email did not display the recipient email addresses,
making it difficult for the owner to know who the share was sent to.
This fix ensures that the recipient email addresses are included in the notification email.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
Improve blurhash performance by using a low res image.
The results are hard to destinguish visualy.
It is a **blur** hash after all.
Signed-off-by: Max <max@nextcloud.com>
This prevent restored version of encrypted files from having a wrong reported size. This was blocking download.
Signed-off-by: Louis Chemineau <louis@chmn.me>
When changing the folder the filter will be re-mounted by the file list,
so we need to pass the current state of the filter to the filter UI.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
When nesting is enabled, filterValidGroups is supposed to check for each
groups if it actually exist, because it may not be visible to
Nextcloud. So in this codepath we disable automapping of groups.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
(cherry picked from commit de77415c70)
If `ignore-missing-user` all sub commands work, except listing all settings
for a user like `occ user:settings --ignore-missing-user user core`.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Fixes#35936.
When running `OC\Preview\BackgroundCleanupJob`, the main iteration loop
in `run()` expects a folder, however, `getOldPreviewLocations()`
currently does not filter by mimetype and therefore can yield a
non-folder entry which causes an Exception when constructing the Folder
impl.
Filtering for `httpd/unix-directory`, as `getNewPreviewLocations()`
already does, fixes this issue.
Signed-off-by: Dario Mehlich <d.mehlich@gmail.com>
- Catch all thrown exceptions and handle in such a way you do not get
information about forbidden files.
- Resepect download permissions of shares.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The notitication is correctly created, but the changelog is not show.
We need to make sure the version passed to the manager is in the allowed
format (major.minor.patch).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Some filters are only available for certain providers, the UI should give the user
a hint to what providers such filters are available in.
Currently, if a filter (date or person) is not support by an a provider, the provider is
blurred out in the places dropdown.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
In the account management settings (default settings) the quota was
parsed not consistently with how we do it everywhere else.
Meaning `1 KB` should be 1024 bytes not 1000 bytes.
Also this fixes an issue where searching "1KB" does not yield any output
because of the space in the parsed value "1 KB".
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This should be done as soon as changed, as the value is not passed to
API but needs to be tracked internally (e.g. if you quickly press
"save").
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Provided values are not reactive by default and by design,
we must need computed to make them reactive.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
When doing a PROPFIND on default-calendar-url, if the current default calendar (fallbacking on personal uri)
is in the trashbin, it's being purged so that it's recreated.
This leads to loss of data.
We can simply rename the calendar URI and add a unique suffix so that it doesn't conflict with the new calendar
being created.
Shares are fine because they reference the resourceid and not the calendar URI.
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
If a session timed out or was closed in another tab,
then currently the user gets random error messages.
This intercepts 401 responses (should only happen if logged out, or the
users does something wrong).
If we get a 401, we make sure its because of the session,
by checking if the user can access the files app.
If that is also the case we forward the user to the login page
and set the redirect URL to the last used URL.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
By default, the MP3 audio files get the mimetype `audio/mpeg` and the M3U and
M3U8 playlist files get the mimetype `audio/mpegurl`. PreviewManager had such
a problem that it registered the MP3 preview provider with a regular
expression which matched also the M3U files. This caused an error message to
be logged on the info (1) level for each M3U file every time a folder with
such files was viewed: "Error while getting cover from mp3 file:
File /path/to/some/playlist.m3u is not mpeg/audio!".
Signed-off-by: Pauli Järvinen <pauli.jarvinen@gmail.com>
A refactor was done to remove ShareTypes and an incomplete backport of
00c2b94391 left incorrect references to shareTypes.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
When we need to check the log condition for a user matches,
there is a risk that something on the way checks the log level
and would result in an infinite loop.
So we simply check if it's a nested call and use the default
warning level in that case.
Signed-off-by: Joas Schilling <coding@schilljs.com>
ShareType lists both names and ids so Object.entries return too much.
This was also making useless the following condition adding ShareType.Email
Signed-off-by: Louis Chemineau <louis@chmn.me>
Canceling the previous add of deletion of invalid shares in
transferownership because in some cases it deletes valid reshares, if
incoming shares are not transfered on purpose.
Inverting the order of transfer between incoming and outgoing so that
reshare can be migrated when incoming shares are transfered.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This fixes a regression that bad password returned 403 instead of 400
because of previous changes.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Exceptions thrown from password_policy may bubble up in share creation
or update when a password is used. Their message is meant to be shown
to the user. This always the case for HintException so we catch that
instead of the subclass GenericShareException.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Current "SetEnvIf Transfer-Encoding "chunked" proxy-sendcl=1" setting fails with Macos Webdav Darwin client beacuse the header has a capital letter -> "Chunked" So you can fix it making condition case insensitive.
Extended description and tests results on https://github.com/nextcloud/server/issues/48878
Signed-off-by: Gonzalo Cao Cabeza de Vaca <57393+gonzalo@users.noreply.github.com>
When downloading files in e.g. the *favorites* or *recent* view,
then the nodes are not always share the same parent folder
and we can not use the current directory as it is probably just a
virtual one.
So we calculate the longest common base and use that as the directory
for the download endpoint.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The content that can be renderered does *not* include HTML (see
`recommended` object).
But `v-html` was used, this is potentially dangerous, even though we
sanitize the translation values, so no urgent harm but better safe than
sorry.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
If a token was already removed from the database but not from the
configuration clearing the tokens will try to remove it again from the
database, which caused a DoesNotExistException to be thrown.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Otherwise as the tokens were removed from the database but not from the
configuration the next time that the tokens were cleared the previous
tokens were still got from the configuration, and trying to remove them
again from the database ended in a DoesNotExistException being thrown.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Some installed apps meant for older server versions might unexpectedly
offer up screenshot values in a non-string format (e.g. health). Avoid
an exception by checking first if the first app screenshot is indeed a
string and otherwise we take the value of the parameter
Signed-off-by: Claudio Cambra <developer@claudiocambra.com>
If there is already a password, there is no need to require the password
in the setting ('newPassword'). It is only required for new shares.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
- Remove DISTINCT clause to fix PgSQL
- Join user table only if necessary
- Don't show people who never connected in active list
- Add test
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
When copying or moving between two local storages the source path (on
disk) to copy or move from is got from the unjailed path of the source
storage. However, if the source storage has more than one jail getting
the unjailed path resolves the most external jail, but the source path
needs to be got from the most internal jail instead (the one closer to
the local storage).
This can happen, for example, with a shared groupfolder: in that case
there is an external jail for the shared storage, and one internal jail
for the groupfolder storage wrapped by the shared storage.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
It looks like, the frontend it needs to provide the `sendMail` param
for the backend to decide wether mails would be sent.
Our UI does not have that at the moment so it should default to sending
emails always for mail shares.
Not exactly sure how this was handled earlier but this is a good starting point.
Resolves : https://github.com/nextcloud/server/issues/48012
Signed-off-by: fenn-cs <fenn25.fn@gmail.com>
This seems to be broken by an update because the renderer now passes an object instead of multiple arguments to the render functions.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This string is extracted in the `files_sharing` app so it needs to be accessed there and not on `files`.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Before this only app store apps got their screenshots proxied,
but this will cause locally installed apps to not be correctly shown on the app-store.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
If the value was a string, like a single group, then `json_decode` will also yield only a string.
So in this case we ensure the property is always an array with that value.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Problem: Is a node is renamed and the new name is out of the current
visible list of nodes the component will be recycled, this means
the props will change, so when the `onRename` functions is about to reset
the state the `this.source` will point to a different node.
To fix this, but also to separate business logic from visual representation,
the logic is moved into the renaming store and the component is only
responsible for rendering.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
* Resolves https://github.com/nextcloud/server/issues/47904
We need to make sure that we only add one source (unique!) once as a child,
this is ensured by simply use a native `Set`.
Also we need to remove children on from folders when the `files:node:deleted`
event is emitted.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This fixes transfering an email share from a user to another one when using
objectstore as primary storage.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
* Resolves: https://github.com/nextcloud/server/issues/48629
While the database supports NULL, the typing has always said it only returns *string*.
So to not break any apps that might trust the typings we should return `''` if the database is set to `NULL`.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
`GET` should be allowed even without Ajax header to allow downloading files,
or show files in the viewer. All other requests could be guarded, but this should not.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
* Use correct facebook icon provided by Meta
The legal terms require to exactly use the facebook logo as provided by Meta.
* Add correct X logo as provided by X Corp.
* Use social media icons from core rather than inline SVGs
* Make copy logic more resilient and use Typescript
* Add aria label to include the `X` in `X (formerly Twitter)` button.
* Use valid mastodon URL for sharing
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Currently there is a problem if an exception is thrown in `User::delete`,
because at that point the user is already removed from the backend,
but not all data is deleted.
There is no way to recover from this state, as the user is gone no information is available anymore.
This means the data is still available on the server but can not removed by any API anymore.
The solution here is to first set a flag and backup the user home,
this can be used to recover failed user deletions in a way the delete can be re-tried.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
When using Apache with `DirectorySlash` it will respond with 301 and the URL with trailing slash.
But when using traefik as the reverse proxy it can not rewrite redirects, this leads to the problem
that the Apache response is using HTTP in the redirect but the real server (traefik) is only listening on HTTPS.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This crash was mostly happening when using external storages and for example the command "occ memories:migrate-google-takeout"
Signed-off-by: Vincent FarZz <farcry69@live.fr>
Client.preventLocalAddress expects an absolute URL, which means the base_uri option cannot be used.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
SMB#getFileInfo used to throw an icewind/smb exception, but nowadays throws \OCP\Files\ForbiddenException. This fixes downstream methods to catch the new exception.
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
- check for token collisions and retry up to three times.
- throw after 3 attempts without finding a unique token.
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
This commit fixes the issue #47856. When you upload a file into a group folder and when you use a single S3 bucket as primary storage, the final move operation hangs for a long time. In the background, Nextcloud initiates a copy-delete sequence from the bucket into the bucket, with causes a lot unnecessary overhead. Nextcloud thinks that the file must be imported to another storage and does not recognize that everything is done on the same object bucket. In that case, the import step can be completely skipped, which saves time, network bandwidth and reduces the load on the object storage.
The behavior improves a lot with https://github.com/nextcloud/server/pull/46013. However, there are still some put messages that are being sent to the object storage when you use an object storage as primary storage and upload files into a group folder.
Co-authored-by: Kate <26026535+provokateurin@users.noreply.github.com>
Signed-off-by: Christoph Fiehe <c.fiehe@eurodata.de>
NC_ env variable overrides were not appearing in
the output of `occ config:list system` nor `occ
config:system:get xxx`. This was creating nearly
impossible to diagnose configuration/ behavior
disprepancies.
- Refactored readData() so that we aren't saving
the entire environment in the envCache anymore
(only those prefixed "NC_") and so that we save
NC_ provided config values under their real
key.
- Refactored getValue() to accommodate readData()
refactor
- Fixed getKeys() to properly return
envCache keys too
Environment provided config variables now appear
in `occ config:list system` as expected.
Environment provided config variables now appear
when queried via `occ config:system:get KEY`
envCache is now free of non-NC stuff.
Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
When the viewer or the sidebar is opened, we add the fileid to the route.
When both of them are closed, we do not remove the fileid from the route.
This means that, upon reload, the sidebar will be opened even though it was closed previously.
This PR ensure that the fileid is removed from the route when both the Sidebar and the Viewer are closed.
Signed-off-by: Louis Chemineau <louis@chmn.me>
We basically mock the way `URLGenerator::getAbsoluteURL` works,
so we must make sure that the URL might already contain the webroot.
Because `baseURL` and `cliURL` also contain the webroot we need to remove
the webroot from the URL first.
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Daniel <mail@danielkesselberg.de>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This avoids a PHP warning in the logs about trying to set the response
code while the output already started. It’s useless to try to print an
error page anyway in this situation because the connection was closed
already.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Previously even when the precondition did not match, the call "passed"
when the after value was the expected one. This however can lead to
race conditions, duplicate code excutions and other things.
Signed-off-by: Joas Schilling <coding@schilljs.com>
The `<?xml` tag is interpreted as PHP short tags, so this causes errors.
Instead just print that part of the template.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
For E2EE encrypted files, we abort the transfer.
For SSE encrypted files, we abort only if not using master key.
Also fixed the check for when the path to a single file is used.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
This is to prevent collision as we are sometime hashing user input, yet using that hash to target the background job in the database.
Signed-off-by: Louis Chemineau <louis@chmn.me>
1) The checks for well-known urls should always run against the root domain and therefore the option to remove the webroot.
2) For trusted domains, the available protocol is unknown, and thus some guesswork would be needed to make that work. I've decided for now to not consider them anymore to reduce false-positives.
Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
The row to add a new mount point is cloned when a new mountpoint is
added, so it is expected that it includes a status span. However, it
should not be displayed in that row, only in the cloned row when its
status is updated.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
When updating global storages and user storages a property is not
updated by "StoragesService::updateStorage()" if the value matches the
unmodified placeholder. However, userglobal storages are not updated
through the "StoragesService"; as only the authentication mechanism is
updated it is directly done with "saveBackendOptions()" in
"IUserProvided" or "UserGlobalAuth". Due to this the unmodified
placeholder value needs to be explicitly checked in those cases and
replaced by the actual value (note that in this case it is not possible
to just skip updating a specific property).
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
As the external storage uses the Nextcloud server itself the number of
workers of the PHP process running the Nextcloud server had to be
increased. Otherwise if a request is sent for the external storage while
handling a request from the integration tests a deadlock would occur.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
As a new storage is added by selecting a backend the selected backend
needs to be reset. Otherwise it is not possible to add another storage
with the same backend.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
If the status is updated but no explicit message is provided (for
example, if the status check succeeded) the default tooltip (from the
template) is now set to prevent a mismatch between the status and the
tooltip (for example, if the configuration is fixed after a failed
status check).
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When saving, updating and rechecking an storage fails (which is
different to the soft-fail when the action itself succeeds but the
status check does not) further details are provided in the error message
of the response, which is now set as the tooltip.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
When a storage is saved the status check can fail even if saving the
storage succeeds. In those cases further details are provided in the
status message of the storage, which is now set as the tooltip,
similarly to how it is done when rechecking the storage.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Setting a null status was supposed to remove the status check, but
nothing was changed in that case. Now the status check is properly
removed, and doing that by hiding the element rather than just turning
it invisible also prevents that clicking on the invisible status
triggers a check, as until the new configuration is saved the check will
still be performed with the old configuration, which could be misleading
for the user.
Additionally, an explicit width is set to the parent of the span element
to prevent its width from changing when the span is shown and hidden.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Userglobal storages are now automatically recheck when loaded, similarly
to how it is done for global storages.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
1. The "recent" accounts API only works for admin and delegated admin -> hide for group managers
2. Group managers can not create new groups -> Hide the UI to add a new group for them
3. Accounts created by group managers require one of the groups, which is managed by the group manager, assigned.
So if the group manager only manageres a single group, we should preselect that group.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The loading icon visually informs that the node is currently loading,
but there is no non-visual information (accessible information).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
TaskProcessing is transparent to textprocessing providers and TextProcessing can use Taskprocessing providers so these are unnecessary
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
taskprocessing is transparent to STT providers so specific STT settings are obsolete
Signed-off-by: Marcel Klehr <mklehr@gmx.net>
Signed-off-by: Julien Veyssier <julien-nc@posteo.net>
Renaming is basically copy + delete (a move), so no need to update permissions.
Especially if the node is in a invalid directory the node should be moveable but not editable.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
On firefox there is an old bug where when you move a dragged file outside
the window the `dragleave` event is never emitted.
So we just use a timeout to reset the drag over state.
Also a small change: Use the ID of the main container instead of relying on tag name and class.
(The ID is guranteed as other APIs rely on it, while the class is just used internally).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Previously if a server status got set to failure, it stayed that way
until an addressbook-sync found changes. Now the server status is set to
OK after each successful sync check (if that's not the case already),
regardless of addressbook changes.
This change also includes two new logging statements, which could help
next time someone debugs this.
Signed-off-by: Pablo Zimdahl <pablo@nextcloud.com>
* Resolves https://github.com/nextcloud/server/issues/34476
There is no maximum length defined in the standard,
most common the length is between 128 and 200 characters,
but as we store it not in plain data but base64 encoded the length can grow about 1/3.
We had a regression with 'Nitrokey 3' which created IDs with 196 byte length -> 262 bytes encoded base64.
So to be save we increase the size to 512 bytes.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This prevents jumping of that toggle button when the view is loading.
Also adjust the design for Nextcloud 30 (prevent jumping of breadcrumbs when loading due to increased height).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
When using iOS and focussing an input element the view should not be zoomed.
So if we set a maximum scale iOS will not auto-zoom but still allow users to zoom.
But we can not do this by default as this will disable user zoom on Chrome.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
There is no `title` attribute, so this causes an exception.
Instead sort by the "share with" displayname which will be the user or group the node is shared to.
Meaning this will also be the title of the share in the UI.
If this is not available or there are multiple for the same, then sort by the custom label.
If also this is not set sort by the creation time.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
[skip ci]
Require user verification if all tokens are registered
with UV flag, else discourage it
Signed-off-by: S1m <git@sgougeon.fr>
Signed-off-by: Richard Steinmetz <richard@steinmetz.cloud>
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Nodrošina Nextcloud žurnalizēšanas iespējas, piemēram, faila piekļuves žurnalizēšanu vai citas sensitīvas darbības."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Nodrošina Nextcloud žurnalizēšanas iespējas, piemēram, faila piekļuves žurnalizēšanu vai citas sensitīvas darbības."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Menyediakan kebolehan pengelogan untuk Nextcloud seperti akses fail log atau tindakan sensitif."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Menyediakan kebolehan pengelogan untuk Nextcloud seperti akses fail log atau tindakan sensitif."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Fornece funcionalidades de registo para o Nextcloud como registar acessos a ficheiros ou demais ações sensíveis. "
"Auditing / Logging":"Auditorias / registos",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Fornece funcionalidades de registo para o Nextcloud como registar acessos a ficheiros ou outras ações sensíveis. "
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Fornece funcionalidades de registo para o Nextcloud como registar acessos a ficheiros ou demais ações sensíveis. "
"Auditing / Logging":"Auditorias / registos",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Fornece funcionalidades de registo para o Nextcloud como registar acessos a ficheiros ou outras ações sensíveis. "
},"pluralForm":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Cung cấp khả năng ghi nhật ký cho Nextcloud, chẳng hạn như ghi nhật ký quyền truy cập tệp hoặc các hành động nhạy cảm khác."
"Auditing / Logging":"Kiểm tra / Nhật ký",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Cung cấp khả năng ghi nhật ký cho Nextcloud, chẳng hạn như ghi nhật ký quyền truy cập tệp hoặc các hành động nhạy cảm khác."
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Cung cấp khả năng ghi nhật ký cho Nextcloud, chẳng hạn như ghi nhật ký quyền truy cập tệp hoặc các hành động nhạy cảm khác."
"Auditing / Logging":"Kiểm tra / Nhật ký",
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions.":"Cung cấp khả năng ghi nhật ký cho Nextcloud, chẳng hạn như ghi nhật ký quyền truy cập tệp hoặc các hành động nhạy cảm khác."
"Enable clouds to communicate with each other and exchange data":"Gør det muligt for skyer at kommunikere med hinanden og udveksle data",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"Cloud Federation API gør det muligt for forskellige Nextcloud-instanser at kommunikere med hinanden og udveksle data."
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"Cloud sammenkoblings API gør det muligt for forskellige Nextcloud-instanser at kommunikere med hinanden og udveksle data."
"Enable clouds to communicate with each other and exchange data":"Gør det muligt for skyer at kommunikere med hinanden og udveksle data",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"Cloud Federation API gør det muligt for forskellige Nextcloud-instanser at kommunikere med hinanden og udveksle data."
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"Cloud sammenkoblings API gør det muligt for forskellige Nextcloud-instanser at kommunikere med hinanden og udveksle data."
"Cloud Federation API":"Ligeann API Comhdhéanta na Scamaill",
"Enable clouds to communicate with each other and exchange data":"Lig dóimhneacht a chur ar chumas na scamaill cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú.",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"Ligeann API Comhdhéanta na Scamaill do réimse éagsúil de chásanna Nextcloud cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú."
"Enable clouds to communicate with each other and exchange data":"Cumasaigh scamaill cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"Cuireann API Cloud Federation ar chumas cásanna éagsúla Nextcloud cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú."
"Cloud Federation API":"Ligeann API Comhdhéanta na Scamaill",
"Enable clouds to communicate with each other and exchange data":"Lig dóimhneacht a chur ar chumas na scamaill cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú.",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"Ligeann API Comhdhéanta na Scamaill do réimse éagsúil de chásanna Nextcloud cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú."
"Enable clouds to communicate with each other and exchange data":"Cumasaigh scamaill cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"Cuireann API Cloud Federation ar chumas cásanna éagsúla Nextcloud cumarsáid a dhéanamh lena chéile agus sonraí a mhalartú."
"Enable clouds to communicate with each other and exchange data":"بۇلۇتلارنىڭ ئۆز-ئارا ئالاقە قىلىشى ۋە سانلىق مەلۇمات ئالماشتۇرۇشىنى قوزغىتىڭ",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"بۇلۇت فېدېراتسىيەسى API ھەر خىل Nextcloud مىساللىرىنى ئۆز-ئارا ئالاقە قىلىش ۋە سانلىق مەلۇمات ئالماشتۇرۇش ئىمكانىيىتىگە ئىگە قىلىدۇ."
"Enable clouds to communicate with each other and exchange data":"بۇلۇتلارنىڭ ئۆز-ئارا ئالاقە قىلىشى ۋە سانلىق مەلۇمات ئالماشتۇرۇشىنى قوزغىتىڭ",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"بۇلۇت فېدېراتسىيەسى API ھەر خىل Nextcloud مىساللىرىنى ئۆز-ئارا ئالاقە قىلىش ۋە سانلىق مەلۇمات ئالماشتۇرۇش ئىمكانىيىتىگە ئىگە قىلىدۇ."
"Enable clouds to communicate with each other and exchange data":"讓雲端可互相通訊並交換資料",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"雲端聯盟 API 讓多個 Nextcloud 站台可以互相通訊並交換資料。"
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"雲端聯邦 API 能讓多個 Nextcloud 實體之間,可以互相通訊並交換資料。"
"Enable clouds to communicate with each other and exchange data":"讓雲端可互相通訊並交換資料",
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"雲端聯盟 API 讓多個 Nextcloud 站台可以互相通訊並交換資料。"
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data.":"雲端聯邦 API 能讓多個 Nextcloud 實體之間,可以互相通訊並交換資料。"
"@ for mentions, : for emoji, / for smart picker":"@ للإشارات، : للإيموجي، / للاقط الذكي",
"@ for mentions, : for emoji, / for smart picker":"@ للإشارات : للإيموجي / للاقط الذكي",
"Could not reload comments":"تعذّرت إعادة تحميل التعليقات",
"No comments yet, start the conversation!":"لا توجد تعليقات, ابدأ النقاش الآن!",
"No more messages":"لامزيد من الرسائل",
"Retry":"أعد المحاولة",
"Failed to mark comments as read":"إخفاق في تعيين ملاحظات كمقرؤة",
"Failed to mark comments as read":"فشل في تعيين ملاحظات كمقرؤة",
"Unable to load the comments list":"تعذر تحميل قائمة التعليقات",
"_1 new comment_::_{unread} new comments_":["1 تعليق جديد","1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
"Comment":"تعليق",
"An error occurred while trying to edit the comment":"حدث خطأ أثناء محاولة تعديل التعليق",
"Comment deleted":"التعليق محذوف",
"An error occurred while trying to delete the comment":"حدث خطأ أثناء محاولة حذف التعليق",
"An error occurred while trying to create the comment":"حدث خطأ أثناء محاولة إنشاء التعليق",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها",
"Write a message …":"أكتُب رسالةً ...",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" للإشارات, \":\" للإيموجي, \"/\" للاقط الذكي",
"_%n unread comment_::_%n unread comments_":["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"]
"An error occurred while trying to create the comment":"حدث خطأ أثناء محاولة إنشاء التعليق"
"@ for mentions, : for emoji, / for smart picker":"@ للإشارات، : للإيموجي، / للاقط الذكي",
"@ for mentions, : for emoji, / for smart picker":"@ للإشارات : للإيموجي / للاقط الذكي",
"Could not reload comments":"تعذّرت إعادة تحميل التعليقات",
"No comments yet, start the conversation!":"لا توجد تعليقات, ابدأ النقاش الآن!",
"No more messages":"لامزيد من الرسائل",
"Retry":"أعد المحاولة",
"Failed to mark comments as read":"إخفاق في تعيين ملاحظات كمقرؤة",
"Failed to mark comments as read":"فشل في تعيين ملاحظات كمقرؤة",
"Unable to load the comments list":"تعذر تحميل قائمة التعليقات",
"_1 new comment_::_{unread} new comments_":["1 تعليق جديد","1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
"Comment":"تعليق",
"An error occurred while trying to edit the comment":"حدث خطأ أثناء محاولة تعديل التعليق",
"Comment deleted":"التعليق محذوف",
"An error occurred while trying to delete the comment":"حدث خطأ أثناء محاولة حذف التعليق",
"An error occurred while trying to create the comment":"حدث خطأ أثناء محاولة إنشاء التعليق",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها",
"Write a message …":"أكتُب رسالةً ...",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" للإشارات, \":\" للإيموجي, \"/\" للاقط الذكي",
"_%n unread comment_::_%n unread comments_":["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"]
"An error occurred while trying to create the comment":"حدث خطأ أثناء محاولة إنشاء التعليق"
"An error occurred while trying to edit the comment":"Prodúxose un error mentanto se tentaba d'editar el comentariu",
"Comment deleted":"Desanicióse'l comentariu",
"An error occurred while trying to delete the comment":"Prodúxose un error mentanto se tentaba de desaniciar el comentariu",
"An error occurred while trying to create the comment":"Prodúxose un error mentanto se tentaba de crear el comentariu",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Un usuariu que ta desaniciáu mentóte nun comentariu de: {file}",
"Write a message …":"Escribi un mensaxe…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"«@» pa mentar, «.» p'amestar un fustaxe, «/» pa usar el selector intelixente",
"_%n unread comment_::_%n unread comments_":["%n comentariu ensin lleer","%n comentarios ensin lleer"]
"An error occurred while trying to create the comment":"Prodúxose un error mentanto se tentaba de crear el comentariu"
"An error occurred while trying to edit the comment":"Prodúxose un error mentanto se tentaba d'editar el comentariu",
"Comment deleted":"Desanicióse'l comentariu",
"An error occurred while trying to delete the comment":"Prodúxose un error mentanto se tentaba de desaniciar el comentariu",
"An error occurred while trying to create the comment":"Prodúxose un error mentanto se tentaba de crear el comentariu",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Un usuariu que ta desaniciáu mentóte nun comentariu de: {file}",
"Write a message …":"Escribi un mensaxe…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"«@» pa mentar, «.» p'amestar un fustaxe, «/» pa usar el selector intelixente",
"_%n unread comment_::_%n unread comments_":["%n comentariu ensin lleer","%n comentarios ensin lleer"]
"An error occurred while trying to create the comment":"Prodúxose un error mentanto se tentaba de crear el comentariu"
"An error occurred while trying to edit the comment":"Възникна грешка при опит за редактиране на коментара",
"Comment deleted":" Изтрит е коментар",
"An error occurred while trying to delete the comment":"Възникна грешка при опит за изтриване на коментара",
"An error occurred while trying to create the comment":"Възникна грешка при опит за създаване на коментар",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
"An error occurred while trying to edit the comment":"Възникна грешка при опит за редактиране на коментара",
"Comment deleted":" Изтрит е коментар",
"An error occurred while trying to delete the comment":"Възникна грешка при опит за изтриване на коментара",
"An error occurred while trying to create the comment":"Възникна грешка при опит за създаване на коментар",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит",
"An error occurred while trying to edit the comment":"S'ha produït un error en intentar editar el comentari",
"Comment deleted":"S'ha suprimit el comentari",
"An error occurred while trying to delete the comment":"S'ha produït un error en intentar suprimir el comentari",
"An error occurred while trying to create the comment":"S'ha produït un error en intentar crear el comentari",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit",
"Write a message …":"Escriviu un missatge…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"«@» per a mencions, «:» per a emojis, «/» per al selector intel·ligent",
"_%n unread comment_::_%n unread comments_":["%n comentari sense llegir","%n comentaris sense llegir"]
"An error occurred while trying to create the comment":"S'ha produït un error en intentar crear el comentari"
"An error occurred while trying to edit the comment":"S'ha produït un error en intentar editar el comentari",
"Comment deleted":"S'ha suprimit el comentari",
"An error occurred while trying to delete the comment":"S'ha produït un error en intentar suprimir el comentari",
"An error occurred while trying to create the comment":"S'ha produït un error en intentar crear el comentari",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Se us ha esmentat a «{file}» en un comentari d'un usuari que s'ha suprimit",
"Write a message …":"Escriviu un missatge…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"«@» per a mencions, «:» per a emojis, «/» per al selector intel·ligent",
"_%n unread comment_::_%n unread comments_":["%n comentari sense llegir","%n comentaris sense llegir"]
"An error occurred while trying to create the comment":"S'ha produït un error en intentar crear el comentari"
"{author} commented on {file}":"{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files":"<strong>Komentáře</strong> k souborům",
"Files":"Soubory",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted":"Byli jste zmíněni u souboru „{file}“, v komentáři od účtu, který byl později smazán",
"{user} mentioned you in a comment on \"{file}\"":"{user} vás zmínil(a) v komentáři u „{file}“",
"Files app plugin to add comments to files":"Zásuvný modul do aplikace Soubory pro přidávání komentářů k souborům",
"Edit comment":"Upravit komentář",
@@ -30,9 +31,6 @@ OC.L10N.register(
"An error occurred while trying to edit the comment":"Došlo k chybě při pokusu o úpravu komentáře",
"Comment deleted":"Komentář smazán",
"An error occurred while trying to delete the comment":"Došlo k chybě při pokusu o smazání komentáře",
"An error occurred while trying to create the comment":"Došlo k chybě při pokusu o vytvoření komentáře",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"„@“ pro zmínění, „:“ pro emotikony, „/“ pro inteligentní výběr",
"{author} commented on {file}":"{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files":"<strong>Komentáře</strong> k souborům",
"Files":"Soubory",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted":"Byli jste zmíněni u souboru „{file}“, v komentáři od účtu, který byl později smazán",
"{user} mentioned you in a comment on \"{file}\"":"{user} vás zmínil(a) v komentáři u „{file}“",
"Files app plugin to add comments to files":"Zásuvný modul do aplikace Soubory pro přidávání komentářů k souborům",
"Edit comment":"Upravit komentář",
@@ -28,9 +29,6 @@
"An error occurred while trying to edit the comment":"Došlo k chybě při pokusu o úpravu komentáře",
"Comment deleted":"Komentář smazán",
"An error occurred while trying to delete the comment":"Došlo k chybě při pokusu o smazání komentáře",
"An error occurred while trying to create the comment":"Došlo k chybě při pokusu o vytvoření komentáře",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Byli jste zmíněni u souboru „{file}“, v komentáři od uživatele, který byl později smazán",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"„@“ pro zmínění, „:“ pro emotikony, „/“ pro inteligentní výběr",
"An error occurred while trying to edit the comment":"Der opstod en fejl under forsøget på at redigere kommentaren",
"Comment deleted":"Kommentar slettet",
"An error occurred while trying to delete the comment":"Der opstod en fejl under forsøget på at slette kommentaren",
"An error occurred while trying to create the comment":"Der opstod en fejl under forsøget på at oprette kommentaren",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet",
"Write a message …":"Skriv en besked…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" for at nævne, \":\" for emojis, \"/\" for Smart Vælger",
"An error occurred while trying to edit the comment":"Der opstod en fejl under forsøget på at redigere kommentaren",
"Comment deleted":"Kommentar slettet",
"An error occurred while trying to delete the comment":"Der opstod en fejl under forsøget på at slette kommentaren",
"An error occurred while trying to create the comment":"Der opstod en fejl under forsøget på at oprette kommentaren",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Du blev nævnt på \"{file}\", i en kommentar af en bruger, som siden er blevet slettet",
"Write a message …":"Skriv en besked…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" for at nævne, \":\" for emojis, \"/\" for Smart Vælger",
"An error occurred while trying to edit the comment":"Es ist ein Fehler beim Bearbeiten des Kommentars aufgetreten",
"Comment deleted":"Kommentar gelöscht",
"An error occurred while trying to delete the comment":"Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment":"Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"Write a message …":"Eine Nachricht schreiben …",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" für Erwähnungen, \":\" für Emoji, \"/\" für Smart Picker",
"An error occurred while trying to edit the comment":"Es ist ein Fehler beim Bearbeiten des Kommentars aufgetreten",
"Comment deleted":"Kommentar gelöscht",
"An error occurred while trying to delete the comment":"Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment":"Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"Write a message …":"Eine Nachricht schreiben …",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" für Erwähnungen, \":\" für Emoji, \"/\" für Smart Picker",
"An error occurred while trying to edit the comment":"Es ist ein Fehler beim Bearbeiten des Kommentars aufgetreten",
"Comment deleted":"Kommentar gelöscht",
"An error occurred while trying to delete the comment":"Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment":"Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"Write a message …":"Eine Nachricht schreiben …",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" für Erwähnungen, \":\" für Emoji, \"/\" für Smart Picker",
"An error occurred while trying to edit the comment":"Es ist ein Fehler beim Bearbeiten des Kommentars aufgetreten",
"Comment deleted":"Kommentar gelöscht",
"An error occurred while trying to delete the comment":"Es ist ein Fehler beim Löschen des Kommentars aufgetreten",
"An error occurred while trying to create the comment":"Es ist ein Fehler beim Erstellen des Kommentars aufgetreten",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Benutzer erwähnt",
"Write a message …":"Eine Nachricht schreiben …",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" für Erwähnungen, \":\" für Emoji, \"/\" für Smart Picker",
"An error occurred while trying to edit the comment":"Παρουσιάστηκε σφάλμα κατά την προσπάθεια επεξεργασίας του σχολίου",
"Comment deleted":"Το σχόλιο διαγράφηκε",
"An error occurred while trying to delete the comment":"Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής του σχολίου",
"An error occurred while trying to create the comment":"Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
"An error occurred while trying to edit the comment":"Παρουσιάστηκε σφάλμα κατά την προσπάθεια επεξεργασίας του σχολίου",
"Comment deleted":"Το σχόλιο διαγράφηκε",
"An error occurred while trying to delete the comment":"Παρουσιάστηκε σφάλμα κατά την προσπάθεια διαγραφής του σχολίου",
"An error occurred while trying to create the comment":"Παρουσιάστηκε σφάλμα κατά την προσπάθεια δημιουργίας του σχολίου",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
"An error occurred while trying to edit the comment":"An error occurred while trying to edit the comment",
"Comment deleted":"Comment deleted",
"An error occurred while trying to delete the comment":"An error occurred while trying to delete the comment",
"An error occurred while trying to create the comment":"An error occurred while trying to create the comment",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
"Write a message …":"Write a message …",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker",
"An error occurred while trying to edit the comment":"An error occurred while trying to edit the comment",
"Comment deleted":"Comment deleted",
"An error occurred while trying to delete the comment":"An error occurred while trying to delete the comment",
"An error occurred while trying to create the comment":"An error occurred while trying to create the comment",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
"Write a message …":"Write a message …",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker",
"An error occurred while trying to edit the comment":"Ocurrió un error intentando editar el comentario",
"Comment deleted":"Comentario borrado",
"An error occurred while trying to delete the comment":"Ocurrió un error intentando borrar el comentario",
"An error occurred while trying to create the comment":"Ocurrió un error intentando crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Le han mencionado en \"{file}\", en un comentario de un usuario que ha sido eliminado desde entonces",
"Write a message …":"Escribir un mensaje …",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" para menciones, \":\" para emojis, \"/\" para selector inteligente",
"_%n unread comment_::_%n unread comments_":["%n comentario sin leer","%n comentarios no leídos","%n comentarios no leídos"]
"An error occurred while trying to create the comment":"Ocurrió un error intentando crear el comentario"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
"An error occurred while trying to edit the comment":"Ocurrió un error intentando editar el comentario",
"Comment deleted":"Comentario borrado",
"An error occurred while trying to delete the comment":"Ocurrió un error intentando borrar el comentario",
"An error occurred while trying to create the comment":"Ocurrió un error intentando crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Le han mencionado en \"{file}\", en un comentario de un usuario que ha sido eliminado desde entonces",
"Write a message …":"Escribir un mensaje …",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" para menciones, \":\" para emojis, \"/\" para selector inteligente",
"_%n unread comment_::_%n unread comments_":["%n comentario sin leer","%n comentarios no leídos","%n comentarios no leídos"]
"An error occurred while trying to create the comment":"Ocurrió un error intentando crear el comentario"
},"pluralForm":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
"An error occurred while trying to edit the comment":"Ocurrió un error al intentar editar el comentario",
"Comment deleted":"Comentario eliminado",
"An error occurred while trying to delete the comment":"Ocurrió un error al intentar eliminar el comentario",
"An error occurred while trying to create the comment":"Ocurrió un error al intentar crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Fuiste mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
"An error occurred while trying to create the comment":"Ocurrió un error al intentar crear el comentario"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
"An error occurred while trying to edit the comment":"Ocurrió un error al intentar editar el comentario",
"Comment deleted":"Comentario eliminado",
"An error occurred while trying to delete the comment":"Ocurrió un error al intentar eliminar el comentario",
"An error occurred while trying to create the comment":"Ocurrió un error al intentar crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Fuiste mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
"An error occurred while trying to create the comment":"Ocurrió un error al intentar crear el comentario"
},"pluralForm":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
"An error occurred while trying to edit the comment":"Ocurrió un error al intentar editar el comentario",
"Comment deleted":"Comentario borrado",
"An error occurred while trying to delete the comment":"Ocurrió un error intentando borrar el comentario",
"An error occurred while trying to create the comment":"Ocurrió un error al intentar crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
"Write a message …":"Escriba un mensaje …",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" para menciones, \":\" para emoticonos, \"/\" para selector inteligente",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
"An error occurred while trying to create the comment":"Ocurrió un error al intentar crear el comentario"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
"An error occurred while trying to edit the comment":"Ocurrió un error al intentar editar el comentario",
"Comment deleted":"Comentario borrado",
"An error occurred while trying to delete the comment":"Ocurrió un error intentando borrar el comentario",
"An error occurred while trying to create the comment":"Ocurrió un error al intentar crear el comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Fue mencionado en \"{file}\", en un comentario realizado por un usuario que ha sido eliminado",
"Write a message …":"Escriba un mensaje …",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" para menciones, \":\" para emoticonos, \"/\" para selector inteligente",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer","%n comentarios sin leer"]
"An error occurred while trying to create the comment":"Ocurrió un error al intentar crear el comentario"
},"pluralForm":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
"%1$s commented on %2$s":"%1$s kommenteeris %2$s",
"{author} commented on {file}":"{author} kommenteeris faili {file}",
"<strong>Comments</strong> for files":"<strong>Kommentaarid</strong> failidele",
"Files":"Failid",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted":"Sind mainiti \"{file}\" kommentaarides konto poolt, mis on nüüdseks kustutatud",
"{user} mentioned you in a comment on \"{file}\"":"{user} mainis sind faili \"{file}\" kommentaaris",
"Files app plugin to add comments to files":"Failid rakenduse laiendus failidele kommentaaride lisamiseks",
"Edit comment":"Muuda kommentaari",
"Delete comment":"Kustuta kommentaar",
"Cancel edit":"Loobu muutmisest",
"New comment":"Uus kommentaar",
"Write a comment …":"Kirjuta kommentaar...",
"Post comment":"Postita kommentaar",
"@ for mentions, : for emoji, / for smart picker":"@ mainimiseks, : emojide jaoks, / nutika valija jaoks",
"Could not reload comments":"Ei saanud kommentaare uuesti laadida",
"No comments yet, start the conversation!":"Kommentaare veel pole, alusta vestlust!",
"No more messages":"Rohkem teateid pole",
"Retry":"Proovi uuesti",
@@ -25,8 +31,6 @@ OC.L10N.register(
"An error occurred while trying to edit the comment":"Kommentaari muutmisel tekkis tõrge",
"Comment deleted":"Kommentaar kustutatud",
"An error occurred while trying to delete the comment":"Kommentaari kustutamisel tekkis tõrge",
"An error occurred while trying to create the comment":"Kommentaari lisamisel tekkis tõrge",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Sind mainis faili \"{file}\" kommentaaris kasutaja, kes on praeguseks kustutatud.",
"%1$s commented on %2$s":"%1$s kommenteeris %2$s",
"{author} commented on {file}":"{author} kommenteeris faili {file}",
"<strong>Comments</strong> for files":"<strong>Kommentaarid</strong> failidele",
"Files":"Failid",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted":"Sind mainiti \"{file}\" kommentaarides konto poolt, mis on nüüdseks kustutatud",
"{user} mentioned you in a comment on \"{file}\"":"{user} mainis sind faili \"{file}\" kommentaaris",
"Files app plugin to add comments to files":"Failid rakenduse laiendus failidele kommentaaride lisamiseks",
"Edit comment":"Muuda kommentaari",
"Delete comment":"Kustuta kommentaar",
"Cancel edit":"Loobu muutmisest",
"New comment":"Uus kommentaar",
"Write a comment …":"Kirjuta kommentaar...",
"Post comment":"Postita kommentaar",
"@ for mentions, : for emoji, / for smart picker":"@ mainimiseks, : emojide jaoks, / nutika valija jaoks",
"Could not reload comments":"Ei saanud kommentaare uuesti laadida",
"No comments yet, start the conversation!":"Kommentaare veel pole, alusta vestlust!",
"No more messages":"Rohkem teateid pole",
"Retry":"Proovi uuesti",
@@ -23,8 +29,6 @@
"An error occurred while trying to edit the comment":"Kommentaari muutmisel tekkis tõrge",
"Comment deleted":"Kommentaar kustutatud",
"An error occurred while trying to delete the comment":"Kommentaari kustutamisel tekkis tõrge",
"An error occurred while trying to create the comment":"Kommentaari lisamisel tekkis tõrge",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Sind mainis faili \"{file}\" kommentaaris kasutaja, kes on praeguseks kustutatud.",
"An error occurred while trying to edit the comment":"Errorea gertatu da iruzkina editatzen saiatzean",
"Comment deleted":"Iruzkina ezabatu da",
"An error occurred while trying to delete the comment":"Errorea gertatu da iruzkina ezabatzen saiatzean",
"An error occurred while trying to create the comment":"Errorea gertatu da iruzkina sortzen saiatzean",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"\"{file}\"-n aipatu zaituzte, dagoeneko ezabatu den erabiltzaile baten iruzkin batean",
"Write a message …":"Idatzi mezu bat ...",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" aipamenetarako, \":\" emojientzako, \"/\" hautatzaile adimentsurako",
"An error occurred while trying to edit the comment":"Errorea gertatu da iruzkina editatzen saiatzean",
"Comment deleted":"Iruzkina ezabatu da",
"An error occurred while trying to delete the comment":"Errorea gertatu da iruzkina ezabatzen saiatzean",
"An error occurred while trying to create the comment":"Errorea gertatu da iruzkina sortzen saiatzean",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"\"{file}\"-n aipatu zaituzte, dagoeneko ezabatu den erabiltzaile baten iruzkin batean",
"Write a message …":"Idatzi mezu bat ...",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" aipamenetarako, \":\" emojientzako, \"/\" hautatzaile adimentsurako",
"You commented on {file}":"You commented on {file}",
"%1$s commented on %2$s":"%1$s commented on %2$s",
"{author} commented on {file}":"{author} commented on {file}",
"<strong>Comments</strong> for files":"<strong>Comments</strong> for files",
"You commented":"دیدگاه شما",
"{author} commented":"{author} دیدگاهی گذاشت",
"You commented on %1$s":"دیدگاهی برای %1$s ثبت کردید",
"You commented on {file}":"دیدگاهی برای {file} ثبت کردید",
"%1$s commented on %2$s":"%1$s دیدگاهی برای %2$s ثبت کرد",
"{author} commented on {file}":"{author} دیدگاهی برای {file} ثبت کرد",
"<strong>Comments</strong> for files":"<strong>دیدگاههای</strong> زیر پروندهها ",
"Files":"پروندهها",
"{user} mentioned you in a comment on \"{file}\"":"{user} mentioned you in a comment on \"{file}\"",
"Files app plugin to add comments to files":"Files app plugin to add comments to files",
"Edit comment":"ویرایش توضیح",
"Delete comment":"حذف توضیح",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted":"شما در «{file}» و در دیدگاهی که توسط حسابی که بعدتر پاک شده است مورد اشاره قرار گرفتهاید",
"{user} mentioned you in a comment on \"{file}\"":"{user} در دیدگاهش زیر «{file}» به شما اشاره کرد",
"Files app plugin to add comments to files":"افزونهٔ برنامهٔ Files برای افزودن دیدگاه به پروندهها",
"Edit comment":"ویرایش دیدگاه",
"Delete comment":"حذف دیدگاه",
"Cancel edit":"Cancel edit",
"Post comment":"Post comment",
"New comment":"دیدگاه جدید",
"Write a comment …":"دیدگاهی بنویسید...",
"Post comment":"فرستادن دیدگاه",
"@ for mentions, : for emoji, / for smart picker":"@ برای اشاره، : برای شکلک، / برای انتخابگر هوشمند",
"Could not reload comments":"ناتوانی در دریافت دیدگاهها",
"No comments yet, start the conversation!":"هنوز هیچ نظری ندارید ، مکالمه را شروع کنید!",
"No more messages":"No more messages",
"Retry":"تلاش دوباره",
"Failed to mark comments as read":"Failed to mark comments as read",
"Unable to load the comments list":"Unable to load the comments list",
"_1 new comment_::_{unread} new comments_":["1 new comment","{unread} new comments"],
"Failed to mark comments as read":"ناتوانی در علامت زدن دیدگاههای به عنوان خوانده شده",
"Unable to load the comments list":"ناتوانی در دریافت فهرست دیدگاهها",
"_1 new comment_::_{unread} new comments_":["1 new comment","{unread} دیدگاه جدید"],
"Comment":"نظر",
"An error occurred while trying to edit the comment":"An error occurred while trying to edit the comment",
"Comment deleted":"توضیح حذف",
"An error occurred while trying to delete the comment":"An error occurred while trying to delete the comment",
"An error occurred while trying to create the comment":"An error occurred while trying to create the comment",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
"You commented on {file}":"You commented on {file}",
"%1$s commented on %2$s":"%1$s commented on %2$s",
"{author} commented on {file}":"{author} commented on {file}",
"<strong>Comments</strong> for files":"<strong>Comments</strong> for files",
"You commented":"دیدگاه شما",
"{author} commented":"{author} دیدگاهی گذاشت",
"You commented on %1$s":"دیدگاهی برای %1$s ثبت کردید",
"You commented on {file}":"دیدگاهی برای {file} ثبت کردید",
"%1$s commented on %2$s":"%1$s دیدگاهی برای %2$s ثبت کرد",
"{author} commented on {file}":"{author} دیدگاهی برای {file} ثبت کرد",
"<strong>Comments</strong> for files":"<strong>دیدگاههای</strong> زیر پروندهها ",
"Files":"پروندهها",
"{user} mentioned you in a comment on \"{file}\"":"{user} mentioned you in a comment on \"{file}\"",
"Files app plugin to add comments to files":"Files app plugin to add comments to files",
"Edit comment":"ویرایش توضیح",
"Delete comment":"حذف توضیح",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted":"شما در «{file}» و در دیدگاهی که توسط حسابی که بعدتر پاک شده است مورد اشاره قرار گرفتهاید",
"{user} mentioned you in a comment on \"{file}\"":"{user} در دیدگاهش زیر «{file}» به شما اشاره کرد",
"Files app plugin to add comments to files":"افزونهٔ برنامهٔ Files برای افزودن دیدگاه به پروندهها",
"Edit comment":"ویرایش دیدگاه",
"Delete comment":"حذف دیدگاه",
"Cancel edit":"Cancel edit",
"Post comment":"Post comment",
"New comment":"دیدگاه جدید",
"Write a comment …":"دیدگاهی بنویسید...",
"Post comment":"فرستادن دیدگاه",
"@ for mentions, : for emoji, / for smart picker":"@ برای اشاره، : برای شکلک، / برای انتخابگر هوشمند",
"Could not reload comments":"ناتوانی در دریافت دیدگاهها",
"No comments yet, start the conversation!":"هنوز هیچ نظری ندارید ، مکالمه را شروع کنید!",
"No more messages":"No more messages",
"Retry":"تلاش دوباره",
"Failed to mark comments as read":"Failed to mark comments as read",
"Unable to load the comments list":"Unable to load the comments list",
"_1 new comment_::_{unread} new comments_":["1 new comment","{unread} new comments"],
"Failed to mark comments as read":"ناتوانی در علامت زدن دیدگاههای به عنوان خوانده شده",
"Unable to load the comments list":"ناتوانی در دریافت فهرست دیدگاهها",
"_1 new comment_::_{unread} new comments_":["1 new comment","{unread} دیدگاه جدید"],
"Comment":"نظر",
"An error occurred while trying to edit the comment":"An error occurred while trying to edit the comment",
"Comment deleted":"توضیح حذف",
"An error occurred while trying to delete the comment":"An error occurred while trying to delete the comment",
"An error occurred while trying to create the comment":"An error occurred while trying to create the comment",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"You were mentioned on \"{file}\", in a comment by a user that has since been deleted",
"An error occurred while trying to edit the comment":"Une erreur s'est produite lors de la tentative de modification du commentaire",
"Comment deleted":"Commentaire supprimé",
"An error occurred while trying to delete the comment":"Une erreur s'est produite lors de la tentative de suppression du commentaire",
"An error occurred while trying to create the comment":"Une erreur s'est produite lors de la tentative de création du commentaire",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Vous avez été mentionné sur « {file} », dans un commentaire par un utilisateur qui depuis a été supprimé",
"Write a message …":"Écrivez un message…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"« @ » pour les mentions, « : »pour les émojis, « / » pour le sélecteur intelligent",
"_%n unread comment_::_%n unread comments_":["%n commentaire non lu","%n commentaires non lus","%n commentaires non lus"]
"An error occurred while trying to create the comment":"Une erreur s'est produite lors de la tentative de création du commentaire"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
"An error occurred while trying to edit the comment":"Une erreur s'est produite lors de la tentative de modification du commentaire",
"Comment deleted":"Commentaire supprimé",
"An error occurred while trying to delete the comment":"Une erreur s'est produite lors de la tentative de suppression du commentaire",
"An error occurred while trying to create the comment":"Une erreur s'est produite lors de la tentative de création du commentaire",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Vous avez été mentionné sur « {file} », dans un commentaire par un utilisateur qui depuis a été supprimé",
"Write a message …":"Écrivez un message…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"« @ » pour les mentions, « : »pour les émojis, « / » pour le sélecteur intelligent",
"_%n unread comment_::_%n unread comments_":["%n commentaire non lu","%n commentaires non lus","%n commentaires non lus"]
"An error occurred while trying to create the comment":"Une erreur s'est produite lors de la tentative de création du commentaire"
},"pluralForm":"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
"<strong>Comments</strong> for files":"<strong>Tuairimí</strong> le haghaidh comhaid",
"Files":"Comhaid",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted":"Luadh thú ar \"{file}\", i nóta tráchta ó chuntas a scriosadh ó shin",
"{user} mentioned you in a comment on \"{file}\"":"Luaigh {úsáideoir} tú i nóta tráchta ar \"{file}\"",
"{user} mentioned you in a comment on \"{file}\"":"Luaigh {user} tú i nóta tráchta ar \"{file}\"",
"Files app plugin to add comments to files":"Breiseán aip Comhaid chun tuairimí a chur le comhaid",
"Edit comment":"Cuir trácht in eagar",
"Delete comment":"Scrios nóta tráchta",
@@ -31,10 +31,6 @@ OC.L10N.register(
"An error occurred while trying to edit the comment":"Tharla earráid agus an nóta tráchta á chur in eagar",
"Comment deleted":"Trácht scriosta",
"An error occurred while trying to delete the comment":"Tharla earráid agus an nóta tráchta á scriosadh",
"An error occurred while trying to create the comment":"Tharla earráid agus an nóta tráchta á chruthú",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Luadh thú ar \"{file}\", i nóta tráchta ó úsáideoir atá scriosta ó shin",
"Write a message …":"Scríobh teachtaireacht…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" le haghaidh tagairtí, \":\" le haghaidh emoji, \"/\" don roghnóir cliste",
"<strong>Comments</strong> for files":"<strong>Tuairimí</strong> le haghaidh comhaid",
"Files":"Comhaid",
"You were mentioned on \"{file}\", in a comment by an account that has since been deleted":"Luadh thú ar \"{file}\", i nóta tráchta ó chuntas a scriosadh ó shin",
"{user} mentioned you in a comment on \"{file}\"":"Luaigh {úsáideoir} tú i nóta tráchta ar \"{file}\"",
"{user} mentioned you in a comment on \"{file}\"":"Luaigh {user} tú i nóta tráchta ar \"{file}\"",
"Files app plugin to add comments to files":"Breiseán aip Comhaid chun tuairimí a chur le comhaid",
"Edit comment":"Cuir trácht in eagar",
"Delete comment":"Scrios nóta tráchta",
@@ -29,10 +29,6 @@
"An error occurred while trying to edit the comment":"Tharla earráid agus an nóta tráchta á chur in eagar",
"Comment deleted":"Trácht scriosta",
"An error occurred while trying to delete the comment":"Tharla earráid agus an nóta tráchta á scriosadh",
"An error occurred while trying to create the comment":"Tharla earráid agus an nóta tráchta á chruthú",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Luadh thú ar \"{file}\", i nóta tráchta ó úsáideoir atá scriosta ó shin",
"Write a message …":"Scríobh teachtaireacht…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"\"@\" le haghaidh tagairtí, \":\" le haghaidh emoji, \"/\" don roghnóir cliste",
"Could not reload comments":"Non foi posíbel volver cargar os comentarios",
"No comments yet, start the conversation!":"Aínda non hai comentarios, comeza a conversa!",
"No more messages":"Non hai máis mensaxes",
"Retry":"Tentar de novo",
"Retry":"Volver tentar",
"Failed to mark comments as read":"Produciuse un fallo ao marcar os comentarios como lidos",
"Unable to load the comments list":"Non é posíbel cargar a lista de comentarios",
"_1 new comment_::_{unread} new comments_":["1 comentario novo","{unread} comentarios novos"],
@@ -31,10 +31,6 @@ OC.L10N.register(
"An error occurred while trying to edit the comment":"Produciuse un erro cando tentaba editar o comentario",
"Comment deleted":"Comentario eliminado",
"An error occurred while trying to delete the comment":"Produciuse un erro cando tentaba eliminar o comentario",
"An error occurred while trying to create the comment":"Produciuse un erro cando tentaba crear o comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Mencionárono en «{file}», nun comentario dun usuario que xa foi eliminado",
"Write a message …":"Escriba unha mensaxe…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"«@» para mencións, «:» para «emoji», «/» para selector intelixente",
"_%n unread comment_::_%n unread comments_":["%n comentario sen ler","%n comentarios sen ler"]
"An error occurred while trying to create the comment":"Produciuse un erro cando tentaba crear o comentario"
"Could not reload comments":"Non foi posíbel volver cargar os comentarios",
"No comments yet, start the conversation!":"Aínda non hai comentarios, comeza a conversa!",
"No more messages":"Non hai máis mensaxes",
"Retry":"Tentar de novo",
"Retry":"Volver tentar",
"Failed to mark comments as read":"Produciuse un fallo ao marcar os comentarios como lidos",
"Unable to load the comments list":"Non é posíbel cargar a lista de comentarios",
"_1 new comment_::_{unread} new comments_":["1 comentario novo","{unread} comentarios novos"],
@@ -29,10 +29,6 @@
"An error occurred while trying to edit the comment":"Produciuse un erro cando tentaba editar o comentario",
"Comment deleted":"Comentario eliminado",
"An error occurred while trying to delete the comment":"Produciuse un erro cando tentaba eliminar o comentario",
"An error occurred while trying to create the comment":"Produciuse un erro cando tentaba crear o comentario",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Mencionárono en «{file}», nun comentario dun usuario que xa foi eliminado",
"Write a message …":"Escriba unha mensaxe…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"«@» para mencións, «:» para «emoji», «/» para selector intelixente",
"_%n unread comment_::_%n unread comments_":["%n comentario sen ler","%n comentarios sen ler"]
"An error occurred while trying to create the comment":"Produciuse un erro cando tentaba crear o comentario"
"An error occurred while trying to edit the comment":"Hiba történt a megjegyzés szerkesztése közben",
"Comment deleted":"Hozzászólás törölve",
"An error occurred while trying to delete the comment":"Hiba történt a megjegyzés törlése közben",
"An error occurred while trying to create the comment":"Hiba történt a megjegyzés létrehozása közben",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Megemlítették ennél: „{file}”, egy már törölt felhasználó hozzászólásában",
"Write a message …":"Üzenet írása…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"„@” az említésekhez, „:” az emodzsikhoz, „/” az okos választához",
"An error occurred while trying to edit the comment":"Hiba történt a megjegyzés szerkesztése közben",
"Comment deleted":"Hozzászólás törölve",
"An error occurred while trying to delete the comment":"Hiba történt a megjegyzés törlése közben",
"An error occurred while trying to create the comment":"Hiba történt a megjegyzés létrehozása közben",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Megemlítették ennél: „{file}”, egy már törölt felhasználó hozzászólásában",
"Write a message …":"Üzenet írása…",
"\"@\" for mentions, \":\" for emoji, \"/\" for smart picker":"„@” az említésekhez, „:” az emodzsikhoz, „/” az okos választához",
"You commented on %1$s":"Anda berkomentar pada %1$s",
"You commented on {file}":"Anda berkomentar pada {file} ",
"%1$s commented on %2$s":"%1$s dikomentari pada %2$s",
"{author} commented on {file}":"{pengarang} berkomentar pada {file}",
"{author} commented on {file}":"{author} berkomentar pada {file}",
"<strong>Comments</strong> for files":"<strong>komentar</strong> pada file",
"{user} mentioned you in a comment on \"{file}\"":"{pengguna} menyebut Anda dalam sebuah komentar pada \"{file}\" ",
"{user} mentioned you in a comment on \"{file}\"":"{user} menyebut Anda dalam sebuah komentar pada \"{file}\" ",
"Files app plugin to add comments to files":"Plugin aplikasi file untuk menambah komentar pada file",
"Edit comment":"Sunting komentar",
"Delete comment":"Hapus komentar",
@@ -19,13 +19,10 @@ OC.L10N.register(
"No more messages":"Tidak ada pesan lagi",
"Retry":"Ulangi",
"Unable to load the comments list":"Tidak dapat memuat daftar komentar",
"_1 new comment_::_{unread} new comments_":["komentar baru {belum terbaca}"],
"Comment":"Komentar",
"An error occurred while trying to edit the comment":"Terjadi kesalahan ketika mencoba menyunting komentar",
"Comment deleted":"Komentar dihapus",
"An error occurred while trying to delete the comment":"Terjadi kesalahan ketika mencoba untuk menghapus komentar",
"An error occurred while trying to create the comment":"Terjadi kesalahan ketika mencoba untuk membuat komentar",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Anda disebut pada \"{file}\", dalam sebuah komentar oleh pengguna yang sejak itu telah dihapus",
"_%n unread comment_::_%n unread comments_":["%nkomentar belum dibaca"]
"An error occurred while trying to create the comment":"Terjadi kesalahan ketika mencoba untuk membuat komentar"
},
"nplurals=1; plural=0;");
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.