* Fixes#2739
It tries to create an image from an SVG file. Which we don't support. So
this fails and prints an log line. Then we fall back anyways to the 404
and fetch the default icon.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
PHP's json_encode only accept proper UTF-8 strings, loop over all
elements to ensure that they are properly UTF-8 compliant or convert
them manually.
Without this somebody passing an invalid User Agent may make json_encode
return false which will get logged as empty newline.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
* Skip null groups in group manager (#26871)
* Skip null groups in group manager
* Also skip null groups in group manager's search function
* Add more group null checks in sharing code
* Add unit tests for null group safety in group manager
* Add unit tests for sharing code null group checks
* Added tests for null groups handling in sharing code
* Ignore moveShare optional repair in mount provider
In some cases, data is inconsistent in the oc_share table due to legacy
data. The mount provider might attempt to make it consistent but if the
target group does not exist any more it cannot work. In such case we
simply ignore the exception as it is not critical. Keeping the
exception would break user accounts as they would be unable to use
their filesystem.
* Adjust null group handing + tests
* Fix new group manager tests
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
In order to decide if a recovery key needs to be added we always
need to check the files owner settings and not the settings of
the currently logged in user.
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
in case a user is already logged in on the same server from
which the public link comes from, we need to setup the owners
file system in order to show the preview
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
The toggleSelect extension for Select2 makes possible to unselect items
in a multi-select dropdown by clicking on them; this behaviour should be
enabled in all the multi-select dropdowns used in the server.
Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
Otherwise it might be that authentication apps are being disabled on
during operation while in fact the session handler has hiccup.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
* shows a info when list is potentially truncated
* shows a warning when characters length is not enough
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
* Prevent PHP request to get killed when using fclose callback
* Add ignore_user_abort everywhere where the time limit is set to 0
Signed-off-by: Robin Appelman <robin@icewind.nl>
The `/remote.php/dav/` endpoint was not implementing the MaintenancePlugin. Thus when the instance was put into maintenance mode the endpoints were still accessible and delivered empty content. Sync clients really do love this.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
* If the ETag if present store it
* If a stored ETag is present then pass it along (with the original
response) to get
* Add tests
* Added files to classmap
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
* on Windows : is not allowed as filename and doesn't get synced then
* uses 2017-03-02 22-00-00 instead of 2017-03-02T22:00:00+00:00 as format
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Fix integration test by not relying on Fake instances
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Fix determining the UUID attribute, default of the override is null
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
add integration test for uuid attr detection
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Add repair steps
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Background jobs can take 4k of characters only. We find a good batch size.
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
add tests to DB group
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
LDAP OCS Api for create config
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
LDAP OCS Api for delete config
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
fix and extend behat tests
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
add LDAP OCS Api for modifying a configuration
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
test against OCS v2 instead
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
LDAP OCS Api for show config
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
also, let ldap integration tests run
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
fix indentation
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
enable user_ldap app for tests
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
LDAP PUT command now supports setting multiple keys at once
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
fix deletion for configIDs < s10
Also move ensureConfigIDExists checks into try, it might throw DB
related exceptions
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
remove outdated scenario
covered by "Delete a non-existing configuration"
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
* CaldavBackend is now endpoint aware (use old style principals on old
endpoint and new onces on new).
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Since the tests to quite hugely rely on sync tokens being present I also included those in the legacy backend.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
With 10.0.1 CSPv3 is broken in Safari if it doesn't run from a local IP. Awesome.
=> Let's remove this for Safari and keep chrome and Firefox in the whitelist.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Fixes#2403
We need to check for updates of disabled apps so that if you update with
incompatible apps you at least get a chance to upgrade.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
When installing an app from the appstore the `\OC_App::getAppVersion` code is triggered twice:
- First when the downloader tries to compare the current version to the new version on the appstore to check if there is a newer version. This protects against downgrade attacks and is implemented in `\OC\Installer::downloadApp`.
- Second, when the app is actually installed the current version is written to the database. (`\OC\Installer::installApp`)
This fails however when the version is actually cached. Because in step 1 the cached version will be set to "0" and then be reused in the second step.
While this is probably not the cleanest version I assume this is an approach that is least invasive. Feedback and suggestions welcome :)
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Else the last-login-check fails hard because the session value is not
set and thus defaults to 0.
* Started with tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
If the sharebymail app (or the federatedshareprovider app) are disabled
this kills a lot of stuff. So we should handle a share provider not
begin available a bit more graceful.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Otherwise an administrator could bypass sudo mode by installing an app that allows RCE by design. I've by intention excluded the update endpoint from the requirement because updating apps should be as unintruisive as possible.
Not the cleanest approach by adding this to the AJAX endpoints instead of requiring a controller but for 11 this felt safer for me. We can clean this up together later then. (also the other AJAX endpoints in this folder do have the same logic)
Ref https://github.com/nextcloud/server/issues/2487
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
* allows to use the loading icon on non-white background (disabled input fields for example)
* fixes#2466
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
\OC\Files\View::createParentDirectories was previously prone to an endless loop. If a path such as /foo/existingfile.txt/bar/foo was passed and existingfile.txt existed in foo the loop was never left and running until the PHP process timed out.
This commit changes the logic to a foreach loop over an array and additionally additional error handling using is_file.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
The previous Regex worked for an iPhone with version "10.0" but not with "10.0.1" which was wrong. I modified the Regex to also match for those situations.
I also added a Regex for the iPad
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Just as a precaution already so we can easily ship this via the updater to the beta channel properly to Beta 1 users
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
The link in the image_src link (used for previews on Social Media such as Facebook) was still using the old route. This changes it to use the new route.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
In users have not created backup codes yet the app is not enabled for that user
and therefore we got an undefined index error because the code assumed it was
always there. It now properly returns null.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
On renew, a session token is duplicated. For some reason we did
not copy over the remember-me attribute value. Hence, the new token
was deleted too early in the background job and remember-me did
not work properly.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
We have to respect the value of the remember-me checkbox. Due to an error
in the source code the default value for the session token was to remember
it.
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Otherwise on the update from beta1 to beta2 the app would be disabled again as incompatible:
```
root@cloud:/var/www/html# sudo -u www-data php occ upgrade
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Set log level to debug
Turned on maintenance mode
Updating database schema
Updated database
Disabled 3rd-party app: calendar
Disabled 3rd-party app: contacts
Disabled 3rd-party app: nextcloud_announcements
Disabled 3rd-party app: spreed
Update 3rd-party app: calendar
Update 3rd-party app: contacts
```
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
This didn't really work anyways and Chrome 54 for Android has been pushed out via Google Play on October 19th. So we should remove this.
This is only in master and doesn't affect any stable branch.
Fixes https://github.com/nextcloud/server/issues/2318
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
The enabled page doesn't pass through "getAppsForCategory" thus it also needs to have that special logic applied.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
The current implementation when fetching apps from the appstore is to assume that the first element is the newest version, this is now always applicable and leads to the fact that for some apps (e.g. nextant) the newest version is not delivered. This can be easily tested by comparing the version of the downloaded Nextant version.
This change will loop over all releases delivered by the appstore and chooses the newest compatible one. While not the cleanest solution, it does its job.
Most of the code are actually unit tests. Whereas I have copied the whole original response from the appstore and also have performed the transformation. So that's why the diff looks so huge.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
The owner of a federated file is the federated user. For which we
obviously can't setup a view.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Otherwise when adding a user as subadmin this would throw the following JS error:
```
users.js?v=bc2aae7…:500 Uncaught TypeError: Cannot read property 'message' of undefined(…)(anonymous function) @ users.js?v=bc2aae7…:500j @ jquery.js:3099fireWith @ jquery.js:3211x @ jquery.js:8264(anonymous function) @ jquery.js:8605
```
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Fixes several error messages when installing an app from the appstore, including:
```
Illegal offset type in isset or empty at /media/psf/stable9/lib/private/legacy/app.php#662
Illegal offset type at /media/psf/stable9/lib/private/legacy/app.php#663
Illegal offset type at /media/psf/stable9/lib/private/legacy/app.php#661
Object of class OC_App could not be converted to string at /media/psf/stable9/lib/private/legacy/app.php#81
trim() expects parameter 1 to be string, object given at /media/psf/stable9/lib/private/legacy/app.php#628
```
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
The appstore returns a "isFeatured" in the current API revision. We need to cast this thus.
Fixes the following error log message when opening the tab "Customization":
> Undefined index: featured at /media/psf/stable9/settings/Controller/AppSettingsController.php#233
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Persist personal settings federated sharing scopes
Show new settings fields in read-only mode too
Insert values on page load
Return updated values; show inline success feedback
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
* A repair step that inserts a background job for each user
* Each background job will delete for 15 seconds if it takes longer we
reschedule. This is done so instances that don't use the system cron
won't time out.
* Added tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Added the system config which sets all conditions to true that query the
FrontControllerActive mod_env variable.
Signed-off-by: Felix A. Epp <work@felixepp.de>
Storage wrappers should normally always be registered inside a presetup
hook. However in the public link scenario this is not possible and
there is currently no good alternative with the current architecture.
Instead of logging a warning every time, this fix prevents the warning
to be shown but also adds a FIXME in the code for the future. This is
ok because this app is already using private/internal APIs at the
moment and should be reworked properly in the future.
* this PR makes sure to warm up the cache for that user
* then the logic within the "if is in cache" code can be used to reduce needed queries
* inspired by @andreas-p - https://github.com/nextcloud/server/pull/2128
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
For some reason when a text file started with a valid hex character ([0-9a-f]) it would eat the text untill the first newline
The new code does basically the same thing as guzzle/s3-sdk did only without wrapping everything in a guzzle stream
Signed-off-by: Robin Appelman <robin@icewind.nl>
If the session is cleared and closed for whatever reason the loadVersion
will write to the session anyways. This will lead to an exception.
This should fix#1303
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
increases the cache duration for css and js files from 2 hours to half a year. Should they change the versionhash changes as well and a new file is fetched. Half a year should be long enough for oc updates.
Also allows caching woff files for 7 days. Currently, there is no versionhash available, but pressing F5 will also refresh the woff files.
The file list UI logic that renders the next page doesn't properly
exclude hidden files when not shown. This fix makes sure that only rows
that are actually visible are counted when rendering a page, this makes
sure that the page will always have enough elements displayed.
* Display changes in file versions tab view and detailsView
* versions tab enhancements
enhanced js test file
removed css superscript attribute for version size
* Replaced spaces with tabs
Use firstLogin event to trigger creation of default calendar and default address book
Delay login of admin user after setup so that firstLogin event can properly be processed for the admin
Fixing tests ...
Skeleton files are not copied over -> only 3 cache entries are remaining
Use updateLastLoginTimestamp to properly setup lastLogin value for a test user
This prevents a validation failure where the code checks whether a file
is already shared with another user, but the check disables itself when
the owner is the same. Processing the groups first prevents the check
to kick in too early when the group share still has the old owner while
we try transferring the user share.
When transferring ownership, only the local files will be transferred
during the rename operation. This means that the analyzing code doesn't
need to recurse into any mount points.
Furthermore this fixes issues where FailedStorage might appear as mount
points as a result of inaccessible external storages or shares. So this
makes it more robust.
Fixes the following:
1. user0 shares folder with user1 (RO but with sharing permissions)
2. user1 shares by link
3. user1 send 'publicUpload=true' OCS request to the link share
before this increased the permissions of the link share. Which should
not happen.
now: API reponds with an error that the permissions can't be increased.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
We should verify the app versions when installing a new update, otherwise this could result in downgrade attacks when an attacker just copies the old signature.
Plus it prevents the case that in case of a bug in the appstore actually an older version gets installed.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
In the new sabre (3.2) the order of beforeMethod is switched. it used to
be that beforeMethod:METHOD was called after beforeMethod. But now it is
called before. Since we need the view this was broken.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
* Update sabre/dav to 3.2.0
* Adjust code to work with sabre/dav 3.2.0 and it's dependencies
* Adding own CalDAV plugin to fix calendar home property
* Test if there is a user logged in when listing files home
* Update sabre version used by integration tests
* Disable unauthenticated DAV access
This is needed to make Sabre 3.2 behave like we did before.
Eventually we should integrate better with the ACL plugin which itself
should implement an auth failure when appropriate.
=====
* Fixed so cherry-pick was succesfull
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
This is needed because in some cases like LDAP, the user manager itself
might trigger avatar updates which would internally also call
initMountPoints with the same user. This could cause the same user to
be setup twice, and in some sharing situations could cause recursive
deduplication of shares by adding "(2)" every time.
* makes it easier to setup cron job
* gives hints for PHP documentation
* disables the cron setting if requirements not met
* fixes#1989
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Removes the need for POST to collection which would hit against upload
limits.
The client tries to auto rename the file by adding a suffix "(2)".
It tries to use the file list on the client side to guess a
suitable name. In case a file still cannot be uploaded and creates a
conflict, which can happen when the file was concurrently uploaded, the
logic will continue increasing the suffix.
The web UI now uses for PUT uploads which aren't restricted by PHP's
upload_max_filesize and post_max_size
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
* try to reuse the old session token for remember me login
* decrypt/encrypt token password and set the session id accordingly
* create remember-me cookies only if checkbox is checked and 2fa solved
* adjust db token cleanup to store remembered tokens longer
* adjust unit tests
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
- Removes the Drone badge
- This one is lying most of the time since it isn't checking master but the latest build. Thus it fails when it effectively doesn't fail. Let's remove that since it makes us look bad.
- Add CodeCov badge
- Add CII badge
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
email address we only return the exact match. It is highly unlikely
that the exact same email address and federated cloud id exists
Signed-off-by: Bjoern Schiessle <bjoern@schiessle.org>
Pages that do not use the AppFramework have its CSP inherited from `\OC_Response::addSecurityHeaders`. While those are not many anymore, there are some examples such as the "Help" page.
To stay completely backwards-compatible we should also add the nonce to the legacy CSP response.
To test that open your browser console and open the help page. Without this you will get a JS error. With this you won't.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Let app-name headline break, increase padding on the right for more visual clearance.
Make experimental header full width
Signed-off-by: Felix A. Epp <work@felixepp.de>
The check for two factor enforcement would return true for non-existing
users. This fix makes it return false in order to be able to perform
the regular login which will then fail and return false.
This prevents throwing PasswordLoginForbidden for non-existing users.
If we move a file from the temp part file to the original file we don't
need update permissions.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
- uses PUT method with jquery.fileupload for regular and public file
lists
- for IE and browsers that don't support it, use POST with iframe
transport
- implemented Sabre plugin to handle iframe transport and redirect the
embedded PUT request to the proper handler
- added RFC5995 POST to file collection with "add-member" property to
make it possible to auto-rename conflicting file names
- remove obsolete ajax/upload.php and obsolete ajax routes
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
CSP nonces are a feature available with CSP v2. Basically instead of saying "JS resources from the same domain are ok to be served" we now say "Ressources from everywhere are allowed as long as they add a `nonce` attribute to the script tag with the right nonce.
At the moment the nonce is basically just a `<?php p(base64_encode($_['requesttoken'])) ?>`, we have to decode the requesttoken since `:` is not an allowed value in the nonce. So if somebody does on their own include JS files (instead of using the `addScript` public API, they now must also include that attribute.)
IE does currently not implement CSP v2, thus there is a whitelist included that delivers the new CSP v2 policy to newer browsers. Check http://caniuse.com/#feat=contentsecuritypolicy2 for the current browser support list. An alternative approach would be to just add `'unsafe-inline'` as well as `'unsafe-inline'` is ignored by CSPv2 when a nonce is set. But this would make this security feature unusable at all in IE. Not worth it at the moment IMO.
Implementing this offers the following advantages:
1. **Security:** As we host resources from the same domain by design we don't have to worry about 'self' anymore being in the whitelist
2. **Performance:** We can move oc.js again to inline JS. This makes the loading way quicker as we don't have to load on every load of a new web page a blocking dynamically non-cached JavaScript file.
If you want to toy with CSP see also https://csp-evaluator.withgoogle.com/
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
This prevents cryptic messages such as the following, from `user_ldap`:
Could not set avatar for uid=user,ou=People,dc=example,dc=net, because:
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
Add message to NotPermittedException thrown from Files\Nodes\Folder
Ditto.
Don't use translation macros here as this seems to be pretty low-level
errors that generally get caught and prettified, and I don't want to
unduly clog down the lower layers.
Signed-off-by: Olivier Mehani <shtrom@ssji.net>
fixup! Add message to NotPermittedException thrown from Files\Nodes\Folder
It was already a controller just still residing in its old location.
* Moved ShareAPIController to user plain userID instead of user object
* Moved Share20OCS to ShareAPIController
* Removed initisation of class from Application.php and leave it to the
AppFramework
* Fixed tests
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
Datetime now returns microseconds. But if the database doesn't store
those comparing them for equality most likely fails.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
* Add more files plugins to new DAV endpoint
Also fix report plugin to properly retrieve the path from the
prolongated URL
* In case the report is not for this plugin -> simply return to allow other plugins to get executed
* Adjust onReport tests to match new behavior
Logicaly, postHooks should emit after touch. For chunking file it is already emitting after touch.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
When unsharing from self in a group share situation, the share items
passed to the post_unshareFromSelf hook were using the wrong format in
which the attribute names (ex: "share_type") have non camel-case format.
This fix makes sure that in group sharing case we use the correct
format. It looks like the code was already producing it but in
array_merge it was not using it and adding the unprocessed one.
During upgrades, before the DB migration is complete, the system is not
usable, but there's no way for monitoring systems to detect this.
Add the 'needupgrade' field to the status json so monitoring systems can
detect this.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
* remove the scrollbar (content did an overflow due to a min-width)
* have proper padding on the right too - padding is 15px on all sides for .oc-dialog
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Enhanced the REPORT method on the Webdav endpoint and added a
"oc:favorite" filter rule. When set, it will return a flat list of
results filtered with only favorite files.
The web UI was also adjusted to use this REPORT method instead of the
private API endpoint.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
* Sync deathdate and anniversary to birthday calendar (which should be renamed maybe)
* Sync deathdate and anniversary to birthday calendar (which should be renamed maybe)
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
* notifications can be cleaned up, no polluted DB
* updating comments will re-notify users or remove notifications, depending on the message
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Because some cron jobs do not always properly clean up their FS usage
and others might not clean up before setting up the FS, this could
cause potential side effects.
To make sure we exclude side effects, we tear down the FS between cron
jobs.
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
* Use DI to load console commands from the apps - class name to be defined in the info.xml
* Load commands from info.xml
* Fix unit test
* Allow Di magic for IMountManager
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
The call to UserList.add() was wrong and was passing "user.lastLogin"
as the sort argument which would cause the list to be resorted over and
over again for every added item after loading the next page of users.
* No longer filterout all other link shares
* Display link shares in shareelist (below normal shares)
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
We always query the database backend. Even if we use a different one
(ldap for example). Now we do this everytime we try to get a user object
so caching that a user is not in the DB safes some queries on each
request then (at least 2 what I found).
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
* Don't parse info.xml but reuse already cached app infos - fixes#25603
* Use === in InfoParser. Fixes test
* InfoParser should not depend on UrlGenerator - fixes issue with session being closed too early
(WIP) notify user when mentioned in comments
Fix doc, and create absolute URL for as notification link.
PSR-4 compatibility changes
also move notification creation to comments app
Do not notify yourself
unit test for controller and application
smaller fixes
- translatable app name
- remove doubles in mention array
- micro perf optimization
- display name: special label for deleted users, keep user id for users that could not be fetched from userManager
Comment Notification-Listener Unit Test
fix email adresses
remove notification when triggering comment was deleted
add and adjust tests
add missing @license tags
simplify NotificationsController registration
appinfo simplification, php docs
make string easier to translate
adjust test
replace dispatcher-based listeners with a registration method and interface
safer to not pass optional data parameter to setSubject for marking as processed. ID and mention suffices
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
update comment
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
Otherwise `null` is returned which leads to a ton of similar error messages if the log condition setting is enabled.:
```
{"reqId":"3wVBarnDfOV3qkI1bVCU","remoteAddr":"89.98.78.41","app":"PHP","message":"hash_equals(): Expected user_string to be a string, null given at \/var\/www\/html\/lib\/private\/Log.php#275","level":3,"time":"2016-10-07T14:22:15+00:00","method":"PROPFIND","url":"\/remote.php\/webdav\/","user":"icewind"}
```
When resolving a group share to the user group share we used to do this
on a per share basis. Now we try to do this for all group shares at
once. Of course still chunked.
Before: N incomming group shares this would mean 1 + N queries
Now: N incomming roups shares this would mean 1 + 1 queries
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
The DefaultShareProvider now does a DB-level check to find out whether
file_source is accessible at all (deleted file) or whether it's in the
trashbin of a home storage.
One small corner case where the home storage id is in md5 form cannot
be covered properly with this approach.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
* Introduce simpleFS
* Introduce IAppData
* Introduce AppData Factory to get your AppData folder
* Update FileDisplayResponse
* AppData implements a ISimpleRoot but lazy. So only if an apps starts
to access data will stuff get initialized
Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
* before you could request an avatar for User instead of user
which sets up the filesystem for that user twice causing
the sharing codes collision detection to detect a lot of
collisions
Signed-off-by: Morris Jobke <hey@morrisjobke.de>
This leads to log messages such as "Undefined index: updaterEnabled at /media/psf/nextcloud/apps/updatenotification/lib/Controller/AdminController.php#116".
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
The files home node must also return DAV properties like etag,
permissions, etc for the clients to work like they did with the old
endpoint.
This fix makes FilesHome extend the Sabre Directory class, this makes
the FilesPlugin and other plugins recognize it as a directory and will
retrieve the matching properties when applicable.
Downstream of https://github.com/owncloud/core/pull/26066
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
In some cross-local-storage use cases, the Local storage is
instantiated with "/" as data directory. In such cases, calling
realpath() would cause PHP warnings when open_basedir is set.
This fix bypasses the realpath() call when dealing with a root storage.
Downstreaming of https://github.com/owncloud/core/pull/26058
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Right now a failed "copyr" will result in the error log being spammed with not really helpful error messages. Also situations such as `$dir` returning `false` are not really caught.
This adds more error handling and logging to make debugging such situations easier.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Per issue: https://github.com/nextcloud/server/issues/16
Added installation link guides per the already established documentation rather than attempting to re-create the documentation here.
This doesn't download the whole git repository again which saves roughly 90 seconds in execution time on the test.
Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
Fixes an issue where retrying a previously failed federated share would
not properly reset the availability flag because the return value was
undefined instead of "true".
Chrome on Android has a bug that it doesn't sent cookies with the
same-site attribute for the download manager. To work around that
all same-site cookies get deleted and recreated directly. Awesome!
FIXME: Remove once Chrome 54 is deployed to end-users
@see https://github.com/nextcloud/server/pull/1454
This commit further changes the behavior of getURLParmeter to handle
encoded parameter values and returns the decoded string and improves
behavior for parameters without value and multiple equals and other
similar cases which did not work before. See the comments at
http://stackoverflow.com/questions/1403888/get-escaped-url-parameter for
a list of the issues handled by the updated implementation.
This change does not change the general behavior of the function. Empty
or non existing parameters still return an empty string ('').
This commit changes the behavior of getURLParameter(name) to return an
empty string when the parameter is not set or has empty value. Before it
returned 'null' as string.
issue:
* drag'n'drop a folder into the files app in Firefox
* the highlight stays there because Firefox doesn't trigger the drop event for folders
solution:
* behave like the drop event if the dragover event isn't fired for 100ms (only applied in Firefox)
Should give us some quicker test execution speed as we're not limited by Travis
Explicitly invoke with "bash"
Install instance already
Use newest litmus container
When accessing a 'not set up' Nextcloud with a redirect_url parameter
the parameter will is added to the setup POST request, resulting in the
requested redirect after setup is complete.
This is required in scenarios where Nextcloud is used as authorization
provider like on the Spreedbox to allow redirection to the required page
when normally a login form would be shown but the setup form is shown
instead.
This is not correct. Hence in this patch we validate
if the mimetype is 'httpd/unix-directory'. If so we
don't disable it.
This patch addresses solution for issue: 26034
Signed-off-by: Sujith Haridasan <Sujith_Haridasan@mentor.com>
Often a route.php file will have many N routes but only M controllers.
Where N >= M. Which means that in most cases the ControllerName will be
converted multiple times. This is of course far from ideal.
Note that this is per app so the cache will contain at most N entries.
Which is not to bad.
In getMountPointNode function rootId is not inside of the userFolder for home storage. We was searching '/user' folder in '/user/files' folder. So, it was return NULL. I moved searching part to parent folder. It solves everything. Also, obviously other storage types not affect then this change.
Related owncloud commit :
https://github.com/owncloud/core/pull/26017
* put a file without a generated preview in the trashbin
(e.g. a *.docx file)
* open the trashbin
* following errors will show up in the nextcloud.log:
- filesize(): stat failed for ...
- fopen(...): failed to open stream: No such file or directory at ...
- fread() expects parameter 1 to be resource, boolean given at ...
- fclose() expects parameter 1 to be resource, boolean given at ...
- imagecreatefromstring(): Empty string or invalid image at ...
This is because the preview code tries to load an SVG image, which
is obviously only text.
The fix simply handles this before the loading happens and the web UI
keeps showing the default mimetype icon.
The exception message is potentially influenced by user input and could thus be confusing (e.g. somebody could try to open a file like "Please send a mail to support@foo.com", and then the message would include that string.
It is thus reasonable to not show the exception message by default. Also for the browser view I added an `exit()` at the end, as otherwise the XML exception would be attached.
Some user agents are notorious and don't really properly follow HTTP
specifications. For those, have an automated opt-out. Since the protection
for remote.php is applied in base.php as starting point we need to opt out
here.
This cleans up a bit the OCSController/Middleware. Since the 2 versions
of OCS differ a bit. Moved a lot of stuff internal since it is of no
concern to the outside.
For owncloud/client#5056
Users can configure arbitrary subfolders for syncing, therefore we should
always return it when asked for.
The sync client makes sure to not always ask for it to save bandwidth.
from filepicker
This is will help user to understand that you can only
click choose button once the files are selected from the
file picker. This addresses the solution for issue 16106
Signed-off-by: Sujith Haridasan <Sujith_Haridasan@mentor.com>
Instead of pre-rendering all multiselects with lots of group entries,
the current groups are now displayed as simple labels.
Behind the labels there is a pencil icon like for other fields.
When clicking the pencil icon, the dropdown will be spawned and will
open itself.
Upon closing of the dropdown, the label comes back with the updated
selection and the dropdown is destroyed.
1. Set proper caching headers (`Pragma: cache`)
2. Resize image proportionally to a max size of 1920px
3. Store images with progressive mode
This resizes a previous 2.8 MB picture to 300kb and makes it rendering going down from 11 seconds to less than 1 here. And future requests won't have to download the file newly.
This fixes infinite loops that are caused whenever a user is about to solve a 2FA
challenge, but the provider app is disabled at the same time. Since the session
value usually indicates that the challenge needs to be solved before we grant access
we have to remove that value instead in this special case.
This saves more than 20ms (!) on every request, the previous problem was that `\OC_App::registerAutoloading` calls `\OC\AppFramework\App::buildAppNamespace` which parses the appinfo.xml. Since that was also called multiple times (e.g. on cloud.nextcloud.com over 200 times) that had a significant performance impact. Also on simple PROPFIND requests.
https://blackfire.io/profiles/compare/65a53e6e-7f35-4974-b559-4c81abd01c3b/graph shows the difference nicely.
The new admin page broke the updating of the max upload size. This is
due to very old code there.
* Now update is done in the background using js
* Added proper route+controller to update
Fixes#994
Having two code paths for this is unreliable and can lead to bugs. Also, in some cases Apache isn't setting the PATH_INFO variable when mod_rewrite is used.
Fixes https://github.com/nextcloud/server/issues/983
* Password Update Notification
Added an IF ELSE statement to ensure that feedback is provided to the
user on successfully updating a user password in settings.
* Password Update Success Message
Updated the password update success message
setupMainMenu() & setupUserMenu():
Changed click delegate to add the spinner animation only the primary mouse button was clicked without ctrl- or meta-key modifier
Adding mouseup delegate to hide the menu if the middle mouse button was clicked.
Redone #778
Hidden files (dot files) are now always rendered in the DOM to make
sure that all file operations and selection still work as expected.
Their visibility is now toggled on CSS level.
Whenever a group share is created after a direct share, the stime order
needs to be properly considered in the repair routine, considering that
the direct user share is appended to the $subShares array and breaking
its order.
Pick the most recent subshare that has no parenthesis from duplication
which should match whichever name the user picked last. If all
subshares have duplicate parenthesis names, use the least recent group
share's target instead.
* setupSettings now also triggered on enable
* fixes detection of present admin section or settings in the DB
* add update routine in such cases
* encryption app migrated
* bump version to ensure tables are created
* make updatenotification app use settings api
* change IAdmin::render() to getForm() and change return type from Template to TemplateResponse
* adjust User_LDAP accordingly, as well as built-in forms
* add IDateTimeFormatter to AppFramework/DependencyInjection/DIContainer.php. This is important so that \OC::$server->query() is able to resolve the
constructor parameters. We should ensure that all OCP/* stuff that is available from \OC::$server is available here. Kudos to @LukasReschke
* make sure apps that have settings info in their info.xml are loaded before triggering adding the settings setup method
The OCS Controller requires a DataResponse object to be returned.
This means that all error handling will have to be done via exceptions
thrown and handling in the middleware.
OVH has implemented load balancing in a very questionable way where the reverse proxy actually internally adds some cookies which would trigger a security exception. To work around this, this change only checks for the session cookie.
'core' and 'settings' are just apps but we treat them slightly
different. Make sure that we construct the correct namespace so we can
actually do automatic AppFramework stuff.
One of the possibilities of the old OCS API is that you can define the
url yourself.
This PR makes this possible again by adding an optional root elemenet to
the route. Routes are thus:
.../ocs/v2.php/<root>/<url>
By default <root> = apps/<app>
This will allow for example the provisioning API etc to be in
../ovs/v2/php/cloud/users
In some situations, a group share is created before a user share, and
the recipient renamed the received share before the latter is created.
In this situation, the "file_target" was already modified and the second
created share must align to the already renamed share.
To achieve this, the MountProvider now groups only by "item_source"
value and sorts by share time. This makes it so that the least recent
share is selected as super-share and its "file_target" value is then
adjusted in all grouped shares.
This fixes the issue where this situation would have different
"file_target" values resulting in two shared folders appearing instead
of one.
The repair step was a bit overeager to skip repairing so it missed the
case where a group share exists without subshares but with an
additional direct user share.
nextcloud by default uses the `/config/` directory in the source/application tree for its config file(s).
with this commit that directory can be overridden by the `NEXTCLOUD_CONFIG_DIR` environment variable.
in uwsgi, you would use the option `--env "NEXTCLOUD_CONFIG_DIR=/tmp/nx-config/"`
in apache `SetENV …`
and the cli command can be run with: `NEXTCLOUD_CONFIG_DIR=/tmp/nx-config ./occ` (or just use `export` once in the
shell).
NEXTCLOUD_CONFIG_DIR can be supplied with or without the trailing slash (`/`), but in all cases `$configDir` will have
it automatically added if needed.
The other changes are several occurrences of `OC::$SERVERROOT . '/config'` to `OC::$configDir`.
Whenever the GRANT ALL failed, it used to display "Database creation
failed" which is incorrect. It's only the privleges setting that failed.
This moves the privilege setting message to DEBUG and makes it more
precise.
Whenever an LDAP user also has an email address defined in LDAP, the
LDAP code will try and update the email address of the locally known
user. This happens at login time or every time the user's LDAP
attributes are processed.
There is code listening to the email setting hook which updates the
system address book, which also will trigger FS setup due to avatars
and other things.
This fix only sets the email address when really necessary.
- Updated the config sample to point to log_type='file'
- Renamed the Class for logfile logging to File in namespace 'OC\Log\'.
Changed the occurrences of 'OC\Log\Owncloud' to 'OC\Log\File'.
- Renamed the Class for log:file command to File in namespace 'OC\Core\Command\Log\File'.
Changed registration of the command to use 'OC\Core\Command\Log\File'.
- Changed default Syslog tag to Nextcloud
- Retained backwards compatibility for configs with 'logtype' => 'owncloud'
- Adjusted tests for the new file log.
Closes#490.
The OCSResponse differs from other responses in that it defaults to
XML. However we fell back to json by default.
This makes sure that if nothing is set we don't pass anything.
Which defaults then to the controllers default (which is often 'json')
but in the case of the OCSResponse 'xml'.
* Fix file permissions for SMB (read-only folders will be writeable)
* Read-only folders won't be deletable
* Added comment for the read-only behaviour for folders
@@ -11,7 +11,7 @@ If you have questions about how to install or use Nextcloud, please direct these
- Go to one of the repositories, click "issues" and type any word in the top search/command bar.
- You can also filter by appending e. g. "state:open" to the search string.
- More info on [search syntax within github](https://help.github.com/articles/searching-issues)
* This repository ([core](https://github.com/nextcloud/core/issues)) is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* This repository ([server](https://github.com/nextcloud/server/issues)) is *only* for issues within the Nextcloud Server code. This also includes the apps: files, encryption, external storage, sharing, deleted files, versions, LDAP, and WebDAV Auth
* __SECURITY__: Report any potential security bug to us via [our HackerOne page](https://hackerone.com/nextcloud) or security@nextcloud.com following our [security policy](https://nextcloud.com/security/) instead of filing an issue in our bug tracker.
* The issues in other components should be reported in their respective repositories: You will find them in our [GitHub Organization](https://github.com/nextcloud/)
@@ -19,7 +19,7 @@ If you have questions about how to install or use Nextcloud, please direct these
Help us to maximize the effort we can spend fixing issues and adding new features, by not reporting duplicate issues.
@@ -29,11 +29,38 @@ Thanks for wanting to contribute source code to Nextcloud. That's great!
Please read the [Developer Manuals][devmanual] to learn how to create your first application or how to test the Nextcloud code with PHPUnit.
### Tests
In order to constantly increase the quality of our software we can no longer accept pull request which submit un-tested code.
It is a must have that changed and added code segments are unit tested.
In some areas unit testing is hard (aka almost impossible) as of today - in these areas refactoring WHILE fixing a bug is encouraged to enable unit testing.
Please stay tuned while we get all the repositories up.
Meanwhile check out https://nextcloud.com and follow us on https://twitter.com/nextclouders
If you want to [contribute](https://nextcloud.com/contribute/), you are very welcome:
- on our IRC channels #nextcloud & #nextcloud-dev irc://#nextcloud-dev@freenode.net (on freenode) and
- our forum at https://help.nextcloud.com
Please read the [Code of Conduct](https://nextcloud.com/community/code-of-conduct/). This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.
if you want to join the Github organization just let us know and we’ll add you! :)
*This is by the community, for the community. Everyone is welcome! :)*
* :file_folder: **Access your Data** You can store your files, contacts, calendars and more on a server of your choosing.
* :package: **Sync your Data** You keep your files, contacts, calendars and more synchronized amongst your devices.
* :arrows_counterclockwise: **Share your Data**You share your data with others, and give them access to your latest photo galleries, your calendar or anything else you want them to see.
* :rocket: **Expandable with dozens of Apps** ...like Calendar, Contacts, Mail or News.
* :cloud: **All Benefits of the Cloud** ...on your own Server.
* :lock: **Encryption** You can encrypt data in transit with secure https connections. You can enable the encryption app to encrypt data on storage for improved security and privacy.
* ...
* :arrows_counterclockwise: **Share your Data**…by giving others access to the stuff you want them to see or to collaborate with.
* :rocket: **Expandable with dozens of Apps** ...like [Calendar](https://github.com/nextcloud/calendar), [Contacts](https://github.com/nextcloud/contacts), [Mail](https://github.com/nextcloud/mail) and all those you can discover in our [App Store](https://apps.nextcloud.com)
* :lock: **Security** with our encryption mechanisms, [HackerOne bounty program](https://hackerone.com/nextcloud) and two-factor authentification.
*You want to learn more about how you can use Nextcloud to access, share and protect your files, calendars, contacts, communication & more at home and at your Enterprise?* [**Learn about all our Features**](https://nextcloud.com/features).
## Get your Nextcloud
- [**Install** a server by yourself on your own hardware or by using one of our ready to use **Appliances**](https://nextcloud.com/install/#instructions-server)
- [Buy one of the awesome **devices** coming with a preinstalled Nextcloud](https://nextcloud.com/devices/)
- [Find a service **provider** who is hosting Nextcloud for you or your company](https://nextcloud.com/providers/)
*Enterprise? Public Sector or Education user? You may want to have a look into the [**Enterprise Support Subscription**](https://nextcloud.com/enterprise/) provided by the Nextcloud GmbH*
More information how to contribute: https://nextcloud.com/contribute/
Please read the [Code of Conduct](https://nextcloud.com/community/code-of-conduct/). This document offers some guidance to ensure Nextcloud participants can cooperate effectively in a positive and inspiring atmosphere, and to explain how together we can strengthen and support each other.
## Support
Learn about the different ways you can get support for Nextcloud: https://nextcloud.com/support/
Please review the [guidelines for contributing](https://github.com/nextcloud/server/blob/master/CONTRIBUTING.md) to this repository.
More information how to contribute: [https://nextcloud.com/contribute/](https://nextcloud.com/contribute/)
## Running master checkouts
Third-party components are handled as git submodules which have to be initialized first. So aside from the regular git checkout invoking `git submodule update --init` or a similar command is needed, for details see Git documentation.
Several apps by default included in regular releases like [firstrunwizard](https://github.com/nextcloud/firstrunwizard) or [gallery](https://github.com/nextcloud/gallery) are missing in `master` and have to be installed manually as required.
That aside Git checkouts can be handled the same as release archives.
Note they should never be used on production systems.
"<strong>Comments</strong> for files <em>(always listed in stream)</em>":"<strong>Коментари</strong> на файлове <em>(винаги изписвани в stream-а)</em>",
"You commented":"Вие коментирахте"
"You commented":"Вие коментирахте",
"%1$s commented":"%1$s коментира",
"{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> за файлове",
"A (now) deleted user mentioned you in a comment on “%s”":"(Токущо) изтрит потребител те коментира в “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"(Токущо) изтрит потребител те спомена в коментар за “{file}”",
"%1$s mentioned you in a comment on “%2$s”":"%1$s те спомена в коментар за “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} те спомена в коментар за “{file}”",
"Type in a new comment...":"Напиши нов коментар...",
"No other comments available":"Няма други коментари",
"<strong>Comments</strong> for files <em>(always listed in stream)</em>":"<strong>Коментари</strong> на файлове <em>(винаги изписвани в stream-а)</em>",
"You commented":"Вие коментирахте"
"You commented":"Вие коментирахте",
"%1$s commented":"%1$s коментира",
"{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> за файлове",
"A (now) deleted user mentioned you in a comment on “%s”":"(Токущо) изтрит потребител те коментира в “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"(Токущо) изтрит потребител те спомена в коментар за “{file}”",
"%1$s mentioned you in a comment on “%2$s”":"%1$s те спомена в коментар за “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} те спомена в коментар за “{file}”",
"Type in a new comment...":"Напиши нов коментар...",
"No other comments available":"Няма други коментари",
"You commented on %1$s":"Okomentoval(a) jste %1$s",
"You commented on {file}":"Okomentoval(a) jste {file}",
"%1$s commented on %2$s":"%1$s okomentoval %2$s",
"{author} commented on {file}":"{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files":"<strong>Komentáře</strong> souborů",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Byli jste zmíněni v “%s”, v komentáři od uživatele, který byl později smazán",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Byli jste zmíněni v souboru “{file}”, v komentáři od uživatele, který byl později smazán",
"%1$s mentioned you in a comment on “%2$s”":"%1$s vás zmínil(a) v komentáři u %2$s",
"{user} mentioned you in a comment on “{file}”":"{user} vás zmínil v komentáři u “{file}”",
"Unknown user":"Neznámý uživatel",
"A (now) deleted user mentioned you in a comment on “%s”":"A (now) deleted user mentioned you in a comment on “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Nyní již smazaný uživatel vás zmínil v komentáři u \"{file}\""
"You commented on %1$s":"Okomentoval(a) jste %1$s",
"You commented on {file}":"Okomentoval(a) jste {file}",
"%1$s commented on %2$s":"%1$s okomentoval %2$s",
"{author} commented on {file}":"{author} okomentoval(a) {file}",
"<strong>Comments</strong> for files":"<strong>Komentáře</strong> souborů",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Byli jste zmíněni v “%s”, v komentáři od uživatele, který byl později smazán",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Byli jste zmíněni v souboru “{file}”, v komentáři od uživatele, který byl později smazán",
"%1$s mentioned you in a comment on “%2$s”":"%1$s vás zmínil(a) v komentáři u %2$s",
"{user} mentioned you in a comment on “{file}”":"{user} vás zmínil v komentáři u “{file}”",
"Unknown user":"Neznámý uživatel",
"A (now) deleted user mentioned you in a comment on “%s”":"A (now) deleted user mentioned you in a comment on “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Nyní již smazaný uživatel vás zmínil v komentáři u \"{file}\""
"You commented on {file}":"Du kommenterede {file}",
"%1$s commented on %2$s":"%1$s kommenterede %2$s",
"{author} commented on {file}":"{author} kommenterede {file}",
"<strong>Comments</strong> for files":"<strong>Kommentarer</strong> for filer",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Du blev nævnt i \"%s”, I en kommentar af en bruger der siden er blevet slettet",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Du blev nævnt i \"{file}”, I en kommentar af en bruger der siden er blevet slettet",
"%1$s mentioned you in a comment on “%2$s”":"%1$s nævnte dig i en kommentarer på “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} nævnte dig i en kommentarer på \"{file}\"",
"Unknown user":"Ukendt bruger",
"A (now) deleted user mentioned you in a comment on “%s”":"En (nu) slettet bruger nævnte dig i en kommentarer på “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"En (nu) slettet bruger nævnte dig i en kommentarer på \"{file}\""
"You commented on {file}":"Du kommenterede {file}",
"%1$s commented on %2$s":"%1$s kommenterede %2$s",
"{author} commented on {file}":"{author} kommenterede {file}",
"<strong>Comments</strong> for files":"<strong>Kommentarer</strong> for filer",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Du blev nævnt i \"%s”, I en kommentar af en bruger der siden er blevet slettet",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Du blev nævnt i \"{file}”, I en kommentar af en bruger der siden er blevet slettet",
"%1$s mentioned you in a comment on “%2$s”":"%1$s nævnte dig i en kommentarer på “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} nævnte dig i en kommentarer på \"{file}\"",
"Unknown user":"Ukendt bruger",
"A (now) deleted user mentioned you in a comment on “%s”":"En (nu) slettet bruger nævnte dig i en kommentarer på “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"En (nu) slettet bruger nævnte dig i en kommentarer på \"{file}\""
"<strong>Comments</strong> for files <em>(always listed in stream)</em>":"<strong>Kommentare</strong> für Dateien<em>(immer im Stream aufgelistet)</em>",
"You commented":"Von Dir kommentiert",
"%1$s commented":"%1$s kommentiert",
"You commented on %2$s":"Du hast %2$s kommentiert",
"%1$s commented on %2$s":"%1$s kommentierte %2$s"
"%1$s commented":"%1$s kommentierte",
"{author} commented":"{author} kommentierte",
"You commented on %1$s":"Du hast %1$s kommentiert",
"You commented on {file}":"Du hast {file} kommentiert",
"%1$s commented on %2$s":"%1$s kommentierte %2$s",
"{author} commented on {file}":"{author} hat {file} kommentiert",
"<strong>Comments</strong> for files":"<strong>Kommentare</strong> für Dateien",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Du wurdest in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
"%1$s mentioned you in a comment on “%2$s”":"%1$s hat Dich in einem Kommentar zu “%2$s” erwähnt",
"{user} mentioned you in a comment on “{file}”":"{user} hat Dich in einem Kommentar zu “{file}” erwähnt",
"Unknown user":"Unbekannter Benutzer",
"A (now) deleted user mentioned you in a comment on “%s”":"Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu \"%s\" erwähnt",
"A (now) deleted user mentioned you in a comment on “{file}”":"Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu “{file}” erwähnt"
"<strong>Comments</strong> for files <em>(always listed in stream)</em>":"<strong>Kommentare</strong> für Dateien<em>(immer im Stream aufgelistet)</em>",
"You commented":"Von Dir kommentiert",
"%1$s commented":"%1$s kommentiert",
"You commented on %2$s":"Du hast %2$s kommentiert",
"%1$s commented on %2$s":"%1$s kommentierte %2$s"
"%1$s commented":"%1$s kommentierte",
"{author} commented":"{author} kommentierte",
"You commented on %1$s":"Du hast %1$s kommentiert",
"You commented on {file}":"Du hast {file} kommentiert",
"%1$s commented on %2$s":"%1$s kommentierte %2$s",
"{author} commented on {file}":"{author} hat {file} kommentiert",
"<strong>Comments</strong> for files":"<strong>Kommentare</strong> für Dateien",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Du wurdest in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Du wurdest in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
"%1$s mentioned you in a comment on “%2$s”":"%1$s hat Dich in einem Kommentar zu “%2$s” erwähnt",
"{user} mentioned you in a comment on “{file}”":"{user} hat Dich in einem Kommentar zu “{file}” erwähnt",
"Unknown user":"Unbekannter Benutzer",
"A (now) deleted user mentioned you in a comment on “%s”":"Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu \"%s\" erwähnt",
"A (now) deleted user mentioned you in a comment on “{file}”":"Ein (nun) gelöschter Benutzer hat Dich in einem Kommentar zu “{file}” erwähnt"
"<strong>Comments</strong> for files <em>(always listed in stream)</em>":"<strong>Kommentare</strong> für Dateien<em>(immer im Stream aufgelistet)</em>",
"You commented":"Sie haben kommentiert",
"%1$s commented":"%1$s kommentiert",
"You commented on %2$s":"Sie haben %2$s kommentiert",
"%1$s commented on %2$s":"%1$s kommentierte %2$s"
"%1$s commented":"%1$s kommentierte",
"{author} commented":"{author} kommentierte",
"You commented on %1$s":"Sie haben %1$s kommentiert",
"You commented on {file}":"Sie haben {file} kommentiert",
"%1$s commented on %2$s":"%1$s kommentierte %2$s",
"{author} commented on {file}":"{author} hat {file} kommentiert",
"<strong>Comments</strong> for files":"<strong>Kommentare</strong> für Dateien",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Sie wurden in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
"%1$s mentioned you in a comment on “%2$s”":"%1$s hat Sie in einem Kommentar zu “%2$s” erwähnt.",
"{user} mentioned you in a comment on “{file}”":"{user} hat Sie in einem Kommentar zu “{file}” erwähnt",
"Unknown user":"Unbekannter Benutzer",
"A (now) deleted user mentioned you in a comment on “%s”":"Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu \"%s\" erwähnt",
"A (now) deleted user mentioned you in a comment on “{file}”":"Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu “{file}” erwähnt"
"<strong>Comments</strong> for files <em>(always listed in stream)</em>":"<strong>Kommentare</strong> für Dateien<em>(immer im Stream aufgelistet)</em>",
"You commented":"Sie haben kommentiert",
"%1$s commented":"%1$s kommentiert",
"You commented on %2$s":"Sie haben %2$s kommentiert",
"%1$s commented on %2$s":"%1$s kommentierte %2$s"
"%1$s commented":"%1$s kommentierte",
"{author} commented":"{author} kommentierte",
"You commented on %1$s":"Sie haben %1$s kommentiert",
"You commented on {file}":"Sie haben {file} kommentiert",
"%1$s commented on %2$s":"%1$s kommentierte %2$s",
"{author} commented on {file}":"{author} hat {file} kommentiert",
"<strong>Comments</strong> for files":"<strong>Kommentare</strong> für Dateien",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Sie wurden in einem Kommentar auf \"%s\" von einem bereits gelöschten Nutzer erwähnt",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Sie wurden in einem Kommentar auf \"{file}\" von einem bereits gelöschten Nutzer erwähnt",
"%1$s mentioned you in a comment on “%2$s”":"%1$s hat Sie in einem Kommentar zu “%2$s” erwähnt.",
"{user} mentioned you in a comment on “{file}”":"{user} hat Sie in einem Kommentar zu “{file}” erwähnt",
"Unknown user":"Unbekannter Benutzer",
"A (now) deleted user mentioned you in a comment on “%s”":"Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu \"%s\" erwähnt",
"A (now) deleted user mentioned you in a comment on “{file}”":"Ein (nun) gelöschter Benutzer hat Sie in einem Kommentar zu “{file}” erwähnt"
"<strong>Comments</strong> for files <em>(always listed in stream)</em>":"<strong>Comments</strong> for files <em>(always listed in stream)</em>",
"You commented":"You commented",
"%1$s commented":"%1$s commented",
"You commented on %2$s":"You commented on %2$s",
"%1$s commented on %2$s":"%1$s commented on %2$s"
"{author} commented":"{author} commented",
"You commented on %1$s":"You commented on %1$s",
"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 were mentioned on “%s”, in a comment by a user that has since been deleted":"You were mentioned on “%s”, 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 were mentioned on “{file}”, in a comment by a user that has since been deleted",
"%1$s mentioned you in a comment on “%2$s”":"%1$s mentioned you in a comment on “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} mentioned you in a comment on “{file}”",
"Unknown user":"Unknown user",
"A (now) deleted user mentioned you in a comment on “%s”":"A (now) deleted user mentioned you in a comment on “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"A (now) deleted user mentioned you in a comment on “{file}”"
"<strong>Comments</strong> for files <em>(always listed in stream)</em>":"<strong>Comments</strong> for files <em>(always listed in stream)</em>",
"You commented":"You commented",
"%1$s commented":"%1$s commented",
"You commented on %2$s":"You commented on %2$s",
"%1$s commented on %2$s":"%1$s commented on %2$s"
"{author} commented":"{author} commented",
"You commented on %1$s":"You commented on %1$s",
"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 were mentioned on “%s”, in a comment by a user that has since been deleted":"You were mentioned on “%s”, 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 were mentioned on “{file}”, in a comment by a user that has since been deleted",
"%1$s mentioned you in a comment on “%2$s”":"%1$s mentioned you in a comment on “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} mentioned you in a comment on “{file}”",
"Unknown user":"Unknown user",
"A (now) deleted user mentioned you in a comment on “%s”":"A (now) deleted user mentioned you in a comment on “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"A (now) deleted user mentioned you in a comment on “{file}”"
"Type in a new comment...":"Escribe un nuevo comentario...",
"Comments":"Comentarios",
"New comment …":"Nuevo comentario",
"Delete comment":"Borrar comentario",
"Post":"Publicar",
"Cancel":"Cancelar",
"Edit comment":"Editar comentario",
"[Deleted user]":"[Usuario eliminado]",
"Comments":"Comentarios",
"No other comments available":"No hay otros comentarios disponibles",
"More comments...":"Más comentarios...",
"No comments yet, start the conversation!":"¡No hay comentarios, empieza la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se ha producido un error al recuperar el comentario con ID {id}",
"Error occurred while updating comment with id {id}":"Se ha producido un error al actualizar el comentario con ID {id}",
"Error occurred while posting comment":"Se ha producido un error al enviar el comentario",
"{count} unread comments":"{count} comentarios no leídos",
"Comment":"Comentario",
"<strong>Comments</strong> for files <em>(always listed in stream)</em>":"<strong>Comentarios</strong> de archivos <em>(siempre se listarán en stream)</em>",
"_%n unread comment_::_%n unread comments_":["%n comentario sin leer","%nComentarios no leídos"],
"Comment":"Comentar",
"You commented":"Has comentado",
"%1$s commented":"%1$s comentados",
"You commented on %2$s":"Has comentado en %2$s",
"%1$s commented on %2$s":"%1$s comentados en %2$s"
"{author} commented":"{author} comentó",
"You commented on %1$s":"Has comentado en %1$s",
"You commented on {file}":"Has comentado en {file}",
"%1$s commented on %2$s":"%1$s comentados en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> para archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te han mencionado en \"%s\", en un comentario por un usuario que después ha sido eliminado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) eliminado, te mencionó en un comentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) eliminado, te mencionó en un comentario en “{file}”"
"Type in a new comment...":"Escribe un nuevo comentario...",
"Comments":"Comentarios",
"New comment …":"Nuevo comentario",
"Delete comment":"Borrar comentario",
"Post":"Publicar",
"Cancel":"Cancelar",
"Edit comment":"Editar comentario",
"[Deleted user]":"[Usuario eliminado]",
"Comments":"Comentarios",
"No other comments available":"No hay otros comentarios disponibles",
"More comments...":"Más comentarios...",
"No comments yet, start the conversation!":"¡No hay comentarios, empieza la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se ha producido un error al recuperar el comentario con ID {id}",
"Error occurred while updating comment with id {id}":"Se ha producido un error al actualizar el comentario con ID {id}",
"Error occurred while posting comment":"Se ha producido un error al enviar el comentario",
"{count} unread comments":"{count} comentarios no leídos",
"Comment":"Comentario",
"<strong>Comments</strong> for files <em>(always listed in stream)</em>":"<strong>Comentarios</strong> de archivos <em>(siempre se listarán en stream)</em>",
"_%n unread comment_::_%n unread comments_":["%n comentario sin leer","%nComentarios no leídos"],
"Comment":"Comentar",
"You commented":"Has comentado",
"%1$s commented":"%1$s comentados",
"You commented on %2$s":"Has comentado en %2$s",
"%1$s commented on %2$s":"%1$s comentados en %2$s"
"{author} commented":"{author} comentó",
"You commented on %1$s":"Has comentado en %1$s",
"You commented on {file}":"Has comentado en {file}",
"%1$s commented on %2$s":"%1$s comentados en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> para archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te han mencionado en \"%s\", en un comentario por un usuario que después ha sido eliminado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te han mencionado en \"{file}\", en un comentario de un usuario que después ha sido eliminado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) eliminado, te mencionó en un comentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) eliminado, te mencionó en un comentario en “{file}”"
"Type in a new comment...":"Escribir un nuevo comentario",
"Delete comment":"Eliminar comentario",
"Comments":"Comentarios",
"New comment …":"Comentario nuevo ...",
"Delete comment":"Borrar comentario",
"Post":"Publicar",
"Cancel":"Cancelar",
"Edit comment":"Modificar comentario",
"[Deleted user]":"[Usuario eliminado]",
"Comments":"Comentarios",
"No other comments available":"No hay mas comentarios",
"More comments...":"Mas comentarios...",
"Edit comment":"Editar comentario",
"[Deleted user]":"[Usuario borrado]",
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se produjo error al recuperar comentario con id {id}",
"Error occurred while updating comment with id {id}":"Se produjo error al actualizar comentario con id {id}",
"Error occurred while posting comment":"Se produjo error al publicar comentario",
"{count} unread comments":"{count} comentarios no leídos",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Has comentado",
"%1$s commented":"%1$s comentado",
"You commented on %2$s":"Has comentado en %2$s",
"%1$s commented on %2$s":"%1$s comentado en %2$s"
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"Type in a new comment...":"Escribir un nuevo comentario",
"Delete comment":"Eliminar comentario",
"Comments":"Comentarios",
"New comment …":"Comentario nuevo ...",
"Delete comment":"Borrar comentario",
"Post":"Publicar",
"Cancel":"Cancelar",
"Edit comment":"Modificar comentario",
"[Deleted user]":"[Usuario eliminado]",
"Comments":"Comentarios",
"No other comments available":"No hay mas comentarios",
"More comments...":"Mas comentarios...",
"Edit comment":"Editar comentario",
"[Deleted user]":"[Usuario borrado]",
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se produjo error al recuperar comentario con id {id}",
"Error occurred while updating comment with id {id}":"Se produjo error al actualizar comentario con id {id}",
"Error occurred while posting comment":"Se produjo error al publicar comentario",
"{count} unread comments":"{count} comentarios no leídos",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Has comentado",
"%1$s commented":"%1$s comentado",
"You commented on %2$s":"Has comentado en %2$s",
"%1$s commented on %2$s":"%1$s comentado en %2$s"
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Comment":"Comentario"
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Comment":"Comentario"
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"No comments yet, start the conversation!":"¡Aún no hay comentarios, inicia la conversación!",
"More comments …":"Más comentarios ...",
"Save":"Guardar",
"Allowed characters {count} of {max}":"Caracteres permitidos {count} de {max}",
"Error occurred while retrieving comment with id {id}":"Se presentó un error al recuperar el comentario con Id {id}",
"Error occurred while updating comment with id {id}":"Se presentó un error al actualizar el comentario con Id {id}",
"Error occurred while posting comment":"Se presentó un error al publicar el comentario",
"_%n unread comment_::_%n unread comments_":["%n comentarios sin leer","%n comentarios sin leer"],
"Comment":"Comentario",
"You commented":"Comentaste",
"%1$s commented":"%1$s comentó",
"{author} commented":"{author} comentó",
"You commented on %1$s":"Usted comentó en %1$s",
"You commented on {file}":"Hiciste un comentario de {file}",
"%1$s commented on %2$s":"%1$s comentó en %2$s",
"{author} commented on {file}":"{author} comentó en {file}",
"<strong>Comments</strong> for files":"<strong>Comentarios</strong> de los archivos",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Te mencionaron en \"%s\", en un comentario de un usuario que ya ha sido borrado",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Te mencionaron en \"{file}\", en un comentario de un usuario que ya ha sido borrado",
"%1$s mentioned you in a comment on “%2$s”":"%1$s te mencionó en un comentario en “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user} te mencionó en un comentario en “{file}”",
"Unknown user":"Usuario desconocido",
"A (now) deleted user mentioned you in a comment on “%s”":"Un usuario (ahora) borrado te mencionó en un commentario en “%s”",
"A (now) deleted user mentioned you in a comment on “{file}”":"Un usuario (ahora) borrado te mencionó en un commentario en “{file}”"
"You commented on %1$s":"Sa kommmenteerisid %1$s",
"You commented on {file}":"Sa kommenteerisid faili {file}",
"%1$s commented on %2$s":"%1$s kommenteeris %2$s",
"{author} commented on {file}":"{author} kommenteeris faili {file}",
"<strong>Comments</strong> for files":"<strong>Kommentaarid</strong> failidele",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Sind mainiti \"%s\", kommentaaris kasutataja poolt, mis on praeguseks kustutatud",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Sind mainiti \"{file}\", kommentaaris kasutataja poolt, mis on praeguseks kustutatud",
"%1$s mentioned you in a comment on “%2$s”":"%1$s mainis sind \"%2$s\" kommentaaris",
"{user} mentioned you in a comment on “{file}”":"{user} mainis sind faili “{file}” kommentaaris",
"Unknown user":"Tundmatu kasutaja",
"A (now) deleted user mentioned you in a comment on “%s”":"Kustutatud kasutaja mainis sind \"%s\" kommentaaris",
"A (now) deleted user mentioned you in a comment on “{file}”":"Kustutatud kasutaja mainis sind faili \"{file}\" kommentaaris"
"You commented on %1$s":"Sa kommmenteerisid %1$s",
"You commented on {file}":"Sa kommenteerisid faili {file}",
"%1$s commented on %2$s":"%1$s kommenteeris %2$s",
"{author} commented on {file}":"{author} kommenteeris faili {file}",
"<strong>Comments</strong> for files":"<strong>Kommentaarid</strong> failidele",
"You were mentioned on “%s”, in a comment by a user that has since been deleted":"Sind mainiti \"%s\", kommentaaris kasutataja poolt, mis on praeguseks kustutatud",
"You were mentioned on “{file}”, in a comment by a user that has since been deleted":"Sind mainiti \"{file}\", kommentaaris kasutataja poolt, mis on praeguseks kustutatud",
"%1$s mentioned you in a comment on “%2$s”":"%1$s mainis sind \"%2$s\" kommentaaris",
"{user} mentioned you in a comment on “{file}”":"{user} mainis sind faili “{file}” kommentaaris",
"Unknown user":"Tundmatu kasutaja",
"A (now) deleted user mentioned you in a comment on “%s”":"Kustutatud kasutaja mainis sind \"%s\" kommentaaris",
"A (now) deleted user mentioned you in a comment on “{file}”":"Kustutatud kasutaja mainis sind faili \"{file}\" kommentaaris"
"You commented on {file}":"{file}-en Iruzkin duzu",
"%1$s commented on %2$s":"%1$s %2$s-en iruzkin du",
"{author} commented on {file}":"{author}-(e)k {file}-en iruzkin du",
"<strong>Comments</strong> for files":"Fitxategientzako <strong>iruzkinak",
"%1$s mentioned you in a comment on “%2$s”":"%1$s-(e)k aipatu zaitu iruzkinean “%2$s”",
"{user} mentioned you in a comment on “{file}”":"{user}-(e)k aipatu zaitu iruzkinean “{file}”",
"Unknown user":"Erabiltzaile ezezaguna",
"A (now) deleted user mentioned you in a comment on “%s”":"(Orain) ezabatutako erabiltzaile batek aipatu zaitu iruzkinean \"%s\"",
"A (now) deleted user mentioned you in a comment on “{file}”":"(Orain) ezabatutako erabiltzaile batek aipatu zaitu iruzkinean “{file}”"
},
"nplurals=2; plural=(n != 1);");
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.