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>
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>
* The user should get a more friendly warning when their desktop client version is not supported anymore by the server.
See #nextcloud/desktop/issues/6273
* Update BlockLegacyClientPluginTest to reflect the new 403 error message.
Signed-off-by: Camila Ayres <hello@camilasan.com>
We are targetting PHP 8.1+, since PHP 8.0 `offsetGet` has the `mixed` types for `offset` and return value.
So this adds the types to correctly implement the interface.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This is needed because some views have side effects, like `favorites` doing requests on registration time.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
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>
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>
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>
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>
Keep them in the constructor to not break the API,
but they are not used anymore.
This way of adding a share was deprecated in Nextcloud 12 (2016!),
in favor of the federated share API, in Nextcloud 28 this way to create a share was removed.
So we can cleanup as all it takes now to create a federeated share is the share token + federated user ID.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This removes custom rendering code an replaces it with the declarative menu actions.
Also adjust the template to allow the Vue UI to mount.
Custom entries still are possible.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This adds a Vue implementation of the public page menu,
that is the menu that can be added using `PublicTemplateResponse::setHeaderActions`.
Co-authored-by: Ferdinand Thiessen <opensource@fthiessen.de>
Co-authored-by: Louis <louis@chmn.me>
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
There were heavly breaking theming changes so increase the version number to make cache buster work.
Also fix order of entries in the appinfo.xml to fix XML validation (the order is fixed in the XSD).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
While digging through code I noticed another huge code style
refactoring commit is blocking the real blame, so added it to the list.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
It is returning a list of strings so adjust the return typing
to reflect this (`list<string>` instead of `array`).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The idea is to intercept the request,
then test the loading state,
and after the tests continue the request.
Problem here: `cy.intercept` has a timeout on the request-handler
which uses the same timeout as DOM assertions (4s) we could increase it,
but this also will increase DOM assertion timeout.
So instead we do not await in the request handler, but in the response handler.
This should use the response timeout which is much higher (30s).
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>
1. The "recent" accounts API only works for admin and delegated admin -> hide for line managers
2. Line managers can not create new groups -> Hide the UI to add a new group for them
3. Accounts created by line managers require one of the groups, which is managed by the line manager, assigned.
So if the line manager only manageres a single group, we should preselect that group.
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>
Fix other background-positions
Minor fix in link button icon position
Update header left and right to start and end
Signed-off-by: Mostafa Ahangarha <ahangarha@riseup.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>
Avoid surprises by making sure these are lowercased apart from
documented special case user displayname.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
Avoids using several LDAP searches to get UUID, display name and
internal name, now gets all attributes at the same time.
Also avoids extra request to build an unused user object in userExists.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
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>
There are some benefits, like faster tests and thus saving CI time, but the main reason for me is:
Jest still does not properly support ESM packages, this casues a lot of breaking stuff.
Sometimes you need to adjust imports for mocking, and somethimes other random stuff break.
Instead of wasting valuable developer lifetime we can use vitest which works perfectly with ESM.
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>
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>
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>
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>
PHP 8.1 allows us to now move the `new` into the initializer,
this makes the code a bit nicer (and 3 lines shorter).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Fixes#2180
And prevents #31473, #23970, #18610, #15708
Avoids a 500 error and also gives a useful error message on the web interface if this module isn't installed, gets overlooked during a PHP upgrade, etc.
While we check for it later, it's too late for session.
Inspired by #17163
Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
Fixes#31998
Adds support to `occ db:convert-type` to support UNIX socket connections via MySQL/MariaDB. Uses same `dbhost` / `hostname` parameter parsing logic (adapted) as used elsewhere (at least the relevant parts) for consistency.
Signed-off-by: Josh Richards <josh.t.richards@gmail.com>
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>
* 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>
Instead of trigger a PROPFIND for every new-menu entry clicks,
or conflict handling of uploads, we can just use the cached content from the file store.
If we do not have any cache entry we fetch new, but otherwise this is not needed.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
The initial state is no longer used, it was only used in legacy UI and in the f2v rewrite
it was only used for the `id` which can be loaded just from the URL.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
This way we use the CSP nonce for dynamically loaded scripts.
Important to notice: The CSP nonce must NOT be injected in `content` as
this can lead to value exfiltration using e.g. side-channel attacts (CSS selectors).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
We should use 'cspNonceManager' for requesting the NONCE value, because it is doing the same as before, except that it honors a CPS_NONCE environment variable if available.
Signed-off-by: Holger Hees <holger.hees@gmail.com>
Currently this is simply broken and here are two ways:
1. Open subfolders in files view
2. Implement logic to save last request
1 is the way this is now implemented, basically copy-paste from the recent view.
2 is much more complicated because if we get `/2/foo/bar` as the path we need to know the source of `foo`, so we would need at least 2 requests or cache the previous directory. We do not do it like this for any view so lets just stick with 1 for now.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
1. Adjust some places that used the old pill-style design
2. Make indention consistent using tabs
3. Remove duplicates styles for inputs (also included in server.css) that conflic with nextcloud-vue styles
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
When checking for public (web) access to the data directory the status is not enough
as you might have a webserver that forwards to e.g. a login page.
So instead check that the content of the file matches.
For this the `.ncdata` file (renamed from `.ocdata`¹) has minimal text content
to allow checking.
¹The file was renamed from the legacy `.ocdata`, there is a repair step to remove the old one.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
1. The label was wrong it mentioned the first and last tag, so the information was duplicated
2. It only mentioned the first and last but not all other
3. All other tags were only added as `title` which is not accessible
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
Brute force protection is automatically enabled. The settings app for it should be enabled by default too. Already shipped and it can still be disabled if desired.
Signed-off-by: Josh <josh.t.richards@gmail.com>
@@ -74,6 +74,10 @@ Otherwise, git checkouts can be handled the same as release archives, by using t
- Comment on a pull request with `/update-3rdparty` to update the 3rd party submodule. It will update to the last commit of the 3rd party branch named like the PR target.
"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 تعليق غير مقروء"]
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها"
"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 تعليق غير مقروء"]
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"تمت الإشارة إليك في \"{file}\" في تعليق لمستخدم. لكن هذا المستخدم تم حذف حسابه بعدها"
"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"]
"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}"
"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"]
"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}"
"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}”, в коментар от потребител, който вече е изтрит",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит"
"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}”, в коментар от потребител, който вече е изтрит",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Бяхте споменат/а към “{file}”, в коментар от потребител, който вече е изтрит"
"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"]
"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"
"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"]
"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"
"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",
"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"
"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",
"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"
"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",
"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"
"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",
"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"
"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",
"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"
"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",
"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"
"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",
"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"
"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",
"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"
"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}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί"
"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}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί",
"You were mentioned on \"{file}\", in a comment by a user that has since been deleted":"Το όνομά σας αναφέρθηκε στο “{file}”, σε σχόλιο ενός χρήστη ο οποίος έχει πλέον διαγραφεί"
"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",
"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 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",
"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 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"]
"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"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
"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"]
"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"
},"pluralForm":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
"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"]
"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"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
"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"]
"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"
},"pluralForm":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
"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"]
"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"
},
"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
"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"]
"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"
},"pluralForm":"nplurals=3; plural=n == 1 ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
"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.",
"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 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.",
"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 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 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"
"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 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"
"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":"خطایی در خلال تلاش برای ویرایش دیدگاه رخ داد",
"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}» و در دیدگاهی که توسط حسابی که بعدتر پاک شده است مورد اشاره قرار گرفتهاید"
"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":"خطایی در خلال تلاش برای ویرایش دیدگاه رخ داد",
"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 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"]
"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é"
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");
"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"]
"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é"
},"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",
@@ -32,9 +32,6 @@ OC.L10N.register(
"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",
"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"
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.