diff options
1251 files changed, 15053 insertions, 1251 deletions
diff --git a/.jshintrc b/.jshintrc index 0b055afde3d..19ce0606297 100644 --- a/.jshintrc +++ b/.jshintrc @@ -28,7 +28,10 @@ "_": true, "OC": true, "OCA": true, + "OCP": true, "t": true, - "n": true + "n": true, + "escapeHTML": true, + "Promise": true } } @@ -100,6 +100,7 @@ derkostka <sebastian.kostka@gmail.com> Diederik de Haas <diederik@cknow.org> Dominik Schmidt <dev@dominik-schmidt.de> Donald Buczek <buczek@molgen.mpg.de> +Donquixote <marjunebatac@gmail.com> Donquixote <marjunebatac@gmailcom> Doug Neiner <doug@pixelgraphics.us> drarko <drarko@users.noreply.github.com> dratini0 <dratini0@gmail.com> @@ -140,12 +141,13 @@ ganomi <ganomi@gmail.com> Gaël Beaudoin <gaboo@home.gaboo.org> geez0x1 <geez0x1@users.noreply.github.com> gekmihesg <markus@gekmihesg.de> -Georg Ehrke <georg@owncloud.com> Georg Ehrke <dev@georgswebsite.de> -Georg Ehrke <georg@owncloud.com> Georg Ehrke <developer@georgehrke.com> -Georg Ehrke <georg@owncloud.com> Georg Ehrke <georg.stefan.germany@googlemail.com> -Georg Ehrke <georg@owncloud.com> Georg Ehrke <ownclouddev@georgswebsite.de> -Georg Ehrke <georg@owncloud.com> Georg Ehrke <devgeorg@ownCloud.com> -Georg Ehrke <georg@owncloud.com> Georg Ehrke <georg@ownCloud.com> +Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <dev@georgswebsite.de> +Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <developer@georgehrke.com> +Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <georg.stefan.germany@googlemail.com> +Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <ownclouddev@georgswebsite.de> +Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <devgeorg@ownCloud.com> +Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <georg@ownCloud.com> +Georg Ehrke <oc.list@georgehrke.com> Georg Ehrke <georg@owncloud.com> Golnaz Nilieh <g382nilieh@gmail.com> Grundik <grundik@ololo.cc> Guillaume AMAT <guillaume.amat@informatique-libre.com> @@ -315,6 +317,7 @@ Robin McCorkell <robin@mccorkell.me.uk> Robin McCorkell <rmccorkell@owncloud.com Rodrigo Hjort <rodrigo.hjort@gmail.com> Roeland Jago Douma <roeland@famdouma.nl> Roeland Jago Douma <rullzer@owncloud.com> Roeland Jago Douma <roeland@famdouma.nl> Roeland Douma <rullzer@users.noreply.github.com> +Roger Szabo <roger.szabo@web.de> root <roger.szabo@web.de> rok <brejktru@gmail.com> Roland Hager <roland.hager@tu-berlin.de> Roland van Laar <roland@micite.net> @@ -400,6 +403,7 @@ Victor Dubiniuk <dubiniuk@owncloud.com> VicDeo <victor.dubiniuk@gmail.com> Vincent Cloutier <vincent1cloutier@gmail.com> Vincent Petry <pvince81@owncloud.com> Vincent Petry <PVince81@yahoo.fr> Vincent Petry <pvince81@owncloud.com> Vincent Petry <vincent@vvortex.site> +Vinicius Cubas Brand <vinicius@eita.org.br> Vinicius Cubas Brand <viniciuscb@gmail.com> Vitaly Kuznetsov <vitty@altlinux.ru> Vladimir Sapronov <vladimir.sapronov@gmail.com> Volkan Gezer <volkangezer@gmail.com> Volkan Gezer <wakeup@users.noreply.github.com> @@ -1,16 +1,24 @@ Nextcloud is written by: + - 1 Man Projects <reed@1manprojects.de> - AW-UC <git@a-wesemann.de> - Aaron Wood <aaronjwood@gmail.com> - Achim Königs <garfonso@tratschtante.de> - Adam Williamson <awilliam@redhat.com> - - Administrator <Administrator@WINDOWS-2012> + - Administrator "Administrator@WINDOWS-2012" - Aldo "xoen" Giambelluca <xoen@xoen.org> - Alex Weirig <alex.weirig@technolink.lu> - Alexander Bergolth <leo@strike.wu.ac.at> + - Allan Nordhøy <epost@anotheragency.no> - Andreas Fischer <bantu@owncloud.com> + - Andreas Pflug <dev@admin4.org> - Andrew Brown <andrew@casabrown.com> + - Andrius <andrius.kulbis@ktu.lt> - André Gaul <gaul@web-yard.de> + - Ardinis <Ardinis@users.noreply.github.com> + - Artem Kochnev <MrJeos@gmail.com> + - Artem Sidorenko <artem@posteo.de> - Arthur Schiwon <blizzz@arthur-schiwon.de> + - Axel Helmert <axel.helmert@luka.de> - Bart Visscher <bartv@thisnet.nl> - Bartek Przybylski <bart.p.pl@gmail.com> - Bastien Ho <bastienho@urbancube.fr> @@ -21,7 +29,9 @@ Nextcloud is written by: - Birk Borkason <daniel.niccoli@gmail.com> - Bjoern Schiessle <bjoern@schiessle.org> - Björn Schießle <bjoern@schiessle.org> + - Boris Rybalkin <ribalkin@gmail.com> - Borjan Tchakaloff <borjan@tchakaloff.fr> + - Brent Bloxam <brent.bloxam@gmail.com> - Brice Maron <brice@bmaron.net> - Byron Marohn <combustible@live.com> - Carla Schroder <carla@owncloud.com> @@ -31,41 +41,48 @@ Nextcloud is written by: - Christian Jürges <christian@eqipe.ch> - Christian Kampka <christian@kampka.net> - Christian Weiske <cweiske@cweiske.de> - - Christoph Schaefer <christophł@wolkesicher.de> + - Christoph Schaefer "christophł@wolkesicher.de" + - Christoph Wickert <cwickert@suse.de> - Christoph Wurst <christoph@owncloud.com> + - Christopher Bartz <bartz@dkrz.de> - Christopher Schäpers <kondou@ts.unde.re> - Christopher T. Johnson <ctjctj@gmail.com> - Clark Tomlinson <fallen013@gmail.com> - - Craig Morrissey <craig@owncloud.com> + - Cornelius Kölbel <cornelius.koelbel@netknights.it> + - Damjan Georgievski <gdamjan@gmail.com> - Dan Bartram <daneybartram@gmail.com> - - Daniel Hansson <enoch85@gmail.com> + - Daniel Calviño Sánchez <danxuliu@gmail.com> + - Daniel Hansson <daniel@techandme.se> - Daniel Jagszent <daniel@jagszent.de> - Daniel Molkentin <daniel@molkentin.de> - Daniel Tosello <tosello.daniel@gmail.com> - David Prévot <taffit@debian.org> - David Toledo <dtoledo@solidgear.es> + - Derek <derek.kelly27@gmail.com> - Dominik Schmidt <dev@dominik-schmidt.de> + - Donquixote <marjunebatac@gmail.com> - Fabian Henze <flyser42@gmx.de> - - Faruk Uzun <farukuzun@collabora.com> - - Felix Böhm <felixboehm@gmx.de> + - Fabrizio Steiner <fabrizio.steiner@gmail.com> + - Felix A. Epp <work@felixepp.de> + - Felix Epp <work@felixepp.de> + - Felix Heidecke <felix@heidecke.me> - Felix Moeller <mail@felixmoeller.de> - - Florian Preinstorfer <nblock@archlinux.us> - - Florian Pritz <bluewind@xinu.at> + - Felix Rupp <github@felixrupp.com> - Florin Peter <github@florin-peter.de> - - Francesco Rovelli <francesco.rovelli@gmail.com> + - Frank Isemann <frank@isemann.name> - Frank Karlitschek <frank@karlitschek.de> - François Kubler <francois@kubler.org> - Frédéric Fortier <frederic.fortier@oronospolytechnique.com> - Gadzy <dev@gadzy.fr> - - Georg Ehrke <georg@owncloud.com> - - Guillaume AMAT <guillaume.amat@informatique-libre.com> - - Hasso Tepper <hasso@zone.ee> + - Georg Ehrke <oc.list@georgehrke.com> + - Hemanth Kumar Veeranki <hems.india1997@gmail.com> - Hendrik Leppelsack <hendrik@leppelsack.de> - - Hugo Gonzalez Labrador <hglavra@gmail.com> + - Ilja Neumann <ineumann@owncloud.com> - Individual IT Services <info@individual-it.net> - Jakob Sack <mail@jakobsack.de> - Jan-Christoph Borchardt <hey@jancborchardt.net> - - Jarrett <JetUni@users.noreply.github.com> + - Jan-Philipp Litza <jplitza@users.noreply.github.com> + - Jarkko Lehtoranta <devel@jlranta.com> - Jean-Louis Dupond <jean-louis@dupond.be> - Jens-Christian Fischer <jens-christian.fischer@switch.ch> - Jesús Macias <jmacias@solidgear.es> @@ -74,80 +91,121 @@ Nextcloud is written by: - Joas Schilling <coding@schilljs.com> - Johan Björk <johanimon@gmail.com> - Johannes Ernst <jernst@indiecomputing.com> + - Johannes Schlichenmaier <johannes@schlichenmaier.info> - Johannes Willnecker <johannes@willnecker.com> + - John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + - John Molakvoæ <skjnldsv@users.noreply.github.com> - Jonny007-MKD <1-23-4-5@web.de> + - Juan Pablo Villafañez <jvillafanez@solidgear.es> + - Juan Pablo Villafáñez <jvillafanez@solidgear.es> - Juan Pablo Villafáñez <jvillafanez@solidgear.es> - Julius Haertl <jus@bitgrid.net> + - Julius Härtl <jus@bitgrid.net> - Jörn Friedrich Dreyer <jfd@butonic.de> + - Jürgen Haas <juergen@paragon-es.de> + - KB7777 <k.burkowski@gmail.com> - Kamil Domanski <kdomanski@kdemail.net> + - Kawohl <john@owncloud.com> + - Kenneth Newwood <kenneth@newwood.name> - Klaas Freitag <freitag@owncloud.com> + - Knut Ahlers <knut@ahlers.me> + - Ko- <k.stoffelen@cs.ru.nl> + - Kristof Provost <github@sigsegv.be> - Lars <winnetou+github@catolic.de> - Laurens Post <Crote@users.noreply.github.com> - Laurens Post <lkpost@scept.re> - Lennart Rosam <hello@takuto.de> - Lennart Rosam <lennart.rosam@medien-systempartner.de> - - Leonardo Diez <leio10@users.noreply.github.com> + - Leon Klingele <git@leonklingele.de> + - Leon Klingele <leon@struktur.de> + - Loki3000 <github@labcms.ru> - Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it> - Lukas Reschke <lukas@statuscode.ch> - Luke Policinski <lpolicinski@gmail.com> - Lyonel Vincent <lyonel@ezix.org> + - Magnus Walbeck <mw@mwalbeck.org> - Manish Bisht <manish.bisht490@gmail.com> + - Marcel Waldvogel <marcel.waldvogel@uni-konstanz.de> + - Marin Treselj <marin@pixelipo.com> - Mario Kolling <mario.kolling@serpro.gov.br> + - Marius Blüm <marius@lineone.io> - Markus Goetz <markus@woboq.com> + - Martin <github@diemattels.at> - Martin Konrad <info@martin-konrad.net> - Martin Konrad <konrad@frib.msu.edu> - Martin Mattel <martin.mattel@diemattels.at> - Marvin Thomas Rabe <mrabe@marvinrabe.de> - Masaki Kawabata Neto <masaki.kawabata@gmail.com> + - Matthew Setter <matthew@matthewsetter.com> + - Maxence Lange <maxence@artificial-owl.com> + - Maxence Lange <maxence@nextcloud.com> + - Maxence Lange <maxence@pontapreta.net> - Michael Gapczynski <GapczynskiM@gmail.com> - Michael Göhler <somebody.here@gmx.de> - - Michael Kuhn <suraia@ikkoku.de> + - Michael Jobst <mjobst+github@tecratech.de> + - Michael Letzgus <www@chronos.michael-letzgus.de> - Michael Roitzsch <reactorcontrol@icloud.com> - Michael Roth <michael.roth@rz.uni-augsburg.de> - Michael U <mdusher@users.noreply.github.com> - Miguel Prokop <miguel.prokop@vtu.com> + - Miha Frangez <miha.frangez@gmail.com> - Mitar <mitar.git@tnode.com> - Morris Jobke <hey@morrisjobke.de> - Nicolai Ehemann <en@enlightened.de> - Nicolas Grekas <nicolas.grekas@gmail.com> + - Nils <git@to.nilsschnabel.de> - Nmz <nemesiz@nmz.lt> - - Normal Ra <normalraw@gmail.com> + - Noveen Sachdeva <noveen.sachdeva@research.iiit.ac.in> - Oliver Gasser <oliver.gasser@gmail.com> - Oliver Kohl D.Sc. <oliver@kohl.bz> + - Olivier Mehani <shtrom@ssji.net> - Olivier Paroz <github@oparoz.com> - - Otto Sabart <ottosabart@seberm.com> - Owen Winkler <a_github@midnightcircus.com> - Pascal de Bruijn <pmjdebruijn@pcode.nl> + - Patrick Paysant <patrick.paysant@linagora.com> - Patrick Paysant <ppaysant@linagora.com> + - Patrik Kernstock <info@pkern.at> + - Pauli Järvinen <pauli.jarvinen@gmail.com> - Pellaeon Lin <nfsmwlin@gmail.com> - Petr Svoboda <weits666@gmail.com> - Phiber2000 <phiber2000@gmx.de> - Phil Davis <phil.davis@inf.org> - Philipp Kapfer <philipp.kapfer@gmx.at> + - Philipp Schaffrath <github@philipp.schaffrath.email> - Philippe Jung <phil.jung@free.fr> - - Pierre Jochem <pierrejochem@msn.com> - Pierre Ozoux <pierre@ozoux.net> + - Pierre Rudloff <contact@rudloff.pro> - Piotr Filiciak <piotr@filiciak.pl> + - Piotr M <mrow4a@yahoo.com> + - Piotr Mrowczynski <mrow4a@yahoo.com> + - Piotr Mrówczyński <mrow4a@yahoo.com> - Qingping Hou <dave2008713@gmail.com> - - Raghu Nayyar <hey@raghunayyar.com> - Raghu Nayyar <me@iraghu.com> - Ralph Krimmel <rkrimme1@gwdg.de> - Ramiro Aparicio <rapariciog@gmail.com> - Randolph Carter <RandolphCarter@fantasymail.de> - RealRancor <Fisch.666@gmx.de> + - RealRancor <fisch.666@gmx.de> + - Rello <Rello@users.noreply.github.com> - Remco Brenninkmeijer <requist1@starmail.nl> - Renaud Fortier <Renaud.Fortier@fsaa.ulaval.ca> + - Robert Scheck <robert@fedoraproject.org> - Robin Appelman <robin@icewind.nl> - Robin McCorkell <robin@mccorkell.me.uk> - Roeland Jago Douma <roeland@famdouma.nl> - - Roman Geber <rgeber@owncloudapps.com> + - Roger Szabo <roger.szabo@web.de> - Roman Kreisel <mail@romankreisel.de> - Ross Nicoll <jrn@jrn.me.uk> - SA <stephen@mthosting.net> - Sam Tuke <mail@samtuke.com> - Sander <brantje@gmail.com> + - Sander Ruitenbeek <sander@grids.be> + - Sandro Lutz <sandro.lutz@temparus.ch> + - Sascha Sambale <mastixmc@gmail.com> - Sean Comeau <sean@ftlnetworks.ca> - Sebastian Döll <sebastian.doell@libasys.de> + - Sebastian Wessalowski <sebastian@wessalowski.org> + - Semih Serhat Karakaya <karakayasemi@itu.edu.tr> - Senorsen <senorsen.zhang@gmail.com> - Serge Martin <edb@sigluy.net> - Sergio Bertolin <sbertolin@solidgear.es> @@ -156,64 +214,83 @@ Nextcloud is written by: - Sjors van der Pluijm <sjors@desjors.nl> - Stefan Herbrechtsmeier <stefan@herbrechtsmeier.net> - Stefan Rado <owncloud@sradonia.net> + - Stefan Schneider <stefan.schneider@squareweave.com.au> - Stefan Weil <sw@weilnetz.de> - Steffen Lindner <mail@steffen-lindner.de> + - Stephan Müller <mail@stephanmueller.eu> - Stephan Peijnik <speijnik@anexia-it.com> - - TheSFReader <TheSFReader@gmail.com> + - Steven Bühner <buehner@me.com> + - Sujith H <sharidasan@owncloud.com> - Thibaut GRIDEL <tgridel@free.fr> - Thomas Citharel <tcit@tcit.fr> + - Thomas Ebert <thomas.ebert@usability.de> - Thomas Müller <thomas.mueller@tmit.eu> - Thomas Pulzer <t.pulzer@kniel.de> - Thomas Tanghus <thomas@tanghus.net> - Tigran Mkrtchyan <tigran.mkrtchyan@desy.de> - Tim Dettrick <t.dettrick@uq.edu.au> - Tobia De Koninck <tobia@ledfan.be> + - Tobias Brunner <tobias@tobru.ch> - Tobias Kaminsky <tobias@kaminsky.me> - Tom Needham <tom@owncloud.com> - Torben Dannhauer <torben@dannhauer.de> + - Ujjwal Bhardwaj <ujjwalb1996@gmail.com> - Victor Dubiniuk <dubiniuk@owncloud.com> - Viktor Szépe <viktor@szepe.net> - Vincent Chan <plus.vincchan@gmail.com> - Vincent Cloutier <vincent1cloutier@gmail.com> - Vincent Petry <pvince81@owncloud.com> + - Vinicius Cubas Brand <vinicius@eita.org.br> - Volkan Gezer <volkangezer@gmail.com> + - William Pain <pain.william@gmail.com> + - Xuanwo <xuanwo@yunify.com> - adrien <adrien.waksberg@believedigital.com> - alexweirig <alex.weirig@technolink.lu> + - bline <scottbeck@gmail.com> - brumsel <brumsel@losecatcher.de> - cetra3 <peter@parashift.com.au> - cmeh <cmeh@users.noreply.github.com> - - dampfklon <me@dampfklon.de> + - coderkun <olli@coderkun.de> + - dartcafe <github@dartcafe.de> - davidgumberg <davidnoizgumberg@gmail.com> - davitol <dtoledo@solidgear.es> - derkostka <sebastian.kostka@gmail.com> + - duritong <peter.meier+github@immerda.ch> - eduardo <eduardo@vnexu.net> - fabian <fabian@web2.0-apps.de> - felixboehm <felix@webhippie.de> - - goodkiller <markopraakli@gmail.com> - helix84 <helix84@centrum.sk> - hkjolhede <hkjolhede@gmail.com> + - iamfool <praveenraonp@gmail.com> - ideaship <ideaship@users.noreply.github.com> - j-ed <juergen@eisfair.org> - jknockaert <jasper@knockaert.nl> - josh4trunks <joshruehlig@gmail.com> + - justin-sleep <justin@quarterfull.com> - karakayasemi <karakayasemi@itu.edu.tr> - macjohnny <estebanmarin@gmx.ch> - martin-rueegg <martin.rueegg@metaworx.ch> - martin.mattel@diemattels.at <martin.mattel@diemattels.at> - michag86 <micha_g@arcor.de> - mmccarn <mmccarn-github@mmsionline.us> + - nhirokinet <nhirokinet@nhiroki.net> - nishiki <nishiki@yaegashi.fr> + - noveens <noveen.sachdeva@research.iiit.ac.in> - oparoz <owncloud@interfasys.ch> - - root <root@oc.(none)> + - phisch <git@philippschaffrath.de> + - rakekniven <mark.ziegler@rakekniven.de> + - root "root@oc.(none)" + - root <root@localhost.localdomain> - scambra <sergio@entrecables.com> - scolebrook <scolebrook@mac.com> - shkdee <louis.traynard@m4x.org> - sualko <klaus@jsxc.org> - tbartenstein <tbartenstein@users.noreply.github.com> - tbelau666 <thomas.belau@gmx.de> - - unclejamal3000 <andreas.pramhaas@posteo.de> + - tux-rampage <tux-rampage@users.noreply.github.com> - v1r0x <vinzenz.rosenkranz@gmail.com> - - voxsim <Simon Vocella> + - vkuimov "vkuimov@nextcloud" + - voxsim "Simon Vocella" With help from many libraries and frameworks including: Open Collaboration Services diff --git a/apps/admin_audit/appinfo/app.php b/apps/admin_audit/appinfo/app.php index fef5b9ef02b..6959c6afa76 100644 --- a/apps/admin_audit/appinfo/app.php +++ b/apps/admin_audit/appinfo/app.php @@ -3,7 +3,7 @@ * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org> * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * - * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/admin_audit/lib/Actions/Action.php b/apps/admin_audit/lib/Actions/Action.php index d9257b53fd5..9ca85363250 100644 --- a/apps/admin_audit/lib/Actions/Action.php +++ b/apps/admin_audit/lib/Actions/Action.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/admin_audit/lib/Actions/Auth.php b/apps/admin_audit/lib/Actions/Auth.php index a6a37409b96..7a2a3b42e15 100644 --- a/apps/admin_audit/lib/Actions/Auth.php +++ b/apps/admin_audit/lib/Actions/Auth.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/admin_audit/lib/Actions/Files.php b/apps/admin_audit/lib/Actions/Files.php index 2f8626497cb..e2d60c448db 100644 --- a/apps/admin_audit/lib/Actions/Files.php +++ b/apps/admin_audit/lib/Actions/Files.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/admin_audit/lib/Actions/GroupManagement.php b/apps/admin_audit/lib/Actions/GroupManagement.php index 07d65ec0687..6872ed2894c 100644 --- a/apps/admin_audit/lib/Actions/GroupManagement.php +++ b/apps/admin_audit/lib/Actions/GroupManagement.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org> * * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Roger Szabo <roger.szabo@web.de> * diff --git a/apps/admin_audit/lib/Actions/Sharing.php b/apps/admin_audit/lib/Actions/Sharing.php index 48e8121f8b0..689ec44f6c4 100644 --- a/apps/admin_audit/lib/Actions/Sharing.php +++ b/apps/admin_audit/lib/Actions/Sharing.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/admin_audit/lib/Actions/Trashbin.php b/apps/admin_audit/lib/Actions/Trashbin.php index 27830345b6c..c2b88589ab8 100644 --- a/apps/admin_audit/lib/Actions/Trashbin.php +++ b/apps/admin_audit/lib/Actions/Trashbin.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org> * * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/admin_audit/lib/Actions/UserManagement.php b/apps/admin_audit/lib/Actions/UserManagement.php index 6cb70fad50c..9d0b237e303 100644 --- a/apps/admin_audit/lib/Actions/UserManagement.php +++ b/apps/admin_audit/lib/Actions/UserManagement.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/admin_audit/lib/Actions/Versions.php b/apps/admin_audit/lib/Actions/Versions.php index 9c8a1c81326..5d26dcc3d77 100644 --- a/apps/admin_audit/lib/Actions/Versions.php +++ b/apps/admin_audit/lib/Actions/Versions.php @@ -3,6 +3,7 @@ * @copyright Bjoern Schiessle <bjoern@schiessle.org> * * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/admin_audit/lib/AppInfo/Application.php b/apps/admin_audit/lib/AppInfo/Application.php index 2748efc56ff..d3ae4ad26c1 100644 --- a/apps/admin_audit/lib/AppInfo/Application.php +++ b/apps/admin_audit/lib/AppInfo/Application.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/comments/appinfo/app.php b/apps/comments/appinfo/app.php index f6e022e8179..e6974111811 100644 --- a/apps/comments/appinfo/app.php +++ b/apps/comments/appinfo/app.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/comments/appinfo/routes.php b/apps/comments/appinfo/routes.php index 66b3abe61be..37d3496c4ed 100644 --- a/apps/comments/appinfo/routes.php +++ b/apps/comments/appinfo/routes.php @@ -1,9 +1,10 @@ <?php - /** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * - * @copyright Copyright (c) 2016, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/comments/l10n/es_EC.js b/apps/comments/l10n/es_EC.js new file mode 100644 index 00000000000..e291a497795 --- /dev/null +++ b/apps/comments/l10n/es_EC.js @@ -0,0 +1,34 @@ +OC.L10N.register( + "comments", + { + "Comments" : "Comentarios", + "Unknown user" : "Usuario desconocido", + "New comment …" : "Comentario nuevo ...", + "Delete comment" : "Borrar comentario", + "Post" : "Publicar", + "Cancel" : "Cancelar", + "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 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", + "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}”", + "%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}”" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/comments/l10n/es_EC.json b/apps/comments/l10n/es_EC.json new file mode 100644 index 00000000000..1a9e2231489 --- /dev/null +++ b/apps/comments/l10n/es_EC.json @@ -0,0 +1,32 @@ +{ "translations": { + "Comments" : "Comentarios", + "Unknown user" : "Usuario desconocido", + "New comment …" : "Comentario nuevo ...", + "Delete comment" : "Borrar comentario", + "Post" : "Publicar", + "Cancel" : "Cancelar", + "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 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", + "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}”", + "%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}”" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/comments/l10n/ka_GE.js b/apps/comments/l10n/ka_GE.js index 6eb6c73569b..69b8f03d7b8 100644 --- a/apps/comments/l10n/ka_GE.js +++ b/apps/comments/l10n/ka_GE.js @@ -1,7 +1,34 @@ OC.L10N.register( "comments", { + "Comments" : "კომენტარები", + "Unknown user" : "უცნობი მომხმარებელი", + "New comment …" : "ახალი კომენტარი ...", + "Delete comment" : "კომენტარის გაუქმება", + "Post" : "პოსტი", "Cancel" : "უარყოფა", - "Save" : "შენახვა" + "Edit comment" : "კომენტარის ცვლილება", + "[Deleted user]" : "[გაუქმებული მომხმარებელი]", + "No comments yet, start the conversation!" : "ჯერ კომენტარები არაა, დაიწყეთ საუბარი! ", + "More comments …" : "მეტი კომენტარი ...", + "Save" : "შენახვა", + "Allowed characters {count} of {max}" : "დაშვებული სიმბოლოები {count} {max}-იდან", + "Error occurred while retrieving comment with id {id}" : "კომენტარის id-ით {id}-ის მიღებისას წარმოიშვა შეცდომა", + "Error occurred while updating comment with id {id}" : "კომენტარის id-იდ {id}-ის ცვლილებისას წარმოიშვა შეცდომა", + "Error occurred while posting comment" : "კომენტარის გამოქვეყნებისას წარმოიშვა შეცდომა", + "_%n unread comment_::_%n unread comments_" : ["%n წაუკუთხავი კომენტარი"], + "Comment" : "კომენტარის დამატება", + "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}”" }, "nplurals=1; plural=0;"); diff --git a/apps/comments/l10n/ka_GE.json b/apps/comments/l10n/ka_GE.json index a70874ae50b..a9848c4e68c 100644 --- a/apps/comments/l10n/ka_GE.json +++ b/apps/comments/l10n/ka_GE.json @@ -1,5 +1,32 @@ { "translations": { + "Comments" : "კომენტარები", + "Unknown user" : "უცნობი მომხმარებელი", + "New comment …" : "ახალი კომენტარი ...", + "Delete comment" : "კომენტარის გაუქმება", + "Post" : "პოსტი", "Cancel" : "უარყოფა", - "Save" : "შენახვა" + "Edit comment" : "კომენტარის ცვლილება", + "[Deleted user]" : "[გაუქმებული მომხმარებელი]", + "No comments yet, start the conversation!" : "ჯერ კომენტარები არაა, დაიწყეთ საუბარი! ", + "More comments …" : "მეტი კომენტარი ...", + "Save" : "შენახვა", + "Allowed characters {count} of {max}" : "დაშვებული სიმბოლოები {count} {max}-იდან", + "Error occurred while retrieving comment with id {id}" : "კომენტარის id-ით {id}-ის მიღებისას წარმოიშვა შეცდომა", + "Error occurred while updating comment with id {id}" : "კომენტარის id-იდ {id}-ის ცვლილებისას წარმოიშვა შეცდომა", + "Error occurred while posting comment" : "კომენტარის გამოქვეყნებისას წარმოიშვა შეცდომა", + "_%n unread comment_::_%n unread comments_" : ["%n წაუკუთხავი კომენტარი"], + "Comment" : "კომენტარის დამატება", + "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}”" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/comments/lib/Activity/Filter.php b/apps/comments/lib/Activity/Filter.php index b9417b6b236..606d4652154 100644 --- a/apps/comments/lib/Activity/Filter.php +++ b/apps/comments/lib/Activity/Filter.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/comments/lib/Activity/Listener.php b/apps/comments/lib/Activity/Listener.php index 67f04c03b17..76af565cf15 100644 --- a/apps/comments/lib/Activity/Listener.php +++ b/apps/comments/lib/Activity/Listener.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/comments/lib/Activity/Provider.php b/apps/comments/lib/Activity/Provider.php index 41ab8ea8b8e..c21b7a9c4fd 100644 --- a/apps/comments/lib/Activity/Provider.php +++ b/apps/comments/lib/Activity/Provider.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/comments/lib/Activity/Setting.php b/apps/comments/lib/Activity/Setting.php index 110ec4a31a4..8a6bd982173 100644 --- a/apps/comments/lib/Activity/Setting.php +++ b/apps/comments/lib/Activity/Setting.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/comments/lib/AppInfo/Application.php b/apps/comments/lib/AppInfo/Application.php index a863ca506b7..e60f0cbf36b 100644 --- a/apps/comments/lib/AppInfo/Application.php +++ b/apps/comments/lib/AppInfo/Application.php @@ -1,22 +1,24 @@ <?php - /** + * + * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * * @license GNU AGPL version 3 or any later version * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE - * License as published by the Free Software Foundation; either - * version 3 of the License, or any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This library is distributed in the hope that it will be useful, + * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * - * You should have received a copy of the GNU Affero General Public - * License along with this library. If not, see <http://www.gnu.org/licenses/>. */ namespace OCA\Comments\AppInfo; diff --git a/apps/comments/lib/Controller/Notifications.php b/apps/comments/lib/Controller/Notifications.php index 9a07e2fbad7..911f19d46e1 100644 --- a/apps/comments/lib/Controller/Notifications.php +++ b/apps/comments/lib/Controller/Notifications.php @@ -1,22 +1,24 @@ <?php - /** + * + * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE - * License as published by the Free Software Foundation; either - * version 3 of the License, or any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This library is distributed in the hope that it will be useful, + * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU AFFERO GENERAL PUBLIC LICENSE for more details. + * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public - * License along with this library. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/apps/comments/lib/EventHandler.php b/apps/comments/lib/EventHandler.php index 8c20c698371..0fc6de7bf49 100644 --- a/apps/comments/lib/EventHandler.php +++ b/apps/comments/lib/EventHandler.php @@ -1,5 +1,4 @@ <?php - /** * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * diff --git a/apps/comments/lib/Notification/Listener.php b/apps/comments/lib/Notification/Listener.php index 365f93ce8dd..896b383f873 100644 --- a/apps/comments/lib/Notification/Listener.php +++ b/apps/comments/lib/Notification/Listener.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> * - * @copyright Copyright (c) 2016, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/comments/lib/Notification/Notifier.php b/apps/comments/lib/Notification/Notifier.php index 60dd85f74c5..55802c9a08d 100644 --- a/apps/comments/lib/Notification/Notifier.php +++ b/apps/comments/lib/Notification/Notifier.php @@ -1,8 +1,11 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * - * @copyright Copyright (c) 2016, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/comments/tests/Unit/AppInfo/ApplicationTest.php b/apps/comments/tests/Unit/AppInfo/ApplicationTest.php index 5adfbbcc635..6ff3bc54b0d 100644 --- a/apps/comments/tests/Unit/AppInfo/ApplicationTest.php +++ b/apps/comments/tests/Unit/AppInfo/ApplicationTest.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> * - * @copyright Copyright (c) 2016, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/comments/tests/Unit/Controller/NotificationsTest.php b/apps/comments/tests/Unit/Controller/NotificationsTest.php index 2c34971f4b7..eb29947342b 100644 --- a/apps/comments/tests/Unit/Controller/NotificationsTest.php +++ b/apps/comments/tests/Unit/Controller/NotificationsTest.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Morris Jobke <hey@morrisjobke.de> * - * @copyright Copyright (c) 2016, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/comments/tests/Unit/Notification/ListenerTest.php b/apps/comments/tests/Unit/Notification/ListenerTest.php index cbe2b633429..d6f83262f30 100644 --- a/apps/comments/tests/Unit/Notification/ListenerTest.php +++ b/apps/comments/tests/Unit/Notification/ListenerTest.php @@ -1,8 +1,11 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * - * @copyright Copyright (c) 2016, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/comments/tests/Unit/Notification/NotifierTest.php b/apps/comments/tests/Unit/Notification/NotifierTest.php index 0b08849030b..a7ada41d43a 100644 --- a/apps/comments/tests/Unit/Notification/NotifierTest.php +++ b/apps/comments/tests/Unit/Notification/NotifierTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/dav/appinfo/app.php b/apps/dav/appinfo/app.php index 0d417fd3fed..e312b48d0b8 100644 --- a/apps/dav/appinfo/app.php +++ b/apps/dav/appinfo/app.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/appinfo/v1/caldav.php b/apps/dav/appinfo/v1/caldav.php index a103f82a420..e96c3f28064 100644 --- a/apps/dav/appinfo/v1/caldav.php +++ b/apps/dav/appinfo/v1/caldav.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> @@ -87,9 +88,8 @@ $server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin()); $server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin()); if ($sendInvitations) { - $server->addPlugin(new \OCA\DAV\CalDAV\Schedule\IMipPlugin( \OC::$server->getMailer(), \OC::$server->getLogger(), new \OC\AppFramework\Utility\TimeFactory())); + $server->addPlugin(\OC::$server->query(\OCA\DAV\CalDAV\Schedule\IMipPlugin::class)); } - $server->addPlugin(new ExceptionLoggerPlugin('caldav', \OC::$server->getLogger())); // And off we go! diff --git a/apps/dav/appinfo/v1/carddav.php b/apps/dav/appinfo/v1/carddav.php index 74003f11c9b..8633b4211e1 100644 --- a/apps/dav/appinfo/v1/carddav.php +++ b/apps/dav/appinfo/v1/carddav.php @@ -3,9 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> - * @author Georg Ehrke <georg@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/appinfo/v1/webdav.php b/apps/dav/appinfo/v1/webdav.php index a47316ee939..d6dc9aa9b45 100644 --- a/apps/dav/appinfo/v1/webdav.php +++ b/apps/dav/appinfo/v1/webdav.php @@ -2,10 +2,14 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Christoph Wurst <christoph@owncloud.com> + * @author Ko- <k.stoffelen@cs.ru.nl> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/dav/appinfo/v2/remote.php b/apps/dav/appinfo/v2/remote.php index c1b29a4a177..d692d973511 100644 --- a/apps/dav/appinfo/v2/remote.php +++ b/apps/dav/appinfo/v2/remote.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Ko- <k.stoffelen@cs.ru.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/l10n/de.js b/apps/dav/l10n/de.js index 30f3ae53e02..ff33426bb77 100644 --- a/apps/dav/l10n/de.js +++ b/apps/dav/l10n/de.js @@ -41,6 +41,16 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Ein Kalender-<strong>Ereignis</strong> wurde bearbeitet", "A calendar <strong>todo</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde bearbeitet", "Contact birthdays" : "Geburtstage von Kontakten", + "Invitation canceled" : "Einladung abgebrochen", + "Hello %s," : "Hallo %s,", + "The meeting »%s« with %s was canceled." : "Der Termin »%s« mit %s wurde abgesagt.", + "Invitation updated" : "Einladung aktualisiert", + "The meeting »%s« with %s was updated." : "Der Termin »%s« mit %s wurde aktualisiert.", + "%s invited you to »%s«" : "%s hat Dich zu »%s« eingeladen", + "When:" : "Wann:", + "Where:" : "Wo:", + "Description:" : "Beschreibung:", + "Link:" : "Link:", "Contacts" : "Kontakte", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", diff --git a/apps/dav/l10n/de.json b/apps/dav/l10n/de.json index 401cab208d3..b0b4a8d9926 100644 --- a/apps/dav/l10n/de.json +++ b/apps/dav/l10n/de.json @@ -39,6 +39,16 @@ "A calendar <strong>event</strong> was modified" : "Ein Kalender-<strong>Ereignis</strong> wurde bearbeitet", "A calendar <strong>todo</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde bearbeitet", "Contact birthdays" : "Geburtstage von Kontakten", + "Invitation canceled" : "Einladung abgebrochen", + "Hello %s," : "Hallo %s,", + "The meeting »%s« with %s was canceled." : "Der Termin »%s« mit %s wurde abgesagt.", + "Invitation updated" : "Einladung aktualisiert", + "The meeting »%s« with %s was updated." : "Der Termin »%s« mit %s wurde aktualisiert.", + "%s invited you to »%s«" : "%s hat Dich zu »%s« eingeladen", + "When:" : "Wann:", + "Where:" : "Wo:", + "Description:" : "Beschreibung:", + "Link:" : "Link:", "Contacts" : "Kontakte", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", diff --git a/apps/dav/l10n/de_DE.js b/apps/dav/l10n/de_DE.js index 43b218dacc5..998b773c2a7 100644 --- a/apps/dav/l10n/de_DE.js +++ b/apps/dav/l10n/de_DE.js @@ -41,6 +41,16 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Ein Kalender-<strong>Ereignis</strong> wurde bearbeitet", "A calendar <strong>todo</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde bearbeitet", "Contact birthdays" : "Geburtstage von Kontakten", + "Invitation canceled" : "Einladung abgebrochen", + "Hello %s," : "Hallo %s,", + "The meeting »%s« with %s was canceled." : "Der Termin »%s« mit %s wurde abgesagt.", + "Invitation updated" : "Einladung aktualisiert", + "The meeting »%s« with %s was updated." : "Der Termin »%s« mit %s wurde aktualisiert.", + "%s invited you to »%s«" : "%s hat Sie zu »%s« eingeladen", + "When:" : "Wann:", + "Where:" : "Wo:", + "Description:" : "Beschreibung:", + "Link:" : "Link:", "Contacts" : "Kontakte", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", diff --git a/apps/dav/l10n/de_DE.json b/apps/dav/l10n/de_DE.json index 9de0db6d70b..b7516bee178 100644 --- a/apps/dav/l10n/de_DE.json +++ b/apps/dav/l10n/de_DE.json @@ -39,6 +39,16 @@ "A calendar <strong>event</strong> was modified" : "Ein Kalender-<strong>Ereignis</strong> wurde bearbeitet", "A calendar <strong>todo</strong> was modified" : "Eine Kalender-<strong>Aufgabe</strong> wurde bearbeitet", "Contact birthdays" : "Geburtstage von Kontakten", + "Invitation canceled" : "Einladung abgebrochen", + "Hello %s," : "Hallo %s,", + "The meeting »%s« with %s was canceled." : "Der Termin »%s« mit %s wurde abgesagt.", + "Invitation updated" : "Einladung aktualisiert", + "The meeting »%s« with %s was updated." : "Der Termin »%s« mit %s wurde aktualisiert.", + "%s invited you to »%s«" : "%s hat Sie zu »%s« eingeladen", + "When:" : "Wann:", + "Where:" : "Wo:", + "Description:" : "Beschreibung:", + "Link:" : "Link:", "Contacts" : "Kontakte", "Technical details" : "Technische Details", "Remote Address: %s" : "Entfernte Adresse: %s", diff --git a/apps/dav/l10n/en_GB.js b/apps/dav/l10n/en_GB.js index 463fe47ea69..94c9592316e 100644 --- a/apps/dav/l10n/en_GB.js +++ b/apps/dav/l10n/en_GB.js @@ -41,6 +41,16 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "A calendar <strong>event</strong> was modified", "A calendar <strong>todo</strong> was modified" : "A calendar <strong>todo</strong> was modified", "Contact birthdays" : "Contact birthdays", + "Invitation canceled" : "Invitation canceled", + "Hello %s," : "Hello %s,", + "The meeting »%s« with %s was canceled." : "The meeting »%s« with %s was canceled.", + "Invitation updated" : "Invitation updated", + "The meeting »%s« with %s was updated." : "The meeting »%s« with %s was updated.", + "%s invited you to »%s«" : "%s invited you to »%s«", + "When:" : "When:", + "Where:" : "Where:", + "Description:" : "Description:", + "Link:" : "Link:", "Contacts" : "Contacts", "Technical details" : "Technical details", "Remote Address: %s" : "Remote Address: %s", diff --git a/apps/dav/l10n/en_GB.json b/apps/dav/l10n/en_GB.json index b5319c01a49..9b6a26cf0ed 100644 --- a/apps/dav/l10n/en_GB.json +++ b/apps/dav/l10n/en_GB.json @@ -39,6 +39,16 @@ "A calendar <strong>event</strong> was modified" : "A calendar <strong>event</strong> was modified", "A calendar <strong>todo</strong> was modified" : "A calendar <strong>todo</strong> was modified", "Contact birthdays" : "Contact birthdays", + "Invitation canceled" : "Invitation canceled", + "Hello %s," : "Hello %s,", + "The meeting »%s« with %s was canceled." : "The meeting »%s« with %s was canceled.", + "Invitation updated" : "Invitation updated", + "The meeting »%s« with %s was updated." : "The meeting »%s« with %s was updated.", + "%s invited you to »%s«" : "%s invited you to »%s«", + "When:" : "When:", + "Where:" : "Where:", + "Description:" : "Description:", + "Link:" : "Link:", "Contacts" : "Contacts", "Technical details" : "Technical details", "Remote Address: %s" : "Remote Address: %s", diff --git a/apps/dav/l10n/es.js b/apps/dav/l10n/es.js index 75b5ccc8aa9..b2591b7dda9 100644 --- a/apps/dav/l10n/es.js +++ b/apps/dav/l10n/es.js @@ -41,6 +41,16 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> del calendario fue modificado.", "A calendar <strong>todo</strong> was modified" : "Una <strong>lista de tareas</strong> fue modificada", "Contact birthdays" : "Cumpleaños del contacto", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola, %s:", + "The meeting »%s« with %s was canceled." : "La reunión »%s« con %s se ha cancelado.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s se ha actualizado.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es.json b/apps/dav/l10n/es.json index 72c0aceef5e..d114b339b13 100644 --- a/apps/dav/l10n/es.json +++ b/apps/dav/l10n/es.json @@ -39,6 +39,16 @@ "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> del calendario fue modificado.", "A calendar <strong>todo</strong> was modified" : "Una <strong>lista de tareas</strong> fue modificada", "Contact birthdays" : "Cumpleaños del contacto", + "Invitation canceled" : "Invitación cancelada", + "Hello %s," : "Hola, %s:", + "The meeting »%s« with %s was canceled." : "La reunión »%s« con %s se ha cancelado.", + "Invitation updated" : "Invitación actualizada", + "The meeting »%s« with %s was updated." : "La reunión »%s« con %s se ha actualizado.", + "%s invited you to »%s«" : "%s te ha invitado a »%s«", + "When:" : "Cuándo:", + "Where:" : "Dónde:", + "Description:" : "Descripción:", + "Link:" : "Enlace:", "Contacts" : "Contactos", "Technical details" : "Detalles técnicos", "Remote Address: %s" : "Dirección remota: %s", diff --git a/apps/dav/l10n/es_EC.js b/apps/dav/l10n/es_EC.js new file mode 100644 index 00000000000..433949bf30f --- /dev/null +++ b/apps/dav/l10n/es_EC.js @@ -0,0 +1,52 @@ +OC.L10N.register( + "dav", + { + "Calendar" : "Calendario", + "Todos" : "Pendientes", + "Personal" : "Personal", + "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}", + "You created calendar {calendar}" : "Creaste el calendario {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}", + "You deleted calendar {calendar}" : "Borraste el calendario {calendar}", + "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}", + "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo", + "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo", + "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo", + "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}", + "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}", + "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}", + "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}", + "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}", + "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}", + "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}", + "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}", + "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}", + "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}", + "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado", + "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado", + "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado", + "Contact birthdays" : "Cumpleaños del contacto", + "Contacts" : "Contactos", + "Technical details" : "Detalles técnicos", + "Remote Address: %s" : "Dirección remota: %s", + "Request ID: %s" : "ID de solicitud: %s", + "CalDAV server" : "Servidor CalDAV", + "Send invitations to attendees" : "Enviar invitaciones a los asistentes", + "Please make sure to properly set up the email settings above." : "Por favor asegurarte de establecer correctamente las configuraciones de correo anteriores. " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/es_EC.json b/apps/dav/l10n/es_EC.json new file mode 100644 index 00000000000..ea72915ea47 --- /dev/null +++ b/apps/dav/l10n/es_EC.json @@ -0,0 +1,50 @@ +{ "translations": { + "Calendar" : "Calendario", + "Todos" : "Pendientes", + "Personal" : "Personal", + "{actor} created calendar {calendar}" : "{actor} creó el calendario {calendar}", + "You created calendar {calendar}" : "Creaste el calendario {calendar}", + "{actor} deleted calendar {calendar}" : "{actor} borró el calendario {calendar}", + "You deleted calendar {calendar}" : "Borraste el calendario {calendar}", + "{actor} updated calendar {calendar}" : "{actor} actualizó el calendario {calendar}", + "You updated calendar {calendar}" : "Actualizaste el calendario {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor} ha compartido el calendario {calendar} contigo", + "You shared calendar {calendar} with {user}" : "Compartiste el calendario {calendar} con {user}", + "{actor} shared calendar {calendar} with {user}" : "{actor} compartió el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from you" : "{actor} ha dejado de compartir el calendario {calendar} contigo", + "You unshared calendar {calendar} from {user}" : "Has dejado de compartir el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from {user}" : "{actor} dejó de compartir el calendario {calendar} con {user}", + "{actor} unshared calendar {calendar} from themselves" : "{actor} dejó de compartir {el calendario calendar} con él mismo", + "You shared calendar {calendar} with group {group}" : "Compartiste el calendario {calendar} con el grupo {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor} compartió el calendario {calendar} con el grupo {group}", + "You unshared calendar {calendar} from group {group}" : "Dejaste de compartir el calendario {calendar} con el grupo {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} dejó de compartir el calendrio {calendar} con el grupo {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor} creó el evento {event} en el calendario {calendar}", + "You created event {event} in calendar {calendar}" : "Creaste el evento {event} en el calendario {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor} borró el eventó {event} del calendario {calendar}", + "You deleted event {event} from calendar {calendar}" : "Borraste el evento {event} del calendario {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor} actualizó el evento {event} en el calendario {calendar}", + "You updated event {event} in calendar {calendar}" : "Actualizaste el evento {event} en el calendario {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor} creó el pendiente {todo} en la lista {calendar}", + "You created todo {todo} in list {calendar}" : "Creaste el pendiente {todo} en la lista {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor} borró el pendiente {todo} de la lista {calendar}", + "You deleted todo {todo} from list {calendar}" : "Borraste el pendiente {todo} de la lista {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor} actualizó el pendiente {todo} de la lista {calendar}", + "You updated todo {todo} in list {calendar}" : "Actualizaste el pendiente {todo} de la lista {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} resolvió el pendiente {todo} de la lista {calendar}", + "You solved todo {todo} in list {calendar}" : "Resolviste el pendiente {todo} de la lista {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor} reabrió el pendiente {todo} de la lista{calendar}", + "You reopened todo {todo} in list {calendar}" : "Reabriste el pendiente {todo} de la lista {calendar}", + "A <strong>calendar</strong> was modified" : "Un <strong>calendario</strong> fue modificado", + "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> de un calendario fue modificado", + "A calendar <strong>todo</strong> was modified" : "Un <strong>pendiente</strong> de un calendario fue modificado", + "Contact birthdays" : "Cumpleaños del contacto", + "Contacts" : "Contactos", + "Technical details" : "Detalles técnicos", + "Remote Address: %s" : "Dirección remota: %s", + "Request ID: %s" : "ID de solicitud: %s", + "CalDAV server" : "Servidor CalDAV", + "Send invitations to attendees" : "Enviar invitaciones a los asistentes", + "Please make sure to properly set up the email settings above." : "Por favor asegurarte de establecer correctamente las configuraciones de correo anteriores. " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/dav/l10n/fr.js b/apps/dav/l10n/fr.js index 92ab671cd16..4b52f383950 100644 --- a/apps/dav/l10n/fr.js +++ b/apps/dav/l10n/fr.js @@ -41,6 +41,13 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Un <strong>événement</strong> de l'agenda a été modifié", "A calendar <strong>todo</strong> was modified" : "Une <strong>liste de tâches</strong> de l'agenda a été modifiée", "Contact birthdays" : "Anniversaires des contacts", + "Invitation canceled" : "Invitation annulée", + "Hello %s," : "Bonjour %s,", + "Invitation updated" : "Invitation mise à jour", + "When:" : "Quand :", + "Where:" : "Où :", + "Description:" : "Description :", + "Link:" : "Lien :", "Contacts" : "Contacts", "Technical details" : "Détails techniques", "Remote Address: %s" : "Adresse distante : %s", diff --git a/apps/dav/l10n/fr.json b/apps/dav/l10n/fr.json index 65eba3c9eae..6c59bcd537f 100644 --- a/apps/dav/l10n/fr.json +++ b/apps/dav/l10n/fr.json @@ -39,6 +39,13 @@ "A calendar <strong>event</strong> was modified" : "Un <strong>événement</strong> de l'agenda a été modifié", "A calendar <strong>todo</strong> was modified" : "Une <strong>liste de tâches</strong> de l'agenda a été modifiée", "Contact birthdays" : "Anniversaires des contacts", + "Invitation canceled" : "Invitation annulée", + "Hello %s," : "Bonjour %s,", + "Invitation updated" : "Invitation mise à jour", + "When:" : "Quand :", + "Where:" : "Où :", + "Description:" : "Description :", + "Link:" : "Lien :", "Contacts" : "Contacts", "Technical details" : "Détails techniques", "Remote Address: %s" : "Adresse distante : %s", diff --git a/apps/dav/l10n/it.js b/apps/dav/l10n/it.js index ae8ea0a1f50..774f4f3f3ad 100644 --- a/apps/dav/l10n/it.js +++ b/apps/dav/l10n/it.js @@ -41,6 +41,16 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> del calendario è stato modificato", "A calendar <strong>todo</strong> was modified" : "Una <strong>cosa da fare</strong> del calendario è stata modificata", "Contact birthdays" : "Date di nascita dei contatti", + "Invitation canceled" : "Invito annullato", + "Hello %s," : "Ciao %s,", + "The meeting »%s« with %s was canceled." : "L'incontro «%s» con %s è stato annullato.", + "Invitation updated" : "Invito aggiornato", + "The meeting »%s« with %s was updated." : "L'incontro «%s» con %s è stato aggiornato.", + "%s invited you to »%s«" : "%s ti ha invitato a «%s»", + "When:" : "Quando:", + "Where:" : "Dove:", + "Description:" : "Descrizione:", + "Link:" : "Collegamento:", "Contacts" : "Contatti", "Technical details" : "Dettagli tecnici", "Remote Address: %s" : "Indirizzo remoto: %s", diff --git a/apps/dav/l10n/it.json b/apps/dav/l10n/it.json index 600ace4f2e4..d97311464cf 100644 --- a/apps/dav/l10n/it.json +++ b/apps/dav/l10n/it.json @@ -39,6 +39,16 @@ "A calendar <strong>event</strong> was modified" : "Un <strong>evento</strong> del calendario è stato modificato", "A calendar <strong>todo</strong> was modified" : "Una <strong>cosa da fare</strong> del calendario è stata modificata", "Contact birthdays" : "Date di nascita dei contatti", + "Invitation canceled" : "Invito annullato", + "Hello %s," : "Ciao %s,", + "The meeting »%s« with %s was canceled." : "L'incontro «%s» con %s è stato annullato.", + "Invitation updated" : "Invito aggiornato", + "The meeting »%s« with %s was updated." : "L'incontro «%s» con %s è stato aggiornato.", + "%s invited you to »%s«" : "%s ti ha invitato a «%s»", + "When:" : "Quando:", + "Where:" : "Dove:", + "Description:" : "Descrizione:", + "Link:" : "Collegamento:", "Contacts" : "Contatti", "Technical details" : "Dettagli tecnici", "Remote Address: %s" : "Indirizzo remoto: %s", diff --git a/apps/dav/l10n/ka_GE.js b/apps/dav/l10n/ka_GE.js new file mode 100644 index 00000000000..2093bb43659 --- /dev/null +++ b/apps/dav/l10n/ka_GE.js @@ -0,0 +1,62 @@ +OC.L10N.register( + "dav", + { + "Calendar" : "კალენდარი", + "Todos" : "შესასრულებელი დავალებები", + "Personal" : "პირადი", + "{actor} created calendar {calendar}" : "{actor}-მა შექმნა კალენდარი {calendar}", + "You created calendar {calendar}" : "თქვენ შექმენით {calendar}", + "{actor} deleted calendar {calendar}" : "{actor}-მა გააუქმა კალენდარი {calendar}", + "You deleted calendar {calendar}" : "თქვენ გააუქმეთ კალენდარი {calendar}", + "{actor} updated calendar {calendar}" : "{actor}-მა განაახლა კალენდარი {calendar}", + "You updated calendar {calendar}" : "თქვენ განაახლეთ კალენდარი {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor}-მა თქვენთან გააზიარა კალენდარი {calendar}", + "You shared calendar {calendar} with {user}" : "თქვენ გააზიარეთ კალენდარი {calendar} {user}-თან", + "{actor} shared calendar {calendar} with {user}" : "{actor}-მა გააზიარა {calendar} {user}-თან", + "{actor} unshared calendar {calendar} from you" : "{actor} თქვენთან შეწყვიტა კალენდრის {calendar}-ის გაზიარება", + "You unshared calendar {calendar} from {user}" : "თქვენ შეწყვიტეთ კალენდრის {calendar} გაზიარება {user}-თან", + "{actor} unshared calendar {calendar} from {user}" : "{actor}-მა შეწყვიტა კალენდრის {calendar} გაზიარება {user}-თან", + "{actor} unshared calendar {calendar} from themselves" : "{actor}-მა შეწყვიტა კალენდრის {calendar} გაზიარება", + "You shared calendar {calendar} with group {group}" : "თქვენ გააზიარეთ კალენდარი {calendar} ჯგუფთან {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor}-მა გააზიარა {calendar} ჯგუფთან {group}", + "You unshared calendar {calendar} from group {group}" : "თქვენ შეწყვიტეთ კალენდრის {calendar} გაზიარება ჯგუფთან {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} შეწყვიტა კალენდრის გაზიარება {calendar} ჯგუფთან {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor}-მა შექმნა მოვლენა {event} კალენდარში {calendar}", + "You created event {event} in calendar {calendar}" : "თქვენ შექმენით მოვლენა {event} კალენდარში {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor}-მა გააუქმა მოვლენა {event} კალენდარში {calendar}", + "You deleted event {event} from calendar {calendar}" : "თქვენ გააუქმეთ მოვლენა {event} კალენდარში {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor}-მა განაახლა მოვლენა {event} კალენდარში {calendar}", + "You updated event {event} in calendar {calendar}" : "თქვენ განაახლეთ მოვლენა {event} კალენდარში {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor}-მა შექმნა შესასრულებელი დავალება {todo} სიაში {calendar}", + "You created todo {todo} in list {calendar}" : "თქვენ შექმენით შესასრულებელი დავალება {todo} სიაში {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor}-მა გააუქმა შესასრულებელი დავალება {todo} სიიდან {calendar}", + "You deleted todo {todo} from list {calendar}" : "თქვენ გააუქმეთ შესასრულებელი დავალება {todo} სიიდან {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor}-მა განაახლა შესასრულებელი დავალება {todo} სიაში {calendar}", + "You updated todo {todo} in list {calendar}" : "თქვენ განაახლეთ შესასრულებელი დავალება {todo} in list {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} დაასრულა შესასრულებელი დავალება {todo} სიაში {calendar}", + "You solved todo {todo} in list {calendar}" : "თქვენ დაასრულეთ შესასრულებელი დავალება {todo} სიაში {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor}-მა ხელახლა გახსნა შესასრულებელი დავალება {todo} სიაში {calendar}", + "You reopened todo {todo} in list {calendar}" : "თქვენ ხელახლა გახსენით შესასრულებელი დავალება {todo} სიაში {calendar}", + "A <strong>calendar</strong> was modified" : "<strong>კალენდარი</strong> შეიცვალა", + "A calendar <strong>event</strong> was modified" : "კალენდრის <strong>მოვლენა</strong> შეიცვალა", + "A calendar <strong>todo</strong> was modified" : "კალენდრის <strong>შესასრულებელი დავალება</strong> შეიცვალა", + "Contact birthdays" : "კონტაქტების დაბადების დღეები", + "Invitation canceled" : "მოწვევა გაუქმდა", + "Hello %s," : "გამარჯობა %s,", + "The meeting »%s« with %s was canceled." : "შეხვედრა »%s« %s-სთან გაუქმდა.", + "Invitation updated" : "მოწვევა განახლდა", + "The meeting »%s« with %s was updated." : "შეხვედრა »%s« %s-სთან განახლდა.", + "%s invited you to »%s«" : "%s-მ დაგპატიჟათ რომ »%s«", + "When:" : "როდის:", + "Where:" : "სად:", + "Description:" : "აღწერა:", + "Link:" : "ბმულები:", + "Contacts" : "კონტაქტები", + "Technical details" : "ტექნიკური დეტალები", + "Remote Address: %s" : "დისტანციური მისამართი: %s", + "Request ID: %s" : "მოთხოვნის ID: %s", + "CalDAV server" : "CalDAV სერვერი", + "Send invitations to attendees" : "გაუგზავნეთ მოწვევა დამსწრეებს", + "Please make sure to properly set up the email settings above." : "გთხოვთ დაამოწმოთ რომ სწორად აყენებთ ზემოთ მოცემულ ელ-ფოსტის პარამეტრებს." +}, +"nplurals=1; plural=0;"); diff --git a/apps/dav/l10n/ka_GE.json b/apps/dav/l10n/ka_GE.json new file mode 100644 index 00000000000..1424d45f94c --- /dev/null +++ b/apps/dav/l10n/ka_GE.json @@ -0,0 +1,60 @@ +{ "translations": { + "Calendar" : "კალენდარი", + "Todos" : "შესასრულებელი დავალებები", + "Personal" : "პირადი", + "{actor} created calendar {calendar}" : "{actor}-მა შექმნა კალენდარი {calendar}", + "You created calendar {calendar}" : "თქვენ შექმენით {calendar}", + "{actor} deleted calendar {calendar}" : "{actor}-მა გააუქმა კალენდარი {calendar}", + "You deleted calendar {calendar}" : "თქვენ გააუქმეთ კალენდარი {calendar}", + "{actor} updated calendar {calendar}" : "{actor}-მა განაახლა კალენდარი {calendar}", + "You updated calendar {calendar}" : "თქვენ განაახლეთ კალენდარი {calendar}", + "{actor} shared calendar {calendar} with you" : "{actor}-მა თქვენთან გააზიარა კალენდარი {calendar}", + "You shared calendar {calendar} with {user}" : "თქვენ გააზიარეთ კალენდარი {calendar} {user}-თან", + "{actor} shared calendar {calendar} with {user}" : "{actor}-მა გააზიარა {calendar} {user}-თან", + "{actor} unshared calendar {calendar} from you" : "{actor} თქვენთან შეწყვიტა კალენდრის {calendar}-ის გაზიარება", + "You unshared calendar {calendar} from {user}" : "თქვენ შეწყვიტეთ კალენდრის {calendar} გაზიარება {user}-თან", + "{actor} unshared calendar {calendar} from {user}" : "{actor}-მა შეწყვიტა კალენდრის {calendar} გაზიარება {user}-თან", + "{actor} unshared calendar {calendar} from themselves" : "{actor}-მა შეწყვიტა კალენდრის {calendar} გაზიარება", + "You shared calendar {calendar} with group {group}" : "თქვენ გააზიარეთ კალენდარი {calendar} ჯგუფთან {group}", + "{actor} shared calendar {calendar} with group {group}" : "{actor}-მა გააზიარა {calendar} ჯგუფთან {group}", + "You unshared calendar {calendar} from group {group}" : "თქვენ შეწყვიტეთ კალენდრის {calendar} გაზიარება ჯგუფთან {group}", + "{actor} unshared calendar {calendar} from group {group}" : "{actor} შეწყვიტა კალენდრის გაზიარება {calendar} ჯგუფთან {group}", + "{actor} created event {event} in calendar {calendar}" : "{actor}-მა შექმნა მოვლენა {event} კალენდარში {calendar}", + "You created event {event} in calendar {calendar}" : "თქვენ შექმენით მოვლენა {event} კალენდარში {calendar}", + "{actor} deleted event {event} from calendar {calendar}" : "{actor}-მა გააუქმა მოვლენა {event} კალენდარში {calendar}", + "You deleted event {event} from calendar {calendar}" : "თქვენ გააუქმეთ მოვლენა {event} კალენდარში {calendar}", + "{actor} updated event {event} in calendar {calendar}" : "{actor}-მა განაახლა მოვლენა {event} კალენდარში {calendar}", + "You updated event {event} in calendar {calendar}" : "თქვენ განაახლეთ მოვლენა {event} კალენდარში {calendar}", + "{actor} created todo {todo} in list {calendar}" : "{actor}-მა შექმნა შესასრულებელი დავალება {todo} სიაში {calendar}", + "You created todo {todo} in list {calendar}" : "თქვენ შექმენით შესასრულებელი დავალება {todo} სიაში {calendar}", + "{actor} deleted todo {todo} from list {calendar}" : "{actor}-მა გააუქმა შესასრულებელი დავალება {todo} სიიდან {calendar}", + "You deleted todo {todo} from list {calendar}" : "თქვენ გააუქმეთ შესასრულებელი დავალება {todo} სიიდან {calendar}", + "{actor} updated todo {todo} in list {calendar}" : "{actor}-მა განაახლა შესასრულებელი დავალება {todo} სიაში {calendar}", + "You updated todo {todo} in list {calendar}" : "თქვენ განაახლეთ შესასრულებელი დავალება {todo} in list {calendar}", + "{actor} solved todo {todo} in list {calendar}" : "{actor} დაასრულა შესასრულებელი დავალება {todo} სიაში {calendar}", + "You solved todo {todo} in list {calendar}" : "თქვენ დაასრულეთ შესასრულებელი დავალება {todo} სიაში {calendar}", + "{actor} reopened todo {todo} in list {calendar}" : "{actor}-მა ხელახლა გახსნა შესასრულებელი დავალება {todo} სიაში {calendar}", + "You reopened todo {todo} in list {calendar}" : "თქვენ ხელახლა გახსენით შესასრულებელი დავალება {todo} სიაში {calendar}", + "A <strong>calendar</strong> was modified" : "<strong>კალენდარი</strong> შეიცვალა", + "A calendar <strong>event</strong> was modified" : "კალენდრის <strong>მოვლენა</strong> შეიცვალა", + "A calendar <strong>todo</strong> was modified" : "კალენდრის <strong>შესასრულებელი დავალება</strong> შეიცვალა", + "Contact birthdays" : "კონტაქტების დაბადების დღეები", + "Invitation canceled" : "მოწვევა გაუქმდა", + "Hello %s," : "გამარჯობა %s,", + "The meeting »%s« with %s was canceled." : "შეხვედრა »%s« %s-სთან გაუქმდა.", + "Invitation updated" : "მოწვევა განახლდა", + "The meeting »%s« with %s was updated." : "შეხვედრა »%s« %s-სთან განახლდა.", + "%s invited you to »%s«" : "%s-მ დაგპატიჟათ რომ »%s«", + "When:" : "როდის:", + "Where:" : "სად:", + "Description:" : "აღწერა:", + "Link:" : "ბმულები:", + "Contacts" : "კონტაქტები", + "Technical details" : "ტექნიკური დეტალები", + "Remote Address: %s" : "დისტანციური მისამართი: %s", + "Request ID: %s" : "მოთხოვნის ID: %s", + "CalDAV server" : "CalDAV სერვერი", + "Send invitations to attendees" : "გაუგზავნეთ მოწვევა დამსწრეებს", + "Please make sure to properly set up the email settings above." : "გთხოვთ დაამოწმოთ რომ სწორად აყენებთ ზემოთ მოცემულ ელ-ფოსტის პარამეტრებს." +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/apps/dav/l10n/nl.js b/apps/dav/l10n/nl.js index 094e621c926..8289d726a63 100644 --- a/apps/dav/l10n/nl.js +++ b/apps/dav/l10n/nl.js @@ -41,11 +41,22 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Een agenda <strong>gebeurtenis</strong> is aangepast", "A calendar <strong>todo</strong> was modified" : "Een agenda <strong>Te doen</strong> was aangepast", "Contact birthdays" : "Verjaardagen", + "Invitation canceled" : "Uitnodiging geannuleerd", + "Hello %s," : "Hallo %s,", + "The meeting »%s« with %s was canceled." : "De vergadering »%s« met %s is geannuleerd.", + "Invitation updated" : "Uitnodiging bijgewerkt", + "The meeting »%s« with %s was updated." : "De vergadering »%s« met %s is bijgewerkt.", + "%s invited you to »%s«" : "%s heeft je uitgenodigd voor »%s«", + "When:" : "Wanneer:", + "Where:" : "Waar:", + "Description:" : "Omschrijving:", + "Link:" : "Link:", "Contacts" : "Contactpersonen", "Technical details" : "Technische details", "Remote Address: %s" : "Extern adres: %s", "Request ID: %s" : "Aanvraag-ID: %s", "CalDAV server" : "CalDAV server", - "Send invitations to attendees" : "Verzend uitnodigingen naar deelnemers" + "Send invitations to attendees" : "Verzend uitnodigingen naar deelnemers", + "Please make sure to properly set up the email settings above." : "Zorg ervoor dat je de bovenstaande e-mailinstellingen correct instelt." }, "nplurals=2; plural=(n != 1);"); diff --git a/apps/dav/l10n/nl.json b/apps/dav/l10n/nl.json index f38a938cd2d..7c96d226dd6 100644 --- a/apps/dav/l10n/nl.json +++ b/apps/dav/l10n/nl.json @@ -39,11 +39,22 @@ "A calendar <strong>event</strong> was modified" : "Een agenda <strong>gebeurtenis</strong> is aangepast", "A calendar <strong>todo</strong> was modified" : "Een agenda <strong>Te doen</strong> was aangepast", "Contact birthdays" : "Verjaardagen", + "Invitation canceled" : "Uitnodiging geannuleerd", + "Hello %s," : "Hallo %s,", + "The meeting »%s« with %s was canceled." : "De vergadering »%s« met %s is geannuleerd.", + "Invitation updated" : "Uitnodiging bijgewerkt", + "The meeting »%s« with %s was updated." : "De vergadering »%s« met %s is bijgewerkt.", + "%s invited you to »%s«" : "%s heeft je uitgenodigd voor »%s«", + "When:" : "Wanneer:", + "Where:" : "Waar:", + "Description:" : "Omschrijving:", + "Link:" : "Link:", "Contacts" : "Contactpersonen", "Technical details" : "Technische details", "Remote Address: %s" : "Extern adres: %s", "Request ID: %s" : "Aanvraag-ID: %s", "CalDAV server" : "CalDAV server", - "Send invitations to attendees" : "Verzend uitnodigingen naar deelnemers" + "Send invitations to attendees" : "Verzend uitnodigingen naar deelnemers", + "Please make sure to properly set up the email settings above." : "Zorg ervoor dat je de bovenstaande e-mailinstellingen correct instelt." },"pluralForm" :"nplurals=2; plural=(n != 1);" }
\ No newline at end of file diff --git a/apps/dav/l10n/pt_BR.js b/apps/dav/l10n/pt_BR.js index 6d2745c12d5..1737fd663e6 100644 --- a/apps/dav/l10n/pt_BR.js +++ b/apps/dav/l10n/pt_BR.js @@ -41,6 +41,16 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Um <strong>evento</strong> do calendário foi modificado", "A calendar <strong>todo</strong> was modified" : "Uma <strong>tarefa</strong> do calendário foi modificada", "Contact birthdays" : "Aniversário dos contatos", + "Invitation canceled" : "Convite cancelado", + "Hello %s," : "Olá %s,", + "The meeting »%s« with %s was canceled." : "A reunião »%s« com %s foi cancelada.", + "Invitation updated" : "Convite atualizado", + "The meeting »%s« with %s was updated." : "A reunião »%s« com %s foi atualizada..", + "%s invited you to »%s«" : "%s convidou você para »%s«", + "When:" : "Quando:", + "Where:" : "Onde:", + "Description:" : "Descrição:", + "Link:" : "Link:", "Contacts" : "Contatos", "Technical details" : "Detalhes técnicos", "Remote Address: %s" : "Endereço remoto: %s", diff --git a/apps/dav/l10n/pt_BR.json b/apps/dav/l10n/pt_BR.json index c3d954c7df3..87451665534 100644 --- a/apps/dav/l10n/pt_BR.json +++ b/apps/dav/l10n/pt_BR.json @@ -39,6 +39,16 @@ "A calendar <strong>event</strong> was modified" : "Um <strong>evento</strong> do calendário foi modificado", "A calendar <strong>todo</strong> was modified" : "Uma <strong>tarefa</strong> do calendário foi modificada", "Contact birthdays" : "Aniversário dos contatos", + "Invitation canceled" : "Convite cancelado", + "Hello %s," : "Olá %s,", + "The meeting »%s« with %s was canceled." : "A reunião »%s« com %s foi cancelada.", + "Invitation updated" : "Convite atualizado", + "The meeting »%s« with %s was updated." : "A reunião »%s« com %s foi atualizada..", + "%s invited you to »%s«" : "%s convidou você para »%s«", + "When:" : "Quando:", + "Where:" : "Onde:", + "Description:" : "Descrição:", + "Link:" : "Link:", "Contacts" : "Contatos", "Technical details" : "Detalhes técnicos", "Remote Address: %s" : "Endereço remoto: %s", diff --git a/apps/dav/l10n/tr.js b/apps/dav/l10n/tr.js index b14d1bd4d24..ff8d82d04ac 100644 --- a/apps/dav/l10n/tr.js +++ b/apps/dav/l10n/tr.js @@ -41,6 +41,16 @@ OC.L10N.register( "A calendar <strong>event</strong> was modified" : "Bir takvim <strong>etkinliği</strong> düzenlendi", "A calendar <strong>todo</strong> was modified" : "Bir takvim <strong>yapılacak işi</strong> düzenlendi", "Contact birthdays" : "Kişi doğum günleri", + "Invitation canceled" : "Çağrı iptal edildi", + "Hello %s," : "Merhaba %s,", + "The meeting »%s« with %s was canceled." : "Bu »%s« görüşmesi %s ile yapılacakken iptal edildi.", + "Invitation updated" : "Çağrı güncellendi", + "The meeting »%s« with %s was updated." : "Bu »%s« görüşmesi %s ile yapılacakken güncellendi.", + "%s invited you to »%s«" : "%s sizi şu görüşmeye çağırdı »%s«", + "When:" : "Zaman:", + "Where:" : "Yer:", + "Description:" : "Açıklama:", + "Link:" : "Bağlantı:", "Contacts" : "Kişiler", "Technical details" : "Teknik ayrıntılar", "Remote Address: %s" : "Uzak Adres: %s", diff --git a/apps/dav/l10n/tr.json b/apps/dav/l10n/tr.json index 23cbfbaac35..5900486b703 100644 --- a/apps/dav/l10n/tr.json +++ b/apps/dav/l10n/tr.json @@ -39,6 +39,16 @@ "A calendar <strong>event</strong> was modified" : "Bir takvim <strong>etkinliği</strong> düzenlendi", "A calendar <strong>todo</strong> was modified" : "Bir takvim <strong>yapılacak işi</strong> düzenlendi", "Contact birthdays" : "Kişi doğum günleri", + "Invitation canceled" : "Çağrı iptal edildi", + "Hello %s," : "Merhaba %s,", + "The meeting »%s« with %s was canceled." : "Bu »%s« görüşmesi %s ile yapılacakken iptal edildi.", + "Invitation updated" : "Çağrı güncellendi", + "The meeting »%s« with %s was updated." : "Bu »%s« görüşmesi %s ile yapılacakken güncellendi.", + "%s invited you to »%s«" : "%s sizi şu görüşmeye çağırdı »%s«", + "When:" : "Zaman:", + "Where:" : "Yer:", + "Description:" : "Açıklama:", + "Link:" : "Bağlantı:", "Contacts" : "Kişiler", "Technical details" : "Teknik ayrıntılar", "Remote Address: %s" : "Uzak Adres: %s", diff --git a/apps/dav/lib/AppInfo/Application.php b/apps/dav/lib/AppInfo/Application.php index 5d89324d4a9..ae08e50d607 100644 --- a/apps/dav/lib/AppInfo/Application.php +++ b/apps/dav/lib/AppInfo/Application.php @@ -2,9 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Björn Schießle <bjoern@schiessle.org> - * @author Georg Ehrke <georg@owncloud.com> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/AppInfo/PluginManager.php b/apps/dav/lib/AppInfo/PluginManager.php index 9cdf358c80e..59b03f54fd0 100644 --- a/apps/dav/lib/AppInfo/PluginManager.php +++ b/apps/dav/lib/AppInfo/PluginManager.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * + * @author Julius Härtl <jus@bitgrid.net> * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/Avatars/AvatarHome.php b/apps/dav/lib/Avatars/AvatarHome.php index 17ac37dc8af..ee654f2aaa2 100644 --- a/apps/dav/lib/Avatars/AvatarHome.php +++ b/apps/dav/lib/Avatars/AvatarHome.php @@ -1,8 +1,11 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH + * + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2016, ownCloud GmbH * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/Avatars/AvatarNode.php b/apps/dav/lib/Avatars/AvatarNode.php index 4030f482510..c40ed1b52db 100644 --- a/apps/dav/lib/Avatars/AvatarNode.php +++ b/apps/dav/lib/Avatars/AvatarNode.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH + * + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2016, ownCloud GmbH * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/Avatars/RootCollection.php b/apps/dav/lib/Avatars/RootCollection.php index d7c7ff4e9fb..4fc12b5d3ed 100644 --- a/apps/dav/lib/Avatars/RootCollection.php +++ b/apps/dav/lib/Avatars/RootCollection.php @@ -1,5 +1,27 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Thomas Müller <thomas.mueller@tmit.eu> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\DAV\Avatars; use Sabre\DAVACL\AbstractPrincipalCollection; diff --git a/apps/dav/lib/CalDAV/Activity/Backend.php b/apps/dav/lib/CalDAV/Activity/Backend.php index c1a68c1682c..f1f1b43d53f 100644 --- a/apps/dav/lib/CalDAV/Activity/Backend.php +++ b/apps/dav/lib/CalDAV/Activity/Backend.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/Activity/Filter/Calendar.php b/apps/dav/lib/CalDAV/Activity/Filter/Calendar.php index a20b8ad544d..7456074915b 100644 --- a/apps/dav/lib/CalDAV/Activity/Filter/Calendar.php +++ b/apps/dav/lib/CalDAV/Activity/Filter/Calendar.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/Activity/Filter/Todo.php b/apps/dav/lib/CalDAV/Activity/Filter/Todo.php index 42ee0740851..5bc08c8f2dd 100644 --- a/apps/dav/lib/CalDAV/Activity/Filter/Todo.php +++ b/apps/dav/lib/CalDAV/Activity/Filter/Todo.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Base.php b/apps/dav/lib/CalDAV/Activity/Provider/Base.php index 983d05310ac..b6d8a5be736 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Base.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Base.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php index fb4a0ff45a8..1d524ce354c 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Event.php b/apps/dav/lib/CalDAV/Activity/Provider/Event.php index 7b515d78b14..eabd2e517c0 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Event.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Event.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Todo.php b/apps/dav/lib/CalDAV/Activity/Provider/Todo.php index 20d7afef028..7ee91184794 100644 --- a/apps/dav/lib/CalDAV/Activity/Provider/Todo.php +++ b/apps/dav/lib/CalDAV/Activity/Provider/Todo.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/Activity/Setting/Calendar.php b/apps/dav/lib/CalDAV/Activity/Setting/Calendar.php index 608ee266bb9..24d2cef913e 100644 --- a/apps/dav/lib/CalDAV/Activity/Setting/Calendar.php +++ b/apps/dav/lib/CalDAV/Activity/Setting/Calendar.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/Activity/Setting/Event.php b/apps/dav/lib/CalDAV/Activity/Setting/Event.php index 887cd22afad..14b22ad220e 100644 --- a/apps/dav/lib/CalDAV/Activity/Setting/Event.php +++ b/apps/dav/lib/CalDAV/Activity/Setting/Event.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/Activity/Setting/Todo.php b/apps/dav/lib/CalDAV/Activity/Setting/Todo.php index 234774bfea4..272843198a9 100644 --- a/apps/dav/lib/CalDAV/Activity/Setting/Todo.php +++ b/apps/dav/lib/CalDAV/Activity/Setting/Todo.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/BirthdayService.php b/apps/dav/lib/CalDAV/BirthdayService.php index e11f922a636..aa902bacc53 100644 --- a/apps/dav/lib/CalDAV/BirthdayService.php +++ b/apps/dav/lib/CalDAV/BirthdayService.php @@ -4,9 +4,11 @@ * @copyright Copyright (c) 2016, Georg Ehrke * * @author Achim Königs <garfonso@tratschtante.de> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Georg Ehrke <georg@nextcloud.com> * * @license AGPL-3.0 * diff --git a/apps/dav/lib/CalDAV/CalDavBackend.php b/apps/dav/lib/CalDAV/CalDavBackend.php index 2c34f6d6d31..9505a00ea55 100644 --- a/apps/dav/lib/CalDAV/CalDavBackend.php +++ b/apps/dav/lib/CalDAV/CalDavBackend.php @@ -3,11 +3,15 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2017 Georg Ehrke * + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author nhirokinet <nhirokinet@nhiroki.net> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Georg Ehrke <oc.list@georgehrke.com> * * @license AGPL-3.0 * @@ -957,6 +961,20 @@ class CalDavBackend extends AbstractBackend implements SyncSupport, Subscription function createCalendarObject($calendarId, $objectUri, $calendarData) { $extraData = $this->getDenormalizedData($calendarData); + $q = $this->db->getQueryBuilder(); + $q->select($q->createFunction('COUNT(*)')) + ->from('calendarobjects') + ->where($q->expr()->eq('calendarid', $q->createNamedParameter($calendarId))) + ->andWhere($q->expr()->eq('uid', $q->createNamedParameter($extraData['uid']))); + + $result = $q->execute(); + $count = (int) $result->fetchColumn(); + $result->closeCursor(); + + if ($count !== 0) { + throw new \Sabre\DAV\Exception\BadRequest('Calendar object with uid already exists in this calendar collection.'); + } + $query = $this->db->getQueryBuilder(); $query->insert('calendarobjects') ->values([ diff --git a/apps/dav/lib/CalDAV/Calendar.php b/apps/dav/lib/CalDAV/Calendar.php index 75e78daf505..ac3bcec6173 100644 --- a/apps/dav/lib/CalDAV/Calendar.php +++ b/apps/dav/lib/CalDAV/Calendar.php @@ -2,8 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/CalDAV/CalendarHome.php b/apps/dav/lib/CalDAV/CalendarHome.php index 2aa2c9caa36..3429c24705d 100644 --- a/apps/dav/lib/CalDAV/CalendarHome.php +++ b/apps/dav/lib/CalDAV/CalendarHome.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/dav/lib/CalDAV/CalendarObject.php b/apps/dav/lib/CalDAV/CalendarObject.php index c268b7410cd..949886bf32a 100644 --- a/apps/dav/lib/CalDAV/CalendarObject.php +++ b/apps/dav/lib/CalDAV/CalendarObject.php @@ -3,8 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2017, Georg Ehrke * - * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 * diff --git a/apps/dav/lib/CalDAV/Plugin.php b/apps/dav/lib/CalDAV/Plugin.php index 647dbb5c587..167ea4ffd69 100644 --- a/apps/dav/lib/CalDAV/Plugin.php +++ b/apps/dav/lib/CalDAV/Plugin.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/PublicCalendar.php b/apps/dav/lib/CalDAV/PublicCalendar.php index 63cbdbfa118..f65ac9797b8 100644 --- a/apps/dav/lib/CalDAV/PublicCalendar.php +++ b/apps/dav/lib/CalDAV/PublicCalendar.php @@ -4,19 +4,20 @@ * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @license AGPL-3.0 + * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV; diff --git a/apps/dav/lib/CalDAV/PublicCalendarObject.php b/apps/dav/lib/CalDAV/PublicCalendarObject.php index a4e33ca5ce1..aaeea64b237 100644 --- a/apps/dav/lib/CalDAV/PublicCalendarObject.php +++ b/apps/dav/lib/CalDAV/PublicCalendarObject.php @@ -4,19 +4,20 @@ * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @license AGPL-3.0 + * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV; diff --git a/apps/dav/lib/CalDAV/PublicCalendarRoot.php b/apps/dav/lib/CalDAV/PublicCalendarRoot.php index 20654549884..55f969e2167 100644 --- a/apps/dav/lib/CalDAV/PublicCalendarRoot.php +++ b/apps/dav/lib/CalDAV/PublicCalendarRoot.php @@ -1,8 +1,12 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2016, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php b/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php index 199bc67e615..53059818039 100644 --- a/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php +++ b/apps/dav/lib/CalDAV/Publishing/PublishPlugin.php @@ -1,21 +1,24 @@ <?php /** + * @copyright Copyright (c) 2016 Thomas Citharel <tcit@tcit.fr> + * * @author Thomas Citharel <tcit@tcit.fr> + * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2016 Thomas Citharel <tcit@tcit.fr> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV\Publishing; diff --git a/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php b/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php index 5adbe71c433..6d5e05e0cc3 100644 --- a/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php +++ b/apps/dav/lib/CalDAV/Publishing/Xml/Publisher.php @@ -1,21 +1,23 @@ <?php /** + * @copyright Copyright (c) 2016 Thomas Citharel <tcit@tcit.fr> + * * @author Thomas Citharel <tcit@tcit.fr> * - * @copyright Copyright (c) 2016 Thomas Citharel <tcit@tcit.fr> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV\Publishing\Xml; diff --git a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php index 8e1d7e2563d..edb52c3ad89 100644 --- a/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php +++ b/apps/dav/lib/CalDAV/Schedule/IMipPlugin.php @@ -3,8 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2017, Georg Ehrke * - * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> + * @author Leon Klingele <leon@struktur.de> + * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 * @@ -24,14 +26,22 @@ namespace OCA\DAV\CalDAV\Schedule; use OCP\AppFramework\Utility\ITimeFactory; +use OCP\IConfig; +use OCP\IL10N; use OCP\ILogger; +use OCP\IURLGenerator; +use OCP\L10N\IFactory as L10NFactory; +use OCP\Mail\IEMailTemplate; use OCP\Mail\IMailer; +use Sabre\CalDAV\Schedule\IMipPlugin as SabreIMipPlugin; +use Sabre\DAV\Xml\Element\Prop; use Sabre\VObject\Component\VCalendar; +use Sabre\VObject\Component\VEvent; use Sabre\VObject\DateTimeParser; -use Sabre\VObject\ITip; -use Sabre\CalDAV\Schedule\IMipPlugin as SabreIMipPlugin; +use Sabre\VObject\ITip\Message; +use Sabre\VObject\Parameter; +use Sabre\VObject\Property; use Sabre\VObject\Recur\EventIterator; - /** * iMIP handler. * @@ -48,6 +58,12 @@ use Sabre\VObject\Recur\EventIterator; */ class IMipPlugin extends SabreIMipPlugin { + /** @var string */ + private $userId; + + /** @var IConfig */ + private $config; + /** @var IMailer */ private $mailer; @@ -57,29 +73,45 @@ class IMipPlugin extends SabreIMipPlugin { /** @var ITimeFactory */ private $timeFactory; + /** @var L10NFactory */ + private $l10nFactory; + + /** @var IURLGenerator */ + private $urlGenerator; + const MAX_DATE = '2038-01-01'; + const METHOD_REQUEST = 'request'; + const METHOD_REPLY = 'reply'; + const METHOD_CANCEL = 'cancel'; + /** - * Creates the email handler. - * + * @param IConfig $config * @param IMailer $mailer * @param ILogger $logger * @param ITimeFactory $timeFactory + * @param L10NFactory $l10nFactory + * @param IUrlGenerator $urlGenerator + * @param string $userId */ - function __construct(IMailer $mailer, ILogger $logger, ITimeFactory $timeFactory) { + public function __construct(IConfig $config, IMailer $mailer, ILogger $logger, ITimeFactory $timeFactory, L10NFactory $l10nFactory, IURLGenerator $urlGenerator, $userId) { parent::__construct(''); + $this->userId = $userId; + $this->config = $config; $this->mailer = $mailer; $this->logger = $logger; $this->timeFactory = $timeFactory; + $this->l10nFactory = $l10nFactory; + $this->urlGenerator = $urlGenerator; } /** * Event handler for the 'schedule' event. * - * @param ITip\Message $iTipMessage + * @param Message $iTipMessage * @return void */ - function schedule(ITip\Message $iTipMessage) { + public function schedule(Message $iTipMessage) { // Not sending any emails if the system considers the update // insignificant. @@ -105,40 +137,100 @@ class IMipPlugin extends SabreIMipPlugin { return; } + // Strip off mailto: $sender = substr($iTipMessage->sender, 7); $recipient = substr($iTipMessage->recipient, 7); - $senderName = ($iTipMessage->senderName) ? $iTipMessage->senderName : null; - $recipientName = ($iTipMessage->recipientName) ? $iTipMessage->recipientName : null; + $senderName = $iTipMessage->senderName ?: null; + $recipientName = $iTipMessage->recipientName ?: null; - $subject = 'SabreDAV iTIP message'; - switch (strtoupper($iTipMessage->method)) { - case 'REPLY' : - $subject = 'Re: ' . $summary; - break; - case 'REQUEST' : - $subject = $summary; + /** @var VEvent $vevent */ + $vevent = $iTipMessage->message->VEVENT; + + $attendee = $this->getCurrentAttendee($iTipMessage); + $defaultLang = $this->config->getUserValue($this->userId, 'core', 'lang', $this->l10nFactory->findLanguage()); + $lang = $this->getAttendeeLangOrDefault($defaultLang, $attendee); + $l10n = $this->l10nFactory->get('dav', $lang); + + $meetingAttendeeName = $recipientName ?: $recipient; + $meetingInviteeName = $senderName ?: $sender; + + $meetingTitle = $vevent->SUMMARY; + $meetingDescription = $vevent->DESCRIPTION; + + $start = $vevent->DTSTART; + if (isset($vevent->DTEND)) { + $end = $vevent->DTEND; + } elseif (isset($vevent->DURATION)) { + $isFloating = $vevent->DTSTART->isFloating(); + $end = clone $vevent->DTSTART; + $endDateTime = $end->getDateTime(); + $endDateTime = $endDateTime->add(DateTimeParser::parse($vevent->DURATION->getValue())); + $end->setDateTime($endDateTime, $isFloating); + } elseif (!$vevent->DTSTART->hasTime()) { + $isFloating = $vevent->DTSTART->isFloating(); + $end = clone $vevent->DTSTART; + $endDateTime = $end->getDateTime(); + $endDateTime = $endDateTime->modify('+1 day'); + $end->setDateTime($endDateTime, $isFloating); + } else { + $end = clone $vevent->DTSTART; + } + + $meetingWhen = $this->generateWhenString($l10n, $start, $end); + + $meetingUrl = $vevent->URL; + $meetingLocation = $vevent->LOCATION; + + $defaultVal = '--'; + + $method = self::METHOD_REQUEST; + switch (strtolower($iTipMessage->method)) { + case self::METHOD_REPLY: + $method = self::METHOD_REPLY; break; - case 'CANCEL' : - $subject = 'Cancelled: ' . $summary; + case self::METHOD_CANCEL: + $method = self::METHOD_CANCEL; break; } - $contentType = 'text/calendar; charset=UTF-8; method=' . $iTipMessage->method; + $data = array( + 'attendee_name' => (string)$meetingAttendeeName ?: $defaultVal, + 'invitee_name' => (string)$meetingInviteeName ?: $defaultVal, + 'meeting_title' => (string)$meetingTitle ?: $defaultVal, + 'meeting_description' => (string)$meetingDescription ?: $defaultVal, + 'meeting_url' => (string)$meetingUrl ?: $defaultVal, + ); + + $message = $this->mailer->createMessage() + ->setReplyTo([$sender => $senderName]) + ->setTo([$recipient => $recipientName]); - $message = $this->mailer->createMessage(); + $template = $this->mailer->createEMailTemplate('dav.calendarInvite.' . $method, $data); + $template->addHeader(); + + $this->addSubjectAndHeading($template, $l10n, $method, $summary, + $meetingAttendeeName, $meetingInviteeName); + $this->addBulletList($template, $l10n, $meetingWhen, $meetingLocation, + $meetingDescription, $meetingUrl); + + $template->addFooter(); + $message->useTemplate($template); + + $attachment = $this->mailer->createAttachment( + $iTipMessage->message->serialize(), + 'event.ics',// TODO(leon): Make file name unique, e.g. add event id + 'text/calendar; method=' . $iTipMessage->method + ); + $message->attach($attachment); - $message->setReplyTo([$sender => $senderName]) - ->setTo([$recipient => $recipientName]) - ->setSubject($subject) - ->setBody($iTipMessage->message->serialize(), $contentType); try { $failed = $this->mailer->send($message); + $iTipMessage->scheduleStatus = '1.1; Scheduling message is sent via iMip'; if ($failed) { $this->logger->error('Unable to deliver message to {failed}', ['app' => 'dav', 'failed' => implode(', ', $failed)]); $iTipMessage->scheduleStatus = '5.0; EMail delivery failed'; } - $iTipMessage->scheduleStatus = '1.1; Scheduling message is sent via iMip'; } catch(\Exception $ex) { $this->logger->logException($ex, ['app' => 'dav']); $iTipMessage->scheduleStatus = '5.0; EMail delivery failed'; @@ -151,6 +243,7 @@ class IMipPlugin extends SabreIMipPlugin { * @return bool */ private function isEventInThePast(VCalendar $vObject) { + /** @var VEvent $component */ $component = $vObject->VEVENT; $firstOccurrence = $component->DTSTART->getDateTime()->getTimeStamp(); @@ -159,15 +252,17 @@ class IMipPlugin extends SabreIMipPlugin { if (isset($component->DTEND)) { $lastOccurrence = $component->DTEND->getDateTime()->getTimeStamp(); } elseif (isset($component->DURATION)) { + /** @var \DateTime $endDate */ $endDate = clone $component->DTSTART->getDateTime(); // $component->DTEND->getDateTime() returns DateTimeImmutable $endDate = $endDate->add(DateTimeParser::parse($component->DURATION->getValue())); - $lastOccurrence = $endDate->getTimeStamp(); + $lastOccurrence = $endDate->getTimestamp(); } elseif (!$component->DTSTART->hasTime()) { + /** @var \DateTime $endDate */ $endDate = clone $component->DTSTART->getDateTime(); // $component->DTSTART->getDateTime() returns DateTimeImmutable $endDate = $endDate->modify('+1 day'); - $lastOccurrence = $endDate->getTimeStamp(); + $lastOccurrence = $endDate->getTimestamp(); } else { $lastOccurrence = $firstOccurrence; } @@ -190,4 +285,176 @@ class IMipPlugin extends SabreIMipPlugin { $currentTime = $this->timeFactory->getTime(); return $lastOccurrence < $currentTime; } + + + /** + * @param Message $iTipMessage + * @return null|Property + */ + private function getCurrentAttendee(Message $iTipMessage) { + /** @var VEvent $vevent */ + $vevent = $iTipMessage->message->VEVENT; + $attendees = $vevent->select('ATTENDEE'); + foreach ($attendees as $attendee) { + /** @var Property $attendee */ + if (strcasecmp($attendee->getValue(), $iTipMessage->recipient) === 0) { + return $attendee; + } + } + return null; + } + + /** + * @param string $default + * @param Property|null $attendee + * @return string + */ + private function getAttendeeLangOrDefault($default, Property $attendee = null) { + if ($attendee !== null) { + $lang = $attendee->offsetGet('LANGUAGE'); + if ($lang instanceof Parameter) { + return $lang->getValue(); + } + } + return $default; + } + + /** + * @param IL10N $l10n + * @param Property $dtstart + * @param Property $dtend + */ + private function generateWhenString(IL10N $l10n, Property $dtstart, Property $dtend) { + $isAllDay = $dtstart instanceof Property\ICalendar\Date; + + /** @var Property\ICalendar\Date | Property\ICalendar\DateTime $dtstart */ + /** @var Property\ICalendar\Date | Property\ICalendar\DateTime $dtend */ + /** @var \DateTimeImmutable $dtstartDt */ + $dtstartDt = $dtstart->getDateTime(); + /** @var \DateTimeImmutable $dtendDt */ + $dtendDt = $dtend->getDateTime(); + + $diff = $dtstartDt->diff($dtendDt); + + $dtstartDt = new \DateTime($dtstartDt->format(\DateTime::ATOM)); + $dtendDt = new \DateTime($dtendDt->format(\DateTime::ATOM)); + + if ($isAllDay) { + // One day event + if ($diff->days === 1) { + return $l10n->l('date', $dtstartDt, ['width' => 'medium']); + } + + //event that spans over multiple days + $localeStart = $l10n->l('date', $dtstartDt, ['width' => 'medium']); + $localeEnd = $l10n->l('date', $dtendDt, ['width' => 'medium']); + + return $localeStart . ' - ' . $localeEnd; + } + + /** @var Property\ICalendar\DateTime $dtstart */ + /** @var Property\ICalendar\DateTime $dtend */ + $isFloating = $dtstart->isFloating(); + $startTimezone = $endTimezone = null; + if (!$isFloating) { + $prop = $dtstart->offsetGet('TZID'); + if ($prop instanceof Parameter) { + $startTimezone = $prop->getValue(); + } + + $prop = $dtend->offsetGet('TZID'); + if ($prop instanceof Parameter) { + $endTimezone = $prop->getValue(); + } + } + + $localeStart = $l10n->l('datetime', $dtstartDt, ['width' => 'medium']); + + // always show full date with timezone if timezones are different + if ($startTimezone !== $endTimezone) { + $localeEnd = $l10n->l('datetime', $dtendDt, ['width' => 'medium']); + + return $localeStart . ' (' . $startTimezone . ') - ' . + $localeEnd . ' (' . $endTimezone . ')'; + } + + // show only end time if date is the same + if ($this->isDayEqual($dtstartDt, $dtendDt)) { + $localeEnd = $l10n->l('time', $dtendDt, ['width' => 'medium']); + } else { + $localeEnd = $l10n->l('datetime', $dtendDt, ['width' => 'medium']); + } + + return $localeStart . ' - ' . $localeEnd . ' (' . $startTimezone . ')'; + } + + /** + * @param \DateTime $dtStart + * @param \DateTime $dtEnd + * @return bool + */ + private function isDayEqual(\DateTime $dtStart, \DateTime $dtEnd) { + return $dtStart->format('Y-m-d') === $dtEnd->format('Y-m-d'); + } + + /** + * @param IEMailTemplate $template + * @param IL10N $l10n + * @param string $method + * @param string $summary + * @param string $attendeeName + * @param string $inviteeName + */ + private function addSubjectAndHeading(IEMailTemplate $template, IL10N $l10n, + $method, $summary, $attendeeName, $inviteeName) { + if ($method === self::METHOD_CANCEL) { + $template->setSubject('Cancelled: ' . $summary); + $template->addHeading($l10n->t('Invitation canceled'), $l10n->t('Hello %s,', [$attendeeName])); + $template->addBodyText($l10n->t('The meeting »%s« with %s was canceled.', [$summary, $inviteeName])); + } else if ($method === self::METHOD_REPLY) { + $template->setSubject('Re: ' . $summary); + $template->addHeading($l10n->t('Invitation updated'), $l10n->t('Hello %s,', [$attendeeName])); + $template->addBodyText($l10n->t('The meeting »%s« with %s was updated.', [$summary, $inviteeName])); + } else { + $template->setSubject('Invitation: ' . $summary); + $template->addHeading($l10n->t('%s invited you to »%s«', [$inviteeName, $summary]), $l10n->t('Hello %s,', [$attendeeName])); + } + + } + + /** + * @param IEMailTemplate $template + * @param IL10N $l10n + * @param string $time + * @param string $location + * @param string $description + * @param string $url + */ + private function addBulletList(IEMailTemplate $template, IL10N $l10n, $time, $location, $description, $url) { + $template->addBodyListItem($time, $l10n->t('When:'), + $this->getAbsoluteImagePath('filetypes/text-calendar.svg')); + + if ($location) { + $template->addBodyListItem($location, $l10n->t('Where:'), + $this->getAbsoluteImagePath('filetypes/location.svg')); + } + if ($description) { + $template->addBodyListItem((string)$description, $l10n->t('Description:'), + $this->getAbsoluteImagePath('filetypes/text.svg')); + } + if ($url) { + $template->addBodyListItem((string)$url, $l10n->t('Link:'), + $this->getAbsoluteImagePath('filetypes/link.svg')); + } + } + + /** + * @param string $path + * @return string + */ + private function getAbsoluteImagePath($path) { + return $this->urlGenerator->getAbsoluteURL( + $this->urlGenerator->imagePath('core', $path) + ); + } } diff --git a/apps/dav/lib/CalDAV/Search/SearchPlugin.php b/apps/dav/lib/CalDAV/Search/SearchPlugin.php index 84e095da5f8..37000aa2eb8 100644 --- a/apps/dav/lib/CalDAV/Search/SearchPlugin.php +++ b/apps/dav/lib/CalDAV/Search/SearchPlugin.php @@ -1,21 +1,24 @@ <?php /** + * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> + * * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> * - * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV\Search; diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php index a2a3c910f05..5cc8f799f90 100644 --- a/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php +++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/CompFilter.php @@ -1,21 +1,23 @@ <?php /** + * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> + * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV\Search\Xml\Filter; diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/LimitFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/LimitFilter.php index f5de78b539c..5fc38315438 100644 --- a/apps/dav/lib/CalDAV/Search/Xml/Filter/LimitFilter.php +++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/LimitFilter.php @@ -1,21 +1,23 @@ <?php /** + * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> + * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV\Search\Xml\Filter; diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/OffsetFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/OffsetFilter.php index 7257e1e72f9..7aac59809a2 100644 --- a/apps/dav/lib/CalDAV/Search/Xml/Filter/OffsetFilter.php +++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/OffsetFilter.php @@ -1,21 +1,23 @@ <?php /** + * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> + * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV\Search\Xml\Filter; diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php index 1c443763daf..bfcb960d402 100644 --- a/apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php +++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/ParamFilter.php @@ -1,21 +1,23 @@ <?php /** + * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> + * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV\Search\Xml\Filter; diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/PropFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/PropFilter.php index 06b41d91c6e..cfb2211fb59 100644 --- a/apps/dav/lib/CalDAV/Search/Xml/Filter/PropFilter.php +++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/PropFilter.php @@ -1,21 +1,23 @@ <?php /** + * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> + * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV\Search\Xml\Filter; diff --git a/apps/dav/lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php b/apps/dav/lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php index 8779e2b3940..ddd36818223 100644 --- a/apps/dav/lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php +++ b/apps/dav/lib/CalDAV/Search/Xml/Filter/SearchTermFilter.php @@ -1,21 +1,23 @@ <?php /** + * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> + * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV\Search\Xml\Filter; diff --git a/apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php b/apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php index 4d22f310c24..e7c229c7b03 100644 --- a/apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php +++ b/apps/dav/lib/CalDAV/Search/Xml/Request/CalendarSearchReport.php @@ -1,21 +1,23 @@ <?php /** + * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> + * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\DAV\CalDAV\Search\Xml\Request; diff --git a/apps/dav/lib/Capabilities.php b/apps/dav/lib/Capabilities.php index c6f63b37420..a301a393008 100644 --- a/apps/dav/lib/Capabilities.php +++ b/apps/dav/lib/Capabilities.php @@ -1,8 +1,9 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH + * * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2016, ownCloud GmbH * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/CardDAV/AddressBook.php b/apps/dav/lib/CardDAV/AddressBook.php index eb5bebaa2ee..a034f8b9426 100644 --- a/apps/dav/lib/CardDAV/AddressBook.php +++ b/apps/dav/lib/CardDAV/AddressBook.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/CardDAV/AddressBookImpl.php b/apps/dav/lib/CardDAV/AddressBookImpl.php index c650f6c30be..5034b16ed2f 100644 --- a/apps/dav/lib/CardDAV/AddressBookImpl.php +++ b/apps/dav/lib/CardDAV/AddressBookImpl.php @@ -3,7 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/CardDAV/AddressBookRoot.php b/apps/dav/lib/CardDAV/AddressBookRoot.php index 88435165a88..c52ee2d74f8 100644 --- a/apps/dav/lib/CardDAV/AddressBookRoot.php +++ b/apps/dav/lib/CardDAV/AddressBookRoot.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/CardDAV/CardDavBackend.php b/apps/dav/lib/CardDAV/CardDavBackend.php index 7c73a2cb941..be92f16f772 100644 --- a/apps/dav/lib/CardDAV/CardDavBackend.php +++ b/apps/dav/lib/CardDAV/CardDavBackend.php @@ -5,9 +5,14 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> + * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/CardDAV/ContactsManager.php b/apps/dav/lib/CardDAV/ContactsManager.php index b2e3544b287..ad02d4ba427 100644 --- a/apps/dav/lib/CardDAV/ContactsManager.php +++ b/apps/dav/lib/CardDAV/ContactsManager.php @@ -2,7 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/dav/lib/CardDAV/Converter.php b/apps/dav/lib/CardDAV/Converter.php index 9e106a0fe28..c3f27c0299e 100644 --- a/apps/dav/lib/CardDAV/Converter.php +++ b/apps/dav/lib/CardDAV/Converter.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/CardDAV/ImageExportPlugin.php b/apps/dav/lib/CardDAV/ImageExportPlugin.php index 747c879ecd4..069239326ba 100644 --- a/apps/dav/lib/CardDAV/ImageExportPlugin.php +++ b/apps/dav/lib/CardDAV/ImageExportPlugin.php @@ -2,7 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/dav/lib/CardDAV/PhotoCache.php b/apps/dav/lib/CardDAV/PhotoCache.php index c9625914263..0029af7bff7 100644 --- a/apps/dav/lib/CardDAV/PhotoCache.php +++ b/apps/dav/lib/CardDAV/PhotoCache.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\DAV\CardDAV; use OCP\Files\IAppData; diff --git a/apps/dav/lib/CardDAV/Plugin.php b/apps/dav/lib/CardDAV/Plugin.php index 61b9915b1ad..2dca3585f35 100644 --- a/apps/dav/lib/CardDAV/Plugin.php +++ b/apps/dav/lib/CardDAV/Plugin.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/CardDAV/SyncService.php b/apps/dav/lib/CardDAV/SyncService.php index b6f57753431..4a5e45ecb80 100644 --- a/apps/dav/lib/CardDAV/SyncService.php +++ b/apps/dav/lib/CardDAV/SyncService.php @@ -2,8 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> - * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/CardDAV/UserAddressBooks.php b/apps/dav/lib/CardDAV/UserAddressBooks.php index 4c7626ba42b..6a0394676a1 100644 --- a/apps/dav/lib/CardDAV/UserAddressBooks.php +++ b/apps/dav/lib/CardDAV/UserAddressBooks.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/Command/CreateCalendar.php b/apps/dav/lib/Command/CreateCalendar.php index adc86faa190..1ef859e0631 100644 --- a/apps/dav/lib/Command/CreateCalendar.php +++ b/apps/dav/lib/Command/CreateCalendar.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> + * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/Comments/CommentsPlugin.php b/apps/dav/lib/Comments/CommentsPlugin.php index 9b496ccf6e5..d49dfdb14ef 100644 --- a/apps/dav/lib/Comments/CommentsPlugin.php +++ b/apps/dav/lib/Comments/CommentsPlugin.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/dav/lib/Connector/LegacyDAVACL.php b/apps/dav/lib/Connector/LegacyDAVACL.php index 704b967a002..f96d75a2486 100644 --- a/apps/dav/lib/Connector/LegacyDAVACL.php +++ b/apps/dav/lib/Connector/LegacyDAVACL.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/Connector/PublicAuth.php b/apps/dav/lib/Connector/PublicAuth.php index 5fca8d5c020..8d29704c970 100644 --- a/apps/dav/lib/Connector/PublicAuth.php +++ b/apps/dav/lib/Connector/PublicAuth.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/apps/dav/lib/Connector/Sabre/Auth.php b/apps/dav/lib/Connector/Sabre/Auth.php index 9147e79594c..456bb17138a 100644 --- a/apps/dav/lib/Connector/Sabre/Auth.php +++ b/apps/dav/lib/Connector/Sabre/Auth.php @@ -11,6 +11,7 @@ * @author Markus Goetz <markus@woboq.com> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/lib/Connector/Sabre/BearerAuth.php b/apps/dav/lib/Connector/Sabre/BearerAuth.php index b7fd9116f21..bf347b5dc8e 100644 --- a/apps/dav/lib/Connector/Sabre/BearerAuth.php +++ b/apps/dav/lib/Connector/Sabre/BearerAuth.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/Connector/Sabre/CachingTree.php b/apps/dav/lib/Connector/Sabre/CachingTree.php index 80c8311fed3..fd3319f9b43 100644 --- a/apps/dav/lib/Connector/Sabre/CachingTree.php +++ b/apps/dav/lib/Connector/Sabre/CachingTree.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php b/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php index 66d6b335f40..ac625c3a9a4 100644 --- a/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/CommentPropertiesPlugin.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/apps/dav/lib/Connector/Sabre/DummyGetResponsePlugin.php b/apps/dav/lib/Connector/Sabre/DummyGetResponsePlugin.php index f8193f38e1f..f28f86e502e 100644 --- a/apps/dav/lib/Connector/Sabre/DummyGetResponsePlugin.php +++ b/apps/dav/lib/Connector/Sabre/DummyGetResponsePlugin.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Christoph Wickert <cwickert@suse.de> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php b/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php index ba7ea13c548..5721f483832 100644 --- a/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php +++ b/apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php @@ -2,9 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> - * @author Pierre Jochem <pierrejochem@msn.com> - * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php b/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php index eb490851fcb..4fa208d8805 100644 --- a/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php +++ b/apps/dav/lib/Connector/Sabre/FakeLockerPlugin.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/dav/lib/Connector/Sabre/File.php b/apps/dav/lib/Connector/Sabre/File.php index 478321d41f2..f172bde5f1f 100644 --- a/apps/dav/lib/Connector/Sabre/File.php +++ b/apps/dav/lib/Connector/Sabre/File.php @@ -12,8 +12,11 @@ * @author Owen Winkler <a_github@midnightcircus.com> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Semih Serhat Karakaya <karakayasemi@itu.edu.tr> + * @author Stefan Schneider <stefan.schneider@squareweave.com.au> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * diff --git a/apps/dav/lib/Connector/Sabre/FilesPlugin.php b/apps/dav/lib/Connector/Sabre/FilesPlugin.php index 5655f0355ac..daf9d2d2112 100644 --- a/apps/dav/lib/Connector/Sabre/FilesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/FilesPlugin.php @@ -2,9 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Michael Jobst <mjobst+github@tecratech.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> diff --git a/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php b/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php index 81c082b9105..3e85615638b 100644 --- a/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php +++ b/apps/dav/lib/Connector/Sabre/FilesReportPlugin.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/dav/lib/Connector/Sabre/MaintenancePlugin.php b/apps/dav/lib/Connector/Sabre/MaintenancePlugin.php index c305fa63f69..21bffcdb299 100644 --- a/apps/dav/lib/Connector/Sabre/MaintenancePlugin.php +++ b/apps/dav/lib/Connector/Sabre/MaintenancePlugin.php @@ -5,7 +5,6 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/lib/Connector/Sabre/Node.php b/apps/dav/lib/Connector/Sabre/Node.php index b6d4090bf8f..b2e4c449095 100644 --- a/apps/dav/lib/Connector/Sabre/Node.php +++ b/apps/dav/lib/Connector/Sabre/Node.php @@ -6,6 +6,7 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> * @author Jakob Sack <mail@jakobsack.de> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Klaas Freitag <freitag@owncloud.com> * @author Markus Goetz <markus@woboq.com> diff --git a/apps/dav/lib/Connector/Sabre/ObjectTree.php b/apps/dav/lib/Connector/Sabre/ObjectTree.php index a44b25c24cb..41bfceeab96 100644 --- a/apps/dav/lib/Connector/Sabre/ObjectTree.php +++ b/apps/dav/lib/Connector/Sabre/ObjectTree.php @@ -3,11 +3,11 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bjoern Schiessle <bjoern@schiessle.org> - * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/lib/Connector/Sabre/Principal.php b/apps/dav/lib/Connector/Sabre/Principal.php index dfcbf1e1ca0..b45807ff82b 100644 --- a/apps/dav/lib/Connector/Sabre/Principal.php +++ b/apps/dav/lib/Connector/Sabre/Principal.php @@ -7,6 +7,7 @@ * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/dav/lib/Connector/Sabre/QuotaPlugin.php b/apps/dav/lib/Connector/Sabre/QuotaPlugin.php index a41a4678f30..af45f526831 100644 --- a/apps/dav/lib/Connector/Sabre/QuotaPlugin.php +++ b/apps/dav/lib/Connector/Sabre/QuotaPlugin.php @@ -3,8 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Felix Moeller <mail@felixmoeller.de> - * @author Morris Jobke <hey@morrisjobke.de> + * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author scambra <sergio@entrecables.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/dav/lib/Connector/Sabre/Server.php b/apps/dav/lib/Connector/Sabre/Server.php index 686b0ea7604..d6576c0bf42 100644 --- a/apps/dav/lib/Connector/Sabre/Server.php +++ b/apps/dav/lib/Connector/Sabre/Server.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author scolebrook <scolebrook@mac.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/dav/lib/Connector/Sabre/SharesPlugin.php b/apps/dav/lib/Connector/Sabre/SharesPlugin.php index 9b06ef07810..811a1fbfcbe 100644 --- a/apps/dav/lib/Connector/Sabre/SharesPlugin.php +++ b/apps/dav/lib/Connector/Sabre/SharesPlugin.php @@ -2,6 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> + * @author Maxence Lange <maxence@nextcloud.com> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/dav/lib/Connector/Sabre/TagsPlugin.php b/apps/dav/lib/Connector/Sabre/TagsPlugin.php index 490501a0011..07e0f849a57 100644 --- a/apps/dav/lib/Connector/Sabre/TagsPlugin.php +++ b/apps/dav/lib/Connector/Sabre/TagsPlugin.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Sergio Bertolín <sbertolin@solidgear.es> + * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/lib/DAV/CustomPropertiesBackend.php b/apps/dav/lib/DAV/CustomPropertiesBackend.php index ee0d0407015..a5ad3e22acc 100644 --- a/apps/dav/lib/DAV/CustomPropertiesBackend.php +++ b/apps/dav/lib/DAV/CustomPropertiesBackend.php @@ -3,9 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2017, Georg Ehrke <oc.list@georgehrke.com> * + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Georg Ehrke <oc.list@georgehrke.com> * * @license AGPL-3.0 * diff --git a/apps/dav/lib/DAV/GroupPrincipalBackend.php b/apps/dav/lib/DAV/GroupPrincipalBackend.php index f6295d3b386..1f182445dbd 100644 --- a/apps/dav/lib/DAV/GroupPrincipalBackend.php +++ b/apps/dav/lib/DAV/GroupPrincipalBackend.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/DAV/PublicAuth.php b/apps/dav/lib/DAV/PublicAuth.php index ffc588c4a56..636039eeb3c 100644 --- a/apps/dav/lib/DAV/PublicAuth.php +++ b/apps/dav/lib/DAV/PublicAuth.php @@ -1,8 +1,9 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2016, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/DAV/Sharing/Backend.php b/apps/dav/lib/DAV/Sharing/Backend.php index aa4b137f2b0..141c54899ad 100644 --- a/apps/dav/lib/DAV/Sharing/Backend.php +++ b/apps/dav/lib/DAV/Sharing/Backend.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/DAV/Sharing/Plugin.php b/apps/dav/lib/DAV/Sharing/Plugin.php index a1f034d54b5..2ac65f94478 100644 --- a/apps/dav/lib/DAV/Sharing/Plugin.php +++ b/apps/dav/lib/DAV/Sharing/Plugin.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/DAV/SystemPrincipalBackend.php b/apps/dav/lib/DAV/SystemPrincipalBackend.php index 8c19e92499d..e3b9302886e 100644 --- a/apps/dav/lib/DAV/SystemPrincipalBackend.php +++ b/apps/dav/lib/DAV/SystemPrincipalBackend.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 @@ -163,7 +164,7 @@ class SystemPrincipalBackend extends AbstractBackend { * @return array */ function getGroupMembership($principal) { - list($prefix, $name) = \Sabre\Uri\split($principal); + list($prefix, ) = \Sabre\Uri\split($principal); if ($prefix === 'principals/system') { $principal = $this->getPrincipalByPath($principal); diff --git a/apps/dav/lib/Files/FileSearchBackend.php b/apps/dav/lib/Files/FileSearchBackend.php index 515e7ed0121..9616d21b887 100644 --- a/apps/dav/lib/Files/FileSearchBackend.php +++ b/apps/dav/lib/Files/FileSearchBackend.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/Files/FilesHome.php b/apps/dav/lib/Files/FilesHome.php index 8768d6313b1..8820ef6ffb7 100644 --- a/apps/dav/lib/Files/FilesHome.php +++ b/apps/dav/lib/Files/FilesHome.php @@ -2,7 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/dav/lib/Files/RootCollection.php b/apps/dav/lib/Files/RootCollection.php index 66e3160eaf8..28f98483c4c 100644 --- a/apps/dav/lib/Files/RootCollection.php +++ b/apps/dav/lib/Files/RootCollection.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/dav/lib/HookManager.php b/apps/dav/lib/HookManager.php index 624e45dc55f..1e808e58656 100644 --- a/apps/dav/lib/HookManager.php +++ b/apps/dav/lib/HookManager.php @@ -2,6 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Robin Appelman <robin@icewind.nl> + * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/lib/Migration/FixBirthdayCalendarComponent.php b/apps/dav/lib/Migration/FixBirthdayCalendarComponent.php index 03bd298ff1d..d878f07d12f 100644 --- a/apps/dav/lib/Migration/FixBirthdayCalendarComponent.php +++ b/apps/dav/lib/Migration/FixBirthdayCalendarComponent.php @@ -1,8 +1,9 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/lib/Migration/Version1004Date20170825134824.php b/apps/dav/lib/Migration/Version1004Date20170825134824.php index b99f51322c5..dceb1ffbbdc 100644 --- a/apps/dav/lib/Migration/Version1004Date20170825134824.php +++ b/apps/dav/lib/Migration/Version1004Date20170825134824.php @@ -2,6 +2,7 @@ /** * @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Joas Schilling <coding@schilljs.com> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/apps/dav/lib/Migration/Version1004Date20170919104507.php b/apps/dav/lib/Migration/Version1004Date20170919104507.php index 3a0fb1ab904..d4c7026aea8 100644 --- a/apps/dav/lib/Migration/Version1004Date20170919104507.php +++ b/apps/dav/lib/Migration/Version1004Date20170919104507.php @@ -1,4 +1,26 @@ <?php +/** + * + * + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\DAV\Migration; use Doctrine\DBAL\Schema\Schema; diff --git a/apps/dav/lib/Migration/Version1004Date20170926103422.php b/apps/dav/lib/Migration/Version1004Date20170926103422.php index 76adc8fe6a1..d50cbae396b 100644 --- a/apps/dav/lib/Migration/Version1004Date20170926103422.php +++ b/apps/dav/lib/Migration/Version1004Date20170926103422.php @@ -1,4 +1,26 @@ <?php +/** + * + * + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\DAV\Migration; use Doctrine\DBAL\Schema\Schema; diff --git a/apps/dav/lib/Server.php b/apps/dav/lib/Server.php index 719e4974755..14f6f4e49eb 100644 --- a/apps/dav/lib/Server.php +++ b/apps/dav/lib/Server.php @@ -3,11 +3,15 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Christoph Wurst <christoph@owncloud.com> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> + * @author Leon Klingele <leon@struktur.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * @@ -77,6 +81,7 @@ class Server { $dispatcher = \OC::$server->getEventDispatcher(); $timezone = new TimeFactory(); $sendInvitations = \OC::$server->getConfig()->getAppValue('dav', 'sendInvitations', 'yes') === 'yes'; + $l10nFactory = \OC::$server->getL10NFactory(); $root = new RootCollection(); $this->server = new \OCA\DAV\Connector\Sabre\Server(new CachingTree($root)); @@ -139,7 +144,7 @@ class Server { $this->server->addPlugin(new \Sabre\CalDAV\ICSExportPlugin()); $this->server->addPlugin(new \OCA\DAV\CalDAV\Schedule\Plugin()); if ($sendInvitations) { - $this->server->addPlugin(new IMipPlugin($mailer, $logger, $timezone)); + $this->server->addPlugin(\OC::$server->query(\OCA\DAV\CalDAV\Schedule\IMipPlugin::class)); } $this->server->addPlugin(new \Sabre\CalDAV\Subscriptions\Plugin()); $this->server->addPlugin(new \Sabre\CalDAV\Notifications\Plugin()); diff --git a/apps/dav/lib/SystemTag/SystemTagNode.php b/apps/dav/lib/SystemTag/SystemTagNode.php index bd21082f783..b825820aa9d 100644 --- a/apps/dav/lib/SystemTag/SystemTagNode.php +++ b/apps/dav/lib/SystemTag/SystemTagNode.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php b/apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php index 5d54a7f4430..9e1dee38fbd 100644 --- a/apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php +++ b/apps/dav/lib/SystemTag/SystemTagsObjectMappingCollection.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/dav/lib/Upload/AssemblyStream.php b/apps/dav/lib/Upload/AssemblyStream.php index 4b327cecaac..e20d8f9adba 100644 --- a/apps/dav/lib/Upload/AssemblyStream.php +++ b/apps/dav/lib/Upload/AssemblyStream.php @@ -3,7 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Markus Goetz <markus@woboq.com> + * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/dav/lib/Upload/UploadHome.php b/apps/dav/lib/Upload/UploadHome.php index df458e8bc4b..9f4ae0e8a2c 100644 --- a/apps/dav/lib/Upload/UploadHome.php +++ b/apps/dav/lib/Upload/UploadHome.php @@ -4,6 +4,7 @@ * * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/dav/tests/unit/AppInfo/PluginManagerTest.php b/apps/dav/tests/unit/AppInfo/PluginManagerTest.php index 5776b939123..89c972acd26 100644 --- a/apps/dav/tests/unit/AppInfo/PluginManagerTest.php +++ b/apps/dav/tests/unit/AppInfo/PluginManagerTest.php @@ -1,8 +1,9 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/Avatars/AvatarHomeTest.php b/apps/dav/tests/unit/Avatars/AvatarHomeTest.php index f9e1ab56876..aa5c4bf3049 100644 --- a/apps/dav/tests/unit/Avatars/AvatarHomeTest.php +++ b/apps/dav/tests/unit/Avatars/AvatarHomeTest.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2017, ownCloud GmbH + * + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2017, ownCloud GmbH * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/Avatars/AvatarNodeTest.php b/apps/dav/tests/unit/Avatars/AvatarNodeTest.php index 8e56ea6f6df..98a868aa14c 100644 --- a/apps/dav/tests/unit/Avatars/AvatarNodeTest.php +++ b/apps/dav/tests/unit/Avatars/AvatarNodeTest.php @@ -1,8 +1,9 @@ <?php /** + * @copyright Copyright (c) 2017, ownCloud GmbH + * * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2017, ownCloud GmbH * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php index eef69aadf40..90bf860b24d 100644 --- a/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php +++ b/apps/dav/tests/unit/CalDAV/AbstractCalDavBackend.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 @@ -137,13 +140,15 @@ abstract class AbstractCalDavBackend extends TestCase { protected function createEvent($calendarId, $start = '20130912T130000Z', $end = '20130912T140000Z') { + $randomPart = self::getUniqueID(); + $calData = <<<EOD BEGIN:VCALENDAR VERSION:2.0 PRODID:ownCloud Calendar BEGIN:VEVENT CREATED;VALUE=DATE-TIME:20130910T125139Z -UID:47d15e3ec8 +UID:47d15e3ec8-$randomPart LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z DTSTAMP;VALUE=DATE-TIME:20130910T125139Z SUMMARY:Test Event diff --git a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php index dd48d8172d3..16b2b8a616e 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/BackendTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php b/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php index 895a404acf5..0fdd50b54c4 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/Filter/CalendarTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php b/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php index 533f88747cd..8f495698d02 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/Filter/GenericTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php b/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php index 54a5a6f5f9d..f060e7a0b37 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/Filter/TodoTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php b/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php index adffaf27ded..affc1909e3f 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/Provider/BaseTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php b/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php index 54c7a54baf7..73ddebeccce 100644 --- a/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php +++ b/apps/dav/tests/unit/CalDAV/Activity/Setting/GenericTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php index 50c8b39484e..fae2156a6b4 100644 --- a/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php +++ b/apps/dav/tests/unit/CalDAV/CalDavBackendTest.php @@ -3,10 +3,11 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2017 Georg Ehrke * + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Georg Ehrke <oc.list@georgehrke.com> * * @license AGPL-3.0 * @@ -274,18 +275,49 @@ EOD; $this->assertCount(0, $calendarObjects); } + /** + * @expectedException \Sabre\DAV\Exception\BadRequest + * @expectedExceptionMessage Calendar object with uid already exists in this calendar collection. + */ + public function testMultipleCalendarObjectsWithSameUID() { + $calendarId = $this->createTestCalendar(); + + $calData = <<<'EOD' +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:ownCloud Calendar +BEGIN:VEVENT +CREATED;VALUE=DATE-TIME:20130910T125139Z +UID:47d15e3ec8-1 +LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z +DTSTAMP;VALUE=DATE-TIME:20130910T125139Z +SUMMARY:Test Event +DTSTART;VALUE=DATE-TIME:20130912T130000Z +DTEND;VALUE=DATE-TIME:20130912T140000Z +CLASS:PUBLIC +END:VEVENT +END:VCALENDAR +EOD; + + $uri0 = static::getUniqueID('event'); + $uri1 = static::getUniqueID('event'); + $this->backend->createCalendarObject($calendarId, $uri0, $calData); + $this->backend->createCalendarObject($calendarId, $uri1, $calData); + } + public function testMultiCalendarObjects() { $calendarId = $this->createTestCalendar(); // create an event - $calData = <<<'EOD' + $calData = []; + $calData[] = <<<'EOD' BEGIN:VCALENDAR VERSION:2.0 PRODID:ownCloud Calendar BEGIN:VEVENT CREATED;VALUE=DATE-TIME:20130910T125139Z -UID:47d15e3ec8 +UID:47d15e3ec8-1 LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z DTSTAMP;VALUE=DATE-TIME:20130910T125139Z SUMMARY:Test Event @@ -295,21 +327,56 @@ CLASS:PUBLIC END:VEVENT END:VCALENDAR EOD; + + $calData[] = <<<'EOD' +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:ownCloud Calendar +BEGIN:VEVENT +CREATED;VALUE=DATE-TIME:20130910T125139Z +UID:47d15e3ec8-2 +LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z +DTSTAMP;VALUE=DATE-TIME:20130910T125139Z +SUMMARY:Test Event +DTSTART;VALUE=DATE-TIME:20130912T130000Z +DTEND;VALUE=DATE-TIME:20130912T140000Z +CLASS:PUBLIC +END:VEVENT +END:VCALENDAR +EOD; + + $calData[] = <<<'EOD' +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:ownCloud Calendar +BEGIN:VEVENT +CREATED;VALUE=DATE-TIME:20130910T125139Z +UID:47d15e3ec8-3 +LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z +DTSTAMP;VALUE=DATE-TIME:20130910T125139Z +SUMMARY:Test Event +DTSTART;VALUE=DATE-TIME:20130912T130000Z +DTEND;VALUE=DATE-TIME:20130912T140000Z +CLASS:PUBLIC +END:VEVENT +END:VCALENDAR +EOD; + $uri0 = static::getUniqueID('card'); $this->dispatcher->expects($this->at(0)) ->method('dispatch') ->with('\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject'); - $this->backend->createCalendarObject($calendarId, $uri0, $calData); + $this->backend->createCalendarObject($calendarId, $uri0, $calData[0]); $uri1 = static::getUniqueID('card'); $this->dispatcher->expects($this->at(0)) ->method('dispatch') ->with('\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject'); - $this->backend->createCalendarObject($calendarId, $uri1, $calData); + $this->backend->createCalendarObject($calendarId, $uri1, $calData[1]); $uri2 = static::getUniqueID('card'); $this->dispatcher->expects($this->at(0)) ->method('dispatch') ->with('\OCA\DAV\CalDAV\CalDavBackend::createCalendarObject'); - $this->backend->createCalendarObject($calendarId, $uri2, $calData); + $this->backend->createCalendarObject($calendarId, $uri2, $calData[2]); // get all the cards $calendarObjects = $this->backend->getCalendarObjects($calendarId); @@ -325,9 +392,15 @@ EOD; $this->assertArrayHasKey('etag', $card); $this->assertArrayHasKey('size', $card); $this->assertArrayHasKey('classification', $card); - $this->assertEquals($calData, $card['calendardata']); } + usort($calendarObjects, function($a, $b) { + return $a['id'] - $b['id']; + }); + + $this->assertEquals($calData[1], $calendarObjects[0]['calendardata']); + $this->assertEquals($calData[2], $calendarObjects[1]['calendardata']); + // delete the card $this->dispatcher->expects($this->at(0)) ->method('dispatch') @@ -370,7 +443,26 @@ EOD; public function testGetCalendarObjectByUID() { $calendarId = $this->createTestCalendar(); - $this->createEvent($calendarId, '20130912T130000Z', '20130912T140000Z'); + $uri = static::getUniqueID('calobj'); + $calData = <<<'EOD' +BEGIN:VCALENDAR +VERSION:2.0 +PRODID:ownCloud Calendar +BEGIN:VEVENT +CREATED;VALUE=DATE-TIME:20130910T125139Z +UID:47d15e3ec8 +LAST-MODIFIED;VALUE=DATE-TIME:20130910T125139Z +DTSTAMP;VALUE=DATE-TIME:20130910T125139Z +SUMMARY:Test Event +DTSTART;VALUE=DATE-TIME:20130912T130000Z +DTEND;VALUE=DATE-TIME:20130912T140000Z +CLASS:PUBLIC +END:VEVENT +END:VCALENDAR +EOD; + + + $this->backend->createCalendarObject($calendarId, $uri, $calData); $co = $this->backend->getCalendarObjectByUID(self::UNIT_TEST_USER, '47d15e3ec8'); $this->assertNotNull($co); diff --git a/apps/dav/tests/unit/CalDAV/CalendarTest.php b/apps/dav/tests/unit/CalDAV/CalendarTest.php index 3fb29fd0c6b..99ad640c447 100644 --- a/apps/dav/tests/unit/CalDAV/CalendarTest.php +++ b/apps/dav/tests/unit/CalDAV/CalendarTest.php @@ -2,7 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/CalDAV/PluginTest.php b/apps/dav/tests/unit/CalDAV/PluginTest.php index d0330af402a..7d283b6d1ed 100644 --- a/apps/dav/tests/unit/CalDAV/PluginTest.php +++ b/apps/dav/tests/unit/CalDAV/PluginTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php index 29ab503e082..82f4161c206 100644 --- a/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php +++ b/apps/dav/tests/unit/CalDAV/PublicCalendarRootTest.php @@ -1,5 +1,30 @@ <?php - +/** + * + * + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Thomas Citharel <tcit@tcit.fr> + * @author Thomas Müller <thomas.mueller@tmit.eu> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\DAV\Tests\unit\CalDAV; use OCA\DAV\CalDAV\Calendar; diff --git a/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php b/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php index 03cbf71d6ca..9783d1a6267 100644 --- a/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php +++ b/apps/dav/tests/unit/CalDAV/PublicCalendarTest.php @@ -3,20 +3,22 @@ * @copyright Copyright (c) 2017, Georg Ehrke * * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> * - * @license AGPL-3.0 + * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php b/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php index b6b1e4381b5..b2ba8ba119a 100644 --- a/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php +++ b/apps/dav/tests/unit/CalDAV/Publishing/PublisherTest.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Thomas Citharel <tcit@tcit.fr> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\DAV\Tests\unit\CalDAV\Publishing; use OCA\DAV\CalDAV\Publishing\Xml\Publisher; diff --git a/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php b/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php index b60c567e9f1..efdafe8bc33 100644 --- a/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php +++ b/apps/dav/tests/unit/CalDAV/Publishing/PublishingTest.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Thomas Citharel <tcit@tcit.fr> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\DAV\Tests\unit\CalDAV\Publishing; use OCA\DAV\CalDAV\Calendar; diff --git a/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php b/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php index 894617781b5..ee52cab2814 100644 --- a/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php +++ b/apps/dav/tests/unit/CalDAV/Schedule/IMipPluginTest.php @@ -3,9 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2017, Georg Ehrke * + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Georg Ehrke <oc.list@georgehrke.com> * * @license AGPL-3.0 * @@ -28,7 +29,15 @@ namespace OCA\DAV\Tests\unit\CalDAV\Schedule; use OC\Mail\Mailer; use OCA\DAV\CalDAV\Schedule\IMipPlugin; use OCP\AppFramework\Utility\ITimeFactory; +use OCP\IConfig; +use OCP\IL10N; use OCP\ILogger; +use OCP\IURLGenerator; +use OCP\L10N\IFactory; +use OCP\Mail\IAttachment; +use OCP\Mail\IEMailTemplate; +use OCP\Mail\IMailer; +use OCP\Mail\IMessage; use Sabre\VObject\Component\VCalendar; use Sabre\VObject\ITip\Message; use Test\TestCase; @@ -36,17 +45,31 @@ use Test\TestCase; class IMipPluginTest extends TestCase { public function testDelivery() { - $mailMessage = new \OC\Mail\Message(new \Swift_Message()); + $mailMessage = $this->createMock(IMessage::class); + $mailMessage->method('setReplyTo')->willReturn($mailMessage); + $mailMessage->method('setTo')->willReturn($mailMessage); /** @var Mailer | \PHPUnit_Framework_MockObject_MockObject $mailer */ - $mailer = $this->getMockBuilder(Mailer::class)->disableOriginalConstructor()->getMock(); + $mailer = $this->getMockBuilder(IMailer::class)->disableOriginalConstructor()->getMock(); + $emailTemplate = $this->createMock(IEMailTemplate::class); + $emailAttachment = $this->createMock(IAttachment::class); + $mailer->method('createEMailTemplate')->willReturn($emailTemplate); $mailer->method('createMessage')->willReturn($mailMessage); + $mailer->method('createAttachment')->willReturn($emailAttachment); $mailer->expects($this->once())->method('send'); /** @var ILogger | \PHPUnit_Framework_MockObject_MockObject $logger */ $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); $timeFactory = $this->getMockBuilder(ITimeFactory::class)->disableOriginalConstructor()->getMock(); $timeFactory->method('getTime')->willReturn(1); + /** @var IConfig | \PHPUnit_Framework_MockObject_MockObject $config */ + $config = $this->createMock(IConfig::class); + $l10n = $this->createMock(IL10N::class); + /** @var IFactory | \PHPUnit_Framework_MockObject_MockObject $l10nFactory */ + $l10nFactory = $this->createMock(IFactory::class); + $l10nFactory->method('get')->willReturn($l10n); + /** @var IURLGenerator | \PHPUnit_Framework_MockObject_MockObject $urlGenerator */ + $urlGenerator = $this->createMock(IURLGenerator::class); - $plugin = new IMipPlugin($mailer, $logger, $timeFactory); + $plugin = new IMipPlugin($config, $mailer, $logger, $timeFactory, $l10nFactory, $urlGenerator, 'user123'); $message = new Message(); $message->method = 'REQUEST'; $message->message = new VCalendar(); @@ -59,26 +82,46 @@ class IMipPluginTest extends TestCase { $message->sender = 'mailto:gandalf@wiz.ard'; $message->recipient = 'mailto:frodo@hobb.it'; + $emailTemplate->expects($this->once()) + ->method('setSubject') + ->with('Invitation: Fellowship meeting'); + $mailMessage->expects($this->once()) + ->method('setTo') + ->with(['frodo@hobb.it' => null]); + $mailMessage->expects($this->once()) + ->method('setReplyTo') + ->with(['gandalf@wiz.ard' => null]); + $plugin->schedule($message); $this->assertEquals('1.1', $message->getScheduleStatus()); - $this->assertEquals('Fellowship meeting', $mailMessage->getSubject()); - $this->assertEquals(['frodo@hobb.it' => null], $mailMessage->getTo()); - $this->assertEquals(['gandalf@wiz.ard' => null], $mailMessage->getReplyTo()); - $this->assertEquals('text/calendar; charset=UTF-8; method=REQUEST', $mailMessage->getSwiftMessage()->getContentType()); } public function testFailedDelivery() { - $mailMessage = new \OC\Mail\Message(new \Swift_Message()); + $mailMessage = $this->createMock(IMessage::class); + $mailMessage->method('setReplyTo')->willReturn($mailMessage); + $mailMessage->method('setTo')->willReturn($mailMessage); /** @var Mailer | \PHPUnit_Framework_MockObject_MockObject $mailer */ - $mailer = $this->getMockBuilder(Mailer::class)->disableOriginalConstructor()->getMock(); + $mailer = $this->getMockBuilder(IMailer::class)->disableOriginalConstructor()->getMock(); + $emailTemplate = $this->createMock(IEMailTemplate::class); + $emailAttachment = $this->createMock(IAttachment::class); + $mailer->method('createEMailTemplate')->willReturn($emailTemplate); $mailer->method('createMessage')->willReturn($mailMessage); + $mailer->method('createAttachment')->willReturn($emailAttachment); $mailer->method('send')->willThrowException(new \Exception()); /** @var ILogger | \PHPUnit_Framework_MockObject_MockObject $logger */ $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); $timeFactory = $this->getMockBuilder(ITimeFactory::class)->disableOriginalConstructor()->getMock(); $timeFactory->method('getTime')->willReturn(1); + /** @var IConfig | \PHPUnit_Framework_MockObject_MockObject $config */ + $config = $this->createMock(IConfig::class); + $l10n = $this->createMock(IL10N::class); + /** @var IFactory | \PHPUnit_Framework_MockObject_MockObject $l10nFactory */ + $l10nFactory = $this->createMock(IFactory::class); + $l10nFactory->method('get')->willReturn($l10n); + /** @var IURLGenerator | \PHPUnit_Framework_MockObject_MockObject $urlGenerator */ + $urlGenerator = $this->createMock(IURLGenerator::class); - $plugin = new IMipPlugin($mailer, $logger, $timeFactory); + $plugin = new IMipPlugin($config, $mailer, $logger, $timeFactory, $l10nFactory, $urlGenerator, 'user123'); $message = new Message(); $message->method = 'REQUEST'; $message->message = new VCalendar(); @@ -91,22 +134,34 @@ class IMipPluginTest extends TestCase { $message->sender = 'mailto:gandalf@wiz.ard'; $message->recipient = 'mailto:frodo@hobb.it'; + $emailTemplate->expects($this->once()) + ->method('setSubject') + ->with('Invitation: Fellowship meeting'); + $mailMessage->expects($this->once()) + ->method('setTo') + ->with(['frodo@hobb.it' => null]); + $mailMessage->expects($this->once()) + ->method('setReplyTo') + ->with(['gandalf@wiz.ard' => null]); + $plugin->schedule($message); $this->assertEquals('5.0', $message->getScheduleStatus()); - $this->assertEquals('Fellowship meeting', $mailMessage->getSubject()); - $this->assertEquals(['frodo@hobb.it' => null], $mailMessage->getTo()); - $this->assertEquals(['gandalf@wiz.ard' => null], $mailMessage->getReplyTo()); - $this->assertEquals('text/calendar; charset=UTF-8; method=REQUEST', $mailMessage->getSwiftMessage()->getContentType()); } /** * @dataProvider dataNoMessageSendForPastEvents */ public function testNoMessageSendForPastEvents($veventParams, $expectsMail) { - $mailMessage = new \OC\Mail\Message(new \Swift_Message()); + $mailMessage = $this->createMock(IMessage::class); + $mailMessage->method('setReplyTo')->willReturn($mailMessage); + $mailMessage->method('setTo')->willReturn($mailMessage); /** @var Mailer | \PHPUnit_Framework_MockObject_MockObject $mailer */ - $mailer = $this->getMockBuilder(Mailer::class)->disableOriginalConstructor()->getMock(); + $mailer = $this->getMockBuilder(IMailer::class)->disableOriginalConstructor()->getMock(); + $emailTemplate = $this->createMock(IEMailTemplate::class); + $emailAttachment = $this->createMock(IAttachment::class); + $mailer->method('createEMailTemplate')->willReturn($emailTemplate); $mailer->method('createMessage')->willReturn($mailMessage); + $mailer->method('createAttachment')->willReturn($emailAttachment); if ($expectsMail) { $mailer->expects($this->once())->method('send'); } else { @@ -116,8 +171,16 @@ class IMipPluginTest extends TestCase { $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); $timeFactory = $this->getMockBuilder(ITimeFactory::class)->disableOriginalConstructor()->getMock(); $timeFactory->method('getTime')->willReturn(1496912528); + /** @var IConfig | \PHPUnit_Framework_MockObject_MockObject $config */ + $config = $this->createMock(IConfig::class); + $l10n = $this->createMock(IL10N::class); + /** @var IFactory | \PHPUnit_Framework_MockObject_MockObject $l10nFactory */ + $l10nFactory = $this->createMock(IFactory::class); + $l10nFactory->method('get')->willReturn($l10n); + /** @var IURLGenerator | \PHPUnit_Framework_MockObject_MockObject $urlGenerator */ + $urlGenerator = $this->createMock(IURLGenerator::class); - $plugin = new IMipPlugin($mailer, $logger, $timeFactory); + $plugin = new IMipPlugin($config, $mailer, $logger, $timeFactory, $l10nFactory, $urlGenerator, 'user123'); $message = new Message(); $message->method = 'REQUEST'; $message->message = new VCalendar(); diff --git a/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php b/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php index 6df8d2da2a2..243077063a0 100644 --- a/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php +++ b/apps/dav/tests/unit/CalDAV/Schedule/PluginTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php b/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php index 20bac8aa9f5..30cf768feab 100644 --- a/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php +++ b/apps/dav/tests/unit/CalDAV/Search/Request/CalendarSearchReportTest.php @@ -1,21 +1,23 @@ <?php /** + * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> + * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ @@ -199,7 +201,7 @@ XML; </nc:calendar-search> XML; - $result = $this->parse($xml); + $this->parse($xml); } /** diff --git a/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php b/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php index fc647bb5daf..12eb74259fc 100644 --- a/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php +++ b/apps/dav/tests/unit/CalDAV/Search/SearchPluginTest.php @@ -1,21 +1,23 @@ <?php /** + * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> + * * @author Georg Ehrke <oc.list@georgehrke.com> * - * @copyright Copyright (c) 2017 Georg Ehrke <oc.list@georgehrke.com> * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/apps/dav/tests/unit/CapabilitiesTest.php b/apps/dav/tests/unit/CapabilitiesTest.php index 718f2e5d72d..e8c1a778ee6 100644 --- a/apps/dav/tests/unit/CapabilitiesTest.php +++ b/apps/dav/tests/unit/CapabilitiesTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php b/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php index 172b341bd79..89253ce9dc9 100644 --- a/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php +++ b/apps/dav/tests/unit/CardDAV/AddressBookImplTest.php @@ -3,7 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/dav/tests/unit/CardDAV/AddressBookTest.php b/apps/dav/tests/unit/CardDAV/AddressBookTest.php index 0e3d7c6f9b1..8fa6023f0d2 100644 --- a/apps/dav/tests/unit/CardDAV/AddressBookTest.php +++ b/apps/dav/tests/unit/CardDAV/AddressBookTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php index a8c0ce9d9c7..63e090873bb 100644 --- a/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php +++ b/apps/dav/tests/unit/CardDAV/CardDavBackendTest.php @@ -5,8 +5,12 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php b/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php index 7a773ac999c..768b867234c 100644 --- a/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php +++ b/apps/dav/tests/unit/CardDAV/ContactsManagerTest.php @@ -2,8 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/CardDAV/ConverterTest.php b/apps/dav/tests/unit/CardDAV/ConverterTest.php index 9ab0631e93a..757d69659e8 100644 --- a/apps/dav/tests/unit/CardDAV/ConverterTest.php +++ b/apps/dav/tests/unit/CardDAV/ConverterTest.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php b/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php index e773e41ba5e..1f7ad404251 100644 --- a/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php +++ b/apps/dav/tests/unit/CardDAV/ImageExportPluginTest.php @@ -2,7 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php b/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php index 4d4070511bb..9dbeee2434e 100644 --- a/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php +++ b/apps/dav/tests/unit/CardDAV/Sharing/PluginTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php index debc9238067..1ca27d61ce4 100644 --- a/apps/dav/tests/unit/CardDAV/SyncServiceTest.php +++ b/apps/dav/tests/unit/CardDAV/SyncServiceTest.php @@ -2,8 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Björn Schießle <bjoern@schiessle.org> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @@ -80,7 +81,7 @@ class SyncServiceTest extends TestCase { $logger = $this->getMockBuilder(ILogger::class)->disableOriginalConstructor()->getMock(); $accountManager = $this->getMockBuilder(AccountManager::class)->disableOriginalConstructor()->getMock(); $ss = new SyncService($backend, $userManager, $logger, $accountManager); - $book = $ss->ensureSystemAddressBookExists('principals/users/adam', 'contacts', []); + $ss->ensureSystemAddressBookExists('principals/users/adam', 'contacts', []); } public function testUpdateAndDeleteUser() { diff --git a/apps/dav/tests/unit/Comments/CommentsNodeTest.php b/apps/dav/tests/unit/Comments/CommentsNodeTest.php index a0ff029efa7..f38546f329e 100644 --- a/apps/dav/tests/unit/Comments/CommentsNodeTest.php +++ b/apps/dav/tests/unit/Comments/CommentsNodeTest.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/Comments/CommentsPluginTest.php b/apps/dav/tests/unit/Comments/CommentsPluginTest.php index e0f7a09a502..c713a2d0cd7 100644 --- a/apps/dav/tests/unit/Comments/CommentsPluginTest.php +++ b/apps/dav/tests/unit/Comments/CommentsPluginTest.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/Comments/EntityCollectionTest.php b/apps/dav/tests/unit/Comments/EntityCollectionTest.php index 0cac135843b..2657e117b12 100644 --- a/apps/dav/tests/unit/Comments/EntityCollectionTest.php +++ b/apps/dav/tests/unit/Comments/EntityCollectionTest.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php b/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php index c63d95ad533..9add05ee630 100644 --- a/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php +++ b/apps/dav/tests/unit/Comments/EntityTypeCollectionTest.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/Comments/RootCollectionTest.php b/apps/dav/tests/unit/Comments/RootCollectionTest.php index 05fb94239b4..fde74dc46e7 100644 --- a/apps/dav/tests/unit/Comments/RootCollectionTest.php +++ b/apps/dav/tests/unit/Comments/RootCollectionTest.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/Connector/PublicAuthTest.php b/apps/dav/tests/unit/Connector/PublicAuthTest.php index dbb39bac6d2..5f35182fa27 100644 --- a/apps/dav/tests/unit/Connector/PublicAuthTest.php +++ b/apps/dav/tests/unit/Connector/PublicAuthTest.php @@ -2,8 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php index 34998745f77..f94afb257de 100644 --- a/apps/dav/tests/unit/Connector/Sabre/AuthTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/AuthTest.php @@ -6,6 +6,7 @@ * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php b/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php index 04bb035a635..9b3163d1106 100644 --- a/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/BearerAuthTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php index e80d12979ed..e6482de8878 100644 --- a/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/BlockLegacyClientPluginTest.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php index c31a3af980b..afb72b09778 100644 --- a/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/CommentsPropertiesPluginTest.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php index f44a4abf634..580558b9517 100644 --- a/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/CopyEtagHeaderPluginTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php index c96915244f7..cbde8c2ef68 100644 --- a/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/CustomPropertiesBackendTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php b/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php index d5da0dce0d1..e72987ef02d 100644 --- a/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/DirectoryTest.php @@ -3,8 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> - * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php b/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php index fa6f849f12f..aec70328788 100644 --- a/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/DummyGetResponsePluginTest.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php index 83a51ddd86b..9cfb2c465e4 100644 --- a/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/ExceptionLoggerPluginTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php index e42bb1704f0..d8fce27e9e6 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FakeLockerPluginTest.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/dav/tests/unit/Connector/Sabre/FileTest.php b/apps/dav/tests/unit/Connector/Sabre/FileTest.php index bf9daebdc5b..4d106842cf0 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FileTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FileTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php index e3cf1ff4453..3372f99e957 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FilesPluginTest.php @@ -3,6 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Markus Goetz <markus@woboq.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php index c46e4b14805..b6290719e7d 100644 --- a/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/FilesReportPluginTest.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php b/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php index b028cb8e6ac..d4cc00f1582 100644 --- a/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/MaintenancePluginTest.php @@ -3,7 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> - * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php index fe6cbd97829..d4964557126 100644 --- a/apps/dav/tests/unit/Connector/Sabre/NodeTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/NodeTest.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php index d1b37541dc3..a8fbcb39a85 100644 --- a/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/ObjectTreeTest.php @@ -3,7 +3,6 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> - * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php b/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php index 8d7485769fa..5b77a0694fe 100644 --- a/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/PrincipalTest.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php index 927178996c9..8d3cf3620e7 100644 --- a/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/QuotaPluginTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php index 35fd83f1fe6..5e59524d143 100644 --- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/DeleteTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php index 480baab6baf..264d8b69fed 100644 --- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionMasterKeyUploadTest.php @@ -2,9 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Joas Schilling <coding@schilljs.com> - * @author Robin Appelman <robin@icewind.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Bjoern Schiessle <bjoern@schiessle.org> * * @license AGPL-3.0 * diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php index c0cba121386..448a21c1987 100644 --- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/EncryptionUploadTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php index ec4652a3af2..88b6316b689 100644 --- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/PartFileInRootUploadTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * diff --git a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php index aec467dd50a..a869e68fbbe 100644 --- a/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php +++ b/apps/dav/tests/unit/Connector/Sabre/RequestTest/RequestTestCase.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php index 57be6e5a9e2..63b84eb5c6c 100644 --- a/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/SharesPluginTest.php @@ -3,6 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Maxence Lange <maxence@nextcloud.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php b/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php index af156310887..37b35bc0178 100644 --- a/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php +++ b/apps/dav/tests/unit/Connector/Sabre/TagsPluginTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php b/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php index 32f19e9ddb9..6d130a9c792 100644 --- a/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php +++ b/apps/dav/tests/unit/DAV/BrowserErrorPagePluginTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/DAV/GroupPrincipalTest.php b/apps/dav/tests/unit/DAV/GroupPrincipalTest.php index 180fc31040a..214054176ae 100644 --- a/apps/dav/tests/unit/DAV/GroupPrincipalTest.php +++ b/apps/dav/tests/unit/DAV/GroupPrincipalTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/DAV/HookManagerTest.php b/apps/dav/tests/unit/DAV/HookManagerTest.php index 3296d550a6b..25219b7a8f2 100644 --- a/apps/dav/tests/unit/DAV/HookManagerTest.php +++ b/apps/dav/tests/unit/DAV/HookManagerTest.php @@ -2,7 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/DAV/Sharing/PluginTest.php b/apps/dav/tests/unit/DAV/Sharing/PluginTest.php index d6291467e47..c3b41590368 100644 --- a/apps/dav/tests/unit/DAV/Sharing/PluginTest.php +++ b/apps/dav/tests/unit/DAV/Sharing/PluginTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php b/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php index 71bdfb3b2bc..5833847cfed 100644 --- a/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php +++ b/apps/dav/tests/unit/DAV/SystemPrincipalBackendTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Thomas Citharel <tcit@tcit.fr> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/dav/tests/unit/Files/FileSearchBackendTest.php b/apps/dav/tests/unit/Files/FileSearchBackendTest.php index 28b6f082712..14df99a278a 100644 --- a/apps/dav/tests/unit/Files/FileSearchBackendTest.php +++ b/apps/dav/tests/unit/Files/FileSearchBackendTest.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php b/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php index bf1f708e69a..2c77078bb5e 100644 --- a/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php +++ b/apps/dav/tests/unit/Migration/CalDAVRemoveEmptyValueTest.php @@ -2,7 +2,7 @@ /** * @copyright 2016, Roeland Jago Douma <roeland@famdouma.nl> * - * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Joas Schilling <coding@schilljs.com> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/dav/tests/unit/ServerTest.php b/apps/dav/tests/unit/ServerTest.php index 1b430b0f198..d502b24adcf 100644 --- a/apps/dav/tests/unit/ServerTest.php +++ b/apps/dav/tests/unit/ServerTest.php @@ -6,6 +6,7 @@ * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php index f67160af8d0..8992cb78d0f 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagMappingNodeTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php index dd6892fe6ea..18c774883c0 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagNodeTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php index b231577845c..7e1f34a5ebf 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagPluginTest.php @@ -5,6 +5,7 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php index ec52de0536a..840b36e3f16 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagsByIdCollectionTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php index f99e4df1f69..4795d54e849 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagsObjectMappingCollectionTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php b/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php index 0dc7ace2b89..877fe56c6d8 100644 --- a/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php +++ b/apps/dav/tests/unit/SystemTag/SystemTagsObjectTypeCollectionTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/dav/tests/unit/Upload/AssemblyStreamTest.php b/apps/dav/tests/unit/Upload/AssemblyStreamTest.php index 0396f80c9f4..de60b94168e 100644 --- a/apps/dav/tests/unit/Upload/AssemblyStreamTest.php +++ b/apps/dav/tests/unit/Upload/AssemblyStreamTest.php @@ -4,7 +4,10 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Markus Goetz <markus@woboq.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/dav/tests/unit/Upload/FutureFileTest.php b/apps/dav/tests/unit/Upload/FutureFileTest.php index 10669912530..1f20642ff09 100644 --- a/apps/dav/tests/unit/Upload/FutureFileTest.php +++ b/apps/dav/tests/unit/Upload/FutureFileTest.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/encryption/appinfo/app.php b/apps/encryption/appinfo/app.php index 4f54f0e7251..63e99476602 100644 --- a/apps/encryption/appinfo/app.php +++ b/apps/encryption/appinfo/app.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * diff --git a/apps/encryption/l10n/es_EC.js b/apps/encryption/l10n/es_EC.js new file mode 100644 index 00000000000..424b1f9313f --- /dev/null +++ b/apps/encryption/l10n/es_EC.js @@ -0,0 +1,65 @@ +OC.L10N.register( + "encryption", + { + "Missing recovery key password" : "No se encontró la contraseña de la llave de recuperación", + "Please repeat the recovery key password" : "Por favor reingresa la contraseña de recuperación", + "Repeated recovery key password does not match the provided recovery key password" : "Las contraseñas de la llave de recuperación no coinciden", + "Recovery key successfully enabled" : "Llave de recuperación habilitada exitosamente", + "Could not enable recovery key. Please check your recovery key password!" : "No fue posible habilitar la llave de recuperación. ¡Por favor comprueba la contraseña de tu llave de recuperación!", + "Recovery key successfully disabled" : "Llave de recuperación deshabilitada exitosamente", + "Could not disable recovery key. Please check your recovery key password!" : "No fue posible deshabilitar la llave de recuperación. ¡Por favor comprueba la contraseña de tu llave de recuperación!", + "Missing parameters" : "Parámetros faltantes", + "Please provide the old recovery password" : "Por favor proporciona tu contraseña de recuperación anterior", + "Please provide a new recovery password" : "Por favor proporciona una nueva contraseña de recuperación", + "Please repeat the new recovery password" : "Por favor reingresa la nueva contraseña de recuperación", + "Password successfully changed." : "La contraseña ha sido cambiada exitosamente", + "Could not change the password. Maybe the old password was not correct." : "No fue posible cambiar la contraseña. Por favor verifica que contraseña anterior sea correcta.", + "Recovery Key disabled" : "Llave de recuperación deshabilitada", + "Recovery Key enabled" : "Llave de recuperación habilitada", + "Could not enable the recovery key, please try again or contact your administrator" : "No fue posible habilitar la llave de recuperación, por favor intentalo de nuevo o contacta a tu administrador", + "Could not update the private key password." : "No fue posible actualizar la contraseña de la llave privada.", + "The old password was not correct, please try again." : "La contraseña anterior no es correcta, favor de intentar de nuevo. ", + "The current log-in password was not correct, please try again." : "La contraseña actual para iniciar sesión fue incorrecta, por favor vuelvelo a intentar. ", + "Private key password successfully updated." : "Contraseña de llave privada actualizada exitosamente.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Necesitas migar tus llaves de encripción de la encripción anterior (ownCloud <=8.0) a la nueva. Por favor ejecuta 'occ encryption:migrate' o contacta a tu adminstrador", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "La llave de encripción privada es inválida para la aplicación de encripción. Por favor actualiza la contraseña de tu llave privada en tus configuraciones personales para recuperar el acceso a tus archivos encriptados. ", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "La aplicación de encripción está habilitada, pero tus llaves no han sido inicializadas. Por favor cierra sesión e inicia sesión de nuevo. ", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Por favor activa el encriptado del lado del servidor en los ajustes de administración para usar el módulo de encripción.", + "Encryption app is enabled and ready" : "La aplicación de encripción se cuentra habilitada y lista", + "Bad Signature" : "Firma equivocada", + "Missing Signature" : "Firma faltante", + "one-time password for server-side-encryption" : "Contraseña de una-sola-vez para la encripción del lado del servidor", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es posible decriptar este archivo, posiblemente sea un archivo compartido. Por favor solicita al dueño del archivo que lo vuelva a compartir contigo.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es posible leer este archivo, posiblemente sea un archivo compartido. Por favor solicita al dueño que vuelva a compartirlo contigo.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hola,\n\nel administrador ha habilitado la encripción de lado del servidor. Tus archivos fueron encriptados usando la contraseña '%s'\n\nPor favor inicia sesión en la interface web, ve a la sección \"módulo de encripción básica\" de tus configuraciones personales y actualiza su contraseña de encripción ingresando esta contraseña en el campo 'contraseña de inicio de sesión anterior' y tu contraseña de inicio de sesión actual. \n", + "The share will expire on %s." : "El elemento compartido expirará el %s.", + "Cheers!" : "¡Saludos!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hola, <br><br>el administrador ha habilitado la encripción del lado del servidor. Tus archivos fueron encriptados usando la contraseña <strong>%s</strong>.<br><br> Por favor inicia sesisón en la interface web, ve a la sección \"módulo de encripción básica\" de tus configuraciones personales y actualiza tu contraseña de encripción ingresando esta contraseña en el campo \"contraseña de inicio de sesión anterior\" y tu contraseña de inicio de sesión actual. <br><br>", + "Default encryption module" : "Módulo de encripción predeterminado", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encripción esta habilitada pero tus llaves no han sido inicializadas, por favor sal y vuelve a entrar a tu sesión", + "Encrypt the home storage" : "Encriptar el almacenamiento de inicio", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Habilitar esta opción encripta todos los archivos almacenados en el almacenamiento principal, de otro modo, sólo los archivos en el almacenamiento externo serán encriptados", + "Enable recovery key" : "Habilitar llave de recuperación", + "Disable recovery key" : "Deshabilitar llave de recuperación", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La llave de recuperación es una llave de encripción que se usa para encriptar archivos. Permite la recuperación de los archivos del usuario si este olvida su contraseña. ", + "Recovery key password" : "Contraseña de llave de recuperación", + "Repeat recovery key password" : "Repetir la contraseña de la llave de recuperación", + "Change recovery key password:" : "Cambiar la contraseña de la llave de recuperación:", + "Old recovery key password" : "Anterior contraseña de llave de recuperación", + "New recovery key password" : "Nueva contraseña de llave de recuperación", + "Repeat new recovery key password" : "Reingresar la nueva contraseña de llave de recuperación", + "Change Password" : "Cambiar contraseña", + "Basic encryption module" : "Módulo de encripción básica", + "Your private key password no longer matches your log-in password." : "Tu contraseña de llave privada ya no corresónde con tu contraseña de inicio de sesión. ", + "Set your old private key password to your current log-in password:" : "Establece tu contraseña de llave privada a tu contraseña actual de inicio de seisón:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerdas tu contraseña anterior le puedes pedir a tu administrador que recupere tus archivos.", + "Old log-in password" : "Contraseña anterior", + "Current log-in password" : "Contraseña actual", + "Update Private Key Password" : "Actualizar Contraseña de Llave Privada", + "Enable password recovery:" : "Habilitar la recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción te permitirá volver a tener acceso a tus archivos encriptados en caso de que pierdas la contraseña", + "Enabled" : "Habilitado", + "Disabled" : "Deshabilitado", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encripción está habilitada pero tus llaves no han sido establecidas, por favor cierra la sesión y vuelve a iniciarla." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/encryption/l10n/es_EC.json b/apps/encryption/l10n/es_EC.json new file mode 100644 index 00000000000..dabe0c4c41f --- /dev/null +++ b/apps/encryption/l10n/es_EC.json @@ -0,0 +1,63 @@ +{ "translations": { + "Missing recovery key password" : "No se encontró la contraseña de la llave de recuperación", + "Please repeat the recovery key password" : "Por favor reingresa la contraseña de recuperación", + "Repeated recovery key password does not match the provided recovery key password" : "Las contraseñas de la llave de recuperación no coinciden", + "Recovery key successfully enabled" : "Llave de recuperación habilitada exitosamente", + "Could not enable recovery key. Please check your recovery key password!" : "No fue posible habilitar la llave de recuperación. ¡Por favor comprueba la contraseña de tu llave de recuperación!", + "Recovery key successfully disabled" : "Llave de recuperación deshabilitada exitosamente", + "Could not disable recovery key. Please check your recovery key password!" : "No fue posible deshabilitar la llave de recuperación. ¡Por favor comprueba la contraseña de tu llave de recuperación!", + "Missing parameters" : "Parámetros faltantes", + "Please provide the old recovery password" : "Por favor proporciona tu contraseña de recuperación anterior", + "Please provide a new recovery password" : "Por favor proporciona una nueva contraseña de recuperación", + "Please repeat the new recovery password" : "Por favor reingresa la nueva contraseña de recuperación", + "Password successfully changed." : "La contraseña ha sido cambiada exitosamente", + "Could not change the password. Maybe the old password was not correct." : "No fue posible cambiar la contraseña. Por favor verifica que contraseña anterior sea correcta.", + "Recovery Key disabled" : "Llave de recuperación deshabilitada", + "Recovery Key enabled" : "Llave de recuperación habilitada", + "Could not enable the recovery key, please try again or contact your administrator" : "No fue posible habilitar la llave de recuperación, por favor intentalo de nuevo o contacta a tu administrador", + "Could not update the private key password." : "No fue posible actualizar la contraseña de la llave privada.", + "The old password was not correct, please try again." : "La contraseña anterior no es correcta, favor de intentar de nuevo. ", + "The current log-in password was not correct, please try again." : "La contraseña actual para iniciar sesión fue incorrecta, por favor vuelvelo a intentar. ", + "Private key password successfully updated." : "Contraseña de llave privada actualizada exitosamente.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Necesitas migar tus llaves de encripción de la encripción anterior (ownCloud <=8.0) a la nueva. Por favor ejecuta 'occ encryption:migrate' o contacta a tu adminstrador", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "La llave de encripción privada es inválida para la aplicación de encripción. Por favor actualiza la contraseña de tu llave privada en tus configuraciones personales para recuperar el acceso a tus archivos encriptados. ", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "La aplicación de encripción está habilitada, pero tus llaves no han sido inicializadas. Por favor cierra sesión e inicia sesión de nuevo. ", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Por favor activa el encriptado del lado del servidor en los ajustes de administración para usar el módulo de encripción.", + "Encryption app is enabled and ready" : "La aplicación de encripción se cuentra habilitada y lista", + "Bad Signature" : "Firma equivocada", + "Missing Signature" : "Firma faltante", + "one-time password for server-side-encryption" : "Contraseña de una-sola-vez para la encripción del lado del servidor", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es posible decriptar este archivo, posiblemente sea un archivo compartido. Por favor solicita al dueño del archivo que lo vuelva a compartir contigo.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "No es posible leer este archivo, posiblemente sea un archivo compartido. Por favor solicita al dueño que vuelva a compartirlo contigo.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Hola,\n\nel administrador ha habilitado la encripción de lado del servidor. Tus archivos fueron encriptados usando la contraseña '%s'\n\nPor favor inicia sesión en la interface web, ve a la sección \"módulo de encripción básica\" de tus configuraciones personales y actualiza su contraseña de encripción ingresando esta contraseña en el campo 'contraseña de inicio de sesión anterior' y tu contraseña de inicio de sesión actual. \n", + "The share will expire on %s." : "El elemento compartido expirará el %s.", + "Cheers!" : "¡Saludos!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Hola, <br><br>el administrador ha habilitado la encripción del lado del servidor. Tus archivos fueron encriptados usando la contraseña <strong>%s</strong>.<br><br> Por favor inicia sesisón en la interface web, ve a la sección \"módulo de encripción básica\" de tus configuraciones personales y actualiza tu contraseña de encripción ingresando esta contraseña en el campo \"contraseña de inicio de sesión anterior\" y tu contraseña de inicio de sesión actual. <br><br>", + "Default encryption module" : "Módulo de encripción predeterminado", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encripción esta habilitada pero tus llaves no han sido inicializadas, por favor sal y vuelve a entrar a tu sesión", + "Encrypt the home storage" : "Encriptar el almacenamiento de inicio", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Habilitar esta opción encripta todos los archivos almacenados en el almacenamiento principal, de otro modo, sólo los archivos en el almacenamiento externo serán encriptados", + "Enable recovery key" : "Habilitar llave de recuperación", + "Disable recovery key" : "Deshabilitar llave de recuperación", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "La llave de recuperación es una llave de encripción que se usa para encriptar archivos. Permite la recuperación de los archivos del usuario si este olvida su contraseña. ", + "Recovery key password" : "Contraseña de llave de recuperación", + "Repeat recovery key password" : "Repetir la contraseña de la llave de recuperación", + "Change recovery key password:" : "Cambiar la contraseña de la llave de recuperación:", + "Old recovery key password" : "Anterior contraseña de llave de recuperación", + "New recovery key password" : "Nueva contraseña de llave de recuperación", + "Repeat new recovery key password" : "Reingresar la nueva contraseña de llave de recuperación", + "Change Password" : "Cambiar contraseña", + "Basic encryption module" : "Módulo de encripción básica", + "Your private key password no longer matches your log-in password." : "Tu contraseña de llave privada ya no corresónde con tu contraseña de inicio de sesión. ", + "Set your old private key password to your current log-in password:" : "Establece tu contraseña de llave privada a tu contraseña actual de inicio de seisón:", + " If you don't remember your old password you can ask your administrator to recover your files." : "Si no recuerdas tu contraseña anterior le puedes pedir a tu administrador que recupere tus archivos.", + "Old log-in password" : "Contraseña anterior", + "Current log-in password" : "Contraseña actual", + "Update Private Key Password" : "Actualizar Contraseña de Llave Privada", + "Enable password recovery:" : "Habilitar la recuperación de contraseña:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Habilitar esta opción te permitirá volver a tener acceso a tus archivos encriptados en caso de que pierdas la contraseña", + "Enabled" : "Habilitado", + "Disabled" : "Deshabilitado", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "La aplicación de encripción está habilitada pero tus llaves no han sido establecidas, por favor cierra la sesión y vuelve a iniciarla." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/encryption/l10n/ka_GE.js b/apps/encryption/l10n/ka_GE.js new file mode 100644 index 00000000000..3797a12d54f --- /dev/null +++ b/apps/encryption/l10n/ka_GE.js @@ -0,0 +1,65 @@ +OC.L10N.register( + "encryption", + { + "Missing recovery key password" : "აღდგენის გასაღების პაროლი არამყოფია", + "Please repeat the recovery key password" : "გთხოვთ გაიმეოროთ აღდგენის გასაღების პაროლი", + "Repeated recovery key password does not match the provided recovery key password" : "გამეორებული არდგენის გასაღების პაროლი არ ემთხვევა მოწოდებულ აღდგენის გასაღების პაროლს", + "Recovery key successfully enabled" : "აღდგენის გასაღები წარმატებით ამოქმედდა", + "Could not enable recovery key. Please check your recovery key password!" : "აღდგენის გასაღები ვერ ამოქმედდა. გთხოვთ დაამოწმოთ აღდგენის გასაღების პაროლი!", + "Recovery key successfully disabled" : "აღდგენის გასაღები წარმატებით გაითიშა", + "Could not disable recovery key. Please check your recovery key password!" : "აღდგენის გასაღები ვერ გაითისა. გთხოვთ დაამოწმოთ აღდგენის გასაღების პაროლი!", + "Missing parameters" : "პარამეტრები აკლია", + "Please provide the old recovery password" : "გთხოვთ მიუთითოთ აღდგენის ძველი პაროლი", + "Please provide a new recovery password" : "გთხოვთ მიუთითოთ აღდგენის ახალი პაროლი", + "Please repeat the new recovery password" : "გთხოვთ გაიმეორთ ახალი აღდგენის პაროლი", + "Password successfully changed." : "პაროლი წარმატებით შეიცვალა.", + "Could not change the password. Maybe the old password was not correct." : "პაროლის ცვლილება ვერ მოხერხდა. შეიძლება ძველი პაროლი არასწორია", + "Recovery Key disabled" : "აღდგენის გასაღები გაითიშა", + "Recovery Key enabled" : "აღდგენის გასაღები ამოქმედდა", + "Could not enable the recovery key, please try again or contact your administrator" : "აღდგენის გასაღები ვერ ამოქმედდა, გთოვთ სცადოთ ახლიდან ან დაუკავშირდეთ თქვენს ადმინისტრატორს", + "Could not update the private key password." : "პირადი გასაღების პაროლი ვერ განახლდა.", + "The old password was not correct, please try again." : "ძველი პაროლი არ იყო სწორი, გთხოვთ სცადოთ ახლიდან.", + "The current log-in password was not correct, please try again." : "ამჟამინდელი ლოგინი პაროლი არ იყო სწორი, გთხოვთ სცადოთ ახლიდან.", + "Private key password successfully updated." : "პირადი გასაღების პაროლი წარმატებით განახლდა.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "საჭიროა შიფრაციის ძველი გასაღებების მიგრაცია (ownCloud <= 8.0) ახალებზე. გთხოვთ გაუშვათ 'occ encryption:migrate' ან დაუკავშირდეთ ადმინისტრატორს", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "შიფრაციის აპლიკაციისთვის არასწორი პირადი გასაღები. დაშიფრული ფაილებისადმი წვდომის აღსადგენად, გთხოვთ განაახლოთ თქვენი პირადი გასაღების პაროლი პირად პარამეტრებში.", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "შიფრაციის აპლიკაცია მოქმედია, თუმცა თქვენი გასაღებები არაა ინიციალიზირებული. გთხოვთ გახივდეთ და ახლიდან გაიაროთ ავტორიზაცია.", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "შიფრაციის მოდულის გამოსაყენებლად გთხოვთ ადმინისტრატორის პარამეტრებიდან აამოქმედოთ შიფრაცია სერვერულ მხარეს.", + "Encryption app is enabled and ready" : "შიფრაციის აპლიკაცია მოქმედია და მზადყოფნაშია", + "Bad Signature" : "ცუდი ხელმოწერა", + "Missing Signature" : "ხელმოწერა აკლია", + "one-time password for server-side-encryption" : "ერთჯერადი პაროლი სერვერული მხარის შიფრაციისთვის", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "ამ ფაილის გაშიფვრა ვერ ხერხდება, ალბათ ის გაზიარებული ფაილია. გთხოვთ სთხოვოთ ფაილის მფლობელს ახლიდან გააზიაროს ის თქვენთან.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "ამ ფაილის წაკითხვა არ ხერხდება, ალბათ ის გაზიარებული ფაილია. გთხოვთ სთხოვოთ ფაილის მფლობელს ახლიდან გააზიაროს ის თქვენთან.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "გამარჯობა,\n\nადმინისტრატორმა აამოქმედა სერვერული მხარის შიფრაცია. თქვენი ფაილების შიფრაცია მოხდა პაროლით '%s'.\n\nგთხოვთ ვებ-ინტერფეისში გაიაროთ ავტორიზაცია, პირად პარამეტრებში გადახვიდეთ სექციაზე 'მარტივი შიფრაციის მოდული' და განაახლოთ შიფრაციის პაროლი, 'ძველი ლოგინის პაროლისა' და ამჟამინდელი ლოგინის პაროლის შეყვანით.\n\n", + "The share will expire on %s." : "გაზიარება გაუქმდება %s-ზე.", + "Cheers!" : "წარმატებები!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "გამარჯობა,<br><br>ადმინისტრატორმა აამოქმედა სერვერული მხარის შიფრაცია. თქვენი ფაილების შიფრაცია მოხდა პაროლით <strong>%s</strong>.<br><br>გთხოვთ ვებ-ინტერფეისში გაიაროთ ავტორიზაცია, პირად პარამეტრებში გადახვიდეთ სექციაზე 'მარტივი შიფრაციის მოდული' და განაახლოთ შიფრაციის პაროლი, 'ძველი ლოგინის პაროლისა' და ამჟამინდელი ლოგინის პაროლის შეყვანით.<br><br>", + "Default encryption module" : "საწყისი შიფრაციის მოდული", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "შიფრაციის აპლიკაცია მოქმედია, მაგრამ თქვენი გასაღებები არაა ინციალიზირებული, გთხოვთ გახვიდეთ და ახლიდან გაიაროთ ავტორიზაცია", + "Encrypt the home storage" : "სახლის საცავის შიფრაცია", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "ამ არჩევნის ამოქმედება დაშიფრავს ყველა ფაილს, რომელიც განთავსებულია მთავარ საცავში, სხვა შემთხვევაში მოხოლოდ ექსტერნალურ საცავში არსებული ფაილები იქნებიან დაშიფრულნი", + "Enable recovery key" : "აამოქმედეთ აღდგენის გასაღები", + "Disable recovery key" : "დაასრულეთ აღდგენის გასაღების მოქდემება", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "აღდგენის გასაღები დამატებითი შიფრაციის გასაღებია, რომელიც გამოიყენება ფაილების დასაშიფრად. ეს იძლევა მომხმარებლის ფაილის აღდგენის უფლებას, იმ შემთხვევაში თუ მას დაავიწყდება პაროლი.", + "Recovery key password" : "აღდგენის გასაღების პაროლი", + "Repeat recovery key password" : "გაიმეორეთ აღდგენის გასაღების პაროლი", + "Change recovery key password:" : "შეცვალეთ აღდგენის გასაღების პაროლი:", + "Old recovery key password" : "ძველი აღდგენის გასაღების პაროლი", + "New recovery key password" : "ახალი აღდგენის გასაღების პაროლი", + "Repeat new recovery key password" : "გაიმეორეთ ახალი აღდგენის გასაღების პაროლი", + "Change Password" : "შეცვალეთ პაროლ", + "Basic encryption module" : "მარტივი შიფრაციის მოდული", + "Your private key password no longer matches your log-in password." : "თქვენი პირადი გასაღების პაროლი აღარ ემთხვევა ლოგინის პაროლს.", + "Set your old private key password to your current log-in password:" : "დააყენეთ თქვენი ძველი პირადი გასაღების პაროლი ამჟამინდელ ლოგინის პაროლზე:", + " If you don't remember your old password you can ask your administrator to recover your files." : "თუ არ გახსოვთ თქვენი ძველი პაროლი შეგიძლიათ მათი აღდგენა სთხოვოთ ადმინისტრატორს.", + "Old log-in password" : "ძველი ლოგინის პაროლი", + "Current log-in password" : "ამჟამინდელი ლოგინის პაროლ", + "Update Private Key Password" : "განაახლეთ პირადი გასაღების პაროლ", + "Enable password recovery:" : "აამოქმედეთ პაროლის აღდგენა:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "ამ არჩევნის ამოქმედება, პაროლის დაკარგვის შემთხვევაში, საშუალებას მოგცემთ ახლიდან მოპოვოთ წვდომა თქვენს დაშიფრულ ფაილებზე", + "Enabled" : "მოქმედია", + "Disabled" : "არაა მოქმედი", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "შიფრაციის აპლიკაცია მოქმედია, თუმცა თქვენი გასაღებები არაა ინიციალიზირებული, გთხოვთ გახვიდეთ და ახლიდან გაიაროთ ავტორიზაცია." +}, +"nplurals=1; plural=0;"); diff --git a/apps/encryption/l10n/ka_GE.json b/apps/encryption/l10n/ka_GE.json new file mode 100644 index 00000000000..89cdccac034 --- /dev/null +++ b/apps/encryption/l10n/ka_GE.json @@ -0,0 +1,63 @@ +{ "translations": { + "Missing recovery key password" : "აღდგენის გასაღების პაროლი არამყოფია", + "Please repeat the recovery key password" : "გთხოვთ გაიმეოროთ აღდგენის გასაღების პაროლი", + "Repeated recovery key password does not match the provided recovery key password" : "გამეორებული არდგენის გასაღების პაროლი არ ემთხვევა მოწოდებულ აღდგენის გასაღების პაროლს", + "Recovery key successfully enabled" : "აღდგენის გასაღები წარმატებით ამოქმედდა", + "Could not enable recovery key. Please check your recovery key password!" : "აღდგენის გასაღები ვერ ამოქმედდა. გთხოვთ დაამოწმოთ აღდგენის გასაღების პაროლი!", + "Recovery key successfully disabled" : "აღდგენის გასაღები წარმატებით გაითიშა", + "Could not disable recovery key. Please check your recovery key password!" : "აღდგენის გასაღები ვერ გაითისა. გთხოვთ დაამოწმოთ აღდგენის გასაღების პაროლი!", + "Missing parameters" : "პარამეტრები აკლია", + "Please provide the old recovery password" : "გთხოვთ მიუთითოთ აღდგენის ძველი პაროლი", + "Please provide a new recovery password" : "გთხოვთ მიუთითოთ აღდგენის ახალი პაროლი", + "Please repeat the new recovery password" : "გთხოვთ გაიმეორთ ახალი აღდგენის პაროლი", + "Password successfully changed." : "პაროლი წარმატებით შეიცვალა.", + "Could not change the password. Maybe the old password was not correct." : "პაროლის ცვლილება ვერ მოხერხდა. შეიძლება ძველი პაროლი არასწორია", + "Recovery Key disabled" : "აღდგენის გასაღები გაითიშა", + "Recovery Key enabled" : "აღდგენის გასაღები ამოქმედდა", + "Could not enable the recovery key, please try again or contact your administrator" : "აღდგენის გასაღები ვერ ამოქმედდა, გთოვთ სცადოთ ახლიდან ან დაუკავშირდეთ თქვენს ადმინისტრატორს", + "Could not update the private key password." : "პირადი გასაღების პაროლი ვერ განახლდა.", + "The old password was not correct, please try again." : "ძველი პაროლი არ იყო სწორი, გთხოვთ სცადოთ ახლიდან.", + "The current log-in password was not correct, please try again." : "ამჟამინდელი ლოგინი პაროლი არ იყო სწორი, გთხოვთ სცადოთ ახლიდან.", + "Private key password successfully updated." : "პირადი გასაღების პაროლი წარმატებით განახლდა.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "საჭიროა შიფრაციის ძველი გასაღებების მიგრაცია (ownCloud <= 8.0) ახალებზე. გთხოვთ გაუშვათ 'occ encryption:migrate' ან დაუკავშირდეთ ადმინისტრატორს", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "შიფრაციის აპლიკაციისთვის არასწორი პირადი გასაღები. დაშიფრული ფაილებისადმი წვდომის აღსადგენად, გთხოვთ განაახლოთ თქვენი პირადი გასაღების პაროლი პირად პარამეტრებში.", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "შიფრაციის აპლიკაცია მოქმედია, თუმცა თქვენი გასაღებები არაა ინიციალიზირებული. გთხოვთ გახივდეთ და ახლიდან გაიაროთ ავტორიზაცია.", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "შიფრაციის მოდულის გამოსაყენებლად გთხოვთ ადმინისტრატორის პარამეტრებიდან აამოქმედოთ შიფრაცია სერვერულ მხარეს.", + "Encryption app is enabled and ready" : "შიფრაციის აპლიკაცია მოქმედია და მზადყოფნაშია", + "Bad Signature" : "ცუდი ხელმოწერა", + "Missing Signature" : "ხელმოწერა აკლია", + "one-time password for server-side-encryption" : "ერთჯერადი პაროლი სერვერული მხარის შიფრაციისთვის", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "ამ ფაილის გაშიფვრა ვერ ხერხდება, ალბათ ის გაზიარებული ფაილია. გთხოვთ სთხოვოთ ფაილის მფლობელს ახლიდან გააზიაროს ის თქვენთან.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "ამ ფაილის წაკითხვა არ ხერხდება, ალბათ ის გაზიარებული ფაილია. გთხოვთ სთხოვოთ ფაილის მფლობელს ახლიდან გააზიაროს ის თქვენთან.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "გამარჯობა,\n\nადმინისტრატორმა აამოქმედა სერვერული მხარის შიფრაცია. თქვენი ფაილების შიფრაცია მოხდა პაროლით '%s'.\n\nგთხოვთ ვებ-ინტერფეისში გაიაროთ ავტორიზაცია, პირად პარამეტრებში გადახვიდეთ სექციაზე 'მარტივი შიფრაციის მოდული' და განაახლოთ შიფრაციის პაროლი, 'ძველი ლოგინის პაროლისა' და ამჟამინდელი ლოგინის პაროლის შეყვანით.\n\n", + "The share will expire on %s." : "გაზიარება გაუქმდება %s-ზე.", + "Cheers!" : "წარმატებები!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "გამარჯობა,<br><br>ადმინისტრატორმა აამოქმედა სერვერული მხარის შიფრაცია. თქვენი ფაილების შიფრაცია მოხდა პაროლით <strong>%s</strong>.<br><br>გთხოვთ ვებ-ინტერფეისში გაიაროთ ავტორიზაცია, პირად პარამეტრებში გადახვიდეთ სექციაზე 'მარტივი შიფრაციის მოდული' და განაახლოთ შიფრაციის პაროლი, 'ძველი ლოგინის პაროლისა' და ამჟამინდელი ლოგინის პაროლის შეყვანით.<br><br>", + "Default encryption module" : "საწყისი შიფრაციის მოდული", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "შიფრაციის აპლიკაცია მოქმედია, მაგრამ თქვენი გასაღებები არაა ინციალიზირებული, გთხოვთ გახვიდეთ და ახლიდან გაიაროთ ავტორიზაცია", + "Encrypt the home storage" : "სახლის საცავის შიფრაცია", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "ამ არჩევნის ამოქმედება დაშიფრავს ყველა ფაილს, რომელიც განთავსებულია მთავარ საცავში, სხვა შემთხვევაში მოხოლოდ ექსტერნალურ საცავში არსებული ფაილები იქნებიან დაშიფრულნი", + "Enable recovery key" : "აამოქმედეთ აღდგენის გასაღები", + "Disable recovery key" : "დაასრულეთ აღდგენის გასაღების მოქდემება", + "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "აღდგენის გასაღები დამატებითი შიფრაციის გასაღებია, რომელიც გამოიყენება ფაილების დასაშიფრად. ეს იძლევა მომხმარებლის ფაილის აღდგენის უფლებას, იმ შემთხვევაში თუ მას დაავიწყდება პაროლი.", + "Recovery key password" : "აღდგენის გასაღების პაროლი", + "Repeat recovery key password" : "გაიმეორეთ აღდგენის გასაღების პაროლი", + "Change recovery key password:" : "შეცვალეთ აღდგენის გასაღების პაროლი:", + "Old recovery key password" : "ძველი აღდგენის გასაღების პაროლი", + "New recovery key password" : "ახალი აღდგენის გასაღების პაროლი", + "Repeat new recovery key password" : "გაიმეორეთ ახალი აღდგენის გასაღების პაროლი", + "Change Password" : "შეცვალეთ პაროლ", + "Basic encryption module" : "მარტივი შიფრაციის მოდული", + "Your private key password no longer matches your log-in password." : "თქვენი პირადი გასაღების პაროლი აღარ ემთხვევა ლოგინის პაროლს.", + "Set your old private key password to your current log-in password:" : "დააყენეთ თქვენი ძველი პირადი გასაღების პაროლი ამჟამინდელ ლოგინის პაროლზე:", + " If you don't remember your old password you can ask your administrator to recover your files." : "თუ არ გახსოვთ თქვენი ძველი პაროლი შეგიძლიათ მათი აღდგენა სთხოვოთ ადმინისტრატორს.", + "Old log-in password" : "ძველი ლოგინის პაროლი", + "Current log-in password" : "ამჟამინდელი ლოგინის პაროლ", + "Update Private Key Password" : "განაახლეთ პირადი გასაღების პაროლ", + "Enable password recovery:" : "აამოქმედეთ პაროლის აღდგენა:", + "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "ამ არჩევნის ამოქმედება, პაროლის დაკარგვის შემთხვევაში, საშუალებას მოგცემთ ახლიდან მოპოვოთ წვდომა თქვენს დაშიფრულ ფაილებზე", + "Enabled" : "მოქმედია", + "Disabled" : "არაა მოქმედი", + "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "შიფრაციის აპლიკაცია მოქმედია, თუმცა თქვენი გასაღებები არაა ინიციალიზირებული, გთხოვთ გახვიდეთ და ახლიდან გაიაროთ ავტორიზაცია." +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/apps/encryption/l10n/sr.js b/apps/encryption/l10n/sr.js index f41cc4ffeb6..ac03e3cc744 100644 --- a/apps/encryption/l10n/sr.js +++ b/apps/encryption/l10n/sr.js @@ -17,28 +17,28 @@ OC.L10N.register( "Recovery Key disabled" : "Кључ за опоравак искључен", "Recovery Key enabled" : "Кључ за опоравак укључен", "Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ за опоравак. Покушајте поново или контактирајте администратора", - "Could not update the private key password." : "Не могу да ажурирам лозинку тајног кључа.", + "Could not update the private key password." : "Не могу да ажурирам лозинку личног кључа.", "The old password was not correct, please try again." : "Стара лозинка није исправна. Покушајте поново.", "The current log-in password was not correct, please try again." : "Тренутна лозинка за пријаву није исправна. Покушајте поново.", "Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) у нови. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'", - "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан тајни кључ за апликацију шифровања. Ажурирајте Ваш тајни кључ у личним подешавањима да вратите назад приступ шифрованим фајловима.", - "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Апликација за шифровање је укључена, али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", - "Please enable server side encryption in the admin settings in order to use the encryption module." : "Укључите шифровање на страни сервера и администраторским подешавањима да бисте користили модул за шифровање.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) у нове. Покрените 'occ encryption:migrate' или контактирајте администратора.", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан лични кључ за шифровање. Ажурирајте лозинку личног кључа у поставкама да повратите приступ шифрованим фајловима.", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Апликација за шифровање је укључена али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Укључите шифровање на страни сервера у администраторским поставкама да бисте користили модул за шифровање.", "Encryption app is enabled and ready" : "Апликација за шифровање је укључена и спремна", "Bad Signature" : "Лош потпис", "Missing Signature" : "Недостаје потпис", - "one-time password for server-side-encryption" : "једнокрана лозинка за шифровање на серверској страни", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са Вама.", - "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да читам фајл. Вероватно је дељен. Питајте власника да га поново подели са Вама.", - "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Поштовање,\n\nадминистратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком '%s'.\n\nУлогујте се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним подешавањима и ажурирајте Вашу лозинку за шифровање тако што унесете ову лозинку у поље 'стара лозинка за пријаву' и Вашу тренутно лозинку за пријављивање.\n", + "one-time password for server-side-encryption" : "једнократна лозинка за шифровање на страни сервера", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника да га поново подели.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да читам фајл. Вероватно је дељен. Питајте власника да га поново подели.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Поштовање,\n\nадминистратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком „%s“.\n\nПријавите се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним поставкама и ажурирајте своју лозинку за шифровање уношењем ове лозинке у поље „стара лозинка за пријаву“ и своју тренутну лозинку за пријављивање.\n", "The share will expire on %s." : "Дељење истиче %s.", - "Cheers!" : "Поздрав!", - "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Поштовање,<br><br>администратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком <strong>%s</strong>.<br><br>Улогујте се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним подешавањима и ажурирајте Вашу лозинку за шифровање тако што унесете ову лозинку у поље 'стара лозинка за пријаву' и Вашу тренутно лозинку за пријављивање.<br><br>", + "Cheers!" : "Здраво!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Поштовање,<br><br>администратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком <strong>%s</strong>.<br><br>Пријавите се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним поставкама и ажурирајте своју лозинку за шифровање тако што унесете ову лозинку у поље 'стара лозинка за пријаву' и своју тренутну лозинку за пријављивање.<br><br>", "Default encryption module" : "Подразумевани модул за шифровање", - "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација за шифровање је укључена, али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", - "Encrypt the home storage" : "Шифрујте Ваше главно складиште", - "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Укључивањем ове опције ћете шифровати све фајлове на главном складишту, а у супротном ће само фајловим на спољашњем складишту бити шифровани", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација за шифровање је укључена али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", + "Encrypt the home storage" : "Шифровање главног складишта", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Укључивање ове опције ће шифровати све фајлове на главном складишту. У супротном ће само фајлови на спољашњем складишту бити шифровани", "Enable recovery key" : "Омогући кључ за опоравак", "Disable recovery key" : "Онемогући кључ за опоравак", "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.", @@ -58,8 +58,8 @@ OC.L10N.register( "Update Private Key Password" : "Ажурирај лозинку личног кључа", "Enable password recovery:" : "Укључи опоравак лозинке:", "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Укључивање ове опције омогућиће поновно добијање приступа вашим шифрованим фајловима у случају губитка лозинке", - "Enabled" : "Укључено", - "Disabled" : "Искључено", + "Enabled" : "укључено", + "Disabled" : "искључено", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите." }, "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"); diff --git a/apps/encryption/l10n/sr.json b/apps/encryption/l10n/sr.json index 316dd670947..eec6b6e158f 100644 --- a/apps/encryption/l10n/sr.json +++ b/apps/encryption/l10n/sr.json @@ -15,28 +15,28 @@ "Recovery Key disabled" : "Кључ за опоравак искључен", "Recovery Key enabled" : "Кључ за опоравак укључен", "Could not enable the recovery key, please try again or contact your administrator" : "Не могу да укључим кључ за опоравак. Покушајте поново или контактирајте администратора", - "Could not update the private key password." : "Не могу да ажурирам лозинку тајног кључа.", + "Could not update the private key password." : "Не могу да ажурирам лозинку личног кључа.", "The old password was not correct, please try again." : "Стара лозинка није исправна. Покушајте поново.", "The current log-in password was not correct, please try again." : "Тренутна лозинка за пријаву није исправна. Покушајте поново.", "Private key password successfully updated." : "Лозинка личног кључа је успешно ажурирана.", - "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) у нови. Укључите „оунКлауд подразумевани шифрарски модул“ и покрените 'occ encryption:migrate'", - "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан тајни кључ за апликацију шифровања. Ажурирајте Ваш тајни кључ у личним подешавањима да вратите назад приступ шифрованим фајловима.", - "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Апликација за шифровање је укључена, али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", - "Please enable server side encryption in the admin settings in order to use the encryption module." : "Укључите шифровање на страни сервера и администраторским подешавањима да бисте користили модул за шифровање.", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please run 'occ encryption:migrate' or contact your administrator" : "Морате да пребаците старе шифрарске кључеве (оунКлауд <= 8.0) у нове. Покрените 'occ encryption:migrate' или контактирајте администратора.", + "Invalid private key for encryption app. Please update your private key password in your personal settings to recover access to your encrypted files." : "Неисправан лични кључ за шифровање. Ажурирајте лозинку личног кључа у поставкама да повратите приступ шифрованим фајловима.", + "Encryption App is enabled, but your keys are not initialized. Please log-out and log-in again." : "Апликација за шифровање је укључена али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", + "Please enable server side encryption in the admin settings in order to use the encryption module." : "Укључите шифровање на страни сервера у администраторским поставкама да бисте користили модул за шифровање.", "Encryption app is enabled and ready" : "Апликација за шифровање је укључена и спремна", "Bad Signature" : "Лош потпис", "Missing Signature" : "Недостаје потпис", - "one-time password for server-side-encryption" : "једнокрана лозинка за шифровање на серверској страни", - "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника фајла да га поново подели са Вама.", - "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да читам фајл. Вероватно је дељен. Питајте власника да га поново подели са Вама.", - "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Поштовање,\n\nадминистратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком '%s'.\n\nУлогујте се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним подешавањима и ажурирајте Вашу лозинку за шифровање тако што унесете ову лозинку у поље 'стара лозинка за пријаву' и Вашу тренутно лозинку за пријављивање.\n", + "one-time password for server-side-encryption" : "једнократна лозинка за шифровање на страни сервера", + "Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да дешифрујем фајл. Вероватно је то дељен фајл. Затражите од власника да га поново подели.", + "Can not read this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не могу да читам фајл. Вероватно је дељен. Питајте власника да га поново подели.", + "Hey there,\n\nthe admin enabled server-side-encryption. Your files were encrypted using the password '%s'.\n\nPlease login to the web interface, go to the section 'basic encryption module' of your personal settings and update your encryption password by entering this password into the 'old log-in password' field and your current login-password.\n\n" : "Поштовање,\n\nадминистратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком „%s“.\n\nПријавите се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним поставкама и ажурирајте своју лозинку за шифровање уношењем ове лозинке у поље „стара лозинка за пријаву“ и своју тренутну лозинку за пријављивање.\n", "The share will expire on %s." : "Дељење истиче %s.", - "Cheers!" : "Поздрав!", - "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Поштовање,<br><br>администратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком <strong>%s</strong>.<br><br>Улогујте се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним подешавањима и ажурирајте Вашу лозинку за шифровање тако што унесете ову лозинку у поље 'стара лозинка за пријаву' и Вашу тренутно лозинку за пријављивање.<br><br>", + "Cheers!" : "Здраво!", + "Hey there,<br><br>the admin enabled server-side-encryption. Your files were encrypted using the password <strong>%s</strong>.<br><br>Please login to the web interface, go to the section \"basic encryption module\" of your personal settings and update your encryption password by entering this password into the \"old log-in password\" field and your current login-password.<br><br>" : "Поштовање,<br><br>администратор је укључио шифровање на серверској страни. Ваши фајлови су шифровани лозинком <strong>%s</strong>.<br><br>Пријавите се на веб сучеље, идите на одељак 'основни модул за шифровање' у личним поставкама и ажурирајте своју лозинку за шифровање тако што унесете ову лозинку у поље 'стара лозинка за пријаву' и своју тренутну лозинку за пријављивање.<br><br>", "Default encryption module" : "Подразумевани модул за шифровање", - "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација за шифровање је укључена, али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", - "Encrypt the home storage" : "Шифрујте Ваше главно складиште", - "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Укључивањем ове опције ћете шифровати све фајлове на главном складишту, а у супротном ће само фајловим на спољашњем складишту бити шифровани", + "Encryption app is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација за шифровање је укључена али кључеви још нису иницијализовани. Одјавите се и поново се пријавите.", + "Encrypt the home storage" : "Шифровање главног складишта", + "Enabling this option encrypts all files stored on the main storage, otherwise only files on external storage will be encrypted" : "Укључивање ове опције ће шифровати све фајлове на главном складишту. У супротном ће само фајлови на спољашњем складишту бити шифровани", "Enable recovery key" : "Омогући кључ за опоравак", "Disable recovery key" : "Онемогући кључ за опоравак", "The recovery key is an extra encryption key that is used to encrypt files. It allows recovery of a user's files if the user forgets his or her password." : "Кључ за опоравак је додатни шифрарски кључ који се користи за шифровање фајлова. Он омогућава опоравак корисничких фајлова ако корисник заборави своју лозинку.", @@ -56,8 +56,8 @@ "Update Private Key Password" : "Ажурирај лозинку личног кључа", "Enable password recovery:" : "Укључи опоравак лозинке:", "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" : "Укључивање ове опције омогућиће поновно добијање приступа вашим шифрованим фајловима у случају губитка лозинке", - "Enabled" : "Укључено", - "Disabled" : "Искључено", + "Enabled" : "укључено", + "Disabled" : "искључено", "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Апликација шифровања је укључена али ваши кључеви нису иницијализовани. Одјавите се и поново се пријавите." },"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);" }
\ No newline at end of file diff --git a/apps/encryption/lib/AppInfo/Application.php b/apps/encryption/lib/AppInfo/Application.php index dd9d173c8eb..2130044d1f4 100644 --- a/apps/encryption/lib/AppInfo/Application.php +++ b/apps/encryption/lib/AppInfo/Application.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/encryption/lib/Command/DisableMasterKey.php b/apps/encryption/lib/Command/DisableMasterKey.php index 97c2ad40b61..230de754bfc 100644 --- a/apps/encryption/lib/Command/DisableMasterKey.php +++ b/apps/encryption/lib/Command/DisableMasterKey.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/encryption/lib/Command/MigrateKeys.php b/apps/encryption/lib/Command/MigrateKeys.php index 1cdd76795d9..18eb6e710a6 100644 --- a/apps/encryption/lib/Command/MigrateKeys.php +++ b/apps/encryption/lib/Command/MigrateKeys.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 * diff --git a/apps/encryption/lib/Controller/StatusController.php b/apps/encryption/lib/Controller/StatusController.php index 9ec9fd1234b..b133d5b2e5b 100644 --- a/apps/encryption/lib/Controller/StatusController.php +++ b/apps/encryption/lib/Controller/StatusController.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/encryption/lib/Crypto/Crypt.php b/apps/encryption/lib/Crypto/Crypt.php index 6e1b7387c88..090ca6184d6 100644 --- a/apps/encryption/lib/Crypto/Crypt.php +++ b/apps/encryption/lib/Crypto/Crypt.php @@ -2,10 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/encryption/lib/Crypto/EncryptAll.php b/apps/encryption/lib/Crypto/EncryptAll.php index 2afab22d522..c2619dc8ef1 100644 --- a/apps/encryption/lib/Crypto/EncryptAll.php +++ b/apps/encryption/lib/Crypto/EncryptAll.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Kenneth Newwood <kenneth@newwood.name> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/encryption/lib/Crypto/Encryption.php b/apps/encryption/lib/Crypto/Encryption.php index 4d20c103a5d..bd75e4ae10c 100644 --- a/apps/encryption/lib/Crypto/Encryption.php +++ b/apps/encryption/lib/Crypto/Encryption.php @@ -2,11 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/encryption/lib/Hooks/UserHooks.php b/apps/encryption/lib/Hooks/UserHooks.php index a08796aee54..1dade9f782f 100644 --- a/apps/encryption/lib/Hooks/UserHooks.php +++ b/apps/encryption/lib/Hooks/UserHooks.php @@ -2,8 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/encryption/lib/KeyManager.php b/apps/encryption/lib/KeyManager.php index 6039aaaaa0e..d25a25cdcb8 100644 --- a/apps/encryption/lib/KeyManager.php +++ b/apps/encryption/lib/KeyManager.php @@ -2,9 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/encryption/lib/Migration.php b/apps/encryption/lib/Migration.php index 656cab6a1e1..35f35a1520c 100644 --- a/apps/encryption/lib/Migration.php +++ b/apps/encryption/lib/Migration.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/apps/encryption/lib/Migration/SetMasterKeyStatus.php b/apps/encryption/lib/Migration/SetMasterKeyStatus.php index a21d0acae24..2c515fd5f72 100644 --- a/apps/encryption/lib/Migration/SetMasterKeyStatus.php +++ b/apps/encryption/lib/Migration/SetMasterKeyStatus.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/encryption/lib/Session.php b/apps/encryption/lib/Session.php index a61ee25fadb..c8f6ac6d0da 100644 --- a/apps/encryption/lib/Session.php +++ b/apps/encryption/lib/Session.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/apps/encryption/lib/Util.php b/apps/encryption/lib/Util.php index d6ae9bd7e5e..5926817dc48 100644 --- a/apps/encryption/lib/Util.php +++ b/apps/encryption/lib/Util.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Phil Davis <phil.davis@inf.org> diff --git a/apps/encryption/tests/Command/TestEnableMasterKey.php b/apps/encryption/tests/Command/TestEnableMasterKey.php index 58118db8c53..3b58148f376 100644 --- a/apps/encryption/tests/Command/TestEnableMasterKey.php +++ b/apps/encryption/tests/Command/TestEnableMasterKey.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/Controller/RecoveryControllerTest.php b/apps/encryption/tests/Controller/RecoveryControllerTest.php index 7ab3bc7eebb..c38436e68e2 100644 --- a/apps/encryption/tests/Controller/RecoveryControllerTest.php +++ b/apps/encryption/tests/Controller/RecoveryControllerTest.php @@ -4,6 +4,7 @@ * * @author Clark Tomlinson <fallen013@gmail.com> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/Controller/SettingsControllerTest.php b/apps/encryption/tests/Controller/SettingsControllerTest.php index aceb94b23f7..b12652b51c9 100644 --- a/apps/encryption/tests/Controller/SettingsControllerTest.php +++ b/apps/encryption/tests/Controller/SettingsControllerTest.php @@ -4,6 +4,8 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/Controller/StatusControllerTest.php b/apps/encryption/tests/Controller/StatusControllerTest.php index d72fcd1ac36..0dc04b0ba1c 100644 --- a/apps/encryption/tests/Controller/StatusControllerTest.php +++ b/apps/encryption/tests/Controller/StatusControllerTest.php @@ -2,8 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/Crypto/CryptTest.php b/apps/encryption/tests/Crypto/CryptTest.php index ace4453a803..9645dc3cce0 100644 --- a/apps/encryption/tests/Crypto/CryptTest.php +++ b/apps/encryption/tests/Crypto/CryptTest.php @@ -2,9 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/Crypto/DecryptAllTest.php b/apps/encryption/tests/Crypto/DecryptAllTest.php index 99b1b47ba8e..c14549bb96a 100644 --- a/apps/encryption/tests/Crypto/DecryptAllTest.php +++ b/apps/encryption/tests/Crypto/DecryptAllTest.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/Crypto/EncryptAllTest.php b/apps/encryption/tests/Crypto/EncryptAllTest.php index 38b64a8b6bf..0d894ab6fd7 100644 --- a/apps/encryption/tests/Crypto/EncryptAllTest.php +++ b/apps/encryption/tests/Crypto/EncryptAllTest.php @@ -4,6 +4,9 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Kenneth Newwood <kenneth@newwood.name> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/Crypto/EncryptionTest.php b/apps/encryption/tests/Crypto/EncryptionTest.php index 42da71b0eb1..3e47b4b0750 100644 --- a/apps/encryption/tests/Crypto/EncryptionTest.php +++ b/apps/encryption/tests/Crypto/EncryptionTest.php @@ -2,8 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/HookManagerTest.php b/apps/encryption/tests/HookManagerTest.php index 109afb1ef8d..0b0c09bbf79 100644 --- a/apps/encryption/tests/HookManagerTest.php +++ b/apps/encryption/tests/HookManagerTest.php @@ -4,6 +4,8 @@ * * @author Clark Tomlinson <fallen013@gmail.com> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/Hooks/UserHooksTest.php b/apps/encryption/tests/Hooks/UserHooksTest.php index f4c7a5ae0f7..f951ddb37f7 100644 --- a/apps/encryption/tests/Hooks/UserHooksTest.php +++ b/apps/encryption/tests/Hooks/UserHooksTest.php @@ -2,9 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/KeyManagerTest.php b/apps/encryption/tests/KeyManagerTest.php index 721b7f53a0c..7af9e39e95d 100644 --- a/apps/encryption/tests/KeyManagerTest.php +++ b/apps/encryption/tests/KeyManagerTest.php @@ -2,11 +2,15 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/MigrationTest.php b/apps/encryption/tests/MigrationTest.php index 71d2f52dd5c..3854a821809 100644 --- a/apps/encryption/tests/MigrationTest.php +++ b/apps/encryption/tests/MigrationTest.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * diff --git a/apps/encryption/tests/RecoveryTest.php b/apps/encryption/tests/RecoveryTest.php index 2dda774565c..b83b71737f3 100644 --- a/apps/encryption/tests/RecoveryTest.php +++ b/apps/encryption/tests/RecoveryTest.php @@ -6,6 +6,8 @@ * @author Clark Tomlinson <fallen013@gmail.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/SessionTest.php b/apps/encryption/tests/SessionTest.php index 3000fedf2c3..7bced196793 100644 --- a/apps/encryption/tests/SessionTest.php +++ b/apps/encryption/tests/SessionTest.php @@ -2,9 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/encryption/tests/Settings/AdminTest.php b/apps/encryption/tests/Settings/AdminTest.php index 5fe3fe956e4..9afc024dfc8 100644 --- a/apps/encryption/tests/Settings/AdminTest.php +++ b/apps/encryption/tests/Settings/AdminTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/encryption/tests/Users/SetupTest.php b/apps/encryption/tests/Users/SetupTest.php index 27866ef3927..f61969039a8 100644 --- a/apps/encryption/tests/Users/SetupTest.php +++ b/apps/encryption/tests/Users/SetupTest.php @@ -5,6 +5,8 @@ * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/encryption/tests/UtilTest.php b/apps/encryption/tests/UtilTest.php index e59565d3b84..1777d1f8f1f 100644 --- a/apps/encryption/tests/UtilTest.php +++ b/apps/encryption/tests/UtilTest.php @@ -2,9 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/appinfo/app.php b/apps/federatedfilesharing/appinfo/app.php index 62265ff0644..f941987365f 100644 --- a/apps/federatedfilesharing/appinfo/app.php +++ b/apps/federatedfilesharing/appinfo/app.php @@ -4,6 +4,8 @@ * * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/appinfo/routes.php b/apps/federatedfilesharing/appinfo/routes.php index 3c1272840ed..9dafbfdc770 100644 --- a/apps/federatedfilesharing/appinfo/routes.php +++ b/apps/federatedfilesharing/appinfo/routes.php @@ -4,6 +4,8 @@ * * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/federatedfilesharing/l10n/es_EC.js b/apps/federatedfilesharing/l10n/es_EC.js new file mode 100644 index 00000000000..c4be26868c2 --- /dev/null +++ b/apps/federatedfilesharing/l10n/es_EC.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "federatedfilesharing", + { + "Federated sharing" : "Elementos compartidos", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?", + "Remote share" : "Elemento compartido remoto", + "Remote share password" : "Contraseña del elemento compartido remoto", + "Cancel" : "Cancelar", + "Add remote share" : "Agregar elemento compartido remoto", + "Copy" : "Copiar", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar.", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Invalid Federated Cloud ID" : "El ID es inválido", + "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor", + "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ", + "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.", + "The mountpoint name contains invalid characters." : "El nombre del punto de montaje contiene caracteres inválidos.", + "Not allowed to create a federated share with the owner." : "No está permitido crear un elemento compartido federado con el dueño. ", + "Invalid or untrusted SSL certificate" : "Certificado SSL inválido o no de confianza", + "Could not authenticate to remote share, password might be wrong" : "No fue posible autenticarse ante el elemento compartido remoto, la contraseña puede estar incorrecta", + "Storage not valid" : "Almacenamiento inválido", + "Federated share added" : "Elemento compartido Federado agregado", + "Couldn't add remote share" : "No fue posible agregar el elemento compartido remoto", + "Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya se encuentra compartido con %s", + "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario", + "File is already shared with %s" : "El archivo ya ha sido compartido con %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Se presentó una falla al compartir %s, no fue posible encontrar %s, tal vez el servidor no está alcanzable o usa un certificado auto-firmado.", + "Could not find share" : "No fue posible encontrar el elemento compartido", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Has recibido \"%3$s\" como un elemento compartido remoto de %1$s (de parte de %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Has recibido \"%3$s\" como un elemento compartido remoto de %1$s", + "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}", + "Accept" : "Aceptar", + "Decline" : "Rechazar", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud, ver %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud", + "Sharing" : "Compartiendo", + "Federated Cloud Sharing" : "Compartiendo en la Nube Federada", + "Open documentation" : "Abrir documentación", + "Adjust how people can share between servers." : "Ajustar cómo las personas pueden compartir entre servidores. ", + "Allow users on this server to send shares to other servers" : "Permitirle a los usuarios de este servidor enviar elementos compartidos a otros servidores", + "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores", + "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas", + "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública", + "Federated Cloud" : "Nube Federada", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "¡Puedes compartir con cualquiera que use NextCloud, ownCloud o Pydio! Solo ingresa tu ID de Nube Federada en ventana de diálogo de compartir. Se ve algo así como person@cloud.example.com", + "Your Federated Cloud ID:" : "Tu ID de Nube Federada:", + "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:", + "Add to your website" : "Agregar a tu sitio web", + "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud", + "HTML Code:" : "Código HTML:", + "Search global and public address book for users and let local users publish their data" : "Buscar una libreta de direcciones global y pública para los usuarios y permitir a los usuarios locales publicar sus datos", + "Share it:" : "Compartirlo:" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/federatedfilesharing/l10n/es_EC.json b/apps/federatedfilesharing/l10n/es_EC.json new file mode 100644 index 00000000000..29ee41a77e4 --- /dev/null +++ b/apps/federatedfilesharing/l10n/es_EC.json @@ -0,0 +1,56 @@ +{ "translations": { + "Federated sharing" : "Elementos compartidos", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "¿Desea agregar el elemento compartido remoto {name} de {owner}@{remote}?", + "Remote share" : "Elemento compartido remoto", + "Remote share password" : "Contraseña del elemento compartido remoto", + "Cancel" : "Cancelar", + "Add remote share" : "Agregar elemento compartido remoto", + "Copy" : "Copiar", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar.", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Invalid Federated Cloud ID" : "El ID es inválido", + "Server to server sharing is not enabled on this server" : "Compartir de servidor a servidor no está habilitado en este servidor", + "Couldn't establish a federated share." : "No fue posible establecer el elemento compartido. ", + "Couldn't establish a federated share, maybe the password was wrong." : "No fue posible establecer el elemento compartido federado, tal vez la contraseña sea incorrecta. ", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "Solicitud de elemento compartido Federado enviada, recibiras una invitación. Verifica tus notificaciones.", + "The mountpoint name contains invalid characters." : "El nombre del punto de montaje contiene caracteres inválidos.", + "Not allowed to create a federated share with the owner." : "No está permitido crear un elemento compartido federado con el dueño. ", + "Invalid or untrusted SSL certificate" : "Certificado SSL inválido o no de confianza", + "Could not authenticate to remote share, password might be wrong" : "No fue posible autenticarse ante el elemento compartido remoto, la contraseña puede estar incorrecta", + "Storage not valid" : "Almacenamiento inválido", + "Federated share added" : "Elemento compartido Federado agregado", + "Couldn't add remote share" : "No fue posible agregar el elemento compartido remoto", + "Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya se encuentra compartido con %s", + "Not allowed to create a federated share with the same user" : "No está permitido crear un elelmento compartido federado con el mismo usuario", + "File is already shared with %s" : "El archivo ya ha sido compartido con %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "Se presentó una falla al compartir %s, no fue posible encontrar %s, tal vez el servidor no está alcanzable o usa un certificado auto-firmado.", + "Could not find share" : "No fue posible encontrar el elemento compartido", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "Has recibido \"%3$s\" como un elemento compartido remoto de %1$s (de parte de %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "Has recibido {share} como un elemento compartido remoto de {user} (de parte de {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "Has recibido \"%3$s\" como un elemento compartido remoto de %1$s", + "You received {share} as a remote share from {user}" : "Recibiste {share} como un elemento compartido remoto de {user}", + "Accept" : "Aceptar", + "Decline" : "Rechazar", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud, ver %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "Compartir conmigo a través de mi ID de Nube Federada #Nextcloud", + "Sharing" : "Compartiendo", + "Federated Cloud Sharing" : "Compartiendo en la Nube Federada", + "Open documentation" : "Abrir documentación", + "Adjust how people can share between servers." : "Ajustar cómo las personas pueden compartir entre servidores. ", + "Allow users on this server to send shares to other servers" : "Permitirle a los usuarios de este servidor enviar elementos compartidos a otros servidores", + "Allow users on this server to receive shares from other servers" : "Permitirle alos usuarios de este servidor recibir elementos compartidos de otros servidores", + "Search global and public address book for users" : "Buscar usuarios en las libretas de contactos globales y públicas", + "Allow users to publish their data to a global and public address book" : "Permitirle a los usuarios publicar sus datos a una libreta de direcciones global y pública", + "Federated Cloud" : "Nube Federada", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "¡Puedes compartir con cualquiera que use NextCloud, ownCloud o Pydio! Solo ingresa tu ID de Nube Federada en ventana de diálogo de compartir. Se ve algo así como person@cloud.example.com", + "Your Federated Cloud ID:" : "Tu ID de Nube Federada:", + "Share it so your friends can share files with you:" : "Compártelo para que tus amigos puedan compartir archivos contigo:", + "Add to your website" : "Agregar a tu sitio web", + "Share with me via Nextcloud" : "Compartir conmigo vía Nextcloud", + "HTML Code:" : "Código HTML:", + "Search global and public address book for users and let local users publish their data" : "Buscar una libreta de direcciones global y pública para los usuarios y permitir a los usuarios locales publicar sus datos", + "Share it:" : "Compartirlo:" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/federatedfilesharing/l10n/ka_GE.js b/apps/federatedfilesharing/l10n/ka_GE.js new file mode 100644 index 00000000000..2f6963d3675 --- /dev/null +++ b/apps/federatedfilesharing/l10n/ka_GE.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "federatedfilesharing", + { + "Federated sharing" : "ფედერალიზირებული გაზიარება", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "გსურთ დაამატოთ {owner}@{remote}-ის დისტანცური გაზიარება {name}?", + "Remote share" : "დისტანციური გაზიარება", + "Remote share password" : "დისტანციური გაზიარების პაროლი", + "Cancel" : "გაუქმება", + "Add remote share" : "დისტანციური გაზიარების დამატება", + "Copy" : "კოპირება", + "Copied!" : "კოპირებულია!", + "Not supported!" : "არაა მხარდაჭერილი!", + "Press ⌘-C to copy." : "კოპირებისთვის დააჭირეთ ⌘-C.", + "Press Ctrl-C to copy." : "კოპირებისთვის დააჭირეთ Ctrl-C-ს.", + "Invalid Federated Cloud ID" : "არასწორი ფედერალიზირებული ქლაუდ ID", + "Server to server sharing is not enabled on this server" : "ამ სერვერზე სერვერიდან სერვერზე გაზიარება არაა ჩართული", + "Couldn't establish a federated share." : "ფედერალიზირებული გაზიარება ვერ დამყარდა.", + "Couldn't establish a federated share, maybe the password was wrong." : "ფედერალიზირებული გაზიარება ვერ დამყარდა, შეისაძლოა პაროლი არ იყოს მართებული.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "ფედერალიზირებული გაზიარების მოთხოვნა გაიგზავნა, თქვენ მიიღებთ მოწვევას. შეამოწმეთ თქვენი შეტყობინებები.", + "The mountpoint name contains invalid characters." : "დამონტაჟების წერტილის სახელი შეიცავს არასწორ სიმბოლოებს.", + "Not allowed to create a federated share with the owner." : "მფლობელთან ფედერალიზირებული გაზიარების შექმნა არაა ნებადართული.", + "Invalid or untrusted SSL certificate" : "არასწორი ან არასანდო SSL სერტიფიკატი", + "Could not authenticate to remote share, password might be wrong" : "დისტანციურ გაზიარებასთან აუტენტიფიკაცია არ მოხერხდა, შესაძლოა პაროლი იყოს არასწორი", + "Storage not valid" : "საცავი არაა სწორი", + "Federated share added" : "ფედერალიზირებული გაზიარება დაემატა", + "Couldn't add remote share" : "ფედერალიზირებული გაზიარება ვერ დაემატა", + "Sharing %s failed, because this item is already shared with %s" : "%s-ს გაზიარება არ მოხერხდა, ეს ობიექტი %s-სთან უკვე გაზიარებულია", + "Not allowed to create a federated share with the same user" : "იმავე მომხმარებელთან ფედერალიზირებული გაზიარება ვერ შეიქმნება", + "File is already shared with %s" : "ფაილი უკვე გაზიარებულია %s-თან", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "%s-ის გაზიარება ვერ მოხერხდა, ვერ ვოპოვეთ %s, ალბათ სერვერი ახლა მიუწვდომელია ან იყენებს თავის ხელმოწერილ სერტიფიკატს.", + "Could not find share" : "გაზიარება ვერ იქნა ნაპოვნი", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "თქვენ მიიღეთ \"%3$s\" როგორც დისტანციური გაზიარება %1$s-სგან (სახელით %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "თქვენ მიიღეთ გაზიარება {share} როგორც დისტანციური გაზიარება {user}-სგან (სახელით {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "თქვენ მიიღეთ \"%3$s\" როგორც დისტანციური გაზიარება %1$s-სგან", + "You received {share} as a remote share from {user}" : "თქვენ მიიღეთ {share} როგორც დისტანციური გაზიარება {user}-სგან", + "Accept" : "მიღება", + "Decline" : "უარყოფა", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "გააზიარეთ ჩემთან ჩემი #Nextcloud-ის ფედერალიზირებული ქლაუდ ID-ის მეშვეობით, იხილეთ %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "გააზიარეთ ჩემთან ჩემი #Nextcloud-ის ფედერალიზირებული ქლაუდ ID-ის მეშვეობით", + "Sharing" : "გაზიარება", + "Federated Cloud Sharing" : "ფედერალიზირებული ქლაუდ გაზიარება", + "Open documentation" : "ღია დოკუმენტაცია", + "Adjust how people can share between servers." : "განაგეთ თუ როგორ შეუძლიათ ადამიანებს სერვერებს შორის მოახდინონ გაზიარება.", + "Allow users on this server to send shares to other servers" : "დართეთ ნება მომხმარებლებს ამ სერვერზე გააგზავნონ გაზიარებები სხვა სერვერებთან", + "Allow users on this server to receive shares from other servers" : "დართეთ ნება მომხმარებლებს ამ სერვერზე მიიღონ გაზიარებები სხვა სერვერებიდან", + "Search global and public address book for users" : "მოძებნეთ გლობალური და ღია მომხმარებლების მისამართების წიგნები", + "Allow users to publish their data to a global and public address book" : "დართეთ ნება მომხმარებლებს გამოაქყვეყნონ მათი მონაცემები გლობალურ და საზოგადო მისამართების წიგნებში", + "Federated Cloud" : "ფედერალიზირებული ქლაუდი", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "შეგიძლიათ გაუზიაროთ ნებისმიერ ადამიანს ვინც იყენებს Nextcloud-ს, ownCloud-ს ან Pydio!-ს უბრალოდ მოათავსეთ მათი ფედერალიზირებული ქლაუდ ID-ები გაზიარების დიალოგში. ის გამოიყურება როგოც person@cloud.example.com", + "Your Federated Cloud ID:" : "თქვენი ფედერალიზირებული ქლაუდ ID:", + "Share it so your friends can share files with you:" : "გააზიარეთ, რომ თქვენმა მეგობრებმაც შეზლონ ფაილების გაზიარება თქვენთან:", + "Add to your website" : "საიტზე დამატება", + "Share with me via Nextcloud" : "გამიზიარე Nextcloud-ის მეშვეობით", + "HTML Code:" : "HTML კოდი:", + "Search global and public address book for users and let local users publish their data" : "მოიძიეთ გლობალური და ღია მისამართების წიგნები მომხმარებლებისთვის და მიეცით უფლება ლოკალურ მომხმარებლებს გააზიარონ საკუთარი მონაცემები", + "Share it:" : "გააზიარე ეს:" +}, +"nplurals=1; plural=0;"); diff --git a/apps/federatedfilesharing/l10n/ka_GE.json b/apps/federatedfilesharing/l10n/ka_GE.json new file mode 100644 index 00000000000..b3828a150a0 --- /dev/null +++ b/apps/federatedfilesharing/l10n/ka_GE.json @@ -0,0 +1,56 @@ +{ "translations": { + "Federated sharing" : "ფედერალიზირებული გაზიარება", + "Do you want to add the remote share {name} from {owner}@{remote}?" : "გსურთ დაამატოთ {owner}@{remote}-ის დისტანცური გაზიარება {name}?", + "Remote share" : "დისტანციური გაზიარება", + "Remote share password" : "დისტანციური გაზიარების პაროლი", + "Cancel" : "გაუქმება", + "Add remote share" : "დისტანციური გაზიარების დამატება", + "Copy" : "კოპირება", + "Copied!" : "კოპირებულია!", + "Not supported!" : "არაა მხარდაჭერილი!", + "Press ⌘-C to copy." : "კოპირებისთვის დააჭირეთ ⌘-C.", + "Press Ctrl-C to copy." : "კოპირებისთვის დააჭირეთ Ctrl-C-ს.", + "Invalid Federated Cloud ID" : "არასწორი ფედერალიზირებული ქლაუდ ID", + "Server to server sharing is not enabled on this server" : "ამ სერვერზე სერვერიდან სერვერზე გაზიარება არაა ჩართული", + "Couldn't establish a federated share." : "ფედერალიზირებული გაზიარება ვერ დამყარდა.", + "Couldn't establish a federated share, maybe the password was wrong." : "ფედერალიზირებული გაზიარება ვერ დამყარდა, შეისაძლოა პაროლი არ იყოს მართებული.", + "Federated Share request sent, you will receive an invitation. Check your notifications." : "ფედერალიზირებული გაზიარების მოთხოვნა გაიგზავნა, თქვენ მიიღებთ მოწვევას. შეამოწმეთ თქვენი შეტყობინებები.", + "The mountpoint name contains invalid characters." : "დამონტაჟების წერტილის სახელი შეიცავს არასწორ სიმბოლოებს.", + "Not allowed to create a federated share with the owner." : "მფლობელთან ფედერალიზირებული გაზიარების შექმნა არაა ნებადართული.", + "Invalid or untrusted SSL certificate" : "არასწორი ან არასანდო SSL სერტიფიკატი", + "Could not authenticate to remote share, password might be wrong" : "დისტანციურ გაზიარებასთან აუტენტიფიკაცია არ მოხერხდა, შესაძლოა პაროლი იყოს არასწორი", + "Storage not valid" : "საცავი არაა სწორი", + "Federated share added" : "ფედერალიზირებული გაზიარება დაემატა", + "Couldn't add remote share" : "ფედერალიზირებული გაზიარება ვერ დაემატა", + "Sharing %s failed, because this item is already shared with %s" : "%s-ს გაზიარება არ მოხერხდა, ეს ობიექტი %s-სთან უკვე გაზიარებულია", + "Not allowed to create a federated share with the same user" : "იმავე მომხმარებელთან ფედერალიზირებული გაზიარება ვერ შეიქმნება", + "File is already shared with %s" : "ფაილი უკვე გაზიარებულია %s-თან", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable or uses a self-signed certificate." : "%s-ის გაზიარება ვერ მოხერხდა, ვერ ვოპოვეთ %s, ალბათ სერვერი ახლა მიუწვდომელია ან იყენებს თავის ხელმოწერილ სერტიფიკატს.", + "Could not find share" : "გაზიარება ვერ იქნა ნაპოვნი", + "You received \"%3$s\" as a remote share from %1$s (on behalf of %2$s)" : "თქვენ მიიღეთ \"%3$s\" როგორც დისტანციური გაზიარება %1$s-სგან (სახელით %2$s)", + "You received {share} as a remote share from {user} (on behalf of {behalf})" : "თქვენ მიიღეთ გაზიარება {share} როგორც დისტანციური გაზიარება {user}-სგან (სახელით {behalf})", + "You received \"%3$s\" as a remote share from %1$s" : "თქვენ მიიღეთ \"%3$s\" როგორც დისტანციური გაზიარება %1$s-სგან", + "You received {share} as a remote share from {user}" : "თქვენ მიიღეთ {share} როგორც დისტანციური გაზიარება {user}-სგან", + "Accept" : "მიღება", + "Decline" : "უარყოფა", + "Share with me through my #Nextcloud Federated Cloud ID, see %s" : "გააზიარეთ ჩემთან ჩემი #Nextcloud-ის ფედერალიზირებული ქლაუდ ID-ის მეშვეობით, იხილეთ %s", + "Share with me through my #Nextcloud Federated Cloud ID" : "გააზიარეთ ჩემთან ჩემი #Nextcloud-ის ფედერალიზირებული ქლაუდ ID-ის მეშვეობით", + "Sharing" : "გაზიარება", + "Federated Cloud Sharing" : "ფედერალიზირებული ქლაუდ გაზიარება", + "Open documentation" : "ღია დოკუმენტაცია", + "Adjust how people can share between servers." : "განაგეთ თუ როგორ შეუძლიათ ადამიანებს სერვერებს შორის მოახდინონ გაზიარება.", + "Allow users on this server to send shares to other servers" : "დართეთ ნება მომხმარებლებს ამ სერვერზე გააგზავნონ გაზიარებები სხვა სერვერებთან", + "Allow users on this server to receive shares from other servers" : "დართეთ ნება მომხმარებლებს ამ სერვერზე მიიღონ გაზიარებები სხვა სერვერებიდან", + "Search global and public address book for users" : "მოძებნეთ გლობალური და ღია მომხმარებლების მისამართების წიგნები", + "Allow users to publish their data to a global and public address book" : "დართეთ ნება მომხმარებლებს გამოაქყვეყნონ მათი მონაცემები გლობალურ და საზოგადო მისამართების წიგნებში", + "Federated Cloud" : "ფედერალიზირებული ქლაუდი", + "You can share with anyone who uses Nextcloud, ownCloud or Pydio! Just put their Federated Cloud ID in the share dialog. It looks like person@cloud.example.com" : "შეგიძლიათ გაუზიაროთ ნებისმიერ ადამიანს ვინც იყენებს Nextcloud-ს, ownCloud-ს ან Pydio!-ს უბრალოდ მოათავსეთ მათი ფედერალიზირებული ქლაუდ ID-ები გაზიარების დიალოგში. ის გამოიყურება როგოც person@cloud.example.com", + "Your Federated Cloud ID:" : "თქვენი ფედერალიზირებული ქლაუდ ID:", + "Share it so your friends can share files with you:" : "გააზიარეთ, რომ თქვენმა მეგობრებმაც შეზლონ ფაილების გაზიარება თქვენთან:", + "Add to your website" : "საიტზე დამატება", + "Share with me via Nextcloud" : "გამიზიარე Nextcloud-ის მეშვეობით", + "HTML Code:" : "HTML კოდი:", + "Search global and public address book for users and let local users publish their data" : "მოიძიეთ გლობალური და ღია მისამართების წიგნები მომხმარებლებისთვის და მიეცით უფლება ლოკალურ მომხმარებლებს გააზიარონ საკუთარი მონაცემები", + "Share it:" : "გააზიარე ეს:" +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/apps/federatedfilesharing/lib/AddressHandler.php b/apps/federatedfilesharing/lib/AddressHandler.php index 6c59df06863..78234f17ed7 100644 --- a/apps/federatedfilesharing/lib/AddressHandler.php +++ b/apps/federatedfilesharing/lib/AddressHandler.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/lib/AppInfo/Application.php b/apps/federatedfilesharing/lib/AppInfo/Application.php index a2e2f761862..ba0126c3fa3 100644 --- a/apps/federatedfilesharing/lib/AppInfo/Application.php +++ b/apps/federatedfilesharing/lib/AppInfo/Application.php @@ -2,7 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php b/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php index bb07c2717f9..bd0990e37c2 100644 --- a/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php +++ b/apps/federatedfilesharing/lib/BackgroundJob/RetryJob.php @@ -2,7 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php b/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php index 09bc7333c13..19f98b264e6 100644 --- a/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php +++ b/apps/federatedfilesharing/lib/Controller/MountPublicLinkController.php @@ -3,8 +3,12 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2016, Björn Schießle <bjoern@schiessle.org> * + * @author Allan Nordhøy <epost@anotheragency.no> * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php index 529d7f7db67..e0985f9aefc 100644 --- a/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php +++ b/apps/federatedfilesharing/lib/Controller/RequestHandlerController.php @@ -3,10 +3,13 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/lib/FederatedShareProvider.php b/apps/federatedfilesharing/lib/FederatedShareProvider.php index 60a54c6ca3c..27606c5fdec 100644 --- a/apps/federatedfilesharing/lib/FederatedShareProvider.php +++ b/apps/federatedfilesharing/lib/FederatedShareProvider.php @@ -4,6 +4,9 @@ * * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/federatedfilesharing/lib/Notifications.php b/apps/federatedfilesharing/lib/Notifications.php index 5abac711985..6f3f699e5c4 100644 --- a/apps/federatedfilesharing/lib/Notifications.php +++ b/apps/federatedfilesharing/lib/Notifications.php @@ -4,9 +4,7 @@ * * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> - * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> - * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/lib/Notifier.php b/apps/federatedfilesharing/lib/Notifier.php index 2b7c9f78a75..03491f20af6 100644 --- a/apps/federatedfilesharing/lib/Notifier.php +++ b/apps/federatedfilesharing/lib/Notifier.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/lib/Settings/Admin.php b/apps/federatedfilesharing/lib/Settings/Admin.php index 47470fd5841..cbeaa167fff 100644 --- a/apps/federatedfilesharing/lib/Settings/Admin.php +++ b/apps/federatedfilesharing/lib/Settings/Admin.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/federatedfilesharing/lib/Settings/Personal.php b/apps/federatedfilesharing/lib/Settings/Personal.php index 13e96cf872e..e7522d0c963 100644 --- a/apps/federatedfilesharing/lib/Settings/Personal.php +++ b/apps/federatedfilesharing/lib/Settings/Personal.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Marin Treselj <marin@pixelipo.com> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/federatedfilesharing/tests/AddressHandlerTest.php b/apps/federatedfilesharing/tests/AddressHandlerTest.php index a9c5cedf49b..358bef428bc 100644 --- a/apps/federatedfilesharing/tests/AddressHandlerTest.php +++ b/apps/federatedfilesharing/tests/AddressHandlerTest.php @@ -2,7 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php b/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php index cef341fdc81..e4556972b10 100644 --- a/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php +++ b/apps/federatedfilesharing/tests/Controller/MountPublicLinkControllerTest.php @@ -5,6 +5,8 @@ * * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php b/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php index 585102d687a..d04c75b9a86 100644 --- a/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php +++ b/apps/federatedfilesharing/tests/Controller/RequestHandlerControllerTest.php @@ -2,11 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php index aa81eef9e63..0a6d95d9d9e 100644 --- a/apps/federatedfilesharing/tests/FederatedShareProviderTest.php +++ b/apps/federatedfilesharing/tests/FederatedShareProviderTest.php @@ -2,8 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * diff --git a/apps/federatedfilesharing/tests/NotificationsTest.php b/apps/federatedfilesharing/tests/NotificationsTest.php index 4f70d5f3950..c2ad1b2030d 100644 --- a/apps/federatedfilesharing/tests/NotificationsTest.php +++ b/apps/federatedfilesharing/tests/NotificationsTest.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/tests/Settings/AdminTest.php b/apps/federatedfilesharing/tests/Settings/AdminTest.php index 183cd055686..debd2bec63a 100644 --- a/apps/federatedfilesharing/tests/Settings/AdminTest.php +++ b/apps/federatedfilesharing/tests/Settings/AdminTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/federatedfilesharing/tests/TestCase.php b/apps/federatedfilesharing/tests/TestCase.php index b31772e4e9e..35fbd97803e 100644 --- a/apps/federatedfilesharing/tests/TestCase.php +++ b/apps/federatedfilesharing/tests/TestCase.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/apps/federatedfilesharing/tests/TokenHandlerTest.php b/apps/federatedfilesharing/tests/TokenHandlerTest.php index 2025b90e00b..aca6c3d26c1 100644 --- a/apps/federatedfilesharing/tests/TokenHandlerTest.php +++ b/apps/federatedfilesharing/tests/TokenHandlerTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/apps/federation/appinfo/routes.php b/apps/federation/appinfo/routes.php index 01c37eab584..065be94f36b 100644 --- a/apps/federation/appinfo/routes.php +++ b/apps/federation/appinfo/routes.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/federation/l10n/es_EC.js b/apps/federation/l10n/es_EC.js new file mode 100644 index 00000000000..f67269dab94 --- /dev/null +++ b/apps/federation/l10n/es_EC.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "federation", + { + "Added to the list of trusted servers" : "Agregado a la lista de servidores de confianza", + "Server is already in the list of trusted servers." : "El servidor ya se encuentra en la lista de servidores de confianza.", + "No server to federate with found" : "No se encontraron servidores para integrar a la federación", + "Could not add server" : "No fue posible agregar el servidor", + "Trusted servers" : "Servidores de confianza", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "La federación te permite conectarte con otros servidores de confianza para intercambiar el directorio de usuarios. Por ejemplo, esto se usará para auto-completar usuarios externos en el recurso compartido federado.", + "Add server automatically once a federated share was created successfully" : "Agregar el servidor automáticamente una vez que se genere exitosamente el elemento compartido federado", + "+ Add trusted server" : "+ Agregar servidor de confianza", + "Trusted server" : "Servidor de confianza", + "Add" : "Agregar", + "Federation" : "Federación" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/federation/l10n/es_EC.json b/apps/federation/l10n/es_EC.json new file mode 100644 index 00000000000..4e87e62726f --- /dev/null +++ b/apps/federation/l10n/es_EC.json @@ -0,0 +1,14 @@ +{ "translations": { + "Added to the list of trusted servers" : "Agregado a la lista de servidores de confianza", + "Server is already in the list of trusted servers." : "El servidor ya se encuentra en la lista de servidores de confianza.", + "No server to federate with found" : "No se encontraron servidores para integrar a la federación", + "Could not add server" : "No fue posible agregar el servidor", + "Trusted servers" : "Servidores de confianza", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "La federación te permite conectarte con otros servidores de confianza para intercambiar el directorio de usuarios. Por ejemplo, esto se usará para auto-completar usuarios externos en el recurso compartido federado.", + "Add server automatically once a federated share was created successfully" : "Agregar el servidor automáticamente una vez que se genere exitosamente el elemento compartido federado", + "+ Add trusted server" : "+ Agregar servidor de confianza", + "Trusted server" : "Servidor de confianza", + "Add" : "Agregar", + "Federation" : "Federación" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/federation/l10n/ka_GE.js b/apps/federation/l10n/ka_GE.js new file mode 100644 index 00000000000..c58d846f758 --- /dev/null +++ b/apps/federation/l10n/ka_GE.js @@ -0,0 +1,16 @@ +OC.L10N.register( + "federation", + { + "Added to the list of trusted servers" : "დაემატა სანდო სერვერების სიას", + "Server is already in the list of trusted servers." : "სერვერი უკვე დაცული სერვერების სიაშია.", + "No server to federate with found" : "სერვერი რომელთანაც შედგება ფედერალიზირება არ იქნა ნაპოვნი", + "Could not add server" : "სერვერის დამატება ვერ მოხერხდა", + "Trusted servers" : "სანდო სერვერები", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "ფედერალიზაცია იძლევა საშუალებას დაუკავშირდეთ სხვა დაცულ სერვერებს და გაცვალოთ მომხმარებლის დირექტორია. მაგალითისთვის ეს გამოყენებულ იქნება რომ მოხდეს ექსტერნალური მომხმარებლების ფედერალური გაზიარებისთვის ავტო-დასრულება.", + "Add server automatically once a federated share was created successfully" : "სერვერის ავტომატურად დამატება, როდესაც ფედერალიზირებული გაზიარება წარმატებით შეიქმნება", + "+ Add trusted server" : "+ სანდო სერვერის დამატება", + "Trusted server" : "სანდო სერვერი", + "Add" : "დამატება", + "Federation" : "ფედერაცია" +}, +"nplurals=1; plural=0;"); diff --git a/apps/federation/l10n/ka_GE.json b/apps/federation/l10n/ka_GE.json new file mode 100644 index 00000000000..5b929351305 --- /dev/null +++ b/apps/federation/l10n/ka_GE.json @@ -0,0 +1,14 @@ +{ "translations": { + "Added to the list of trusted servers" : "დაემატა სანდო სერვერების სიას", + "Server is already in the list of trusted servers." : "სერვერი უკვე დაცული სერვერების სიაშია.", + "No server to federate with found" : "სერვერი რომელთანაც შედგება ფედერალიზირება არ იქნა ნაპოვნი", + "Could not add server" : "სერვერის დამატება ვერ მოხერხდა", + "Trusted servers" : "სანდო სერვერები", + "Federation allows you to connect with other trusted servers to exchange the user directory. For example this will be used to auto-complete external users for federated sharing." : "ფედერალიზაცია იძლევა საშუალებას დაუკავშირდეთ სხვა დაცულ სერვერებს და გაცვალოთ მომხმარებლის დირექტორია. მაგალითისთვის ეს გამოყენებულ იქნება რომ მოხდეს ექსტერნალური მომხმარებლების ფედერალური გაზიარებისთვის ავტო-დასრულება.", + "Add server automatically once a federated share was created successfully" : "სერვერის ავტომატურად დამატება, როდესაც ფედერალიზირებული გაზიარება წარმატებით შეიქმნება", + "+ Add trusted server" : "+ სანდო სერვერის დამატება", + "Trusted server" : "სანდო სერვერი", + "Add" : "დამატება", + "Federation" : "ფედერაცია" +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/apps/federation/lib/AppInfo/Application.php b/apps/federation/lib/AppInfo/Application.php index 38bbe293a56..ea8116e4353 100644 --- a/apps/federation/lib/AppInfo/Application.php +++ b/apps/federation/lib/AppInfo/Application.php @@ -3,7 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> - * @author Robin Appelman <robin@icewind.nl> + * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/federation/lib/BackgroundJob/GetSharedSecret.php b/apps/federation/lib/BackgroundJob/GetSharedSecret.php index bf9f58999db..a3b087e12f8 100644 --- a/apps/federation/lib/BackgroundJob/GetSharedSecret.php +++ b/apps/federation/lib/BackgroundJob/GetSharedSecret.php @@ -2,9 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/federation/lib/BackgroundJob/RequestSharedSecret.php b/apps/federation/lib/BackgroundJob/RequestSharedSecret.php index 7effb838d8b..0ba4e37f759 100644 --- a/apps/federation/lib/BackgroundJob/RequestSharedSecret.php +++ b/apps/federation/lib/BackgroundJob/RequestSharedSecret.php @@ -2,9 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/federation/lib/Command/SyncFederationAddressBooks.php b/apps/federation/lib/Command/SyncFederationAddressBooks.php index db332d3d7ad..3b1f95b0502 100644 --- a/apps/federation/lib/Command/SyncFederationAddressBooks.php +++ b/apps/federation/lib/Command/SyncFederationAddressBooks.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/federation/lib/Controller/OCSAuthAPIController.php b/apps/federation/lib/Controller/OCSAuthAPIController.php index b0594877b23..a1284a4e3ad 100644 --- a/apps/federation/lib/Controller/OCSAuthAPIController.php +++ b/apps/federation/lib/Controller/OCSAuthAPIController.php @@ -2,8 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/federation/lib/Controller/SettingsController.php b/apps/federation/lib/Controller/SettingsController.php index 68267dcb73c..6e64200dc8c 100644 --- a/apps/federation/lib/Controller/SettingsController.php +++ b/apps/federation/lib/Controller/SettingsController.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Morris Jobke <hey@morrisjobke.de> * diff --git a/apps/federation/lib/DbHandler.php b/apps/federation/lib/DbHandler.php index 04968daf0fd..abfb4c2f1b9 100644 --- a/apps/federation/lib/DbHandler.php +++ b/apps/federation/lib/DbHandler.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/federation/lib/Middleware/AddServerMiddleware.php b/apps/federation/lib/Middleware/AddServerMiddleware.php index 082596216c8..247cc958833 100644 --- a/apps/federation/lib/Middleware/AddServerMiddleware.php +++ b/apps/federation/lib/Middleware/AddServerMiddleware.php @@ -2,8 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/federation/lib/SyncFederationAddressBooks.php b/apps/federation/lib/SyncFederationAddressBooks.php index 87419a5ba54..b5cd9a574c4 100644 --- a/apps/federation/lib/SyncFederationAddressBooks.php +++ b/apps/federation/lib/SyncFederationAddressBooks.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/federation/lib/SyncJob.php b/apps/federation/lib/SyncJob.php index 2e5d1578ba2..0aa1d61affb 100644 --- a/apps/federation/lib/SyncJob.php +++ b/apps/federation/lib/SyncJob.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/federation/lib/TrustedServers.php b/apps/federation/lib/TrustedServers.php index 067cf671a96..79cf86ab67b 100644 --- a/apps/federation/lib/TrustedServers.php +++ b/apps/federation/lib/TrustedServers.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php index 8759392caea..fca64faebe4 100644 --- a/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php +++ b/apps/federation/tests/BackgroundJob/GetSharedSecretTest.php @@ -2,8 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php b/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php index 276180e5137..33133e3b12f 100644 --- a/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php +++ b/apps/federation/tests/BackgroundJob/RequestSharedSecretTest.php @@ -2,8 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/federation/tests/Controller/OCSAuthAPIControllerTest.php b/apps/federation/tests/Controller/OCSAuthAPIControllerTest.php index ef6c7c80bfc..b489bc16e50 100644 --- a/apps/federation/tests/Controller/OCSAuthAPIControllerTest.php +++ b/apps/federation/tests/Controller/OCSAuthAPIControllerTest.php @@ -2,8 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/federation/tests/Controller/SettingsControllerTest.php b/apps/federation/tests/Controller/SettingsControllerTest.php index 2f93ebfeaa1..f023274e3e4 100644 --- a/apps/federation/tests/Controller/SettingsControllerTest.php +++ b/apps/federation/tests/Controller/SettingsControllerTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/federation/tests/DbHandlerTest.php b/apps/federation/tests/DbHandlerTest.php index d9f9cf162b6..8a1b9e32755 100644 --- a/apps/federation/tests/DbHandlerTest.php +++ b/apps/federation/tests/DbHandlerTest.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/federation/tests/Middleware/AddServerMiddlewareTest.php b/apps/federation/tests/Middleware/AddServerMiddlewareTest.php index 6c502c66f5f..4620234d685 100644 --- a/apps/federation/tests/Middleware/AddServerMiddlewareTest.php +++ b/apps/federation/tests/Middleware/AddServerMiddlewareTest.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/federation/tests/SyncFederationAddressbooksTest.php b/apps/federation/tests/SyncFederationAddressbooksTest.php index 9ce5efeb457..3ee12c8830c 100644 --- a/apps/federation/tests/SyncFederationAddressbooksTest.php +++ b/apps/federation/tests/SyncFederationAddressbooksTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/apps/federation/tests/TrustedServersTest.php b/apps/federation/tests/TrustedServersTest.php index 5995c5e4462..c350796a01a 100644 --- a/apps/federation/tests/TrustedServersTest.php +++ b/apps/federation/tests/TrustedServersTest.php @@ -2,9 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/files/ajax/download.php b/apps/files/ajax/download.php index 7c33cdec6dd..cc9ae7d566b 100644 --- a/apps/files/ajax/download.php +++ b/apps/files/ajax/download.php @@ -5,6 +5,7 @@ * @author Andreas Fischer <bantu@owncloud.com> * @author Björn Schießle <bjoern@schiessle.org> * @author Frank Karlitschek <frank@karlitschek.de> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/apps/files/appinfo/app.php b/apps/files/appinfo/app.php index 63acda3a706..6624740b931 100644 --- a/apps/files/appinfo/app.php +++ b/apps/files/appinfo/app.php @@ -2,11 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Jakob Sack <mail@jakobsack.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> - * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/files/appinfo/routes.php b/apps/files/appinfo/routes.php index 06d8d39585f..28bc60a31a3 100644 --- a/apps/files/appinfo/routes.php +++ b/apps/files/appinfo/routes.php @@ -5,6 +5,7 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Christoph Wurst <christoph@owncloud.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Tobias Kaminsky <tobias@kaminsky.me> * @author Tom Needham <tom@owncloud.com> diff --git a/apps/files/js/detailsview.js b/apps/files/js/detailsview.js index a896e84fdc0..7bfc3d5ad7b 100644 --- a/apps/files/js/detailsview.js +++ b/apps/files/js/detailsview.js @@ -78,9 +78,6 @@ this._detailFileInfoViews = []; this._dirty = true; - - // uncomment to add some dummy tabs for testing - //this._addTestTabs(); }, _onClose: function(event) { @@ -102,21 +99,6 @@ this.selectTab(tabId); }, - _addTestTabs: function() { - for (var j = 0; j < 2; j++) { - var testView = new OCA.Files.DetailTabView({id: 'testtab' + j}); - testView.index = j; - testView.getLabel = function() { return 'Test tab ' + this.index; }; - testView.render = function() { - this.$el.empty(); - for (var i = 0; i < 100; i++) { - this.$el.append('<div>Test tab ' + this.index + ' row ' + i + '</div>'); - } - }; - this._tabViews.push(testView); - } - }, - template: function(vars) { if (!this._template) { this._template = Handlebars.compile(TEMPLATE); diff --git a/apps/files/js/favoritesfilelist.js b/apps/files/js/favoritesfilelist.js index 4c2cf3ce818..8c9c125d0a1 100644 --- a/apps/files/js/favoritesfilelist.js +++ b/apps/files/js/favoritesfilelist.js @@ -66,7 +66,6 @@ $(document).ready(function() { }, reload: function() { - var tagName = OC.TAG_FAVORITE; this.showMask(); if (this._reloadCall) { this._reloadCall.abort(); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index cdc2e27a612..e34d7fe2550 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -96,7 +96,7 @@ */ isFileNameValid: function (name) { var trimmedName = name.trim(); - if (trimmedName === '.' || trimmedName === '..') + if (trimmedName === '.' || trimmedName === '..') { throw t('files', '"{name}" is an invalid file name.', {name: name}); } else if (trimmedName.length === 0) { diff --git a/apps/files/l10n/es_EC.js b/apps/files/l10n/es_EC.js new file mode 100644 index 00000000000..ce1f5db9667 --- /dev/null +++ b/apps/files/l10n/es_EC.js @@ -0,0 +1,164 @@ +OC.L10N.register( + "files", + { + "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ", + "Storage invalid" : "El almacenamiento es inválido", + "Unknown error" : "Se presentó un error desconocido", + "All files" : "Todos los archivos", + "Recent" : "Reciente", + "File could not be found" : "No fue posible encontrar el archivo", + "Home" : "Inicio", + "Close" : "Cerrar", + "Favorites" : "Favoritos", + "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"", + "Upload cancelled." : "Carga cancelada.", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estas cargando {size1} pero sólo cuentas con {size2} disponible", + "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe", + "Not enough free space" : "No cuentas con suficiente espacio libre", + "Uploading …" : "Cargando...", + "…" : "...", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Actions" : "Acciones", + "Download" : "Descargar", + "Rename" : "Renombrar", + "Move or copy" : "Mover o copiar", + "Target folder" : "Carpeta destino", + "Delete" : "Borrar", + "Disconnect storage" : "Desconectar almacenamiento", + "Unshare" : "Dejar de compartir", + "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"", + "Files" : "Archivos", + "Details" : "Detalles", + "Select" : "Seleccionar", + "Pending" : "Pendiente", + "Unable to determine date" : "No fue posible determinar la fecha", + "This operation is forbidden" : "Esta operación está prohibida", + "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador", + "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe", + "Could not move \"{file}\"" : "No fue posible mover \"{file}\"", + "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe", + "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"", + "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}", + "{newName} already exists" : "{newName} ya existe", + "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ", + "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"", + "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe", + "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe", + "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".", + "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}", + "Name" : "Nombre", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], + "_%n file_::_%n files_" : ["%n archivo","%n archivos"], + "{dirs} and {files}" : "{dirs} y {files}", + "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos"], + "You don’t have permission to upload or create files here" : "No cuentas con los permisos para cargar o crear archivos aquí", + "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos"], + "New" : "Nuevo", + "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ", + "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido", + "Storage of {owner} is full, files can not be updated or synced anymore!" : "El espacio de {owner} está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!", + "Your storage is full, files can not be updated or synced anymore!" : "Tu espacio está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!", + "Storage of {owner} is almost full ({usedSpacePercent}%)" : "El espacio de {owner} está casi lleno ({usedSpacePercent}%)", + "Your storage is almost full ({usedSpacePercent}%)" : "Tu espacio está casi lleno ({usedSpacePercent}%)", + "_matches '{filter}'_::_match '{filter}'_" : ["coincide '{filter}'","coincidencia '{filter}'"], + "View in folder" : "Ver en la carpeta", + "Copied!" : "¡Copiado!", + "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)", + "Path" : "Ruta", + "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], + "Favorited" : "Marcado como favorito", + "Favorite" : "Favorito", + "New folder" : "Carpeta nueva", + "Upload file" : "Cargar archivo", + "Not favorited" : "No es un favorito", + "Remove from favorites" : "Eliminar de favoritos", + "Add to favorites" : "Agregar a favoritos", + "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta", + "Added to favorites" : "Agregado a los favoritos", + "Removed from favorites" : "Eliminado de los favoritos", + "You added {file} to your favorites" : "Agregaste {file} a tus favoritos", + "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos", + "File changes" : "Cambios al archivo", + "Created by {user}" : "Creado por {user}", + "Changed by {user}" : "Cambiado por {user}", + "Deleted by {user}" : "Borrado por {user}", + "Restored by {user}" : "Restaurado por {user}", + "Renamed by {user}" : "Renombrado por {user}", + "Moved by {user}" : "Movido por {user}", + "\"remote user\"" : "\"usuario remoto\"", + "You created {file}" : "Creaste {file}", + "{user} created {file}" : "{user} creó {file}", + "{file} was created in a public folder" : "{file} fue creado en una carpeta pública", + "You changed {file}" : "Cambiaste {file}", + "{user} changed {file}" : "{user} cambió {file}", + "You deleted {file}" : "Borraste {file}", + "{user} deleted {file}" : "{user} borró {file}", + "You restored {file}" : "Restauraste {file}", + "{user} restored {file}" : "{user} restauró {file}", + "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}", + "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}", + "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}", + "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}", + "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un archivo o carpeta ha sido <strong>cambiado </strong> o <strong>renombrado</strong>", + "A new file or folder has been <strong>created</strong>" : "Un archivo o carpeta ha sido <strong>creado</strong>", + "A file or folder has been <strong>deleted</strong>" : "Un archivo o carpeta ha sido <strong>borrado</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limita las notificaciones de la creación y cambios a tus <strong>archivos favoritos</strong> <em>(sólo flujo)</em>", + "A file or folder has been <strong>restored</strong>" : "Un archivo o carpeta ha sido <strong>restaurado</strong>", + "Unlimited" : "Ilimitado", + "Upload (max. %s)" : "Cargar (max. %s)", + "File handling" : "Manejo de archivos", + "Maximum upload size" : "Tamaño máximo de carga", + "max. possible: " : "max. posible:", + "Save" : "Guardar", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Con PHP-FPM podría tomar 5 minutos para que los cambios apliquen. ", + "Missing permissions to edit from here." : "Faltan privilegios para editar desde aquí. ", + "%s of %s used" : "%s de %s usado", + "%s used" : "%s usado", + "Settings" : "Configuraciones ", + "Show hidden files" : "Mostrar archivos ocultos", + "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus archivos vía WebDAV</a>", + "Cancel upload" : "Cancelar carga", + "No files in here" : "No hay archivos aquí", + "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Select all" : "Seleccionar todo", + "Upload too large" : "La carga es demasido grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.", + "No favorites yet" : "Aún no hay favoritos", + "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ", + "Shared with you" : "Compartido con usted", + "Shared with others" : "Compartido con otros", + "Shared by link" : "Compartido por liga", + "Tags" : "Etiquetas", + "Deleted files" : "Archivos borrados", + "Text file" : "Archivo de texto", + "New text file.txt" : "Nuevo ArchivoDeTexto.txt", + "Uploading..." : "Cargando...", + "..." : "...", + "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["falta {hours}:{minutes}:{seconds} hora","faltan {hours}:{minutes}:{seconds} horas"], + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["falta {minutes}:{seconds} minuto","faltan {minutes}:{seconds} minutos"], + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "_{seconds} second left_::_{seconds} seconds left_" : ["falta {seconds} segundo","faltan {seconds} segundos"], + "{seconds}s" : "{seconds}s", + "Any moment now..." : "En cualquier momento...", + "Soon..." : "Pronto...", + "File upload is in progress. Leaving the page now will cancel the upload." : "La carga del archivo está en curso. El salir de la página ahora, la cancelará. ", + "Move" : "Mover", + "Copy local link" : "Copiar liga local", + "Folder" : "Carpeta", + "Upload" : "Cargar", + "A new file or folder has been <strong>deleted</strong>" : "Un archivo o carpeta ha sido <strong>borrado</strong>", + "A new file or folder has been <strong>restored</strong>" : "Un archivo o carpeta ha sido <strong>restaurado</strong>", + "No favorites" : "No hay favoritos" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files/l10n/es_EC.json b/apps/files/l10n/es_EC.json new file mode 100644 index 00000000000..cabba647c0e --- /dev/null +++ b/apps/files/l10n/es_EC.json @@ -0,0 +1,162 @@ +{ "translations": { + "Storage is temporarily not available" : "El almacenamiento no está disponible temporalmente ", + "Storage invalid" : "El almacenamiento es inválido", + "Unknown error" : "Se presentó un error desconocido", + "All files" : "Todos los archivos", + "Recent" : "Reciente", + "File could not be found" : "No fue posible encontrar el archivo", + "Home" : "Inicio", + "Close" : "Cerrar", + "Favorites" : "Favoritos", + "Could not create folder \"{dir}\"" : "No fue posible crear la carpeta \"{dir}\"", + "Upload cancelled." : "Carga cancelada.", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "No fue posible cargar {filename} ya que es una carpeta o tiene un tamaño de 0 bytes", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "No tienes suficiente espacio disponible, Estas cargando {size1} pero sólo cuentas con {size2} disponible", + "Target folder \"{dir}\" does not exist any more" : "La carpeta destino \"{dir}\" ya no existe", + "Not enough free space" : "No cuentas con suficiente espacio libre", + "Uploading …" : "Cargando...", + "…" : "...", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} de {totalSize} ({bitrate})", + "Actions" : "Acciones", + "Download" : "Descargar", + "Rename" : "Renombrar", + "Move or copy" : "Mover o copiar", + "Target folder" : "Carpeta destino", + "Delete" : "Borrar", + "Disconnect storage" : "Desconectar almacenamiento", + "Unshare" : "Dejar de compartir", + "Could not load info for file \"{file}\"" : "No fue posible cargar información para el archivo \"{file}\"", + "Files" : "Archivos", + "Details" : "Detalles", + "Select" : "Seleccionar", + "Pending" : "Pendiente", + "Unable to determine date" : "No fue posible determinar la fecha", + "This operation is forbidden" : "Esta operación está prohibida", + "This directory is unavailable, please check the logs or contact the administrator" : "Esta carpeta no está disponible, por favor verfica las bitácoras o contacta al administrador", + "Could not move \"{file}\", target exists" : "No fue posible mover \"{file}\", el destino ya existe", + "Could not move \"{file}\"" : "No fue posible mover \"{file}\"", + "Could not copy \"{file}\", target exists" : "No se pudo copiar \"{file}\", el destino ya existe", + "Could not copy \"{file}\"" : "No se pudo copiar \"{file}\"", + "Copied {origin} inside {destination}" : "{origin} fue copiado dentro de {destination}", + "Copied {origin} and {nbfiles} other files inside {destination}" : "{origin} y otros {nbfiles} archivos fueron copiados dentro de {destination}", + "{newName} already exists" : "{newName} ya existe", + "Could not rename \"{fileName}\", it does not exist any more" : "No fue posible renombrar \"{fileName}\", ya no existe", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "El nombre \"{targetName}\" ya está en uso en la carpeta \"{dir}\". Por favor elege un nombre diferete. ", + "Could not rename \"{fileName}\"" : "No fue posible renombrar \"{fileName}\"", + "Could not create file \"{file}\"" : "No fue posible crear el archivo \"{file}\"", + "Could not create file \"{file}\" because it already exists" : "No fue posible crear el archivo\"{file}\" porque ya existe", + "Could not create folder \"{dir}\" because it already exists" : "No fue posible crear la carpeta \"{dir}\" porque ya existe", + "Error deleting file \"{fileName}\"." : "Se presentó un error al borrar el archivo \"{fileName}\".", + "No search results in other folders for {tag}{filter}{endtag}" : "No se encontraron resultados en otras carpetas para {tag}{filter}{endtag}", + "Name" : "Nombre", + "Size" : "Tamaño", + "Modified" : "Modificado", + "_%n folder_::_%n folders_" : ["%n carpeta","%n carpetas"], + "_%n file_::_%n files_" : ["%n archivo","%n archivos"], + "{dirs} and {files}" : "{dirs} y {files}", + "_including %n hidden_::_including %n hidden_" : ["incluyendo %n escondido","incluyendo %n ocultos"], + "You don’t have permission to upload or create files here" : "No cuentas con los permisos para cargar o crear archivos aquí", + "_Uploading %n file_::_Uploading %n files_" : ["Subiendo %n archivo","Cargando %n archivos"], + "New" : "Nuevo", + "\"{name}\" is an invalid file name." : "\"{name}\" es un nombre de archivo inválido. ", + "File name cannot be empty." : "El nombre de archivo no puede estar vacío.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" es un tipo de archivo no permitido", + "Storage of {owner} is full, files can not be updated or synced anymore!" : "El espacio de {owner} está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!", + "Your storage is full, files can not be updated or synced anymore!" : "Tu espacio está lleno. ¡Los archivos ya no se pueden actualizar o sincronizar!", + "Storage of {owner} is almost full ({usedSpacePercent}%)" : "El espacio de {owner} está casi lleno ({usedSpacePercent}%)", + "Your storage is almost full ({usedSpacePercent}%)" : "Tu espacio está casi lleno ({usedSpacePercent}%)", + "_matches '{filter}'_::_match '{filter}'_" : ["coincide '{filter}'","coincidencia '{filter}'"], + "View in folder" : "Ver en la carpeta", + "Copied!" : "¡Copiado!", + "Copy direct link (only works for users who have access to this file/folder)" : "Copiar liga directa (sólo funciona para usuarios que tienen acceso a este archivo/carpeta)", + "Path" : "Ruta", + "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], + "Favorited" : "Marcado como favorito", + "Favorite" : "Favorito", + "New folder" : "Carpeta nueva", + "Upload file" : "Cargar archivo", + "Not favorited" : "No es un favorito", + "Remove from favorites" : "Eliminar de favoritos", + "Add to favorites" : "Agregar a favoritos", + "An error occurred while trying to update the tags" : "Se presentó un error al intentar actualizar la etiqueta", + "Added to favorites" : "Agregado a los favoritos", + "Removed from favorites" : "Eliminado de los favoritos", + "You added {file} to your favorites" : "Agregaste {file} a tus favoritos", + "You removed {file} from your favorites" : "Eliminaste {file} de tus favoritos", + "File changes" : "Cambios al archivo", + "Created by {user}" : "Creado por {user}", + "Changed by {user}" : "Cambiado por {user}", + "Deleted by {user}" : "Borrado por {user}", + "Restored by {user}" : "Restaurado por {user}", + "Renamed by {user}" : "Renombrado por {user}", + "Moved by {user}" : "Movido por {user}", + "\"remote user\"" : "\"usuario remoto\"", + "You created {file}" : "Creaste {file}", + "{user} created {file}" : "{user} creó {file}", + "{file} was created in a public folder" : "{file} fue creado en una carpeta pública", + "You changed {file}" : "Cambiaste {file}", + "{user} changed {file}" : "{user} cambió {file}", + "You deleted {file}" : "Borraste {file}", + "{user} deleted {file}" : "{user} borró {file}", + "You restored {file}" : "Restauraste {file}", + "{user} restored {file}" : "{user} restauró {file}", + "You renamed {oldfile} to {newfile}" : "Renombraste {oldfile} como {newfile}", + "{user} renamed {oldfile} to {newfile}" : "{user} renombró {oldfile} como {newfile}", + "You moved {oldfile} to {newfile}" : "Moviste {oldfile} a {newfile}", + "{user} moved {oldfile} to {newfile}" : "{user} movió {oldfile} a {newfile}", + "A file has been added to or removed from your <strong>favorites</strong>" : "Un archivo ha sido agregado o eliminado de tus <strong>favoritos</strong>", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "Un archivo o carpeta ha sido <strong>cambiado </strong> o <strong>renombrado</strong>", + "A new file or folder has been <strong>created</strong>" : "Un archivo o carpeta ha sido <strong>creado</strong>", + "A file or folder has been <strong>deleted</strong>" : "Un archivo o carpeta ha sido <strong>borrado</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "Limita las notificaciones de la creación y cambios a tus <strong>archivos favoritos</strong> <em>(sólo flujo)</em>", + "A file or folder has been <strong>restored</strong>" : "Un archivo o carpeta ha sido <strong>restaurado</strong>", + "Unlimited" : "Ilimitado", + "Upload (max. %s)" : "Cargar (max. %s)", + "File handling" : "Manejo de archivos", + "Maximum upload size" : "Tamaño máximo de carga", + "max. possible: " : "max. posible:", + "Save" : "Guardar", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "Con PHP-FPM podría tomar 5 minutos para que los cambios apliquen. ", + "Missing permissions to edit from here." : "Faltan privilegios para editar desde aquí. ", + "%s of %s used" : "%s de %s usado", + "%s used" : "%s usado", + "Settings" : "Configuraciones ", + "Show hidden files" : "Mostrar archivos ocultos", + "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "Usa esta dirección para <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">acceder tus archivos vía WebDAV</a>", + "Cancel upload" : "Cancelar carga", + "No files in here" : "No hay archivos aquí", + "Upload some content or sync with your devices!" : "¡Carga algún contenido o sincroniza con tus dispositivos!", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Select all" : "Seleccionar todo", + "Upload too large" : "La carga es demasido grande", + "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Los archivos que estás intentando cargar sobrepasan el tamaño máximo permitido para la carga de archivos en este servidor.", + "No favorites yet" : "Aún no hay favoritos", + "Files and folders you mark as favorite will show up here" : "Los archivos y carpetas que marques como favoritos se mostrarán aquí. ", + "Shared with you" : "Compartido con usted", + "Shared with others" : "Compartido con otros", + "Shared by link" : "Compartido por liga", + "Tags" : "Etiquetas", + "Deleted files" : "Archivos borrados", + "Text file" : "Archivo de texto", + "New text file.txt" : "Nuevo ArchivoDeTexto.txt", + "Uploading..." : "Cargando...", + "..." : "...", + "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["falta {hours}:{minutes}:{seconds} hora","faltan {hours}:{minutes}:{seconds} horas"], + "{hours}:{minutes}h" : "{hours}:{minutes}h", + "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["falta {minutes}:{seconds} minuto","faltan {minutes}:{seconds} minutos"], + "{minutes}:{seconds}m" : "{minutes}:{seconds}m", + "_{seconds} second left_::_{seconds} seconds left_" : ["falta {seconds} segundo","faltan {seconds} segundos"], + "{seconds}s" : "{seconds}s", + "Any moment now..." : "En cualquier momento...", + "Soon..." : "Pronto...", + "File upload is in progress. Leaving the page now will cancel the upload." : "La carga del archivo está en curso. El salir de la página ahora, la cancelará. ", + "Move" : "Mover", + "Copy local link" : "Copiar liga local", + "Folder" : "Carpeta", + "Upload" : "Cargar", + "A new file or folder has been <strong>deleted</strong>" : "Un archivo o carpeta ha sido <strong>borrado</strong>", + "A new file or folder has been <strong>restored</strong>" : "Un archivo o carpeta ha sido <strong>restaurado</strong>", + "No favorites" : "No hay favoritos" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files/l10n/fr.js b/apps/files/l10n/fr.js index 9574a557cd3..ee0e05e70fd 100644 --- a/apps/files/l10n/fr.js +++ b/apps/files/l10n/fr.js @@ -77,6 +77,7 @@ OC.L10N.register( "Favorite" : "Favoris", "New folder" : "Nouveau dossier", "Upload file" : "Téléverser un fichier", + "Not favorited" : "Non marqué comme favori", "Remove from favorites" : "Retirer des favoris", "Add to favorites" : "Ajouter aux favoris", "An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes", diff --git a/apps/files/l10n/fr.json b/apps/files/l10n/fr.json index 21074489eec..990624b07f6 100644 --- a/apps/files/l10n/fr.json +++ b/apps/files/l10n/fr.json @@ -75,6 +75,7 @@ "Favorite" : "Favoris", "New folder" : "Nouveau dossier", "Upload file" : "Téléverser un fichier", + "Not favorited" : "Non marqué comme favori", "Remove from favorites" : "Retirer des favoris", "Add to favorites" : "Ajouter aux favoris", "An error occurred while trying to update the tags" : "Une erreur est survenue lors de la mise à jour des étiquettes", diff --git a/apps/files/l10n/ka_GE.js b/apps/files/l10n/ka_GE.js index 510b1db25eb..c4ec1db62ab 100644 --- a/apps/files/l10n/ka_GE.js +++ b/apps/files/l10n/ka_GE.js @@ -1,50 +1,164 @@ OC.L10N.register( "files", { + "Storage is temporarily not available" : "საცავი დროებით ხელმიუწვდომელია", + "Storage invalid" : "საცავი არასწორია", "Unknown error" : "უცნობი შეცდომა", - "No file was uploaded. Unknown error" : "ფაილი არ აიტვირთა. უცნობი შეცდომა", - "There is no error, the file uploaded with success" : "ჭოცდომა არ დაფიქსირდა, ფაილი წარმატებით აიტვირთა", - "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "ატვირთული ფაილი აჭარბებს upload_max_filesize დირექტივას php.ini ფაილში", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "ატვირთული ფაილი აჭარბებს MAX_FILE_SIZE დირექტივას, რომელიც მითითებულია HTML ფორმაში", - "The uploaded file was only partially uploaded" : "ატვირთული ფაილი მხოლოდ ნაწილობრივ აიტვირთა", - "No file was uploaded" : "ფაილი არ აიტვირთა", - "Missing a temporary folder" : "დროებითი საქაღალდე არ არსებობს", - "Failed to write to disk" : "შეცდომა დისკზე ჩაწერისას", - "Not enough storage available" : "საცავში საკმარისი ადგილი არ არის", - "Invalid directory." : "დაუშვებელი დირექტორია.", - "Files" : "ფაილები", + "All files" : "ყველა ფაილი", + "Recent" : "ახალი", + "File could not be found" : "ფაილი ვერ იქნა ნაპოვნი", "Home" : "სახლი", "Close" : "დახურვა", - "Favorites" : "ფავორიტები", + "Favorites" : "რჩეულები", + "Could not create folder \"{dir}\"" : "დირექტორია \"{dir}\" ვერ შეიქმნა", "Upload cancelled." : "ატვირთვა შეჩერებულ იქნა.", - "Uploading..." : "მიმდინარეობს ატვირთვა...", - "File upload is in progress. Leaving the page now will cancel the upload." : "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "შეუძლებელია {filename}-ის ატვირთვა, რადგანაც ის დირექტორიაა ან გააჩნია 0 ბაიტი", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "არასაკმარისი თავისუფალი სივრცე, თქვენ ტვირთავთ {size1}-ს, მაგრამ მხოლოდ {size2}-ია დარჩენილი", + "Target folder \"{dir}\" does not exist any more" : "დანიშნულების დირექტორია \"{dir}\" აღარ არსებობს", + "Not enough free space" : "არასაკმარისი თავისუფალი სივრცე", + "Uploading …" : "იტვირთება ...", + "…" : "...", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} სულ {totalSize}-დან ({bitrate})", "Actions" : "მოქმედებები", "Download" : "ჩამოტვირთვა", "Rename" : "გადარქმევა", + "Move or copy" : "გადაიტანეთ ან დააკოპირეთ", + "Target folder" : "დანიშნულების დირექტორია", "Delete" : "წაშლა", + "Disconnect storage" : "საცავის გათიშვა", "Unshare" : "გაუზიარებადი", + "Could not load info for file \"{file}\"" : "ფაილზე \"{file}\" ინფორმაცია ვერ ჩაიტვირთა", + "Files" : "ფაილები", "Details" : "დეტალური ინფორმაცია", + "Select" : "არჩევა", "Pending" : "მოცდის რეჟიმში", + "Unable to determine date" : "თარიღის დადგენა შეუძლებელია", + "This operation is forbidden" : "ეს ოპერაცია აკრძალულია", + "This directory is unavailable, please check the logs or contact the administrator" : "დირექტორია ხელმიუწვდომელია, გთოხვთ შეამოწმოთ ლოგები ან დაუკავშირდეთ ადმინისტრატორს", + "Could not move \"{file}\", target exists" : "\"{file}\"-ის გადატანა ვერ მოხერხდა, დანიშნულება არსებობს", + "Could not move \"{file}\"" : "\"{file\"} ის გადატანა ვერ მოხერხდა", + "Could not copy \"{file}\", target exists" : "\"{file}\"-ის კოპირება ვერ მოხერხდა, დანიშნულება არსებობს", + "Could not copy \"{file}\"" : "\"{file\"} ის კოპირება ვერ მოხერხდა", + "Copied {origin} inside {destination}" : "დაკოპირდა {origin} {destionation}-ში", + "Copied {origin} and {nbfiles} other files inside {destination}" : "დაკოპირდა {origin} და {nbfiles} სხვა ფაილი {destionation}-ში", + "{newName} already exists" : "{newName} უკვე არსებობს", + "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" სახელი ვერ შეეცვალა, ის აღარ არსებობს", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "სახელი \"{targetName}\" დირექტორია \"{dir}\"-ში უკვე გამოყენებულია. გთხოვთ აირჩიოთ სხვა სახელი.", + "Could not rename \"{fileName}\"" : "ფაილს \"{fileName}\" სახელი ვერ შეეცვალა", + "Could not create file \"{file}\"" : "ფაილი \"{file}\" ვერ შეიქმნა", + "Could not create file \"{file}\" because it already exists" : "ფაილი \"{file}\" ვერ შეიქმნა, ის უკვე არსებობს", + "Could not create folder \"{dir}\" because it already exists" : "დირექტორია \"{dir}\" ვერ შეიქმნა, ის უკვე არსებობს", + "Error deleting file \"{fileName}\"." : "ფიალის \"{fileName}\" წაშლისას წარმოიქმნა შეცდომა.", + "No search results in other folders for {tag}{filter}{endtag}" : "ძიების შედეგები სხვა დირექტორიებში {tag}{filter}{endtag} არაა", "Name" : "სახელი", "Size" : "ზომა", "Modified" : "შეცვლილია", + "_%n folder_::_%n folders_" : ["%n დირექტორია"], + "_%n file_::_%n files_" : ["%n ფაილი"], + "{dirs} and {files}" : "{dirs} და {files}", + "_including %n hidden_::_including %n hidden_" : ["%n დამალულის ჩათვლით"], + "You don’t have permission to upload or create files here" : "აქ ფაილების შექმნის ან ატვირთვის უფლება არ გაქვთ", + "_Uploading %n file_::_Uploading %n files_" : ["ვტვირთავთ %n ფაილს"], "New" : "ახალი", + "\"{name}\" is an invalid file name." : "\"{name}\" არასწორი ფაილის სახელია.", "File name cannot be empty." : "ფაილის სახელი არ შეიძლება იყოს ცარიელი.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" არაა დაშვებული ფაილის ტიპი", + "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner}-ის საცავი სავსეა, ფაილები მეტი ვეღარ განახლდება/სინქრონიზირდება!", "Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!", + "Storage of {owner} is almost full ({usedSpacePercent}%)" : "{owner}-ის საცავი თითქმის სავსეა ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)", - "Favorite" : "ფავორიტი", - "Folder" : "საქაღალდე", + "_matches '{filter}'_::_match '{filter}'_" : ["ემთხვევა '{filter}'-ს"], + "View in folder" : "ჩვენება დირექტორიაში", + "Copied!" : "დაკოპირდა!", + "Copy direct link (only works for users who have access to this file/folder)" : "დააკოპირეთ პირდაპირი ბმული (მუშაობს მომხმარებლებისთვის, რომელთაც გააჩნიათ წვდომა ამ ფაილის/დირექტორიის მიმართ)", + "Path" : "მისამართი", + "_%n byte_::_%n bytes_" : ["%n ბაიტი"], + "Favorited" : "დამატებულია რჩეულებში", + "Favorite" : "რჩეული", "New folder" : "ახალი ფოლდერი", - "Upload" : "ატვირთვა", + "Upload file" : "ფაილის ატვირთვა", + "Not favorited" : "არაა დამატებული რჩეულებში", + "Remove from favorites" : "რჩეულებიდან მოშორება", + "Add to favorites" : "რჩეულებში დამატება", + "An error occurred while trying to update the tags" : "ტეგების განახლების მცდელობისას წარმოიშვა შეცდომა", + "Added to favorites" : "დაემატა რჩეულებში", + "Removed from favorites" : "ამოიშალა რჩეულებიდან", + "You added {file} to your favorites" : "თქვენ დაამატეთ {file}-ი რჩეულებში", + "You removed {file} from your favorites" : "თქვენ ამოშალეთ {file}-ი თქვენი რჩეული ფაილებიდან", + "File changes" : "ფაილის ცვლილებები", + "Created by {user}" : "შექმნა {user}-მა", + "Changed by {user}" : "შეცვალა {user}-მა", + "Deleted by {user}" : "წაშალა {user}-მა", + "Restored by {user}" : "აღადგინა {user}-მა", + "Renamed by {user}" : "სახელი გადაარქვა {user}-მა", + "Moved by {user}" : "გადაიტანა {user}-მა", + "\"remote user\"" : "\"დისტანციური მომხმარებელი\"", + "You created {file}" : "თქვენ შექმენით {file}", + "{user} created {file}" : "{user}-მა შექმნა {file}", + "{file} was created in a public folder" : "{file} შეიქმნა საზოგადო დირექტორიაში", + "You changed {file}" : "თქვენ შეცვალეთ {file}-ი", + "{user} changed {file}" : "{user}-მა შეცვალა {file}-ი", + "You deleted {file}" : "თქვენ წაშალეთ {file}-ი", + "{user} deleted {file}" : "{user}-მა წაშალა {file}-ი", + "You restored {file}" : "თქვენ აღადგინეთ {file}-ი", + "{user} restored {file}" : "{user}-მა განაახლა {file}", + "You renamed {oldfile} to {newfile}" : "თქვენ გადაარქვით სახელი {oldfile}-ს {newfile}-ზე", + "{user} renamed {oldfile} to {newfile}" : "{user}-მა გადაარქვა სახელი {oldfile}-ს {newfile}-ზე", + "You moved {oldfile} to {newfile}" : "თქვენ გადაიტანეთ {oldfile} {newfile}-ად", + "{user} moved {oldfile} to {newfile}" : "{user}-მა გადაიტანა {oldfile} {newfile}-ად", + "A file has been added to or removed from your <strong>favorites</strong>" : "ყველა ფაილი დაემატა ან ამოიშალა<strong>რჩეულებიდან</strong>", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "ფაილს ან დირექტორის <strong>გადაერქვა სახელი</strong> ან <strong>შეიცვალა</strong>", + "A new file or folder has been <strong>created</strong>" : "ახალი ფაილი ან დირექტორია <strong>შეიქმნა</strong>", + "A file or folder has been <strong>deleted</strong>" : "ფაილი ან დირექტორია <strong>გაუქმდა</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "დაუწესეთ <strong>რჩეული ფაილების</strong> შექმნის და ცვლილებების შეტყობინებებს ლიმიტი <em>(მხოლოდ ნაკადი)</em>", + "A file or folder has been <strong>restored</strong>" : "ფაილი ან დირექტორია <strong>აღდგენილ იქნა</strong>", + "Unlimited" : "ულიმიტო", + "Upload (max. %s)" : "ატვირთვა (მაქს. %s)", "File handling" : "ფაილის დამუშავება", "Maximum upload size" : "მაქსიმუმ ატვირთის ზომა", "max. possible: " : "მაქს. შესაძლებელი:", "Save" : "შენახვა", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "PHP-FPM-ით ცვლილებების შენახვამ შეიძლება გასტანოს 5 წუთი.", + "Missing permissions to edit from here." : "არასაკმარისი უფლებები აქედან შეცვლისათვის.", + "%s of %s used" : "%s სულ %s-დან მოხმარებულია", + "%s used" : "%s მოხმარებულია", "Settings" : "პარამეტრები", + "Show hidden files" : "დამალული ფაილების ჩვენება", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "გამოიყენეთ ეს მისამართი რომ <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">წვდომა იქოინოთ თქვენს ფაილებთან WebDAV-ით</a>", + "Cancel upload" : "ატვირთვის შეჩერება", + "No files in here" : "აქ ფაილები არაა", + "Upload some content or sync with your devices!" : "ატვირთეთ რამე ან მოახდინეთ სინქრონიზაცია თქვენს მოწყობილობებთან!", + "No entries found in this folder" : "ამ დირექტორიაში შენატანები ვერ იქნა ნაპოვნი", + "Select all" : "ყველას არჩევა", "Upload too large" : "ასატვირთი ფაილი ძალიან დიდია", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.", - "Text file" : "ტექსტური ფაილი" + "No favorites yet" : "ჯერ რჩეულები არაა", + "Files and folders you mark as favorite will show up here" : "აქ გამოჩნდებიან ფაილები და დირექტორიები, რომლებსაც მონიშნავთ რჩეულებად", + "Shared with you" : "გაზიარდა შენთან", + "Shared with others" : "გაზიარდა სხვებთან", + "Shared by link" : "გაზიარდა ბმულით", + "Tags" : "ტეგები", + "Deleted files" : "გაუქმებული ფაილები", + "Text file" : "ტექსტური ფაილი", + "New text file.txt" : "ახალი ტექსტი file.txt", + "Uploading..." : "მიმდინარეობს ატვირთვა...", + "..." : "...", + "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["დარჩა {hours}:{minutes}:{seconds} საათი"], + "{hours}:{minutes}h" : "{hours}:{minutes}სთ", + "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["დარჩა {minutes}:{seconds} წუთი"], + "{minutes}:{seconds}m" : "{minutes}:{seconds}წთ", + "_{seconds} second left_::_{seconds} seconds left_" : ["დარჩა {seconds} წამი"], + "{seconds}s" : "{seconds}წმ", + "Any moment now..." : "ნებისმიერ მომენტში...", + "Soon..." : "მალე...", + "File upload is in progress. Leaving the page now will cancel the upload." : "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას", + "Move" : "გადატანა", + "Copy local link" : "ლოკალური ბმულის კოპირება", + "Folder" : "დირექტორია", + "Upload" : "ატვირთვა", + "A new file or folder has been <strong>deleted</strong>" : "ახალი ფაილი ან დირექტორია <strong>გაუქმდა</strong>", + "A new file or folder has been <strong>restored</strong>" : "ახალი ფაილი ან დირექტორია <strong>აღდგენილ იქნა</strong>", + "No favorites" : "რჩეულები არაა" }, "nplurals=1; plural=0;"); diff --git a/apps/files/l10n/ka_GE.json b/apps/files/l10n/ka_GE.json index 55cc188305b..9031ff4b9b2 100644 --- a/apps/files/l10n/ka_GE.json +++ b/apps/files/l10n/ka_GE.json @@ -1,48 +1,162 @@ { "translations": { + "Storage is temporarily not available" : "საცავი დროებით ხელმიუწვდომელია", + "Storage invalid" : "საცავი არასწორია", "Unknown error" : "უცნობი შეცდომა", - "No file was uploaded. Unknown error" : "ფაილი არ აიტვირთა. უცნობი შეცდომა", - "There is no error, the file uploaded with success" : "ჭოცდომა არ დაფიქსირდა, ფაილი წარმატებით აიტვირთა", - "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "ატვირთული ფაილი აჭარბებს upload_max_filesize დირექტივას php.ini ფაილში", - "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "ატვირთული ფაილი აჭარბებს MAX_FILE_SIZE დირექტივას, რომელიც მითითებულია HTML ფორმაში", - "The uploaded file was only partially uploaded" : "ატვირთული ფაილი მხოლოდ ნაწილობრივ აიტვირთა", - "No file was uploaded" : "ფაილი არ აიტვირთა", - "Missing a temporary folder" : "დროებითი საქაღალდე არ არსებობს", - "Failed to write to disk" : "შეცდომა დისკზე ჩაწერისას", - "Not enough storage available" : "საცავში საკმარისი ადგილი არ არის", - "Invalid directory." : "დაუშვებელი დირექტორია.", - "Files" : "ფაილები", + "All files" : "ყველა ფაილი", + "Recent" : "ახალი", + "File could not be found" : "ფაილი ვერ იქნა ნაპოვნი", "Home" : "სახლი", "Close" : "დახურვა", - "Favorites" : "ფავორიტები", + "Favorites" : "რჩეულები", + "Could not create folder \"{dir}\"" : "დირექტორია \"{dir}\" ვერ შეიქმნა", "Upload cancelled." : "ატვირთვა შეჩერებულ იქნა.", - "Uploading..." : "მიმდინარეობს ატვირთვა...", - "File upload is in progress. Leaving the page now will cancel the upload." : "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას", + "Unable to upload {filename} as it is a directory or has 0 bytes" : "შეუძლებელია {filename}-ის ატვირთვა, რადგანაც ის დირექტორიაა ან გააჩნია 0 ბაიტი", + "Not enough free space, you are uploading {size1} but only {size2} is left" : "არასაკმარისი თავისუფალი სივრცე, თქვენ ტვირთავთ {size1}-ს, მაგრამ მხოლოდ {size2}-ია დარჩენილი", + "Target folder \"{dir}\" does not exist any more" : "დანიშნულების დირექტორია \"{dir}\" აღარ არსებობს", + "Not enough free space" : "არასაკმარისი თავისუფალი სივრცე", + "Uploading …" : "იტვირთება ...", + "…" : "...", + "{loadedSize} of {totalSize} ({bitrate})" : "{loadedSize} სულ {totalSize}-დან ({bitrate})", "Actions" : "მოქმედებები", "Download" : "ჩამოტვირთვა", "Rename" : "გადარქმევა", + "Move or copy" : "გადაიტანეთ ან დააკოპირეთ", + "Target folder" : "დანიშნულების დირექტორია", "Delete" : "წაშლა", + "Disconnect storage" : "საცავის გათიშვა", "Unshare" : "გაუზიარებადი", + "Could not load info for file \"{file}\"" : "ფაილზე \"{file}\" ინფორმაცია ვერ ჩაიტვირთა", + "Files" : "ფაილები", "Details" : "დეტალური ინფორმაცია", + "Select" : "არჩევა", "Pending" : "მოცდის რეჟიმში", + "Unable to determine date" : "თარიღის დადგენა შეუძლებელია", + "This operation is forbidden" : "ეს ოპერაცია აკრძალულია", + "This directory is unavailable, please check the logs or contact the administrator" : "დირექტორია ხელმიუწვდომელია, გთოხვთ შეამოწმოთ ლოგები ან დაუკავშირდეთ ადმინისტრატორს", + "Could not move \"{file}\", target exists" : "\"{file}\"-ის გადატანა ვერ მოხერხდა, დანიშნულება არსებობს", + "Could not move \"{file}\"" : "\"{file\"} ის გადატანა ვერ მოხერხდა", + "Could not copy \"{file}\", target exists" : "\"{file}\"-ის კოპირება ვერ მოხერხდა, დანიშნულება არსებობს", + "Could not copy \"{file}\"" : "\"{file\"} ის კოპირება ვერ მოხერხდა", + "Copied {origin} inside {destination}" : "დაკოპირდა {origin} {destionation}-ში", + "Copied {origin} and {nbfiles} other files inside {destination}" : "დაკოპირდა {origin} და {nbfiles} სხვა ფაილი {destionation}-ში", + "{newName} already exists" : "{newName} უკვე არსებობს", + "Could not rename \"{fileName}\", it does not exist any more" : "\"{fileName}\" სახელი ვერ შეეცვალა, ის აღარ არსებობს", + "The name \"{targetName}\" is already used in the folder \"{dir}\". Please choose a different name." : "სახელი \"{targetName}\" დირექტორია \"{dir}\"-ში უკვე გამოყენებულია. გთხოვთ აირჩიოთ სხვა სახელი.", + "Could not rename \"{fileName}\"" : "ფაილს \"{fileName}\" სახელი ვერ შეეცვალა", + "Could not create file \"{file}\"" : "ფაილი \"{file}\" ვერ შეიქმნა", + "Could not create file \"{file}\" because it already exists" : "ფაილი \"{file}\" ვერ შეიქმნა, ის უკვე არსებობს", + "Could not create folder \"{dir}\" because it already exists" : "დირექტორია \"{dir}\" ვერ შეიქმნა, ის უკვე არსებობს", + "Error deleting file \"{fileName}\"." : "ფიალის \"{fileName}\" წაშლისას წარმოიქმნა შეცდომა.", + "No search results in other folders for {tag}{filter}{endtag}" : "ძიების შედეგები სხვა დირექტორიებში {tag}{filter}{endtag} არაა", "Name" : "სახელი", "Size" : "ზომა", "Modified" : "შეცვლილია", + "_%n folder_::_%n folders_" : ["%n დირექტორია"], + "_%n file_::_%n files_" : ["%n ფაილი"], + "{dirs} and {files}" : "{dirs} და {files}", + "_including %n hidden_::_including %n hidden_" : ["%n დამალულის ჩათვლით"], + "You don’t have permission to upload or create files here" : "აქ ფაილების შექმნის ან ატვირთვის უფლება არ გაქვთ", + "_Uploading %n file_::_Uploading %n files_" : ["ვტვირთავთ %n ფაილს"], "New" : "ახალი", + "\"{name}\" is an invalid file name." : "\"{name}\" არასწორი ფაილის სახელია.", "File name cannot be empty." : "ფაილის სახელი არ შეიძლება იყოს ცარიელი.", + "\"{name}\" is not an allowed filetype" : "\"{name}\" არაა დაშვებული ფაილის ტიპი", + "Storage of {owner} is full, files can not be updated or synced anymore!" : "{owner}-ის საცავი სავსეა, ფაილები მეტი ვეღარ განახლდება/სინქრონიზირდება!", "Your storage is full, files can not be updated or synced anymore!" : "თქვენი საცავი გადაივსო. ფაილების განახლება და სინქრონიზირება ვერ მოხერხდება!", + "Storage of {owner} is almost full ({usedSpacePercent}%)" : "{owner}-ის საცავი თითქმის სავსეა ({usedSpacePercent}%)", "Your storage is almost full ({usedSpacePercent}%)" : "თქვენი საცავი თითქმის გადაივსო ({usedSpacePercent}%)", - "Favorite" : "ფავორიტი", - "Folder" : "საქაღალდე", + "_matches '{filter}'_::_match '{filter}'_" : ["ემთხვევა '{filter}'-ს"], + "View in folder" : "ჩვენება დირექტორიაში", + "Copied!" : "დაკოპირდა!", + "Copy direct link (only works for users who have access to this file/folder)" : "დააკოპირეთ პირდაპირი ბმული (მუშაობს მომხმარებლებისთვის, რომელთაც გააჩნიათ წვდომა ამ ფაილის/დირექტორიის მიმართ)", + "Path" : "მისამართი", + "_%n byte_::_%n bytes_" : ["%n ბაიტი"], + "Favorited" : "დამატებულია რჩეულებში", + "Favorite" : "რჩეული", "New folder" : "ახალი ფოლდერი", - "Upload" : "ატვირთვა", + "Upload file" : "ფაილის ატვირთვა", + "Not favorited" : "არაა დამატებული რჩეულებში", + "Remove from favorites" : "რჩეულებიდან მოშორება", + "Add to favorites" : "რჩეულებში დამატება", + "An error occurred while trying to update the tags" : "ტეგების განახლების მცდელობისას წარმოიშვა შეცდომა", + "Added to favorites" : "დაემატა რჩეულებში", + "Removed from favorites" : "ამოიშალა რჩეულებიდან", + "You added {file} to your favorites" : "თქვენ დაამატეთ {file}-ი რჩეულებში", + "You removed {file} from your favorites" : "თქვენ ამოშალეთ {file}-ი თქვენი რჩეული ფაილებიდან", + "File changes" : "ფაილის ცვლილებები", + "Created by {user}" : "შექმნა {user}-მა", + "Changed by {user}" : "შეცვალა {user}-მა", + "Deleted by {user}" : "წაშალა {user}-მა", + "Restored by {user}" : "აღადგინა {user}-მა", + "Renamed by {user}" : "სახელი გადაარქვა {user}-მა", + "Moved by {user}" : "გადაიტანა {user}-მა", + "\"remote user\"" : "\"დისტანციური მომხმარებელი\"", + "You created {file}" : "თქვენ შექმენით {file}", + "{user} created {file}" : "{user}-მა შექმნა {file}", + "{file} was created in a public folder" : "{file} შეიქმნა საზოგადო დირექტორიაში", + "You changed {file}" : "თქვენ შეცვალეთ {file}-ი", + "{user} changed {file}" : "{user}-მა შეცვალა {file}-ი", + "You deleted {file}" : "თქვენ წაშალეთ {file}-ი", + "{user} deleted {file}" : "{user}-მა წაშალა {file}-ი", + "You restored {file}" : "თქვენ აღადგინეთ {file}-ი", + "{user} restored {file}" : "{user}-მა განაახლა {file}", + "You renamed {oldfile} to {newfile}" : "თქვენ გადაარქვით სახელი {oldfile}-ს {newfile}-ზე", + "{user} renamed {oldfile} to {newfile}" : "{user}-მა გადაარქვა სახელი {oldfile}-ს {newfile}-ზე", + "You moved {oldfile} to {newfile}" : "თქვენ გადაიტანეთ {oldfile} {newfile}-ად", + "{user} moved {oldfile} to {newfile}" : "{user}-მა გადაიტანა {oldfile} {newfile}-ად", + "A file has been added to or removed from your <strong>favorites</strong>" : "ყველა ფაილი დაემატა ან ამოიშალა<strong>რჩეულებიდან</strong>", + "A file or folder has been <strong>changed</strong> or <strong>renamed</strong>" : "ფაილს ან დირექტორის <strong>გადაერქვა სახელი</strong> ან <strong>შეიცვალა</strong>", + "A new file or folder has been <strong>created</strong>" : "ახალი ფაილი ან დირექტორია <strong>შეიქმნა</strong>", + "A file or folder has been <strong>deleted</strong>" : "ფაილი ან დირექტორია <strong>გაუქმდა</strong>", + "Limit notifications about creation and changes to your <strong>favorite files</strong> <em>(Stream only)</em>" : "დაუწესეთ <strong>რჩეული ფაილების</strong> შექმნის და ცვლილებების შეტყობინებებს ლიმიტი <em>(მხოლოდ ნაკადი)</em>", + "A file or folder has been <strong>restored</strong>" : "ფაილი ან დირექტორია <strong>აღდგენილ იქნა</strong>", + "Unlimited" : "ულიმიტო", + "Upload (max. %s)" : "ატვირთვა (მაქს. %s)", "File handling" : "ფაილის დამუშავება", "Maximum upload size" : "მაქსიმუმ ატვირთის ზომა", "max. possible: " : "მაქს. შესაძლებელი:", "Save" : "შენახვა", + "With PHP-FPM it might take 5 minutes for changes to be applied." : "PHP-FPM-ით ცვლილებების შენახვამ შეიძლება გასტანოს 5 წუთი.", + "Missing permissions to edit from here." : "არასაკმარისი უფლებები აქედან შეცვლისათვის.", + "%s of %s used" : "%s სულ %s-დან მოხმარებულია", + "%s used" : "%s მოხმარებულია", "Settings" : "პარამეტრები", + "Show hidden files" : "დამალული ფაილების ჩვენება", "WebDAV" : "WebDAV", + "Use this address to <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">access your Files via WebDAV</a>" : "გამოიყენეთ ეს მისამართი რომ <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">წვდომა იქოინოთ თქვენს ფაილებთან WebDAV-ით</a>", + "Cancel upload" : "ატვირთვის შეჩერება", + "No files in here" : "აქ ფაილები არაა", + "Upload some content or sync with your devices!" : "ატვირთეთ რამე ან მოახდინეთ სინქრონიზაცია თქვენს მოწყობილობებთან!", + "No entries found in this folder" : "ამ დირექტორიაში შენატანები ვერ იქნა ნაპოვნი", + "Select all" : "ყველას არჩევა", "Upload too large" : "ასატვირთი ფაილი ძალიან დიდია", "The files you are trying to upload exceed the maximum size for file uploads on this server." : "ფაილის ზომა რომლის ატვირთვასაც თქვენ აპირებთ, აჭარბებს სერვერზე დაშვებულ მაქსიმუმს.", - "Text file" : "ტექსტური ფაილი" + "No favorites yet" : "ჯერ რჩეულები არაა", + "Files and folders you mark as favorite will show up here" : "აქ გამოჩნდებიან ფაილები და დირექტორიები, რომლებსაც მონიშნავთ რჩეულებად", + "Shared with you" : "გაზიარდა შენთან", + "Shared with others" : "გაზიარდა სხვებთან", + "Shared by link" : "გაზიარდა ბმულით", + "Tags" : "ტეგები", + "Deleted files" : "გაუქმებული ფაილები", + "Text file" : "ტექსტური ფაილი", + "New text file.txt" : "ახალი ტექსტი file.txt", + "Uploading..." : "მიმდინარეობს ატვირთვა...", + "..." : "...", + "_{hours}:{minutes}:{seconds} hour left_::_{hours}:{minutes}:{seconds} hours left_" : ["დარჩა {hours}:{minutes}:{seconds} საათი"], + "{hours}:{minutes}h" : "{hours}:{minutes}სთ", + "_{minutes}:{seconds} minute left_::_{minutes}:{seconds} minutes left_" : ["დარჩა {minutes}:{seconds} წუთი"], + "{minutes}:{seconds}m" : "{minutes}:{seconds}წთ", + "_{seconds} second left_::_{seconds} seconds left_" : ["დარჩა {seconds} წამი"], + "{seconds}s" : "{seconds}წმ", + "Any moment now..." : "ნებისმიერ მომენტში...", + "Soon..." : "მალე...", + "File upload is in progress. Leaving the page now will cancel the upload." : "მიმდინარეობს ფაილის ატვირთვა. სხვა გვერდზე გადასვლა გამოიწვევს ატვირთვის შეჩერებას", + "Move" : "გადატანა", + "Copy local link" : "ლოკალური ბმულის კოპირება", + "Folder" : "დირექტორია", + "Upload" : "ატვირთვა", + "A new file or folder has been <strong>deleted</strong>" : "ახალი ფაილი ან დირექტორია <strong>გაუქმდა</strong>", + "A new file or folder has been <strong>restored</strong>" : "ახალი ფაილი ან დირექტორია <strong>აღდგენილ იქნა</strong>", + "No favorites" : "რჩეულები არაა" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files/lib/Activity/FavoriteProvider.php b/apps/files/lib/Activity/FavoriteProvider.php index 318ce66e672..787978babed 100644 --- a/apps/files/lib/Activity/FavoriteProvider.php +++ b/apps/files/lib/Activity/FavoriteProvider.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/lib/Activity/Filter/Favorites.php b/apps/files/lib/Activity/Filter/Favorites.php index 2639ae847fc..0cb03eec2b2 100644 --- a/apps/files/lib/Activity/Filter/Favorites.php +++ b/apps/files/lib/Activity/Filter/Favorites.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/lib/Activity/Filter/FileChanges.php b/apps/files/lib/Activity/Filter/FileChanges.php index d8d1a698816..122dc4250f9 100644 --- a/apps/files/lib/Activity/Filter/FileChanges.php +++ b/apps/files/lib/Activity/Filter/FileChanges.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/lib/Activity/Provider.php b/apps/files/lib/Activity/Provider.php index 736b930b7aa..3da1f3c1157 100644 --- a/apps/files/lib/Activity/Provider.php +++ b/apps/files/lib/Activity/Provider.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/lib/Activity/Settings/FavoriteAction.php b/apps/files/lib/Activity/Settings/FavoriteAction.php index 509c0883e1e..8f798d6e5d3 100644 --- a/apps/files/lib/Activity/Settings/FavoriteAction.php +++ b/apps/files/lib/Activity/Settings/FavoriteAction.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/lib/Activity/Settings/FileChanged.php b/apps/files/lib/Activity/Settings/FileChanged.php index 1c20fb6f01a..f89c088e1bd 100644 --- a/apps/files/lib/Activity/Settings/FileChanged.php +++ b/apps/files/lib/Activity/Settings/FileChanged.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/lib/Activity/Settings/FileCreated.php b/apps/files/lib/Activity/Settings/FileCreated.php index dfde00ae7ec..945d25806a7 100644 --- a/apps/files/lib/Activity/Settings/FileCreated.php +++ b/apps/files/lib/Activity/Settings/FileCreated.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/lib/Activity/Settings/FileDeleted.php b/apps/files/lib/Activity/Settings/FileDeleted.php index 256e412b3f4..34ecc7cb2d7 100644 --- a/apps/files/lib/Activity/Settings/FileDeleted.php +++ b/apps/files/lib/Activity/Settings/FileDeleted.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/lib/Activity/Settings/FileFavorite.php b/apps/files/lib/Activity/Settings/FileFavorite.php index b2f20688df9..ae0a4cae674 100644 --- a/apps/files/lib/Activity/Settings/FileFavorite.php +++ b/apps/files/lib/Activity/Settings/FileFavorite.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/lib/Activity/Settings/FileRestored.php b/apps/files/lib/Activity/Settings/FileRestored.php index bac5485f5e4..76f2cca5888 100644 --- a/apps/files/lib/Activity/Settings/FileRestored.php +++ b/apps/files/lib/Activity/Settings/FileRestored.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/lib/App.php b/apps/files/lib/App.php index 34d3ab4384c..ca4b0b7f4f0 100644 --- a/apps/files/lib/App.php +++ b/apps/files/lib/App.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christopher Schäpers <kondou@ts.unde.re> + * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/files/lib/AppInfo/Application.php b/apps/files/lib/AppInfo/Application.php index 43c977655c3..7042af10ca2 100644 --- a/apps/files/lib/AppInfo/Application.php +++ b/apps/files/lib/AppInfo/Application.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Tobias Kaminsky <tobias@kaminsky.me> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/files/lib/Command/Scan.php b/apps/files/lib/Command/Scan.php index d81beb0eaf3..4026af2db79 100644 --- a/apps/files/lib/Command/Scan.php +++ b/apps/files/lib/Command/Scan.php @@ -322,7 +322,7 @@ class Scan extends Base { * @return string */ protected function formatExecTime() { - list($secs, $tens) = explode('.', sprintf("%.1f", ($this->execTime))); + list($secs, ) = explode('.', sprintf("%.1f", ($this->execTime))); # if you want to have microseconds add this: . '.' . $tens; return date('H:i:s', $secs); diff --git a/apps/files/lib/Command/ScanAppData.php b/apps/files/lib/Command/ScanAppData.php index 7212717ee40..f347cb868b1 100644 --- a/apps/files/lib/Command/ScanAppData.php +++ b/apps/files/lib/Command/ScanAppData.php @@ -1,6 +1,26 @@ <?php - - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\Files\Command; use Doctrine\DBAL\Connection; @@ -240,7 +260,7 @@ class ScanAppData extends Base { * @return string */ protected function formatExecTime() { - list($secs, $tens) = explode('.', sprintf("%.1f", ($this->execTime))); + list($secs, ) = explode('.', sprintf("%.1f", ($this->execTime))); # if you want to have microseconds add this: . '.' . $tens; return date('H:i:s', $secs); diff --git a/apps/files/lib/Command/TransferOwnership.php b/apps/files/lib/Command/TransferOwnership.php index aa07cf9de91..d175f66d171 100644 --- a/apps/files/lib/Command/TransferOwnership.php +++ b/apps/files/lib/Command/TransferOwnership.php @@ -4,7 +4,11 @@ * * @author Carla Schroder <carla@owncloud.com> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sujith H <sharidasan@owncloud.com> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/files/lib/Controller/ApiController.php b/apps/files/lib/Controller/ApiController.php index 790da4a184a..a66b1b4d565 100644 --- a/apps/files/lib/Controller/ApiController.php +++ b/apps/files/lib/Controller/ApiController.php @@ -2,12 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Tobias Kaminsky <tobias@kaminsky.me> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files/lib/Controller/ViewController.php b/apps/files/lib/Controller/ViewController.php index bfeb2cafcf6..fa8243822a8 100644 --- a/apps/files/lib/Controller/ViewController.php +++ b/apps/files/lib/Controller/ViewController.php @@ -5,7 +5,7 @@ * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> - * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files/lib/Helper.php b/apps/files/lib/Helper.php index 3eddbbaebf8..ab952c97dfb 100644 --- a/apps/files/lib/Helper.php +++ b/apps/files/lib/Helper.php @@ -6,6 +6,7 @@ * @author brumsel <brumsel@losecatcher.de> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Michael Jobst <mjobst+github@tecratech.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> diff --git a/apps/files/lib/Service/TagService.php b/apps/files/lib/Service/TagService.php index cea26d26d16..d812b16c30e 100644 --- a/apps/files/lib/Service/TagService.php +++ b/apps/files/lib/Service/TagService.php @@ -4,7 +4,6 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> - * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files/lib/Settings/Admin.php b/apps/files/lib/Settings/Admin.php index faaeb5b89c1..4965c1e6c17 100644 --- a/apps/files/lib/Settings/Admin.php +++ b/apps/files/lib/Settings/Admin.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/files/recentlist.php b/apps/files/recentlist.php index 1976be4894a..91a9bce06b5 100644 --- a/apps/files/recentlist.php +++ b/apps/files/recentlist.php @@ -1,4 +1,26 @@ <?php +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ // Check if we are a user OCP\User::checkLoggedIn(); diff --git a/apps/files/tests/Activity/Filter/GenericTest.php b/apps/files/tests/Activity/Filter/GenericTest.php index 3788126dd94..f2b1acba3b3 100644 --- a/apps/files/tests/Activity/Filter/GenericTest.php +++ b/apps/files/tests/Activity/Filter/GenericTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/tests/Activity/ProviderTest.php b/apps/files/tests/Activity/ProviderTest.php index 6cb89961a1b..4a835f42d75 100644 --- a/apps/files/tests/Activity/ProviderTest.php +++ b/apps/files/tests/Activity/ProviderTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/tests/Activity/Setting/GenericTest.php b/apps/files/tests/Activity/Setting/GenericTest.php index 5ae15f02a02..a8df291cb80 100644 --- a/apps/files/tests/Activity/Setting/GenericTest.php +++ b/apps/files/tests/Activity/Setting/GenericTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files/tests/BackgroundJob/ScanFilesTest.php b/apps/files/tests/BackgroundJob/ScanFilesTest.php index 877c3bafd6d..5b5557310d2 100644 --- a/apps/files/tests/BackgroundJob/ScanFilesTest.php +++ b/apps/files/tests/BackgroundJob/ScanFilesTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files/tests/Controller/ApiControllerTest.php b/apps/files/tests/Controller/ApiControllerTest.php index eba87289300..3beabf73ada 100644 --- a/apps/files/tests/Controller/ApiControllerTest.php +++ b/apps/files/tests/Controller/ApiControllerTest.php @@ -5,6 +5,7 @@ * @author Christoph Wurst <christoph@owncloud.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files/tests/Controller/ViewControllerTest.php b/apps/files/tests/Controller/ViewControllerTest.php index 3d8c8164abb..b4f07b65e76 100644 --- a/apps/files/tests/Controller/ViewControllerTest.php +++ b/apps/files/tests/Controller/ViewControllerTest.php @@ -3,8 +3,12 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files/tests/HelperTest.php b/apps/files/tests/HelperTest.php index 901e86ddb20..34d01bd7bcc 100644 --- a/apps/files/tests/HelperTest.php +++ b/apps/files/tests/HelperTest.php @@ -6,6 +6,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files/tests/Settings/AdminTest.php b/apps/files/tests/Settings/AdminTest.php index 1bcfd111db5..071cef7d75f 100644 --- a/apps/files/tests/Settings/AdminTest.php +++ b/apps/files/tests/Settings/AdminTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/files_external/ajax/oauth2.php b/apps/files_external/ajax/oauth2.php index 2510d6ba8cb..9a3f2e0af6a 100644 --- a/apps/files_external/ajax/oauth2.php +++ b/apps/files_external/ajax/oauth2.php @@ -2,15 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Adam Williamson <awilliam@redhat.com> - * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Robin Appelman <robin@icewind.nl> - * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Vincent Petry <pvince81@owncloud.com> - * @author Volkan Gezer <volkangezer@gmail.com> * * @license AGPL-3.0 * diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php index 250cbbd00d1..4a1b7c1b09c 100644 --- a/apps/files_external/appinfo/app.php +++ b/apps/files_external/appinfo/app.php @@ -2,13 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author j-ed <juergen@eisfair.org> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Ross Nicoll <jrn@jrn.me.uk> - * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_external/l10n/es_EC.js b/apps/files_external/l10n/es_EC.js new file mode 100644 index 00000000000..720a7c663d2 --- /dev/null +++ b/apps/files_external/l10n/es_EC.js @@ -0,0 +1,134 @@ +OC.L10N.register( + "files_external", + { + "External storages" : "Almacenamiento externo", + "Personal" : "Personal", + "System" : "Sistema", + "Grant access" : "Conceder acceso", + "Error configuring OAuth1" : "Se presentó un error al configurar OAuth1", + "Please provide a valid app key and secret." : "Por favor proporciona una llave de aplicación y secreto válidos.", + "Error configuring OAuth2" : "Se presentó un error al configurar OAuth2", + "Generate keys" : "Generar llaves", + "Error generating key pair" : "Se presentó un error al generar el juego de llaves", + "All users. Type to select user or group." : "Todos los usuarios. Escribe para seleccionar el usuario o grupo", + "(group)" : "(grupo)", + "Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac NFD (lenta)", + "Admin defined" : "Administrador definido", + "Are you sure you want to delete this external storage" : "¿Estás seguro de que quieres borrar este almacenamiento externo?", + "Delete storage?" : "¿Borrar almacenamiento?", + "Saved" : "Guardado", + "Saving..." : "Guardando...", + "Save" : "Guardar", + "Empty response from the server" : "Respuesta del servidor vacía", + "Couldn't access. Please log out and in again to activate this mount point" : "No fue posible accesar. Por favor sal de la sesión y vuelve a entrar para activar este punto de montaje", + "Couldn't get the information from the remote server: {code} {type}" : "No fue posible obtener la información del servidor remoto: {code} {type}", + "Couldn't get the list of external mount points: {type}" : "No fue posible obtener la lista de puntos de montaje externos: {type}", + "There was an error with message: " : "Se presentó un problema con el mensaje:", + "External mount error" : "Error de montaje externo", + "external-storage" : "almacenamiento externo", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "No fue posible obtener el listado de los puntos de motaje de unidades de red Windows. Respuesta vacía del servidor", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Algunos de los puntos de montaje externos configurados no se encuentran conectados. Por favor has click en los renglon(es) en rojo para más información", + "Please enter the credentials for the {mount} mount" : "Por favor ingresa las credenciales para el montaje {mount}", + "Username" : "Usuario", + "Password" : "Contraseña", + "Credentials saved" : "Credenciales guardadas", + "Credentials saving failed" : "Se ha presentado una falla al guardar las credenciales", + "Credentials required" : "Se requieren credenciales", + "Storage with ID \"%d\" not found" : "El almacenamiento con ID \"%d\" no fue encontrado", + "Invalid backend or authentication mechanism class" : "Backend o clase de mecanismo de autenticación inválido ", + "Invalid mount point" : "Punto de montaje inválido", + "Objectstore forbidden" : "Objectstore prohibido", + "Invalid storage backend \"%s\"" : "Almacenamiento de backend \"%s\" inválido ", + "Not permitted to use backend \"%s\"" : "No está permitido usar el backend \"%s\"", + "Not permitted to use authentication mechanism \"%s\"" : "No está permitido el uso del mecanismo de autenticación \"%s\"", + "Unsatisfied backend parameters" : "Parametros del backend no satisfechos", + "Unsatisfied authentication mechanism parameters" : "Parámetros no satisfechos del mecanismo de autenticación", + "Insufficient data: %s" : "Datos insuficientes: %s", + "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "El almacenamiento con ID \"%d\" no puede ser editado por el usuario", + "Access key" : "Llave de acceso", + "Secret key" : "Llave secreta", + "Builtin" : "Integrado", + "None" : "Ninguno", + "OAuth1" : "OAuth1", + "App key" : "Llave de la aplicación", + "App secret" : "Secreto de la aplicación", + "OAuth2" : "OAuth2", + "Client ID" : "ID del cliente", + "Client secret" : "Secreto del cliente", + "OpenStack" : "OpenStack", + "Tenant name" : "Nombre de inquilino", + "Identity endpoint URL" : "URL del punto de enlace de Identidad", + "Rackspace" : "Rackspace", + "API key" : "Llave de API", + "Global credentials" : "Credenciales globales", + "Log-in credentials, save in database" : "Credenciales de inicio de sesión, guardar en la base de datos", + "Username and password" : "Usuario y contraseña", + "Log-in credentials, save in session" : "Credenciales de inicio de sesión, guardar en la sesión", + "User entered, store in database" : "Usuario ingresado, almacenar en la base de datos", + "RSA public key" : "Llave pública RSA", + "Public key" : "Llave pública", + "Amazon S3" : "Amazon S3", + "Bucket" : "Bucket", + "Hostname" : "Nombre del servidor", + "Port" : "Puerto", + "Region" : "Región", + "Enable SSL" : "Habilitar SSL", + "Enable Path Style" : "Habilitar Estilo de Ruta", + "WebDAV" : "WebDAV", + "URL" : "URL", + "Remote subfolder" : "Subcarpeta remota", + "Secure https://" : "https:// seguro", + "FTP" : "FTP", + "Host" : "Servidor", + "Secure ftps://" : "ftps:// seguro", + "Local" : "Local", + "Location" : "Ubicación", + "Nextcloud" : "Nextcloud", + "SFTP" : "SFTP", + "Root" : "Raíz", + "SFTP with secret key login" : "Inicio de sesión SFTP con llave secreta", + "SMB / CIFS" : "SMB / CIFS", + "Share" : "Compartir", + "Domain" : "Dominio", + "SMB / CIFS using OC login" : "SMB / CIFS usando inicio de sesión OC", + "Username as share" : "Usuario como elemento compartido", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Service name" : "Nombre del servicio", + "Request timeout (seconds)" : "Tiemo de vida de la solicitud (segudos)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para cURL en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no se encuentra instalado. El montaje de %s no es posible. Por favor solicita a tu administrador su instalación. ", + "No external storage configured" : "No se ha configurado el almacenamiento externo", + "You can add external storages in the personal settings" : "Puedes agregar almacenamiento externo en las configuraciones personales", + "Name" : "Nombre", + "Storage type" : "Tipo de almacenamiento", + "Scope" : "Alcance", + "Enable encryption" : "Habilitar encripción", + "Enable previews" : "Habilitar vistas previas", + "Enable sharing" : "Habilitar compartir", + "Check for changes" : "Verificar si hay cambios", + "Never" : "Nunca", + "Once every direct access" : "Una vez cada acceso directo", + "Folder name" : "Nombre de la carpeta", + "External storage" : "Almacenamiento externo", + "Authentication" : "Autenticación", + "Configuration" : "Configuración", + "Available for" : "Disponible para", + "Add storage" : "Agregar almacenamiento", + "Advanced settings" : "Configuraciones avanzadas", + "Delete" : "Borrar", + "Allow users to mount external storage" : "Permitir a los usuarios montar almacenamiento externo", + "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo", + "Fetching request tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de solicitud. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ", + "Fetching access tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de acceso. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ", + "Step 1 failed. Exception: %s" : "Falla en el paso 1: Excepción %s", + "Step 2 failed. Exception: %s" : "Paso 2 falló. Excepción: %s", + "Dropbox App Configuration" : "Configuración de la aplicación Dropbox", + "Google Drive App Configuration" : "Configuración de Aplicación Google Drive", + "Storage with id \"%i\" not found" : "El almacenamiento con id \"%i\" no fue encontrado", + "Storage with id \"%i\" is not user editable" : "El almacenamiento con id \"%i\" no puede ser editado por el usuario", + "Dropbox" : "Dropbox", + "Google Drive" : "Google Drive" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_external/l10n/es_EC.json b/apps/files_external/l10n/es_EC.json new file mode 100644 index 00000000000..59b9db811b3 --- /dev/null +++ b/apps/files_external/l10n/es_EC.json @@ -0,0 +1,132 @@ +{ "translations": { + "External storages" : "Almacenamiento externo", + "Personal" : "Personal", + "System" : "Sistema", + "Grant access" : "Conceder acceso", + "Error configuring OAuth1" : "Se presentó un error al configurar OAuth1", + "Please provide a valid app key and secret." : "Por favor proporciona una llave de aplicación y secreto válidos.", + "Error configuring OAuth2" : "Se presentó un error al configurar OAuth2", + "Generate keys" : "Generar llaves", + "Error generating key pair" : "Se presentó un error al generar el juego de llaves", + "All users. Type to select user or group." : "Todos los usuarios. Escribe para seleccionar el usuario o grupo", + "(group)" : "(grupo)", + "Compatibility with Mac NFD encoding (slow)" : "Compatibilidad con codificación Mac NFD (lenta)", + "Admin defined" : "Administrador definido", + "Are you sure you want to delete this external storage" : "¿Estás seguro de que quieres borrar este almacenamiento externo?", + "Delete storage?" : "¿Borrar almacenamiento?", + "Saved" : "Guardado", + "Saving..." : "Guardando...", + "Save" : "Guardar", + "Empty response from the server" : "Respuesta del servidor vacía", + "Couldn't access. Please log out and in again to activate this mount point" : "No fue posible accesar. Por favor sal de la sesión y vuelve a entrar para activar este punto de montaje", + "Couldn't get the information from the remote server: {code} {type}" : "No fue posible obtener la información del servidor remoto: {code} {type}", + "Couldn't get the list of external mount points: {type}" : "No fue posible obtener la lista de puntos de montaje externos: {type}", + "There was an error with message: " : "Se presentó un problema con el mensaje:", + "External mount error" : "Error de montaje externo", + "external-storage" : "almacenamiento externo", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "No fue posible obtener el listado de los puntos de motaje de unidades de red Windows. Respuesta vacía del servidor", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "Algunos de los puntos de montaje externos configurados no se encuentran conectados. Por favor has click en los renglon(es) en rojo para más información", + "Please enter the credentials for the {mount} mount" : "Por favor ingresa las credenciales para el montaje {mount}", + "Username" : "Usuario", + "Password" : "Contraseña", + "Credentials saved" : "Credenciales guardadas", + "Credentials saving failed" : "Se ha presentado una falla al guardar las credenciales", + "Credentials required" : "Se requieren credenciales", + "Storage with ID \"%d\" not found" : "El almacenamiento con ID \"%d\" no fue encontrado", + "Invalid backend or authentication mechanism class" : "Backend o clase de mecanismo de autenticación inválido ", + "Invalid mount point" : "Punto de montaje inválido", + "Objectstore forbidden" : "Objectstore prohibido", + "Invalid storage backend \"%s\"" : "Almacenamiento de backend \"%s\" inválido ", + "Not permitted to use backend \"%s\"" : "No está permitido usar el backend \"%s\"", + "Not permitted to use authentication mechanism \"%s\"" : "No está permitido el uso del mecanismo de autenticación \"%s\"", + "Unsatisfied backend parameters" : "Parametros del backend no satisfechos", + "Unsatisfied authentication mechanism parameters" : "Parámetros no satisfechos del mecanismo de autenticación", + "Insufficient data: %s" : "Datos insuficientes: %s", + "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "El almacenamiento con ID \"%d\" no puede ser editado por el usuario", + "Access key" : "Llave de acceso", + "Secret key" : "Llave secreta", + "Builtin" : "Integrado", + "None" : "Ninguno", + "OAuth1" : "OAuth1", + "App key" : "Llave de la aplicación", + "App secret" : "Secreto de la aplicación", + "OAuth2" : "OAuth2", + "Client ID" : "ID del cliente", + "Client secret" : "Secreto del cliente", + "OpenStack" : "OpenStack", + "Tenant name" : "Nombre de inquilino", + "Identity endpoint URL" : "URL del punto de enlace de Identidad", + "Rackspace" : "Rackspace", + "API key" : "Llave de API", + "Global credentials" : "Credenciales globales", + "Log-in credentials, save in database" : "Credenciales de inicio de sesión, guardar en la base de datos", + "Username and password" : "Usuario y contraseña", + "Log-in credentials, save in session" : "Credenciales de inicio de sesión, guardar en la sesión", + "User entered, store in database" : "Usuario ingresado, almacenar en la base de datos", + "RSA public key" : "Llave pública RSA", + "Public key" : "Llave pública", + "Amazon S3" : "Amazon S3", + "Bucket" : "Bucket", + "Hostname" : "Nombre del servidor", + "Port" : "Puerto", + "Region" : "Región", + "Enable SSL" : "Habilitar SSL", + "Enable Path Style" : "Habilitar Estilo de Ruta", + "WebDAV" : "WebDAV", + "URL" : "URL", + "Remote subfolder" : "Subcarpeta remota", + "Secure https://" : "https:// seguro", + "FTP" : "FTP", + "Host" : "Servidor", + "Secure ftps://" : "ftps:// seguro", + "Local" : "Local", + "Location" : "Ubicación", + "Nextcloud" : "Nextcloud", + "SFTP" : "SFTP", + "Root" : "Raíz", + "SFTP with secret key login" : "Inicio de sesión SFTP con llave secreta", + "SMB / CIFS" : "SMB / CIFS", + "Share" : "Compartir", + "Domain" : "Dominio", + "SMB / CIFS using OC login" : "SMB / CIFS usando inicio de sesión OC", + "Username as share" : "Usuario como elemento compartido", + "OpenStack Object Storage" : "OpenStack Object Storage", + "Service name" : "Nombre del servicio", + "Request timeout (seconds)" : "Tiemo de vida de la solicitud (segudos)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para cURL en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "El soporte para FTP en PHP no se encuentra habilitado o instalado. El montaje de %s no es posible. Por favor solicita a tu administador su instalación. ", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"%s\" no se encuentra instalado. El montaje de %s no es posible. Por favor solicita a tu administrador su instalación. ", + "No external storage configured" : "No se ha configurado el almacenamiento externo", + "You can add external storages in the personal settings" : "Puedes agregar almacenamiento externo en las configuraciones personales", + "Name" : "Nombre", + "Storage type" : "Tipo de almacenamiento", + "Scope" : "Alcance", + "Enable encryption" : "Habilitar encripción", + "Enable previews" : "Habilitar vistas previas", + "Enable sharing" : "Habilitar compartir", + "Check for changes" : "Verificar si hay cambios", + "Never" : "Nunca", + "Once every direct access" : "Una vez cada acceso directo", + "Folder name" : "Nombre de la carpeta", + "External storage" : "Almacenamiento externo", + "Authentication" : "Autenticación", + "Configuration" : "Configuración", + "Available for" : "Disponible para", + "Add storage" : "Agregar almacenamiento", + "Advanced settings" : "Configuraciones avanzadas", + "Delete" : "Borrar", + "Allow users to mount external storage" : "Permitir a los usuarios montar almacenamiento externo", + "Allow users to mount the following external storage" : "Permitir a los usuarios montar el siguiente almacenamiento externo", + "Fetching request tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de solicitud. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ", + "Fetching access tokens failed. Verify that your app key and secret are correct." : "Se presentó una falla al buscar las fichas de acceso. Por favor verifica que tu llave de aplicación y tu secreto sean correctos. ", + "Step 1 failed. Exception: %s" : "Falla en el paso 1: Excepción %s", + "Step 2 failed. Exception: %s" : "Paso 2 falló. Excepción: %s", + "Dropbox App Configuration" : "Configuración de la aplicación Dropbox", + "Google Drive App Configuration" : "Configuración de Aplicación Google Drive", + "Storage with id \"%i\" not found" : "El almacenamiento con id \"%i\" no fue encontrado", + "Storage with id \"%i\" is not user editable" : "El almacenamiento con id \"%i\" no puede ser editado por el usuario", + "Dropbox" : "Dropbox", + "Google Drive" : "Google Drive" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files_external/l10n/ka_GE.js b/apps/files_external/l10n/ka_GE.js index 46fcbd6238c..1e71be87453 100644 --- a/apps/files_external/l10n/ka_GE.js +++ b/apps/files_external/l10n/ka_GE.js @@ -1,27 +1,134 @@ OC.L10N.register( "files_external", { - "External storage" : "ექსტერნალ საცავი", + "External storages" : "გარე საცავები", "Personal" : "პირადი", - "Grant access" : "დაშვების მინიჭება", + "System" : "სისტემა", + "Grant access" : "წვდომის მინიჭება", + "Error configuring OAuth1" : "OAuth1-ის კონფიგურირებისას წარმოიშვა შეცდომა", + "Please provide a valid app key and secret." : "გთხოვთ უზრუნველყოთ სწორი აპლიკაციის გასაღები და საიდუმლო.", + "Error configuring OAuth2" : "OAuth2-ის კონფიგურირებისას წარმოიშვა შეცდომა", + "Generate keys" : "გასაღებების გენერირება", + "Error generating key pair" : "გასაღების წყვილის გენერირებისას წარმოიშვა შეცდომა", + "All users. Type to select user or group." : "ყველა მომხმარებელი. მოხმარებლის ან ჯგუფის ასარჩევად დაიწყეთ ბეჭდვა .", + "(group)" : "(ჯგუფი)", + "Compatibility with Mac NFD encoding (slow)" : "Mac NFD-სთან თავსებადობა (ნელი)", + "Admin defined" : "ადმინისტრატორი მითითებულია", + "Are you sure you want to delete this external storage" : "დარწმუნებული ხართ რომ გსურთ ამ გარე საცავის გაუქმება?", + "Delete storage?" : "გავაუქმოთ საცავი?", + "Saved" : "შენახულია", + "Saving..." : "ინახება...", + "Save" : "შენახვა", + "Empty response from the server" : "სერვერმა დააბრუნა ცარიელი პასუხი", + "Couldn't access. Please log out and in again to activate this mount point" : "წვდომა ვერ მოხერხდა. ამ მონტაჟის წერტილის გასააქტიურებლად გთხოვთ გახვიდეთ და ახლიდან გაიაროთ ავტორიზაცია.", + "Couldn't get the information from the remote server: {code} {type}" : "დისტანციური სერვერიდან ინფორმაციის მოპოვება ვერ მოხერხდა: {code} {type}", + "Couldn't get the list of external mount points: {type}" : "გარე მონტაჟის წერტილების სიის მოპოვება ვერ მოხერხდა: {type}", + "There was an error with message: " : "წარმოიშვა შეცდომა წერილით:", + "External mount error" : "გარე მონტაჟის შეცდომა", + "external-storage" : "გარე-საცავი", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Windows-ის ქსელის დრაივის მონტაჯის წერტილების სიის მოპოვება ვერ მოხერხდა: ცარიელი პასუხი სერვერიდან", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "ზოგი კონფიგურირებული გარე მონტაჟის წერიტილი არაა დაკავშირებული. მეტი ინფორმაციისთვის გთხოვთ დააწკაპუნოთ წითელ რიგებს.", + "Please enter the credentials for the {mount} mount" : "გთხოვთ მონტაჟისთვის {mount} შეიყვანოთ მონაცემები", "Username" : "მომხმარებლის სახელი", "Password" : "პაროლი", - "Save" : "შენახვა", - "None" : "არა", + "Credentials saved" : "მონაცემები შენახულია", + "Credentials saving failed" : "მონაცემების შენახვა ვერ მოხერხდა", + "Credentials required" : "მონაცემები საჭიროა", + "Storage with ID \"%d\" not found" : "საცავი ID-ით \"%d\" ვერ იქნა ნაპოვნი", + "Invalid backend or authentication mechanism class" : "არასწორი ბექენდი ან აუტენტიფიკაციის მექანიზმის კლასი", + "Invalid mount point" : "არასწორი მონტაჟის წერტილი", + "Objectstore forbidden" : "ობიექტსტორი აკრძალულია", + "Invalid storage backend \"%s\"" : "არასწორი საცავის ბექენდი \"%s\"", + "Not permitted to use backend \"%s\"" : "ბექენის \"%s\" გამოყენება არაა ნებადართული", + "Not permitted to use authentication mechanism \"%s\"" : "აუტენტიკაციის მექანიზმის \"%s\"-ს გამოყენება არაა ნებადართული", + "Unsatisfied backend parameters" : "ბექენიდს პარამეტრები არადამაკმაყოფილებელია", + "Unsatisfied authentication mechanism parameters" : "აუტენტიფიკაციის მექნიზმის პარამეტრები არადამაკმაყოფილებელია", + "Insufficient data: %s" : "არასაკმარისი მონაცემები: %s", + "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "საცავი ID-ით \"%d\" არაა მომხმარებლისთვის შეცვლადი", + "Access key" : "წვდომის გასაღები", + "Secret key" : "საიდუმლო გასაღები", + "Builtin" : "ჩაშენებული", + "None" : "არც ერთი", + "OAuth1" : "OAuth1", + "App key" : "აპლიკაციის გასაღები", + "App secret" : "აპლიკაციის საიდუმლო", + "OAuth2" : "OAuth2", + "Client ID" : "კლიენტის ID", + "Client secret" : "კლიენტის საიდუმლო", + "OpenStack" : "OpenStack", + "Tenant name" : "მოიჯარის სახელ", + "Identity endpoint URL" : "იდენტობის საბოლოო-წერტილის URL", + "Rackspace" : "Rackspace", "API key" : "API გასაღები", + "Global credentials" : "გლობალური მონაცემები", + "Log-in credentials, save in database" : "ლოგინის მონაცემები, შენახვა მონაცემთა ბაზაში", + "Username and password" : "მომხმარებელი და პაროლი", + "Log-in credentials, save in session" : "ლოგინის მონაცემები, შენახვა სესიაში", + "User entered, store in database" : "შეყვანილი მომხმარებელი, შენახვა მონაცემთა ბაზაში", + "RSA public key" : "RSA ღია გასაღები", + "Public key" : "ღია გასაღები", + "Amazon S3" : "Amazon S3", + "Bucket" : "ხაპია", + "Hostname" : "ჰოსტი", "Port" : "პორტი", "Region" : "რეგიონი", + "Enable SSL" : "SSL-ის ამოქმედება", + "Enable Path Style" : "ბილიკის სტილის ამოქმედება", "WebDAV" : "WebDAV", "URL" : "URL", + "Remote subfolder" : "დისტანციური ქვე-დირექტორია", + "Secure https://" : "დაცული https://", + "FTP" : "FTP", "Host" : "ჰოსტი", + "Secure ftps://" : "დაცული ftps://", + "Local" : "ლოკალური", "Location" : "ადგილმდებარეობა", - "ownCloud" : "ownCloud–ი", + "Nextcloud" : "Nextcloud-ი", + "SFTP" : "SFTP", + "Root" : "Root", + "SFTP with secret key login" : "SFTP საიდუმლო გასაღების ლოგინით", + "SMB / CIFS" : "SMB / CIFS", "Share" : "გაზიარება", + "Domain" : "დომენი", + "SMB / CIFS using OC login" : "SMB / CIFS OC ლოგინით", + "Username as share" : "მომხმარებლის სახელი გაზიარებად", + "OpenStack Object Storage" : "OpenStack ობიექტ საცავი", + "Service name" : "სერვისის სახელ", + "Request timeout (seconds)" : "მოთხოვნის დროის ამოწურვა (წამები)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "cURL-ის მხარდაჭერა PHP-ში არაა მოქდენი ან დაყენებული. %s-ის მონტაჟი ვერ ხერხდება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს მისი დაყენება.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "FTP-ს მხარდაჭერა PHP-ში არაა მოქმედი ან დაყენებული. %s-ის მონტაჟი ვერ ხერხდება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს მისი დაყენება.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"1 %s\" არაა დაყენებული. %s-ის მონტაჟი ვერ ხერხდება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს მისი დაყენება.", + "No external storage configured" : "გარე საცავი არაა კონფიგურირებული", + "You can add external storages in the personal settings" : "გარე საცავები შეგიძლიათ დაამატოთ პირად პარამეტრებში", "Name" : "სახელი", - "External Storage" : "ექსტერნალ საცავი", + "Storage type" : "საცავის სახეობა", + "Scope" : "ფარგლები", + "Enable encryption" : "შიფრაციის ამოქმედება", + "Enable previews" : "პრევიუების ამოქმედება", + "Enable sharing" : "გაზიარების ამოქმედება", + "Check for changes" : "ცვლილებების შემოწმება", + "Never" : "არასდროს", + "Once every direct access" : "ყოველთვის პირდაპირი წვდომისას", "Folder name" : "ფოლდერის სახელი", + "External storage" : "ექსტერნალ საცავი", + "Authentication" : "აუტენტიფიკაცია", "Configuration" : "კონფიგურაცია", + "Available for" : "ხელმისაწვდომია რომ", "Add storage" : "საცავის დამატება", - "Delete" : "წაშლა" + "Advanced settings" : "დამატებითი პარამეტრები", + "Delete" : "წაშლა", + "Allow users to mount external storage" : "მივცეთ მომხმარებლებს გარე საცავის მონტაჟის უფლება", + "Allow users to mount the following external storage" : "მივცეთ მომხმარებლებს შემდეგი გარე საცავების მონტაჟის უფლება", + "Fetching request tokens failed. Verify that your app key and secret are correct." : "მოთხოვნის ტოკენების მიღება ვერ მოხერხდა. დარწმუნდით რომ თქვენი აპლიკაციის გასარღები და საიდუმლო სწორია.", + "Fetching access tokens failed. Verify that your app key and secret are correct." : "მოთხოვნის ტოკენების მიღება ვერ მოხერხდა. დარწმუნდით რომ თქვენი აპლიკაციის გასარღები და საიდუმლო სწორია.", + "Step 1 failed. Exception: %s" : "ნაბიჯი 1 ჩაიშალა. გამონაკლისი: %s", + "Step 2 failed. Exception: %s" : "ნაბიჯი 2 ჩაიშალა. გამონაკლისი: %s", + "Dropbox App Configuration" : "Dropbox აპლიკაციის კონფიგურაცია", + "Google Drive App Configuration" : "Google Drive აპლიკაციის კონფიგურაცია", + "Storage with id \"%i\" not found" : "საცავი ID-ით \"%i\" ვერ იქნა ნაპოვნი", + "Storage with id \"%i\" is not user editable" : "საცავი ID-ით \"%i\" არაა მომხმარებლისთვის შეცვლადი", + "Dropbox" : "Dropbox-ი", + "Google Drive" : "Google Drive-ი" }, "nplurals=1; plural=0;"); diff --git a/apps/files_external/l10n/ka_GE.json b/apps/files_external/l10n/ka_GE.json index 08f0d76d0fb..92c47b8047b 100644 --- a/apps/files_external/l10n/ka_GE.json +++ b/apps/files_external/l10n/ka_GE.json @@ -1,25 +1,132 @@ { "translations": { - "External storage" : "ექსტერნალ საცავი", + "External storages" : "გარე საცავები", "Personal" : "პირადი", - "Grant access" : "დაშვების მინიჭება", + "System" : "სისტემა", + "Grant access" : "წვდომის მინიჭება", + "Error configuring OAuth1" : "OAuth1-ის კონფიგურირებისას წარმოიშვა შეცდომა", + "Please provide a valid app key and secret." : "გთხოვთ უზრუნველყოთ სწორი აპლიკაციის გასაღები და საიდუმლო.", + "Error configuring OAuth2" : "OAuth2-ის კონფიგურირებისას წარმოიშვა შეცდომა", + "Generate keys" : "გასაღებების გენერირება", + "Error generating key pair" : "გასაღების წყვილის გენერირებისას წარმოიშვა შეცდომა", + "All users. Type to select user or group." : "ყველა მომხმარებელი. მოხმარებლის ან ჯგუფის ასარჩევად დაიწყეთ ბეჭდვა .", + "(group)" : "(ჯგუფი)", + "Compatibility with Mac NFD encoding (slow)" : "Mac NFD-სთან თავსებადობა (ნელი)", + "Admin defined" : "ადმინისტრატორი მითითებულია", + "Are you sure you want to delete this external storage" : "დარწმუნებული ხართ რომ გსურთ ამ გარე საცავის გაუქმება?", + "Delete storage?" : "გავაუქმოთ საცავი?", + "Saved" : "შენახულია", + "Saving..." : "ინახება...", + "Save" : "შენახვა", + "Empty response from the server" : "სერვერმა დააბრუნა ცარიელი პასუხი", + "Couldn't access. Please log out and in again to activate this mount point" : "წვდომა ვერ მოხერხდა. ამ მონტაჟის წერტილის გასააქტიურებლად გთხოვთ გახვიდეთ და ახლიდან გაიაროთ ავტორიზაცია.", + "Couldn't get the information from the remote server: {code} {type}" : "დისტანციური სერვერიდან ინფორმაციის მოპოვება ვერ მოხერხდა: {code} {type}", + "Couldn't get the list of external mount points: {type}" : "გარე მონტაჟის წერტილების სიის მოპოვება ვერ მოხერხდა: {type}", + "There was an error with message: " : "წარმოიშვა შეცდომა წერილით:", + "External mount error" : "გარე მონტაჟის შეცდომა", + "external-storage" : "გარე-საცავი", + "Couldn't fetch list of Windows network drive mount points: Empty response from server" : "Windows-ის ქსელის დრაივის მონტაჯის წერტილების სიის მოპოვება ვერ მოხერხდა: ცარიელი პასუხი სერვერიდან", + "Some of the configured external mount points are not connected. Please click on the red row(s) for more information" : "ზოგი კონფიგურირებული გარე მონტაჟის წერიტილი არაა დაკავშირებული. მეტი ინფორმაციისთვის გთხოვთ დააწკაპუნოთ წითელ რიგებს.", + "Please enter the credentials for the {mount} mount" : "გთხოვთ მონტაჟისთვის {mount} შეიყვანოთ მონაცემები", "Username" : "მომხმარებლის სახელი", "Password" : "პაროლი", - "Save" : "შენახვა", - "None" : "არა", + "Credentials saved" : "მონაცემები შენახულია", + "Credentials saving failed" : "მონაცემების შენახვა ვერ მოხერხდა", + "Credentials required" : "მონაცემები საჭიროა", + "Storage with ID \"%d\" not found" : "საცავი ID-ით \"%d\" ვერ იქნა ნაპოვნი", + "Invalid backend or authentication mechanism class" : "არასწორი ბექენდი ან აუტენტიფიკაციის მექანიზმის კლასი", + "Invalid mount point" : "არასწორი მონტაჟის წერტილი", + "Objectstore forbidden" : "ობიექტსტორი აკრძალულია", + "Invalid storage backend \"%s\"" : "არასწორი საცავის ბექენდი \"%s\"", + "Not permitted to use backend \"%s\"" : "ბექენის \"%s\" გამოყენება არაა ნებადართული", + "Not permitted to use authentication mechanism \"%s\"" : "აუტენტიკაციის მექანიზმის \"%s\"-ს გამოყენება არაა ნებადართული", + "Unsatisfied backend parameters" : "ბექენიდს პარამეტრები არადამაკმაყოფილებელია", + "Unsatisfied authentication mechanism parameters" : "აუტენტიფიკაციის მექნიზმის პარამეტრები არადამაკმაყოფილებელია", + "Insufficient data: %s" : "არასაკმარისი მონაცემები: %s", + "%s" : "%s", + "Storage with ID \"%d\" is not user editable" : "საცავი ID-ით \"%d\" არაა მომხმარებლისთვის შეცვლადი", + "Access key" : "წვდომის გასაღები", + "Secret key" : "საიდუმლო გასაღები", + "Builtin" : "ჩაშენებული", + "None" : "არც ერთი", + "OAuth1" : "OAuth1", + "App key" : "აპლიკაციის გასაღები", + "App secret" : "აპლიკაციის საიდუმლო", + "OAuth2" : "OAuth2", + "Client ID" : "კლიენტის ID", + "Client secret" : "კლიენტის საიდუმლო", + "OpenStack" : "OpenStack", + "Tenant name" : "მოიჯარის სახელ", + "Identity endpoint URL" : "იდენტობის საბოლოო-წერტილის URL", + "Rackspace" : "Rackspace", "API key" : "API გასაღები", + "Global credentials" : "გლობალური მონაცემები", + "Log-in credentials, save in database" : "ლოგინის მონაცემები, შენახვა მონაცემთა ბაზაში", + "Username and password" : "მომხმარებელი და პაროლი", + "Log-in credentials, save in session" : "ლოგინის მონაცემები, შენახვა სესიაში", + "User entered, store in database" : "შეყვანილი მომხმარებელი, შენახვა მონაცემთა ბაზაში", + "RSA public key" : "RSA ღია გასაღები", + "Public key" : "ღია გასაღები", + "Amazon S3" : "Amazon S3", + "Bucket" : "ხაპია", + "Hostname" : "ჰოსტი", "Port" : "პორტი", "Region" : "რეგიონი", + "Enable SSL" : "SSL-ის ამოქმედება", + "Enable Path Style" : "ბილიკის სტილის ამოქმედება", "WebDAV" : "WebDAV", "URL" : "URL", + "Remote subfolder" : "დისტანციური ქვე-დირექტორია", + "Secure https://" : "დაცული https://", + "FTP" : "FTP", "Host" : "ჰოსტი", + "Secure ftps://" : "დაცული ftps://", + "Local" : "ლოკალური", "Location" : "ადგილმდებარეობა", - "ownCloud" : "ownCloud–ი", + "Nextcloud" : "Nextcloud-ი", + "SFTP" : "SFTP", + "Root" : "Root", + "SFTP with secret key login" : "SFTP საიდუმლო გასაღების ლოგინით", + "SMB / CIFS" : "SMB / CIFS", "Share" : "გაზიარება", + "Domain" : "დომენი", + "SMB / CIFS using OC login" : "SMB / CIFS OC ლოგინით", + "Username as share" : "მომხმარებლის სახელი გაზიარებად", + "OpenStack Object Storage" : "OpenStack ობიექტ საცავი", + "Service name" : "სერვისის სახელ", + "Request timeout (seconds)" : "მოთხოვნის დროის ამოწურვა (წამები)", + "The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "cURL-ის მხარდაჭერა PHP-ში არაა მოქდენი ან დაყენებული. %s-ის მონტაჟი ვერ ხერხდება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს მისი დაყენება.", + "The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "FTP-ს მხარდაჭერა PHP-ში არაა მოქმედი ან დაყენებული. %s-ის მონტაჟი ვერ ხერხდება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს მისი დაყენება.", + "\"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "\"1 %s\" არაა დაყენებული. %s-ის მონტაჟი ვერ ხერხდება. გთხოვთ სთხოვოთ თქვენი სისტემის ადმინისტრატორს მისი დაყენება.", + "No external storage configured" : "გარე საცავი არაა კონფიგურირებული", + "You can add external storages in the personal settings" : "გარე საცავები შეგიძლიათ დაამატოთ პირად პარამეტრებში", "Name" : "სახელი", - "External Storage" : "ექსტერნალ საცავი", + "Storage type" : "საცავის სახეობა", + "Scope" : "ფარგლები", + "Enable encryption" : "შიფრაციის ამოქმედება", + "Enable previews" : "პრევიუების ამოქმედება", + "Enable sharing" : "გაზიარების ამოქმედება", + "Check for changes" : "ცვლილებების შემოწმება", + "Never" : "არასდროს", + "Once every direct access" : "ყოველთვის პირდაპირი წვდომისას", "Folder name" : "ფოლდერის სახელი", + "External storage" : "ექსტერნალ საცავი", + "Authentication" : "აუტენტიფიკაცია", "Configuration" : "კონფიგურაცია", + "Available for" : "ხელმისაწვდომია რომ", "Add storage" : "საცავის დამატება", - "Delete" : "წაშლა" + "Advanced settings" : "დამატებითი პარამეტრები", + "Delete" : "წაშლა", + "Allow users to mount external storage" : "მივცეთ მომხმარებლებს გარე საცავის მონტაჟის უფლება", + "Allow users to mount the following external storage" : "მივცეთ მომხმარებლებს შემდეგი გარე საცავების მონტაჟის უფლება", + "Fetching request tokens failed. Verify that your app key and secret are correct." : "მოთხოვნის ტოკენების მიღება ვერ მოხერხდა. დარწმუნდით რომ თქვენი აპლიკაციის გასარღები და საიდუმლო სწორია.", + "Fetching access tokens failed. Verify that your app key and secret are correct." : "მოთხოვნის ტოკენების მიღება ვერ მოხერხდა. დარწმუნდით რომ თქვენი აპლიკაციის გასარღები და საიდუმლო სწორია.", + "Step 1 failed. Exception: %s" : "ნაბიჯი 1 ჩაიშალა. გამონაკლისი: %s", + "Step 2 failed. Exception: %s" : "ნაბიჯი 2 ჩაიშალა. გამონაკლისი: %s", + "Dropbox App Configuration" : "Dropbox აპლიკაციის კონფიგურაცია", + "Google Drive App Configuration" : "Google Drive აპლიკაციის კონფიგურაცია", + "Storage with id \"%i\" not found" : "საცავი ID-ით \"%i\" ვერ იქნა ნაპოვნი", + "Storage with id \"%i\" is not user editable" : "საცავი ID-ით \"%i\" არაა მომხმარებლისთვის შეცვლადი", + "Dropbox" : "Dropbox-ი", + "Google Drive" : "Google Drive-ი" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_external/l10n/zh_TW.js b/apps/files_external/l10n/zh_TW.js index d18680efaac..8e4f1b9669a 100644 --- a/apps/files_external/l10n/zh_TW.js +++ b/apps/files_external/l10n/zh_TW.js @@ -12,6 +12,9 @@ OC.L10N.register( "Error generating key pair" : "產生金鑰對錯誤", "All users. Type to select user or group." : "所有人都可以使用,或者選擇特定使用者、群組", "(group)" : "(群組)", + "Admin defined" : "管理者定義", + "Are you sure you want to delete this external storage" : "您確定要刪除額外的空間?", + "Delete storage?" : "刪除空間", "Saved" : "已儲存", "Saving..." : "儲存中...", "Save" : "儲存", @@ -23,6 +26,8 @@ OC.L10N.register( "external-storage" : "外部儲存", "Username" : "使用者名稱", "Password" : "密碼", + "Credentials saved" : "已儲存憑證", + "Credentials saving failed" : "憑證儲存失敗", "Invalid backend or authentication mechanism class" : "無效的後端處理或是驗證方式", "Invalid mount point" : "無效的掛載點", "Objectstore forbidden" : "物件儲存禁止存取", @@ -35,6 +40,7 @@ OC.L10N.register( "%s" : "%s", "Access key" : "存取金鑰", "Secret key" : "私密金鑰", + "Builtin" : "公告", "None" : "無", "App key" : "App 金鑰", "App secret" : "App 密碼", @@ -64,7 +70,9 @@ OC.L10N.register( "Secure ftps://" : "安全 ftps://", "Local" : "本地", "Location" : "地點", + "Nextcloud" : "Nextcloud", "SFTP" : "安全檔案傳輸協定-SFTP", + "Root" : "Root", "SFTP with secret key login" : "以密碼金鑰登入SFTP", "SMB / CIFS" : "伺服器訊息區塊-SMB/網路文件共享系統 (CIFS)", "Share" : "分享", diff --git a/apps/files_external/l10n/zh_TW.json b/apps/files_external/l10n/zh_TW.json index a2b5b8f8e81..21a8d621c5b 100644 --- a/apps/files_external/l10n/zh_TW.json +++ b/apps/files_external/l10n/zh_TW.json @@ -10,6 +10,9 @@ "Error generating key pair" : "產生金鑰對錯誤", "All users. Type to select user or group." : "所有人都可以使用,或者選擇特定使用者、群組", "(group)" : "(群組)", + "Admin defined" : "管理者定義", + "Are you sure you want to delete this external storage" : "您確定要刪除額外的空間?", + "Delete storage?" : "刪除空間", "Saved" : "已儲存", "Saving..." : "儲存中...", "Save" : "儲存", @@ -21,6 +24,8 @@ "external-storage" : "外部儲存", "Username" : "使用者名稱", "Password" : "密碼", + "Credentials saved" : "已儲存憑證", + "Credentials saving failed" : "憑證儲存失敗", "Invalid backend or authentication mechanism class" : "無效的後端處理或是驗證方式", "Invalid mount point" : "無效的掛載點", "Objectstore forbidden" : "物件儲存禁止存取", @@ -33,6 +38,7 @@ "%s" : "%s", "Access key" : "存取金鑰", "Secret key" : "私密金鑰", + "Builtin" : "公告", "None" : "無", "App key" : "App 金鑰", "App secret" : "App 密碼", @@ -62,7 +68,9 @@ "Secure ftps://" : "安全 ftps://", "Local" : "本地", "Location" : "地點", + "Nextcloud" : "Nextcloud", "SFTP" : "安全檔案傳輸協定-SFTP", + "Root" : "Root", "SFTP with secret key login" : "以密碼金鑰登入SFTP", "SMB / CIFS" : "伺服器訊息區塊-SMB/網路文件共享系統 (CIFS)", "Share" : "分享", diff --git a/apps/files_external/lib/Command/Applicable.php b/apps/files_external/lib/Command/Applicable.php index 2e8311db9ec..d954be48937 100644 --- a/apps/files_external/lib/Command/Applicable.php +++ b/apps/files_external/lib/Command/Applicable.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/lib/Command/Config.php b/apps/files_external/lib/Command/Config.php index 5df6f7ee650..375181d35e5 100644 --- a/apps/files_external/lib/Command/Config.php +++ b/apps/files_external/lib/Command/Config.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Ardinis <Ardinis@users.noreply.github.com> * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> * diff --git a/apps/files_external/lib/Command/Create.php b/apps/files_external/lib/Command/Create.php index ff9fa3ae878..2b1ac7af3db 100644 --- a/apps/files_external/lib/Command/Create.php +++ b/apps/files_external/lib/Command/Create.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/lib/Command/Delete.php b/apps/files_external/lib/Command/Delete.php index 015995ec14f..1b87a63793d 100644 --- a/apps/files_external/lib/Command/Delete.php +++ b/apps/files_external/lib/Command/Delete.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/lib/Command/Import.php b/apps/files_external/lib/Command/Import.php index 712a8851c8a..88e67d703fc 100644 --- a/apps/files_external/lib/Command/Import.php +++ b/apps/files_external/lib/Command/Import.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/lib/Command/ListCommand.php b/apps/files_external/lib/Command/ListCommand.php index a9618854b34..efb2669e281 100644 --- a/apps/files_external/lib/Command/ListCommand.php +++ b/apps/files_external/lib/Command/ListCommand.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/lib/Command/Notify.php b/apps/files_external/lib/Command/Notify.php index 3c5c3af9ac2..f649d36df78 100644 --- a/apps/files_external/lib/Command/Notify.php +++ b/apps/files_external/lib/Command/Notify.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Robin Appelman <robin@icewind.nl> * * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/files_external/lib/Config/ExternalMountPoint.php b/apps/files_external/lib/Config/ExternalMountPoint.php index 76a090b7ec4..76040a839f6 100644 --- a/apps/files_external/lib/Config/ExternalMountPoint.php +++ b/apps/files_external/lib/Config/ExternalMountPoint.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_external/lib/Controller/AjaxController.php b/apps/files_external/lib/Controller/AjaxController.php index 5f5b32cffb6..9c2953851f5 100644 --- a/apps/files_external/lib/Controller/AjaxController.php +++ b/apps/files_external/lib/Controller/AjaxController.php @@ -3,9 +3,11 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Martin Mattel <martin.mattel@diemattels.at> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Ross Nicoll <jrn@jrn.me.uk> * * @license AGPL-3.0 diff --git a/apps/files_external/lib/Lib/Api.php b/apps/files_external/lib/Lib/Api.php index 547285a2312..6957af0b7bb 100644 --- a/apps/files_external/lib/Lib/Api.php +++ b/apps/files_external/lib/Lib/Api.php @@ -5,7 +5,9 @@ * @author Jesús Macias <jmacias@solidgear.es> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_external/lib/Lib/Auth/AuthMechanism.php b/apps/files_external/lib/Lib/Auth/AuthMechanism.php index b18579163a3..28d1dde4375 100644 --- a/apps/files_external/lib/Lib/Auth/AuthMechanism.php +++ b/apps/files_external/lib/Lib/Auth/AuthMechanism.php @@ -4,6 +4,7 @@ * * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/lib/Lib/Auth/InvalidAuth.php b/apps/files_external/lib/Lib/Auth/InvalidAuth.php index c99eaa73d16..e22a75adc17 100644 --- a/apps/files_external/lib/Lib/Auth/InvalidAuth.php +++ b/apps/files_external/lib/Lib/Auth/InvalidAuth.php @@ -1,8 +1,9 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/files_external/lib/Lib/Auth/Password/GlobalAuth.php b/apps/files_external/lib/Lib/Auth/Password/GlobalAuth.php index c0ece745aa4..3c5798ccee7 100644 --- a/apps/files_external/lib/Lib/Auth/Password/GlobalAuth.php +++ b/apps/files_external/lib/Lib/Auth/Password/GlobalAuth.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2015, ownCloud, Inc. * + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php b/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php index 30644206c26..9f1ad9e4a32 100644 --- a/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php +++ b/apps/files_external/lib/Lib/Auth/Password/SessionCredentials.php @@ -1,8 +1,8 @@ <?php - /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Christoph Wurst <christoph@owncloud.com> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php b/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php index 8dedf8c5196..425a601d7e9 100644 --- a/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php +++ b/apps/files_external/lib/Lib/Auth/PublicKey/RSA.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/lib/Lib/Backend/Backend.php b/apps/files_external/lib/Lib/Backend/Backend.php index 3b6f7c3eeed..d00c1802b4b 100644 --- a/apps/files_external/lib/Lib/Backend/Backend.php +++ b/apps/files_external/lib/Lib/Backend/Backend.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/lib/Lib/Backend/InvalidBackend.php b/apps/files_external/lib/Lib/Backend/InvalidBackend.php index 6c8eda22d07..7b3eb26aec9 100644 --- a/apps/files_external/lib/Lib/Backend/InvalidBackend.php +++ b/apps/files_external/lib/Lib/Backend/InvalidBackend.php @@ -1,8 +1,11 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/files_external/lib/Lib/Backend/OwnCloud.php b/apps/files_external/lib/Lib/Backend/OwnCloud.php index 1304b09c87c..0d3ffb30b40 100644 --- a/apps/files_external/lib/Lib/Backend/OwnCloud.php +++ b/apps/files_external/lib/Lib/Backend/OwnCloud.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * * @license AGPL-3.0 diff --git a/apps/files_external/lib/Lib/FrontendDefinitionTrait.php b/apps/files_external/lib/Lib/FrontendDefinitionTrait.php index 03b39927d97..25b3cb4fc29 100644 --- a/apps/files_external/lib/Lib/FrontendDefinitionTrait.php +++ b/apps/files_external/lib/Lib/FrontendDefinitionTrait.php @@ -4,6 +4,7 @@ * * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/lib/Lib/IdentifierTrait.php b/apps/files_external/lib/Lib/IdentifierTrait.php index 38f2d4cd33f..a9f553dea89 100644 --- a/apps/files_external/lib/Lib/IdentifierTrait.php +++ b/apps/files_external/lib/Lib/IdentifierTrait.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/lib/Lib/InsufficientDataForMeaningfulAnswerException.php b/apps/files_external/lib/Lib/InsufficientDataForMeaningfulAnswerException.php index 6b335f82b56..dc0799042e5 100644 --- a/apps/files_external/lib/Lib/InsufficientDataForMeaningfulAnswerException.php +++ b/apps/files_external/lib/Lib/InsufficientDataForMeaningfulAnswerException.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * diff --git a/apps/files_external/lib/Lib/Storage/AmazonS3.php b/apps/files_external/lib/Lib/Storage/AmazonS3.php index d3157bccf66..7c536443a0e 100644 --- a/apps/files_external/lib/Lib/Storage/AmazonS3.php +++ b/apps/files_external/lib/Lib/Storage/AmazonS3.php @@ -4,7 +4,6 @@ * * @author André Gaul <gaul@web-yard.de> * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Bart Visscher <bartv@thisnet.nl> * @author Christian Berendt <berendt@b1-systems.de> * @author Christopher T. Johnson <ctjctj@gmail.com> * @author Johan Björk <johanimon@gmail.com> diff --git a/apps/files_external/lib/Lib/Storage/FTP.php b/apps/files_external/lib/Lib/Storage/FTP.php index 1bbdfaba468..427a076ffe1 100644 --- a/apps/files_external/lib/Lib/Storage/FTP.php +++ b/apps/files_external/lib/Lib/Storage/FTP.php @@ -5,6 +5,7 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> * @author Felix Moeller <mail@felixmoeller.de> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/apps/files_external/lib/Lib/Storage/OwnCloud.php b/apps/files_external/lib/Lib/Storage/OwnCloud.php index 34838b9891e..d846fa811a0 100644 --- a/apps/files_external/lib/Lib/Storage/OwnCloud.php +++ b/apps/files_external/lib/Lib/Storage/OwnCloud.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/files_external/lib/Lib/Storage/SFTP.php b/apps/files_external/lib/Lib/Storage/SFTP.php index 8d489551264..22162fa61cf 100644 --- a/apps/files_external/lib/Lib/Storage/SFTP.php +++ b/apps/files_external/lib/Lib/Storage/SFTP.php @@ -5,6 +5,7 @@ * @author Andreas Fischer <bantu@owncloud.com> * @author Bart Visscher <bartv@thisnet.nl> * @author hkjolhede <hkjolhede@gmail.com> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lennart Rosam <lennart.rosam@medien-systempartner.de> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/apps/files_external/lib/Lib/Storage/SMB.php b/apps/files_external/lib/Lib/Storage/SMB.php index 4af6df5d84a..557dafda72c 100644 --- a/apps/files_external/lib/Lib/Storage/SMB.php +++ b/apps/files_external/lib/Lib/Storage/SMB.php @@ -4,6 +4,9 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Jesús Macias <jmacias@solidgear.es> + * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafañez <jvillafanez@solidgear.es> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/apps/files_external/lib/Lib/Storage/Swift.php b/apps/files_external/lib/Lib/Storage/Swift.php index a775195e85e..970ade02cea 100644 --- a/apps/files_external/lib/Lib/Storage/Swift.php +++ b/apps/files_external/lib/Lib/Storage/Swift.php @@ -2,12 +2,16 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Benjamin Liles <benliles@arch.tamu.edu> * @author Christian Berendt <berendt@b1-systems.de> + * @author Christopher Bartz <bartz@dkrz.de> * @author Daniel Tosello <tosello.daniel@gmail.com> * @author Felix Moeller <mail@felixmoeller.de> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Martin Mattel <martin.mattel@diemattels.at> * @author Morris Jobke <hey@morrisjobke.de> * @author Philipp Kapfer <philipp.kapfer@gmx.at> diff --git a/apps/files_external/lib/Service/DBConfigService.php b/apps/files_external/lib/Service/DBConfigService.php index 71a77cd4347..c986acbaa5d 100644 --- a/apps/files_external/lib/Service/DBConfigService.php +++ b/apps/files_external/lib/Service/DBConfigService.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * diff --git a/apps/files_external/lib/Settings/Personal.php b/apps/files_external/lib/Settings/Personal.php index 946ba9f6944..7aec459bfb7 100644 --- a/apps/files_external/lib/Settings/Personal.php +++ b/apps/files_external/lib/Settings/Personal.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_external/lib/Settings/PersonalSection.php b/apps/files_external/lib/Settings/PersonalSection.php index 669cd941da9..1a2197f60c7 100644 --- a/apps/files_external/lib/Settings/PersonalSection.php +++ b/apps/files_external/lib/Settings/PersonalSection.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_external/lib/Settings/Section.php b/apps/files_external/lib/Settings/Section.php index 4829bb60d39..d7ebfd325cb 100644 --- a/apps/files_external/lib/Settings/Section.php +++ b/apps/files_external/lib/Settings/Section.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php index 4900de57b64..13960dde684 100644 --- a/apps/files_external/lib/config.php +++ b/apps/files_external/lib/config.php @@ -15,6 +15,7 @@ * @author Philipp Kapfer <philipp.kapfer@gmx.at> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files_external/tests/Auth/AuthMechanismTest.php b/apps/files_external/tests/Auth/AuthMechanismTest.php index 11eee7b8824..ed3b52c1dbb 100644 --- a/apps/files_external/tests/Auth/AuthMechanismTest.php +++ b/apps/files_external/tests/Auth/AuthMechanismTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> * * @license AGPL-3.0 diff --git a/apps/files_external/tests/Auth/Password/GlobalAuth.php b/apps/files_external/tests/Auth/Password/GlobalAuth.php index 405fbd2941c..c447be7a669 100644 --- a/apps/files_external/tests/Auth/Password/GlobalAuth.php +++ b/apps/files_external/tests/Auth/Password/GlobalAuth.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/tests/Backend/BackendTest.php b/apps/files_external/tests/Backend/BackendTest.php index 1a1c386240a..bc8aa6a0aee 100644 --- a/apps/files_external/tests/Backend/BackendTest.php +++ b/apps/files_external/tests/Backend/BackendTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> * * @license AGPL-3.0 diff --git a/apps/files_external/tests/Command/ApplicableTest.php b/apps/files_external/tests/Command/ApplicableTest.php index 70b18be6b7b..90cfeace361 100644 --- a/apps/files_external/tests/Command/ApplicableTest.php +++ b/apps/files_external/tests/Command/ApplicableTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/tests/Command/ListCommandTest.php b/apps/files_external/tests/Command/ListCommandTest.php index 76a8f98f520..046b4de3282 100644 --- a/apps/files_external/tests/Command/ListCommandTest.php +++ b/apps/files_external/tests/Command/ListCommandTest.php @@ -2,8 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/tests/Controller/AjaxControllerTest.php b/apps/files_external/tests/Controller/AjaxControllerTest.php index 8aba70e0d6b..1153036c414 100644 --- a/apps/files_external/tests/Controller/AjaxControllerTest.php +++ b/apps/files_external/tests/Controller/AjaxControllerTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php b/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php index 5c334efdf4c..2e0245e76fa 100644 --- a/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php +++ b/apps/files_external/tests/Controller/GlobalStoragesControllerTest.php @@ -5,6 +5,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_external/tests/Controller/StoragesControllerTest.php b/apps/files_external/tests/Controller/StoragesControllerTest.php index f854b25676c..ad0a3401412 100644 --- a/apps/files_external/tests/Controller/StoragesControllerTest.php +++ b/apps/files_external/tests/Controller/StoragesControllerTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files_external/tests/Controller/UserStoragesControllerTest.php b/apps/files_external/tests/Controller/UserStoragesControllerTest.php index cdfcbcd1407..817c5b4e5c3 100644 --- a/apps/files_external/tests/Controller/UserStoragesControllerTest.php +++ b/apps/files_external/tests/Controller/UserStoragesControllerTest.php @@ -5,6 +5,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_external/tests/FrontendDefinitionTraitTest.php b/apps/files_external/tests/FrontendDefinitionTraitTest.php index 4154ac6092c..cdb1cb2b879 100644 --- a/apps/files_external/tests/FrontendDefinitionTraitTest.php +++ b/apps/files_external/tests/FrontendDefinitionTraitTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * diff --git a/apps/files_external/tests/Service/BackendServiceTest.php b/apps/files_external/tests/Service/BackendServiceTest.php index 6916d47a02a..e8a3181658c 100644 --- a/apps/files_external/tests/Service/BackendServiceTest.php +++ b/apps/files_external/tests/Service/BackendServiceTest.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_external/tests/Service/StoragesServiceTest.php b/apps/files_external/tests/Service/StoragesServiceTest.php index 22409ea9dbd..01e5c4122f2 100644 --- a/apps/files_external/tests/Service/StoragesServiceTest.php +++ b/apps/files_external/tests/Service/StoragesServiceTest.php @@ -3,8 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php index 72e5dc15147..013af9b0426 100644 --- a/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php +++ b/apps/files_external/tests/Service/UserGlobalStoragesServiceTest.php @@ -5,6 +5,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_external/tests/Service/UserStoragesServiceTest.php b/apps/files_external/tests/Service/UserStoragesServiceTest.php index 3a820f644b4..2d90ec3a488 100644 --- a/apps/files_external/tests/Service/UserStoragesServiceTest.php +++ b/apps/files_external/tests/Service/UserStoragesServiceTest.php @@ -5,6 +5,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_external/tests/Settings/SectionTest.php b/apps/files_external/tests/Settings/SectionTest.php index 93aee61b47d..b83f8f0feef 100644 --- a/apps/files_external/tests/Settings/SectionTest.php +++ b/apps/files_external/tests/Settings/SectionTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/files_external/tests/Storage/SmbTest.php b/apps/files_external/tests/Storage/SmbTest.php index 037c4cd4d39..edacb498d5e 100644 --- a/apps/files_external/tests/Storage/SmbTest.php +++ b/apps/files_external/tests/Storage/SmbTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> diff --git a/apps/files_external/tests/StorageConfigTest.php b/apps/files_external/tests/StorageConfigTest.php index f357c0c6990..37bb27bf510 100644 --- a/apps/files_external/tests/StorageConfigTest.php +++ b/apps/files_external/tests/StorageConfigTest.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php index b89d468f9b0..4782ac1b94f 100644 --- a/apps/files_sharing/appinfo/app.php +++ b/apps/files_sharing/appinfo/app.php @@ -2,12 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Björn Schießle <bjoern@schiessle.org> * @author Gadzy <dev@gadzy.fr> - * @author Joas Schilling <coding@schilljs.com> - * @author Michael Gapczynski <GapczynskiM@gmail.com> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_sharing/appinfo/routes.php b/apps/files_sharing/appinfo/routes.php index 310b1c46eb6..863b27da277 100644 --- a/apps/files_sharing/appinfo/routes.php +++ b/apps/files_sharing/appinfo/routes.php @@ -3,12 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> - * @author Georg Ehrke <georg@owncloud.com> - * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> - * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 * diff --git a/apps/files_sharing/l10n/es_EC.js b/apps/files_sharing/l10n/es_EC.js new file mode 100644 index 00000000000..620d498f604 --- /dev/null +++ b/apps/files_sharing/l10n/es_EC.js @@ -0,0 +1,115 @@ +OC.L10N.register( + "files_sharing", + { + "Shared with you" : "Compartido contigo", + "Shared with others" : "Compartido con otros", + "Shared by link" : "Compartido por liga", + "Nothing shared with you yet" : "Nada ha sido compartido contigo aún", + "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí", + "Nothing shared yet" : "Nada compartido aún", + "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí", + "No shared links" : "No hay ligas compartidas", + "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí", + "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta", + "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}", + "Invalid server URL" : "URL del servidor inválido", + "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud", + "Share" : "Compartir", + "No expiration date set" : "No se ha establecido la fecha de expiración", + "Shared by" : "Compartido por", + "Sharing" : "Compartiendo", + "File shares" : "Archivos compartidos", + "Downloaded via public link" : "Descargado mediante una liga pública", + "Downloaded by {email}" : "Descargado por {email}", + "{file} downloaded via public link" : "{file} descargado mediante una liga pública", + "{email} downloaded {file}" : "{email} descargó {file}", + "Shared with group {group}" : "Compartido con el gupo {group}", + "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}", + "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}", + "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}", + "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}", + "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}", + "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}", + "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}", + "Shared as public link" : "Compartido como una liga pública", + "Removed public link" : "Liga pública eliminada", + "Public link expired" : "La liga pública ha expirado", + "{actor} shared as public link" : "{actor} compartió como una liga pública", + "{actor} removed public link" : "{actor} eliminó la liga pública", + "Public link of {actor} expired" : "La liga pública de {actor} ha expirado", + "You shared {file} as public link" : "Compartiste {file} como una liga pública", + "You removed public link for {file}" : "Eliminaste la liga pública de {file}", + "Public link expired for {file}" : "La liga pública para {file} ha expirado", + "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública", + "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}", + "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado", + "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto", + "{user} declined the remote share" : "{user} declinó el elemento compartido remoto", + "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}", + "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}", + "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}", + "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo", + "Shared with {user}" : "Compartido con {user}", + "Removed share for {user}" : "Se eliminó el elemento compartido para {user}", + "{actor} shared with {user}" : "{actor} compartió con {user}", + "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}", + "Shared by {actor}" : "Compartido por {actor}", + "{actor} removed share" : "{actor} eliminó el elemento compartido", + "You shared {file} with {user}" : "Compartiste {file} con {user}", + "You removed {user} from {file}" : "Eliminaste a {user} de {file}", + "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}", + "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}", + "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo", + "{actor} removed you from {file}" : "{actor} lo eliminó de {file}", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>", + "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>", + "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>", + "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe", + "could not delete share" : "no fue posible borrar el elemento compartido", + "Could not delete share" : "No fue posible borrar el elemento compartido", + "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta", + "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ", + "Could not create share" : "No fue posible crear el elemento compartido", + "invalid permissions" : "permisos inválidos", + "Please specify a valid user" : "Por favor especifica un usuario válido", + "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador", + "Please specify a valid group" : "Por favor especifica un grupo válido", + "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador", + "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador", + "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente", + "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD", + "Sharing %s failed because the back end does not allow shares from type %s" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %s", + "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada", + "Please specify a valid circle" : "Por favor especifica un círculo válido", + "Unknown share type" : "Tipo de elemento compartido desconocido", + "Not a directory" : "No es una carpeta", + "Could not lock path" : "No fue posible bloquear la ruta", + "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", + "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", + "Cannot increase permissions" : "No es posible incrementar los permisos", + "Share API is disabled" : "El API para compartir está deshabilitado", + "This share is password-protected" : "Este elemento compartido está protegido con contraseña", + "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", + "Password" : "Contraseña", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Name" : "Nombre", + "Share time" : "Compartido desde", + "Expiration date" : "Fecha de expiración", + "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. ", + "Reasons might be:" : "Las causas podrían ser:", + "the item was removed" : "el elemento fue eliminado", + "the link expired" : "la liga expiró", + "sharing is disabled" : "compartir está deshabilitado", + "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", + "Download %s" : "Descargar %s", + "Upload files to %s" : "Cargar archivos a %s", + "Select or drop files" : "Selecciona o suelta los archivos", + "Uploading files…" : "Cargando archivos...", + "Uploaded files:" : "Archivos cargados:", + "%s is publicly shared" : "%s está compartido públicamente" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_sharing/l10n/es_EC.json b/apps/files_sharing/l10n/es_EC.json new file mode 100644 index 00000000000..43064dfb9c5 --- /dev/null +++ b/apps/files_sharing/l10n/es_EC.json @@ -0,0 +1,113 @@ +{ "translations": { + "Shared with you" : "Compartido contigo", + "Shared with others" : "Compartido con otros", + "Shared by link" : "Compartido por liga", + "Nothing shared with you yet" : "Nada ha sido compartido contigo aún", + "Files and folders others share with you will show up here" : "Los archivos y carpetas que sean compartidos contigo se mostrarán aquí", + "Nothing shared yet" : "Nada compartido aún", + "Files and folders you share will show up here" : "Los archivos y carpetas que compartas se mostrarán aquí", + "No shared links" : "No hay ligas compartidas", + "Files and folders you share by link will show up here" : "Los archivos y carpetas que compartas por ligas se mostrarán aquí", + "You can upload into this folder" : "Puedes cargar archivos dentro de esta carpeta", + "No compatible server found at {remote}" : "No se encontró un servidor compatible en {remote}", + "Invalid server URL" : "URL del servidor inválido", + "Failed to add the public link to your Nextcloud" : "Se presentó una falla al agregar la liga pública a tu Nextcloud", + "Share" : "Compartir", + "No expiration date set" : "No se ha establecido la fecha de expiración", + "Shared by" : "Compartido por", + "Sharing" : "Compartiendo", + "File shares" : "Archivos compartidos", + "Downloaded via public link" : "Descargado mediante una liga pública", + "Downloaded by {email}" : "Descargado por {email}", + "{file} downloaded via public link" : "{file} descargado mediante una liga pública", + "{email} downloaded {file}" : "{email} descargó {file}", + "Shared with group {group}" : "Compartido con el gupo {group}", + "Removed share for group {group}" : "Se eliminó el elemento compartido del grupo {group}", + "{actor} shared with group {group}" : "{actor} compartió con el grupo {group}", + "{actor} removed share for group {group}" : "{actor} eliminó el elemento compartido del grupo {group}", + "You shared {file} with group {group}" : "Compartiste {file} con el grupo {group}", + "You removed group {group} from {file}" : "Eliminaste al grupo {group} de {file}", + "{actor} shared {file} with group {group}" : "{actor} compartió {file} con el grupo {group}", + "{actor} removed group {group} from {file}" : "{actor} eliminó el grupo {group} de {file}", + "Shared as public link" : "Compartido como una liga pública", + "Removed public link" : "Liga pública eliminada", + "Public link expired" : "La liga pública ha expirado", + "{actor} shared as public link" : "{actor} compartió como una liga pública", + "{actor} removed public link" : "{actor} eliminó la liga pública", + "Public link of {actor} expired" : "La liga pública de {actor} ha expirado", + "You shared {file} as public link" : "Compartiste {file} como una liga pública", + "You removed public link for {file}" : "Eliminaste la liga pública de {file}", + "Public link expired for {file}" : "La liga pública para {file} ha expirado", + "{actor} shared {file} as public link" : "{actor} ha compartido {file} como una liga pública", + "{actor} removed public link for {file}" : "{actor} eliminó la liga pública de {file}", + "Public link of {actor} for {file} expired" : "La liga pública de {actor} para {file} ha expirado", + "{user} accepted the remote share" : "{user} aceptó el elemento compartido remoto", + "{user} declined the remote share" : "{user} declinó el elemento compartido remoto", + "You received a new remote share {file} from {user}" : "Recibiste un nuevo elemento compartido remoto {file} de {user}", + "{user} accepted the remote share of {file}" : "{user} aceptó el elemento compartido remoto de {file}", + "{user} declined the remote share of {file}" : "{user} declinó el elemento compartido remoto de {file}", + "{user} unshared {file} from you" : "{user} ha dejado de compartir {file} contigo", + "Shared with {user}" : "Compartido con {user}", + "Removed share for {user}" : "Se eliminó el elemento compartido para {user}", + "{actor} shared with {user}" : "{actor} compartió con {user}", + "{actor} removed share for {user}" : "{actor} eliminó el elemento compartido para {user}", + "Shared by {actor}" : "Compartido por {actor}", + "{actor} removed share" : "{actor} eliminó el elemento compartido", + "You shared {file} with {user}" : "Compartiste {file} con {user}", + "You removed {user} from {file}" : "Eliminaste a {user} de {file}", + "{actor} shared {file} with {user}" : "{actor} compartió {file} con {user}", + "{actor} removed {user} from {file}" : "{actor} eliminó a {user} de {file}", + "{actor} shared {file} with you" : "{actor} ha compartido {file} contigo", + "{actor} removed you from {file}" : "{actor} lo eliminó de {file}", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "Un archivo o carpeta comparitdo por correo o por liga pública ha sido <strong>descargado</strong>", + "A file or folder was shared from <strong>another server</strong>" : "Un archivo o carpeta fue compartido desde <strong>otro servidor</strong>", + "A file or folder has been <strong>shared</strong>" : "Un archivo o carpeta ha sido <strong>compartido</strong>", + "Wrong share ID, share doesn't exist" : "ID del elemento compartido equivocado, el elemento compartido no existe", + "could not delete share" : "no fue posible borrar el elemento compartido", + "Could not delete share" : "No fue posible borrar el elemento compartido", + "Please specify a file or folder path" : "Por favor especifica un archivo o ruta de carpeta", + "Wrong path, file/folder doesn't exist" : "La ruta es incorrecta, el correo / carpeta no existe ", + "Could not create share" : "No fue posible crear el elemento compartido", + "invalid permissions" : "permisos inválidos", + "Please specify a valid user" : "Por favor especifica un usuario válido", + "Group sharing is disabled by the administrator" : "Compartir en grupos está deshabilitado por el administrador", + "Please specify a valid group" : "Por favor especifica un grupo válido", + "Public link sharing is disabled by the administrator" : "Compartir ligas públicas está deshabilitado por el administrador", + "Public upload disabled by the administrator" : "Cargas públicas deshabilitadas por el administrador", + "Public upload is only possible for publicly shared folders" : "Las cargas públicas son posibles sólo para carpetas compartidas públicamente", + "Invalid date, date format must be YYYY-MM-DD" : "La fecha es inválida, por favor sigue el formato AAAA-MM-DD", + "Sharing %s failed because the back end does not allow shares from type %s" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %s", + "You cannot share to a Circle if the app is not enabled" : "No puedes compartir al Círculo si la aplicación no está habilitada", + "Please specify a valid circle" : "Por favor especifica un círculo válido", + "Unknown share type" : "Tipo de elemento compartido desconocido", + "Not a directory" : "No es una carpeta", + "Could not lock path" : "No fue posible bloquear la ruta", + "Wrong or no update parameter given" : "El parametro de actualización está erróneo o falta", + "Can't change permissions for public share links" : "No es posible cambiar los permisos para ligas públicas compartidas", + "Cannot increase permissions" : "No es posible incrementar los permisos", + "Share API is disabled" : "El API para compartir está deshabilitado", + "This share is password-protected" : "Este elemento compartido está protegido con contraseña", + "The password is wrong. Try again." : "La contraseña es incorrecta. Por favor inténtalo de nuevo.", + "Password" : "Contraseña", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Name" : "Nombre", + "Share time" : "Compartido desde", + "Expiration date" : "Fecha de expiración", + "Sorry, this link doesn’t seem to work anymore." : "Lo sentimos, parece que esta liga ya no funciona. ", + "Reasons might be:" : "Las causas podrían ser:", + "the item was removed" : "el elemento fue eliminado", + "the link expired" : "la liga expiró", + "sharing is disabled" : "compartir está deshabilitado", + "For more info, please ask the person who sent this link." : "Para mayores informes, contacta a la persona que le envió esta liga.", + "shared by %s" : "compartido por %s", + "Download" : "Descargar", + "Direct link" : "Liga directa", + "Add to your Nextcloud" : "Agregar a tu Nextcloud", + "Download %s" : "Descargar %s", + "Upload files to %s" : "Cargar archivos a %s", + "Select or drop files" : "Selecciona o suelta los archivos", + "Uploading files…" : "Cargando archivos...", + "Uploaded files:" : "Archivos cargados:", + "%s is publicly shared" : "%s está compartido públicamente" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files_sharing/l10n/ka_GE.js b/apps/files_sharing/l10n/ka_GE.js index adeb048e89d..79766584668 100644 --- a/apps/files_sharing/l10n/ka_GE.js +++ b/apps/files_sharing/l10n/ka_GE.js @@ -1,11 +1,115 @@ OC.L10N.register( "files_sharing", { - "Cancel" : "უარყოფა", + "Shared with you" : "თქვენთან გაზიარებული", + "Shared with others" : "სხვასთან გაზიარებული", + "Shared by link" : "ბმულით გაზიარებული", + "Nothing shared with you yet" : "თქვენთან ჯერ არაფერია გაზიარებული", + "Files and folders others share with you will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც სხვები თქვენთნ აზიარებენ", + "Nothing shared yet" : "ჯერ არაფერი გაზიარებულა", + "Files and folders you share will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც აზიარებთ თქვენ", + "No shared links" : "გაზიარებული ბმულები არაა", + "Files and folders you share by link will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც ბმულით აზიარებთ თქვენ", + "You can upload into this folder" : "შეგიძლიათ ატვირთოთ ამ დირექტორიაში", + "No compatible server found at {remote}" : "თავსებადი სერვერი {remote}-ზე ვერ იქნა ნაპოვნი", + "Invalid server URL" : "არასწორი სერვერის URL", + "Failed to add the public link to your Nextcloud" : "საზოგადო ბმულის დამატება თქვენს Nextcloud-ზე ვერ მოხერხდა", + "Share" : "გაზიარება", + "No expiration date set" : "გაუქმების თარიღი არაა დაყენებული", "Shared by" : "აზიარებს", "Sharing" : "გაზიარება", + "File shares" : "ფაილის გაზიარებები", + "Downloaded via public link" : "გადმოწერილია საზოგადო ბმულით", + "Downloaded by {email}" : "გადმოწერა {email}-მ", + "{file} downloaded via public link" : "{file} გადმოწერილია საზოგადო ბმულით", + "{email} downloaded {file}" : "{email}-მა გადმოწერა {file}", + "Shared with group {group}" : "გაზიარებულია ჯგუფთან {group}", + "Removed share for group {group}" : "გაზიარება {group}-თან შეწყდა", + "{actor} shared with group {group}" : "{actor}-მა გააზიარა ჯგუფთან {group}", + "{actor} removed share for group {group}" : "{actor}-მა შეწყვიტა გაზიარება ჯგუფთან {group}", + "You shared {file} with group {group}" : "თქვენ გააზიარეთ {file} ჯგუფთან {group}", + "You removed group {group} from {file}" : "თქვენ მოაშორეთ ჯგუფი {group} ფაილს {file}", + "{actor} shared {file} with group {group}" : "{actor}-მა გააზიარა ფაილი {file} ჯგუფთან {group}", + "{actor} removed group {group} from {file}" : "{actor}-მა მოაშორა ჯგუფი {group} ფაილს {file}", + "Shared as public link" : "გააზიარა როგორც საზოგადო ბმული", + "Removed public link" : "გააუქმა საზოგადო ბმული", + "Public link expired" : "საზოგადო ბმულს გაუვიდა ვადა", + "{actor} shared as public link" : "{actor}-მა გააზიარა საზოგადო ბმულად", + "{actor} removed public link" : "{actor}-მა გააუქმა საზოგადო ბმული", + "Public link of {actor} expired" : "{actor}-ის საზოგადო ბმულს გაუვიდა ვადა", + "You shared {file} as public link" : "თქვენ საზოგადო ბმულის სახით გააზიარეთ {file}", + "You removed public link for {file}" : "თქვენ გააუქმეთ საზოგადო ბმული ფაილისთვის {file}", + "Public link expired for {file}" : "საზოგადო ბმულს ფაილისთვის {file} გაუვიდა ვადა", + "{actor} shared {file} as public link" : "{actor}-მა საზოგადო ბმულის სახით გააზიარა {file}", + "{actor} removed public link for {file}" : "{actor}-მა გააუქმა საზოგადო ბმული ფაილისთვის {file}", + "Public link of {actor} for {file} expired" : "{actor}-ის საზოგადო ბმულს ფაილზე {file} გაუვიდა ვადა", + "{user} accepted the remote share" : "{user}-მა მიიღო დისტანციური გაზიარება", + "{user} declined the remote share" : "{user}-მა უარყო დისტანციური გაზიარება", + "You received a new remote share {file} from {user}" : "თქვენ მიიღეთ ახალი დისტანციური გაზიარება {file} მომხმარებლისგან {user}", + "{user} accepted the remote share of {file}" : "{user}-მა მიიღო დისტანციური გაზიარება ფაილზე {file}", + "{user} declined the remote share of {file}" : "{user}-მა უარყო დისტანციური გაზიარება ფალზე {file}", + "{user} unshared {file} from you" : "{user}-მა შეწყვიტა ფაილის {file} გაზიარება თქვენთან", + "Shared with {user}" : "გაზიარებული {user}-თან", + "Removed share for {user}" : "შეწყდა გაზიარება {user}-თან", + "{actor} shared with {user}" : "{actor}-გააზიარა {user}-თან", + "{actor} removed share for {user}" : "{actor}-მა შეწყვიტა გაზიარება {user}-თან", + "Shared by {actor}" : "გააზიარა {actor}-მა", + "{actor} removed share" : "{actor}-მა შეწყვიტა გაზიარება", + "You shared {file} with {user}" : "თქვენ გააზიარეთ ფაილი {file} მომხმარებელთან {user}", + "You removed {user} from {file}" : "თქვენ ჩამოაშორეთ მომხმარებელი {user} ფაილს {file}", + "{actor} shared {file} with {user}" : "{actor}-მა გააზიარა ფაილი {file} მომხმარებელთან {user}", + "{actor} removed {user} from {file}" : "{actor}-მა ჩამოაშორა მომხმარებელი {user} ფაილს {file}", + "{actor} shared {file} with you" : "{actor}-მა თქვენთან გააზიარა {file}", + "{actor} removed you from {file}" : "{actor} ჩამოგაშორათ ფაილს {file}", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "ელ-ფოსტით ან საზოგადო ბმულით გაზიარბული ფაილი ან დირექტორია <strong>გადმოწერილ იქნა</strong>", + "A file or folder was shared from <strong>another server</strong>" : "ფაილი ან დირექტორია გაზიარდა <strong>სხვა სერვერიდან</strong>", + "A file or folder has been <strong>shared</strong>" : "ფაილი ან დირექტორია <strong>გაზიარებულ იქნა</strong>", + "Wrong share ID, share doesn't exist" : "არასწორი გაზიარების ID, გაზიარება არ არსებობს", + "could not delete share" : "გაზიარების გაუქმება ვერ მოხერხდა", + "Could not delete share" : "გაზიარების გაუქმება ვერ მოხერხდა", + "Please specify a file or folder path" : "გთხოვთ მიუთითოთ ფაილის ან დირექტორიის მისამართი", + "Wrong path, file/folder doesn't exist" : "არასწორი მისამართი, ფაილი/დირქტორია არ არსებობს", + "Could not create share" : "გაზიარება ვერ შეიქმნა", + "invalid permissions" : "არასწორი უფლებები", + "Please specify a valid user" : "გთხოვთ მიუთითოთ სწორი მომხმარებელი", + "Group sharing is disabled by the administrator" : "ჯგუფური გაზიარება ადმინისტრატორის მიერ არაა ამოქმედებული", + "Please specify a valid group" : "გთხოვთ მიუთითოთ სწორი ჯგუფი", + "Public link sharing is disabled by the administrator" : "საზოგადი ბმულად გაზიარება ადმინისტრატორის მიერ არაა ამოქმდებეული", + "Public upload disabled by the administrator" : "საზოგადო ატვირთვა ადმინისტრატორის მიერ არაა ამოქმედებული", + "Public upload is only possible for publicly shared folders" : "საზოგადო ატვირთვა შესაძლებელია მხოლოდ საზოგადოდ გაზიარებულ დირექტორიებზე", + "Invalid date, date format must be YYYY-MM-DD" : "არასწორი თარიღი, თარიღის ფორმატი უნდა იყოს წწწწ-თთ-დდ", + "Sharing %s failed because the back end does not allow shares from type %s" : "გაზიარება %s არ მოხერხდა, რადგანაც ბექენდი არ იღებს გაზიარებებს ტიპით %s", + "You cannot share to a Circle if the app is not enabled" : "წრეს ვერ გაუზიარებთ თუ აპლიკაცია არაა მოქმედი", + "Please specify a valid circle" : "გთხოვთ მიუთითოთ სწორი წრე", + "Unknown share type" : "ამოუცნობი გაზიარების სახეობა", + "Not a directory" : "არაა დირექტორია", + "Could not lock path" : "მისამართი ვერ ჩაიკეტა", + "Wrong or no update parameter given" : "არასწორი ან განახლების პარამეტრის არარსებობა", + "Can't change permissions for public share links" : "უფლებები საზოგადოდ გაზიარებულ ბმულზე ვერ შეიცვალა", + "Cannot increase permissions" : "უფლებების გაზრდა ვერ მოხერხდა", + "Share API is disabled" : "გაზიარების API არაა მოქმედი", + "This share is password-protected" : "ეს გაზიარება დაცულია პაროლით", + "The password is wrong. Try again." : "პაროლი არასწორია. სცადეთ ახლიდან", "Password" : "პაროლი", + "No entries found in this folder" : "ამ დირექტორიაშ შენატანები ვერ მოიძებნა", "Name" : "სახელი", - "Download" : "ჩამოტვირთვა" + "Share time" : "გაზიარების დრო", + "Expiration date" : "გაუქმების თარიღი", + "Sorry, this link doesn’t seem to work anymore." : "ბოდიში, ეს ბმული აღარ მოქმედებს.", + "Reasons might be:" : "შესაძლო მიზეზებია:", + "the item was removed" : "ობიექტი გაუქმდა", + "the link expired" : "ბმულს ვადა გაუვიდა", + "sharing is disabled" : "გაზიარება არაა მოქმედი", + "For more info, please ask the person who sent this link." : "მეტი ინფრმაციისთვის, გთხოვთ ჰკითხოთ ადამიანს ვინც გამოგიგზავნათ ეს ბმული.", + "shared by %s" : "გააზიარა %s-მა", + "Download" : "ჩამოტვირთვა", + "Direct link" : "პირდაპირი ბმული", + "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება", + "Download %s" : "%s-ის გადმოწერა", + "Upload files to %s" : "ფაილების ატვირთვა %s-ში", + "Select or drop files" : "აირჩიეთ ან გადმოიტანეთ ფაილები", + "Uploading files…" : "ფაილების ატვირთვა...", + "Uploaded files:" : "ფაილების ატვირთვა:", + "%s is publicly shared" : "%s საზოგადოდ გაზიარებულია" }, "nplurals=1; plural=0;"); diff --git a/apps/files_sharing/l10n/ka_GE.json b/apps/files_sharing/l10n/ka_GE.json index 5660d3b1a9d..0fcd0a17912 100644 --- a/apps/files_sharing/l10n/ka_GE.json +++ b/apps/files_sharing/l10n/ka_GE.json @@ -1,9 +1,113 @@ { "translations": { - "Cancel" : "უარყოფა", + "Shared with you" : "თქვენთან გაზიარებული", + "Shared with others" : "სხვასთან გაზიარებული", + "Shared by link" : "ბმულით გაზიარებული", + "Nothing shared with you yet" : "თქვენთან ჯერ არაფერია გაზიარებული", + "Files and folders others share with you will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც სხვები თქვენთნ აზიარებენ", + "Nothing shared yet" : "ჯერ არაფერი გაზიარებულა", + "Files and folders you share will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც აზიარებთ თქვენ", + "No shared links" : "გაზიარებული ბმულები არაა", + "Files and folders you share by link will show up here" : "აქ გამოჩნდება ფაილები და დირექტორიები რომლებსაც ბმულით აზიარებთ თქვენ", + "You can upload into this folder" : "შეგიძლიათ ატვირთოთ ამ დირექტორიაში", + "No compatible server found at {remote}" : "თავსებადი სერვერი {remote}-ზე ვერ იქნა ნაპოვნი", + "Invalid server URL" : "არასწორი სერვერის URL", + "Failed to add the public link to your Nextcloud" : "საზოგადო ბმულის დამატება თქვენს Nextcloud-ზე ვერ მოხერხდა", + "Share" : "გაზიარება", + "No expiration date set" : "გაუქმების თარიღი არაა დაყენებული", "Shared by" : "აზიარებს", "Sharing" : "გაზიარება", + "File shares" : "ფაილის გაზიარებები", + "Downloaded via public link" : "გადმოწერილია საზოგადო ბმულით", + "Downloaded by {email}" : "გადმოწერა {email}-მ", + "{file} downloaded via public link" : "{file} გადმოწერილია საზოგადო ბმულით", + "{email} downloaded {file}" : "{email}-მა გადმოწერა {file}", + "Shared with group {group}" : "გაზიარებულია ჯგუფთან {group}", + "Removed share for group {group}" : "გაზიარება {group}-თან შეწყდა", + "{actor} shared with group {group}" : "{actor}-მა გააზიარა ჯგუფთან {group}", + "{actor} removed share for group {group}" : "{actor}-მა შეწყვიტა გაზიარება ჯგუფთან {group}", + "You shared {file} with group {group}" : "თქვენ გააზიარეთ {file} ჯგუფთან {group}", + "You removed group {group} from {file}" : "თქვენ მოაშორეთ ჯგუფი {group} ფაილს {file}", + "{actor} shared {file} with group {group}" : "{actor}-მა გააზიარა ფაილი {file} ჯგუფთან {group}", + "{actor} removed group {group} from {file}" : "{actor}-მა მოაშორა ჯგუფი {group} ფაილს {file}", + "Shared as public link" : "გააზიარა როგორც საზოგადო ბმული", + "Removed public link" : "გააუქმა საზოგადო ბმული", + "Public link expired" : "საზოგადო ბმულს გაუვიდა ვადა", + "{actor} shared as public link" : "{actor}-მა გააზიარა საზოგადო ბმულად", + "{actor} removed public link" : "{actor}-მა გააუქმა საზოგადო ბმული", + "Public link of {actor} expired" : "{actor}-ის საზოგადო ბმულს გაუვიდა ვადა", + "You shared {file} as public link" : "თქვენ საზოგადო ბმულის სახით გააზიარეთ {file}", + "You removed public link for {file}" : "თქვენ გააუქმეთ საზოგადო ბმული ფაილისთვის {file}", + "Public link expired for {file}" : "საზოგადო ბმულს ფაილისთვის {file} გაუვიდა ვადა", + "{actor} shared {file} as public link" : "{actor}-მა საზოგადო ბმულის სახით გააზიარა {file}", + "{actor} removed public link for {file}" : "{actor}-მა გააუქმა საზოგადო ბმული ფაილისთვის {file}", + "Public link of {actor} for {file} expired" : "{actor}-ის საზოგადო ბმულს ფაილზე {file} გაუვიდა ვადა", + "{user} accepted the remote share" : "{user}-მა მიიღო დისტანციური გაზიარება", + "{user} declined the remote share" : "{user}-მა უარყო დისტანციური გაზიარება", + "You received a new remote share {file} from {user}" : "თქვენ მიიღეთ ახალი დისტანციური გაზიარება {file} მომხმარებლისგან {user}", + "{user} accepted the remote share of {file}" : "{user}-მა მიიღო დისტანციური გაზიარება ფაილზე {file}", + "{user} declined the remote share of {file}" : "{user}-მა უარყო დისტანციური გაზიარება ფალზე {file}", + "{user} unshared {file} from you" : "{user}-მა შეწყვიტა ფაილის {file} გაზიარება თქვენთან", + "Shared with {user}" : "გაზიარებული {user}-თან", + "Removed share for {user}" : "შეწყდა გაზიარება {user}-თან", + "{actor} shared with {user}" : "{actor}-გააზიარა {user}-თან", + "{actor} removed share for {user}" : "{actor}-მა შეწყვიტა გაზიარება {user}-თან", + "Shared by {actor}" : "გააზიარა {actor}-მა", + "{actor} removed share" : "{actor}-მა შეწყვიტა გაზიარება", + "You shared {file} with {user}" : "თქვენ გააზიარეთ ფაილი {file} მომხმარებელთან {user}", + "You removed {user} from {file}" : "თქვენ ჩამოაშორეთ მომხმარებელი {user} ფაილს {file}", + "{actor} shared {file} with {user}" : "{actor}-მა გააზიარა ფაილი {file} მომხმარებელთან {user}", + "{actor} removed {user} from {file}" : "{actor}-მა ჩამოაშორა მომხმარებელი {user} ფაილს {file}", + "{actor} shared {file} with you" : "{actor}-მა თქვენთან გააზიარა {file}", + "{actor} removed you from {file}" : "{actor} ჩამოგაშორათ ფაილს {file}", + "A file or folder shared by mail or by public link was <strong>downloaded</strong>" : "ელ-ფოსტით ან საზოგადო ბმულით გაზიარბული ფაილი ან დირექტორია <strong>გადმოწერილ იქნა</strong>", + "A file or folder was shared from <strong>another server</strong>" : "ფაილი ან დირექტორია გაზიარდა <strong>სხვა სერვერიდან</strong>", + "A file or folder has been <strong>shared</strong>" : "ფაილი ან დირექტორია <strong>გაზიარებულ იქნა</strong>", + "Wrong share ID, share doesn't exist" : "არასწორი გაზიარების ID, გაზიარება არ არსებობს", + "could not delete share" : "გაზიარების გაუქმება ვერ მოხერხდა", + "Could not delete share" : "გაზიარების გაუქმება ვერ მოხერხდა", + "Please specify a file or folder path" : "გთხოვთ მიუთითოთ ფაილის ან დირექტორიის მისამართი", + "Wrong path, file/folder doesn't exist" : "არასწორი მისამართი, ფაილი/დირქტორია არ არსებობს", + "Could not create share" : "გაზიარება ვერ შეიქმნა", + "invalid permissions" : "არასწორი უფლებები", + "Please specify a valid user" : "გთხოვთ მიუთითოთ სწორი მომხმარებელი", + "Group sharing is disabled by the administrator" : "ჯგუფური გაზიარება ადმინისტრატორის მიერ არაა ამოქმედებული", + "Please specify a valid group" : "გთხოვთ მიუთითოთ სწორი ჯგუფი", + "Public link sharing is disabled by the administrator" : "საზოგადი ბმულად გაზიარება ადმინისტრატორის მიერ არაა ამოქმდებეული", + "Public upload disabled by the administrator" : "საზოგადო ატვირთვა ადმინისტრატორის მიერ არაა ამოქმედებული", + "Public upload is only possible for publicly shared folders" : "საზოგადო ატვირთვა შესაძლებელია მხოლოდ საზოგადოდ გაზიარებულ დირექტორიებზე", + "Invalid date, date format must be YYYY-MM-DD" : "არასწორი თარიღი, თარიღის ფორმატი უნდა იყოს წწწწ-თთ-დდ", + "Sharing %s failed because the back end does not allow shares from type %s" : "გაზიარება %s არ მოხერხდა, რადგანაც ბექენდი არ იღებს გაზიარებებს ტიპით %s", + "You cannot share to a Circle if the app is not enabled" : "წრეს ვერ გაუზიარებთ თუ აპლიკაცია არაა მოქმედი", + "Please specify a valid circle" : "გთხოვთ მიუთითოთ სწორი წრე", + "Unknown share type" : "ამოუცნობი გაზიარების სახეობა", + "Not a directory" : "არაა დირექტორია", + "Could not lock path" : "მისამართი ვერ ჩაიკეტა", + "Wrong or no update parameter given" : "არასწორი ან განახლების პარამეტრის არარსებობა", + "Can't change permissions for public share links" : "უფლებები საზოგადოდ გაზიარებულ ბმულზე ვერ შეიცვალა", + "Cannot increase permissions" : "უფლებების გაზრდა ვერ მოხერხდა", + "Share API is disabled" : "გაზიარების API არაა მოქმედი", + "This share is password-protected" : "ეს გაზიარება დაცულია პაროლით", + "The password is wrong. Try again." : "პაროლი არასწორია. სცადეთ ახლიდან", "Password" : "პაროლი", + "No entries found in this folder" : "ამ დირექტორიაშ შენატანები ვერ მოიძებნა", "Name" : "სახელი", - "Download" : "ჩამოტვირთვა" + "Share time" : "გაზიარების დრო", + "Expiration date" : "გაუქმების თარიღი", + "Sorry, this link doesn’t seem to work anymore." : "ბოდიში, ეს ბმული აღარ მოქმედებს.", + "Reasons might be:" : "შესაძლო მიზეზებია:", + "the item was removed" : "ობიექტი გაუქმდა", + "the link expired" : "ბმულს ვადა გაუვიდა", + "sharing is disabled" : "გაზიარება არაა მოქმედი", + "For more info, please ask the person who sent this link." : "მეტი ინფრმაციისთვის, გთხოვთ ჰკითხოთ ადამიანს ვინც გამოგიგზავნათ ეს ბმული.", + "shared by %s" : "გააზიარა %s-მა", + "Download" : "ჩამოტვირთვა", + "Direct link" : "პირდაპირი ბმული", + "Add to your Nextcloud" : "თქვენს Nextcloud-ში დამატება", + "Download %s" : "%s-ის გადმოწერა", + "Upload files to %s" : "ფაილების ატვირთვა %s-ში", + "Select or drop files" : "აირჩიეთ ან გადმოიტანეთ ფაილები", + "Uploading files…" : "ფაილების ატვირთვა...", + "Uploaded files:" : "ფაილების ატვირთვა:", + "%s is publicly shared" : "%s საზოგადოდ გაზიარებულია" },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_sharing/lib/Activity/Filter.php b/apps/files_sharing/lib/Activity/Filter.php index 66ba7f1967b..ab1ad0c8145 100644 --- a/apps/files_sharing/lib/Activity/Filter.php +++ b/apps/files_sharing/lib/Activity/Filter.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/Activity/Providers/Base.php b/apps/files_sharing/lib/Activity/Providers/Base.php index 3b73c23786e..d9d041f21f8 100644 --- a/apps/files_sharing/lib/Activity/Providers/Base.php +++ b/apps/files_sharing/lib/Activity/Providers/Base.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/Activity/Providers/Downloads.php b/apps/files_sharing/lib/Activity/Providers/Downloads.php index 1e1688d7b0f..53c60356dd6 100644 --- a/apps/files_sharing/lib/Activity/Providers/Downloads.php +++ b/apps/files_sharing/lib/Activity/Providers/Downloads.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/Activity/Providers/Groups.php b/apps/files_sharing/lib/Activity/Providers/Groups.php index 683927d5735..53262e19311 100644 --- a/apps/files_sharing/lib/Activity/Providers/Groups.php +++ b/apps/files_sharing/lib/Activity/Providers/Groups.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/Activity/Providers/PublicLinks.php b/apps/files_sharing/lib/Activity/Providers/PublicLinks.php index 98e4ebda2d8..5dab4179149 100644 --- a/apps/files_sharing/lib/Activity/Providers/PublicLinks.php +++ b/apps/files_sharing/lib/Activity/Providers/PublicLinks.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php index f89fb0b0052..4a5c6d7c8e6 100644 --- a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php +++ b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/Activity/Providers/Users.php b/apps/files_sharing/lib/Activity/Providers/Users.php index 02f47f3775a..b5322db4270 100644 --- a/apps/files_sharing/lib/Activity/Providers/Users.php +++ b/apps/files_sharing/lib/Activity/Providers/Users.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/Activity/Settings/PublicLinks.php b/apps/files_sharing/lib/Activity/Settings/PublicLinks.php index 04fd5e23378..081081b9adf 100644 --- a/apps/files_sharing/lib/Activity/Settings/PublicLinks.php +++ b/apps/files_sharing/lib/Activity/Settings/PublicLinks.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/Activity/Settings/RemoteShare.php b/apps/files_sharing/lib/Activity/Settings/RemoteShare.php index 2a5cdcd995f..a208ead7ba5 100644 --- a/apps/files_sharing/lib/Activity/Settings/RemoteShare.php +++ b/apps/files_sharing/lib/Activity/Settings/RemoteShare.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/Activity/Settings/Shared.php b/apps/files_sharing/lib/Activity/Settings/Shared.php index 97318dc79b3..b07872ded99 100644 --- a/apps/files_sharing/lib/Activity/Settings/Shared.php +++ b/apps/files_sharing/lib/Activity/Settings/Shared.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/AppInfo/Application.php b/apps/files_sharing/lib/AppInfo/Application.php index 3e95c738df8..fe2669640ca 100644 --- a/apps/files_sharing/lib/AppInfo/Application.php +++ b/apps/files_sharing/lib/AppInfo/Application.php @@ -6,8 +6,10 @@ * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 * diff --git a/apps/files_sharing/lib/Cache.php b/apps/files_sharing/lib/Cache.php index 1c311935bb6..b3366b29ee3 100644 --- a/apps/files_sharing/lib/Cache.php +++ b/apps/files_sharing/lib/Cache.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christopher Schäpers <kondou@ts.unde.re> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/apps/files_sharing/lib/Capabilities.php b/apps/files_sharing/lib/Capabilities.php index e8e6a4c26f3..af41add250c 100644 --- a/apps/files_sharing/lib/Capabilities.php +++ b/apps/files_sharing/lib/Capabilities.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/apps/files_sharing/lib/Command/CleanupRemoteStorages.php b/apps/files_sharing/lib/Command/CleanupRemoteStorages.php index 389b0dc4985..f269b86ea9f 100644 --- a/apps/files_sharing/lib/Command/CleanupRemoteStorages.php +++ b/apps/files_sharing/lib/Command/CleanupRemoteStorages.php @@ -1,8 +1,11 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/lib/Controller/PublicPreviewController.php b/apps/files_sharing/lib/Controller/PublicPreviewController.php index 56d8d94534f..0870995fc7b 100644 --- a/apps/files_sharing/lib/Controller/PublicPreviewController.php +++ b/apps/files_sharing/lib/Controller/PublicPreviewController.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/apps/files_sharing/lib/Controller/RemoteController.php b/apps/files_sharing/lib/Controller/RemoteController.php index 299b6fe4df7..d6206391180 100644 --- a/apps/files_sharing/lib/Controller/RemoteController.php +++ b/apps/files_sharing/lib/Controller/RemoteController.php @@ -2,8 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Joas Schilling <coding@schilljs.com> - * @author Lukas Reschke <lukas@statuscode.ch> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/apps/files_sharing/lib/Controller/ShareAPIController.php b/apps/files_sharing/lib/Controller/ShareAPIController.php index a2e7cbf727a..10876e16568 100644 --- a/apps/files_sharing/lib/Controller/ShareAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareAPIController.php @@ -2,7 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Maxence Lange <maxence@nextcloud.com> + * @author Michael Jobst <mjobst+github@tecratech.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files_sharing/lib/Controller/ShareController.php b/apps/files_sharing/lib/Controller/ShareController.php index 9c3f4c6afeb..c51bc1a75dd 100644 --- a/apps/files_sharing/lib/Controller/ShareController.php +++ b/apps/files_sharing/lib/Controller/ShareController.php @@ -5,13 +5,16 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Maxence Lange <maxence@pontapreta.net> * @author Morris Jobke <hey@morrisjobke.de> * @author Piotr Filiciak <piotr@filiciak.pl> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sascha Sambale <mastixmc@gmail.com> + * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_sharing/lib/Controller/ShareInfoController.php b/apps/files_sharing/lib/Controller/ShareInfoController.php index ccf7b7093a5..28bfcd12c24 100644 --- a/apps/files_sharing/lib/Controller/ShareInfoController.php +++ b/apps/files_sharing/lib/Controller/ShareInfoController.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\Files_Sharing\Controller; use OCA\Files_External\NotFoundException; diff --git a/apps/files_sharing/lib/Controller/ShareesAPIController.php b/apps/files_sharing/lib/Controller/ShareesAPIController.php index dcecf2c8e08..575bf01fdb0 100644 --- a/apps/files_sharing/lib/Controller/ShareesAPIController.php +++ b/apps/files_sharing/lib/Controller/ShareesAPIController.php @@ -2,11 +2,14 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Maxence Lange <maxence@nextcloud.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * * @license AGPL-3.0 * diff --git a/apps/files_sharing/lib/ExpireSharesJob.php b/apps/files_sharing/lib/ExpireSharesJob.php index e7e10b30c12..39965336bff 100644 --- a/apps/files_sharing/lib/ExpireSharesJob.php +++ b/apps/files_sharing/lib/ExpireSharesJob.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/apps/files_sharing/lib/External/Manager.php b/apps/files_sharing/lib/External/Manager.php index ab20e37a79b..6935685685c 100644 --- a/apps/files_sharing/lib/External/Manager.php +++ b/apps/files_sharing/lib/External/Manager.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Daniel Hansson <daniel@techandme.se> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/apps/files_sharing/lib/External/MountProvider.php b/apps/files_sharing/lib/External/MountProvider.php index 27ee9fcb46b..0b07569b307 100644 --- a/apps/files_sharing/lib/External/MountProvider.php +++ b/apps/files_sharing/lib/External/MountProvider.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/apps/files_sharing/lib/External/Storage.php b/apps/files_sharing/lib/External/Storage.php index 95f45dc3691..d07e0556685 100644 --- a/apps/files_sharing/lib/External/Storage.php +++ b/apps/files_sharing/lib/External/Storage.php @@ -2,11 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files_sharing/lib/Hooks.php b/apps/files_sharing/lib/Hooks.php index 821c3046595..97b1079f1eb 100644 --- a/apps/files_sharing/lib/Hooks.php +++ b/apps/files_sharing/lib/Hooks.php @@ -7,6 +7,7 @@ * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php b/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php index 9df0229ab8c..faf9ef4756d 100644 --- a/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php +++ b/apps/files_sharing/lib/Middleware/OCSShareAPIMiddleware.php @@ -1,5 +1,27 @@ <?php - +/** + * + * + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\Files_Sharing\Middleware; use OCA\Files_Sharing\Controller\ShareAPIController; diff --git a/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php b/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php index 56e9b48f570..74a5db4f308 100644 --- a/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php +++ b/apps/files_sharing/lib/Middleware/ShareInfoMiddleware.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\Files_Sharing\Middleware; use OCA\FederatedFileSharing\FederatedShareProvider; diff --git a/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php b/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php index e1a77fdec30..c96b559daf5 100644 --- a/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php +++ b/apps/files_sharing/lib/Middleware/SharingCheckMiddleware.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/apps/files_sharing/lib/MountProvider.php b/apps/files_sharing/lib/MountProvider.php index a02d6350499..fd4c537210f 100644 --- a/apps/files_sharing/lib/MountProvider.php +++ b/apps/files_sharing/lib/MountProvider.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> + * @author Maxence Lange <maxence@nextcloud.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/apps/files_sharing/lib/Scanner.php b/apps/files_sharing/lib/Scanner.php index 8540d296cd6..18ea879d5d8 100644 --- a/apps/files_sharing/lib/Scanner.php +++ b/apps/files_sharing/lib/Scanner.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/apps/files_sharing/lib/ShareBackend/Folder.php b/apps/files_sharing/lib/ShareBackend/Folder.php index 55c2eff6fe0..80b141326d3 100644 --- a/apps/files_sharing/lib/ShareBackend/Folder.php +++ b/apps/files_sharing/lib/ShareBackend/Folder.php @@ -4,6 +4,7 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> diff --git a/apps/files_sharing/lib/SharedMount.php b/apps/files_sharing/lib/SharedMount.php index b42682ab2a8..4f0dc89e997 100644 --- a/apps/files_sharing/lib/SharedMount.php +++ b/apps/files_sharing/lib/SharedMount.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Frédéric Fortier <frederic.fortier@oronospolytechnique.com> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> diff --git a/apps/files_sharing/lib/SharedStorage.php b/apps/files_sharing/lib/SharedStorage.php index 32304afea01..f681854cd2b 100644 --- a/apps/files_sharing/lib/SharedStorage.php +++ b/apps/files_sharing/lib/SharedStorage.php @@ -11,6 +11,7 @@ * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author scambra <sergio@entrecables.com> + * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_sharing/tests/ApiTest.php b/apps/files_sharing/tests/ApiTest.php index 8a976108b3f..2279155e914 100644 --- a/apps/files_sharing/tests/ApiTest.php +++ b/apps/files_sharing/tests/ApiTest.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> diff --git a/apps/files_sharing/tests/BackendTest.php b/apps/files_sharing/tests/BackendTest.php index f3ac485c781..897cf7c2de2 100644 --- a/apps/files_sharing/tests/BackendTest.php +++ b/apps/files_sharing/tests/BackendTest.php @@ -6,6 +6,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/files_sharing/tests/CapabilitiesTest.php b/apps/files_sharing/tests/CapabilitiesTest.php index e65131bf45f..721dd0fbf5e 100644 --- a/apps/files_sharing/tests/CapabilitiesTest.php +++ b/apps/files_sharing/tests/CapabilitiesTest.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php index 5480874615e..7380f39dfba 100644 --- a/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php +++ b/apps/files_sharing/tests/Command/CleanupRemoteStoragesTest.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Morris Jobke <hey@morrisjobke.de> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php index 3bebb9e1195..c438dac2521 100644 --- a/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareAPIControllerTest.php @@ -2,8 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Björn Schießle <bjoern@schiessle.org> + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_sharing/tests/Controller/ShareControllerTest.php b/apps/files_sharing/tests/Controller/ShareControllerTest.php index 6f0b3f9c2da..6062ff89065 100644 --- a/apps/files_sharing/tests/Controller/ShareControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareControllerTest.php @@ -4,7 +4,7 @@ * * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php index 497b7f7d5ae..882e858217e 100644 --- a/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareInfoControllerTest.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\Files_Sharing\Tests\Controller; use OCA\Files_Sharing\Controller\ShareInfoController; diff --git a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php index 2b919f4849d..98ae953a318 100644 --- a/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php +++ b/apps/files_sharing/tests/Controller/ShareesAPIControllerTest.php @@ -2,8 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Björn Schießle <bjoern@schiessle.org> + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php b/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php index e417fdb74aa..246fe816e54 100644 --- a/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php +++ b/apps/files_sharing/tests/DeleteOrphanedSharesJobTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files_sharing/tests/EncryptedSizePropagationTest.php b/apps/files_sharing/tests/EncryptedSizePropagationTest.php index 38bbf12177c..ea2d7e786a9 100644 --- a/apps/files_sharing/tests/EncryptedSizePropagationTest.php +++ b/apps/files_sharing/tests/EncryptedSizePropagationTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Robin Appelman <robin@icewind.nl> * diff --git a/apps/files_sharing/tests/ExpireSharesJobTest.php b/apps/files_sharing/tests/ExpireSharesJobTest.php index 826efc5ed80..46b50c5fac4 100644 --- a/apps/files_sharing/tests/ExpireSharesJobTest.php +++ b/apps/files_sharing/tests/ExpireSharesJobTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/files_sharing/tests/External/ManagerTest.php b/apps/files_sharing/tests/External/ManagerTest.php index 37319dd17b2..6756f91fb70 100644 --- a/apps/files_sharing/tests/External/ManagerTest.php +++ b/apps/files_sharing/tests/External/ManagerTest.php @@ -2,9 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> - * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/files_sharing/tests/ExternalStorageTest.php b/apps/files_sharing/tests/ExternalStorageTest.php index 1246b0edb98..f7345d25e08 100644 --- a/apps/files_sharing/tests/ExternalStorageTest.php +++ b/apps/files_sharing/tests/ExternalStorageTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/files_sharing/tests/GroupEtagPropagationTest.php b/apps/files_sharing/tests/GroupEtagPropagationTest.php index e339983b404..206980659c7 100644 --- a/apps/files_sharing/tests/GroupEtagPropagationTest.php +++ b/apps/files_sharing/tests/GroupEtagPropagationTest.php @@ -3,8 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/files_sharing/tests/HelperTest.php b/apps/files_sharing/tests/HelperTest.php index e1e73ee82c2..4585b7e7ab8 100644 --- a/apps/files_sharing/tests/HelperTest.php +++ b/apps/files_sharing/tests/HelperTest.php @@ -5,6 +5,7 @@ * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php b/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php index 3b6257adf92..c260a65725d 100644 --- a/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php +++ b/apps/files_sharing/tests/Middleware/OCSShareAPIMiddlewareTest.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\Files_Sharing\Tests\Middleware; use OCA\Files_Sharing\Controller\ShareAPIController; diff --git a/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php b/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php index 7f81bcbaa51..cbac5c7bef5 100644 --- a/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php +++ b/apps/files_sharing/tests/Middleware/ShareInfoMiddlewareTest.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\Files_Sharing\Tests\Middleware; use OCA\Files_Sharing\Controller\ShareInfoController; diff --git a/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php b/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php index 8d7d42722b9..d8676547a76 100644 --- a/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php +++ b/apps/files_sharing/tests/Middleware/SharingCheckMiddlewareTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php b/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php index 4ae9e428e8d..c4c78b04a23 100644 --- a/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php +++ b/apps/files_sharing/tests/Migration/SetPasswordColumnTest.php @@ -2,11 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 * diff --git a/apps/files_sharing/tests/MountProviderTest.php b/apps/files_sharing/tests/MountProviderTest.php index 68c62427e34..b521e109cf9 100644 --- a/apps/files_sharing/tests/MountProviderTest.php +++ b/apps/files_sharing/tests/MountProviderTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Maxence Lange <maxence@nextcloud.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/files_sharing/tests/SharedMountTest.php b/apps/files_sharing/tests/SharedMountTest.php index 6f21bd3b92d..1eddbcb64f7 100644 --- a/apps/files_sharing/tests/SharedMountTest.php +++ b/apps/files_sharing/tests/SharedMountTest.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/apps/files_sharing/tests/UpdaterTest.php b/apps/files_sharing/tests/UpdaterTest.php index c01365a500a..c8d089f54b4 100644 --- a/apps/files_sharing/tests/UpdaterTest.php +++ b/apps/files_sharing/tests/UpdaterTest.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/apps/files_trashbin/ajax/undelete.php b/apps/files_trashbin/ajax/undelete.php index ba671325372..f7e0594cd8a 100644 --- a/apps/files_trashbin/ajax/undelete.php +++ b/apps/files_trashbin/ajax/undelete.php @@ -5,6 +5,7 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/files_trashbin/appinfo/app.php b/apps/files_trashbin/appinfo/app.php index d97f2cd84e5..ad0a4ecd69e 100644 --- a/apps/files_trashbin/appinfo/app.php +++ b/apps/files_trashbin/appinfo/app.php @@ -2,10 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Bart Visscher <bartv@thisnet.nl> * @author Christopher Schäpers <kondou@ts.unde.re> * @author Florin Peter <github@florin-peter.de> - * @author Robin Appelman <robin@icewind.nl> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/apps/files_trashbin/appinfo/routes.php b/apps/files_trashbin/appinfo/routes.php index 5241bec742e..9243ee7e91c 100644 --- a/apps/files_trashbin/appinfo/routes.php +++ b/apps/files_trashbin/appinfo/routes.php @@ -5,7 +5,6 @@ * * @author Lukas Reschke <lukas@statuscode.ch> * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/files_trashbin/l10n/es_EC.js b/apps/files_trashbin/l10n/es_EC.js new file mode 100644 index 00000000000..24cc0e4083e --- /dev/null +++ b/apps/files_trashbin/l10n/es_EC.js @@ -0,0 +1,21 @@ +OC.L10N.register( + "files_trashbin", + { + "Couldn't delete %s permanently" : "No fue posible eliminar %s permanentemente", + "Couldn't restore %s" : "No fue posible restaurar %s", + "Deleted files" : "Archivos borrados", + "Restore" : "Restaurar", + "Delete" : "Borrar", + "Delete permanently" : "Borrar permanentemente", + "Error" : "Error", + "This operation is forbidden" : "Esta opración está prohibida", + "This directory is unavailable, please check the logs or contact the administrator" : "Este directorio no está disponible, por favor verifica las bitácoras o contacta al administrador", + "restored" : "restaurado", + "No deleted files" : "No hay archivos borrados", + "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Select all" : "Seleccionar todo", + "Name" : "Nombre", + "Deleted" : "Borrado" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_trashbin/l10n/es_EC.json b/apps/files_trashbin/l10n/es_EC.json new file mode 100644 index 00000000000..3a539073e8b --- /dev/null +++ b/apps/files_trashbin/l10n/es_EC.json @@ -0,0 +1,19 @@ +{ "translations": { + "Couldn't delete %s permanently" : "No fue posible eliminar %s permanentemente", + "Couldn't restore %s" : "No fue posible restaurar %s", + "Deleted files" : "Archivos borrados", + "Restore" : "Restaurar", + "Delete" : "Borrar", + "Delete permanently" : "Borrar permanentemente", + "Error" : "Error", + "This operation is forbidden" : "Esta opración está prohibida", + "This directory is unavailable, please check the logs or contact the administrator" : "Este directorio no está disponible, por favor verifica las bitácoras o contacta al administrador", + "restored" : "restaurado", + "No deleted files" : "No hay archivos borrados", + "You will be able to recover deleted files from here" : "Podrás recuperar archivos borrados desde aquí", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Select all" : "Seleccionar todo", + "Name" : "Nombre", + "Deleted" : "Borrado" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php b/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php index cd662b1fb5e..e19b7ce604f 100644 --- a/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php +++ b/apps/files_trashbin/lib/BackgroundJob/ExpireTrash.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * diff --git a/apps/files_trashbin/lib/Command/ExpireTrash.php b/apps/files_trashbin/lib/Command/ExpireTrash.php index b016fdd6aeb..6b46fd9e626 100644 --- a/apps/files_trashbin/lib/Command/ExpireTrash.php +++ b/apps/files_trashbin/lib/Command/ExpireTrash.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/files_trashbin/lib/Controller/PreviewController.php b/apps/files_trashbin/lib/Controller/PreviewController.php index ae3a106d627..8c3ff292b9f 100644 --- a/apps/files_trashbin/lib/Controller/PreviewController.php +++ b/apps/files_trashbin/lib/Controller/PreviewController.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/apps/files_trashbin/lib/Events/MoveToTrashEvent.php b/apps/files_trashbin/lib/Events/MoveToTrashEvent.php index 185f39f63cb..99b42507cec 100644 --- a/apps/files_trashbin/lib/Events/MoveToTrashEvent.php +++ b/apps/files_trashbin/lib/Events/MoveToTrashEvent.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_trashbin/lib/Helper.php b/apps/files_trashbin/lib/Helper.php index a309d533e54..65407b8a56e 100644 --- a/apps/files_trashbin/lib/Helper.php +++ b/apps/files_trashbin/lib/Helper.php @@ -2,10 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_trashbin/lib/Storage.php b/apps/files_trashbin/lib/Storage.php index cb36b4604c1..1193d6ec561 100644 --- a/apps/files_trashbin/lib/Storage.php +++ b/apps/files_trashbin/lib/Storage.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/files_trashbin/lib/Trashbin.php b/apps/files_trashbin/lib/Trashbin.php index 0d336664e38..d61881ce3b1 100644 --- a/apps/files_trashbin/lib/Trashbin.php +++ b/apps/files_trashbin/lib/Trashbin.php @@ -4,9 +4,12 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Bastien Ho <bastienho@urbancube.fr> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Florin Peter <github@florin-peter.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> @@ -15,7 +18,7 @@ * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Sjors van der Pluijm <sjors@desjors.nl> - * @author Stefan Weil <sw@weilnetz.de> + * @author Steven Bühner <buehner@me.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/files_trashbin/tests/BackgroundJob/ExpireTrashTest.php b/apps/files_trashbin/tests/BackgroundJob/ExpireTrashTest.php index 4bf533194b4..882099efc99 100644 --- a/apps/files_trashbin/tests/BackgroundJob/ExpireTrashTest.php +++ b/apps/files_trashbin/tests/BackgroundJob/ExpireTrashTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_trashbin/tests/Command/CleanUpTest.php b/apps/files_trashbin/tests/Command/CleanUpTest.php index d20ce761bf6..36b1ff10727 100644 --- a/apps/files_trashbin/tests/Command/CleanUpTest.php +++ b/apps/files_trashbin/tests/Command/CleanUpTest.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/files_trashbin/tests/ExpirationTest.php b/apps/files_trashbin/tests/ExpirationTest.php index 9d9f8ec027e..396fbdfb887 100644 --- a/apps/files_trashbin/tests/ExpirationTest.php +++ b/apps/files_trashbin/tests/ExpirationTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_trashbin/tests/StorageTest.php b/apps/files_trashbin/tests/StorageTest.php index a05fd33f306..0e23ea6a3ba 100644 --- a/apps/files_trashbin/tests/StorageTest.php +++ b/apps/files_trashbin/tests/StorageTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/apps/files_versions/appinfo/routes.php b/apps/files_versions/appinfo/routes.php index 434ff9d26ac..5fe6eaaee14 100644 --- a/apps/files_versions/appinfo/routes.php +++ b/apps/files_versions/appinfo/routes.php @@ -3,12 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> * - * @author Björn Schießle <bjoern@schiessle.org> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Tom Needham <tom@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_versions/l10n/es_EC.js b/apps/files_versions/l10n/es_EC.js new file mode 100644 index 00000000000..7cfb569dec7 --- /dev/null +++ b/apps/files_versions/l10n/es_EC.js @@ -0,0 +1,14 @@ +OC.L10N.register( + "files_versions", + { + "Could not revert: %s" : "No fue posible revertir: %s", + "Versions" : "Versiones", + "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", + "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], + "Restore" : "Restaurar", + "No earlier versions available" : "No hay versiones anteriores disponibles", + "More versions …" : "Más versiones ...", + "No versions available" : "No hay versiones disponibles", + "More versions..." : "Más versiones..." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/files_versions/l10n/es_EC.json b/apps/files_versions/l10n/es_EC.json new file mode 100644 index 00000000000..e346d38166f --- /dev/null +++ b/apps/files_versions/l10n/es_EC.json @@ -0,0 +1,12 @@ +{ "translations": { + "Could not revert: %s" : "No fue posible revertir: %s", + "Versions" : "Versiones", + "Failed to revert {file} to revision {timestamp}." : "Falla al revertir {file} a revisión {timestamp}.", + "_%n byte_::_%n bytes_" : ["%n byte","%n bytes"], + "Restore" : "Restaurar", + "No earlier versions available" : "No hay versiones anteriores disponibles", + "More versions …" : "Más versiones ...", + "No versions available" : "No hay versiones disponibles", + "More versions..." : "Más versiones..." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/files_versions/l10n/ka_GE.js b/apps/files_versions/l10n/ka_GE.js index d958b4f4dee..56be9c02887 100644 --- a/apps/files_versions/l10n/ka_GE.js +++ b/apps/files_versions/l10n/ka_GE.js @@ -3,6 +3,12 @@ OC.L10N.register( { "Could not revert: %s" : "ვერ მოხერხდა უკან დაბრუნება: %s", "Versions" : "ვერსიები", - "Restore" : "აღდგენა" + "Failed to revert {file} to revision {timestamp}." : "ფაილის {file} დაბრუნება რევიზიაზე {timestamp} ვერ ხერხდება.", + "_%n byte_::_%n bytes_" : ["%n ბაიტი"], + "Restore" : "აღდგენა", + "No earlier versions available" : "წინა ვერსიები ხელმისაწვდომი არაა", + "More versions …" : "მეტი ვერსიები ...", + "No versions available" : "ვერსიები ხელმიუწვდომელია", + "More versions..." : "მეტი ვერსიები..." }, "nplurals=1; plural=0;"); diff --git a/apps/files_versions/l10n/ka_GE.json b/apps/files_versions/l10n/ka_GE.json index a3b2d0344de..4c359623070 100644 --- a/apps/files_versions/l10n/ka_GE.json +++ b/apps/files_versions/l10n/ka_GE.json @@ -1,6 +1,12 @@ { "translations": { "Could not revert: %s" : "ვერ მოხერხდა უკან დაბრუნება: %s", "Versions" : "ვერსიები", - "Restore" : "აღდგენა" + "Failed to revert {file} to revision {timestamp}." : "ფაილის {file} დაბრუნება რევიზიაზე {timestamp} ვერ ხერხდება.", + "_%n byte_::_%n bytes_" : ["%n ბაიტი"], + "Restore" : "აღდგენა", + "No earlier versions available" : "წინა ვერსიები ხელმისაწვდომი არაა", + "More versions …" : "მეტი ვერსიები ...", + "No versions available" : "ვერსიები ხელმიუწვდომელია", + "More versions..." : "მეტი ვერსიები..." },"pluralForm" :"nplurals=1; plural=0;" }
\ No newline at end of file diff --git a/apps/files_versions/lib/BackgroundJob/ExpireVersions.php b/apps/files_versions/lib/BackgroundJob/ExpireVersions.php index 89b8a966137..d69e5bb87ce 100644 --- a/apps/files_versions/lib/BackgroundJob/ExpireVersions.php +++ b/apps/files_versions/lib/BackgroundJob/ExpireVersions.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_versions/lib/Command/Expire.php b/apps/files_versions/lib/Command/Expire.php index 794cedbac9a..fdb72c91887 100644 --- a/apps/files_versions/lib/Command/Expire.php +++ b/apps/files_versions/lib/Command/Expire.php @@ -5,6 +5,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/files_versions/lib/Command/ExpireVersions.php b/apps/files_versions/lib/Command/ExpireVersions.php index e88ea1f7a02..09de0ad6d90 100644 --- a/apps/files_versions/lib/Command/ExpireVersions.php +++ b/apps/files_versions/lib/Command/ExpireVersions.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/files_versions/lib/Controller/PreviewController.php b/apps/files_versions/lib/Controller/PreviewController.php index 7a7c024fb52..b8bf464fb3f 100644 --- a/apps/files_versions/lib/Controller/PreviewController.php +++ b/apps/files_versions/lib/Controller/PreviewController.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/apps/files_versions/lib/Events/CreateVersionEvent.php b/apps/files_versions/lib/Events/CreateVersionEvent.php index df18d3545f8..90d907147dd 100644 --- a/apps/files_versions/lib/Events/CreateVersionEvent.php +++ b/apps/files_versions/lib/Events/CreateVersionEvent.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/files_versions/lib/Hooks.php b/apps/files_versions/lib/Hooks.php index 1fdf1afef90..52dbf54b485 100644 --- a/apps/files_versions/lib/Hooks.php +++ b/apps/files_versions/lib/Hooks.php @@ -4,7 +4,9 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> diff --git a/apps/files_versions/lib/Storage.php b/apps/files_versions/lib/Storage.php index 25c64b89000..4c76c5340fa 100644 --- a/apps/files_versions/lib/Storage.php +++ b/apps/files_versions/lib/Storage.php @@ -8,13 +8,13 @@ * @author Björn Schießle <bjoern@schiessle.org> * @author Carlos Damken <carlos@damken.com> * @author Felix Moeller <mail@felixmoeller.de> - * @author Georg Ehrke <georg@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/apps/files_versions/tests/Command/CleanupTest.php b/apps/files_versions/tests/Command/CleanupTest.php index fe6c9caf25b..289c7123c24 100644 --- a/apps/files_versions/tests/Command/CleanupTest.php +++ b/apps/files_versions/tests/Command/CleanupTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/files_versions/tests/ExpirationTest.php b/apps/files_versions/tests/ExpirationTest.php index 4e4f500d812..8cd288d75cc 100644 --- a/apps/files_versions/tests/ExpirationTest.php +++ b/apps/files_versions/tests/ExpirationTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/files_versions/tests/VersioningTest.php b/apps/files_versions/tests/VersioningTest.php index 812a068f070..b35eb9a62c0 100644 --- a/apps/files_versions/tests/VersioningTest.php +++ b/apps/files_versions/tests/VersioningTest.php @@ -4,7 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Björn Schießle <bjoern@schiessle.org> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/apps/oauth2/l10n/es_EC.js b/apps/oauth2/l10n/es_EC.js new file mode 100644 index 00000000000..ecad08fd552 --- /dev/null +++ b/apps/oauth2/l10n/es_EC.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "oauth2", + { + "OAuth 2.0 clients" : "Clientes OAuth 2.0", + "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 le permite a los servicios externos solicitar acceso a %s.", + "Name" : "Nombre", + "Redirection URI" : "URI para redirección", + "Client Identifier" : "Identificador del cliente", + "Secret" : "Secreto", + "Add client" : "Agregar cliente", + "Add" : "Agregar" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/oauth2/l10n/es_EC.json b/apps/oauth2/l10n/es_EC.json new file mode 100644 index 00000000000..5e42b16f40d --- /dev/null +++ b/apps/oauth2/l10n/es_EC.json @@ -0,0 +1,11 @@ +{ "translations": { + "OAuth 2.0 clients" : "Clientes OAuth 2.0", + "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0 le permite a los servicios externos solicitar acceso a %s.", + "Name" : "Nombre", + "Redirection URI" : "URI para redirección", + "Client Identifier" : "Identificador del cliente", + "Secret" : "Secreto", + "Add client" : "Agregar cliente", + "Add" : "Agregar" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/oauth2/l10n/zh_TW.js b/apps/oauth2/l10n/zh_TW.js new file mode 100644 index 00000000000..2eda8ab0a98 --- /dev/null +++ b/apps/oauth2/l10n/zh_TW.js @@ -0,0 +1,13 @@ +OC.L10N.register( + "oauth2", + { + "OAuth 2.0 clients" : "OAuth 2.0 用戶端", + "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0允許其他裝置存取 %s.", + "Name" : "名稱", + "Redirection URI" : "URI轉向", + "Client Identifier" : "用戶辨識", + "Secret" : "秘密", + "Add client" : "新增用戶", + "Add" : "新增" +}, +"nplurals=1; plural=0;"); diff --git a/apps/oauth2/l10n/zh_TW.json b/apps/oauth2/l10n/zh_TW.json new file mode 100644 index 00000000000..7bdcfd0833e --- /dev/null +++ b/apps/oauth2/l10n/zh_TW.json @@ -0,0 +1,11 @@ +{ "translations": { + "OAuth 2.0 clients" : "OAuth 2.0 用戶端", + "OAuth 2.0 allows external services to request access to %s." : "OAuth 2.0允許其他裝置存取 %s.", + "Name" : "名稱", + "Redirection URI" : "URI轉向", + "Client Identifier" : "用戶辨識", + "Secret" : "秘密", + "Add client" : "新增用戶", + "Add" : "新增" +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/apps/provisioning_api/appinfo/routes.php b/apps/provisioning_api/appinfo/routes.php index 81b3db2c1be..c4932ebb28b 100644 --- a/apps/provisioning_api/appinfo/routes.php +++ b/apps/provisioning_api/appinfo/routes.php @@ -2,12 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> - * @author Lukas Reschke <lukas@statuscode.ch> - * @author michag86 <micha_g@arcor.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Tom Needham <tom@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/provisioning_api/lib/AppInfo/Application.php b/apps/provisioning_api/lib/AppInfo/Application.php index b1c257de689..b7a93d6fb13 100644 --- a/apps/provisioning_api/lib/AppInfo/Application.php +++ b/apps/provisioning_api/lib/AppInfo/Application.php @@ -1,5 +1,27 @@ <?php - +/** + * + * + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\Provisioning_API\AppInfo; use OC\AppFramework\Utility\SimpleContainer; diff --git a/apps/provisioning_api/lib/Controller/AppConfigController.php b/apps/provisioning_api/lib/Controller/AppConfigController.php index f710eda6529..0ca5e4e20a1 100644 --- a/apps/provisioning_api/lib/Controller/AppConfigController.php +++ b/apps/provisioning_api/lib/Controller/AppConfigController.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/provisioning_api/lib/Controller/AppsController.php b/apps/provisioning_api/lib/Controller/AppsController.php index d65b925cf7b..30062d94a44 100644 --- a/apps/provisioning_api/lib/Controller/AppsController.php +++ b/apps/provisioning_api/lib/Controller/AppsController.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/apps/provisioning_api/lib/Controller/GroupsController.php b/apps/provisioning_api/lib/Controller/GroupsController.php index e167c07582f..cb237d9791f 100644 --- a/apps/provisioning_api/lib/Controller/GroupsController.php +++ b/apps/provisioning_api/lib/Controller/GroupsController.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/apps/provisioning_api/lib/Controller/UsersController.php b/apps/provisioning_api/lib/Controller/UsersController.php index e165457a339..ffae68d5a95 100644 --- a/apps/provisioning_api/lib/Controller/UsersController.php +++ b/apps/provisioning_api/lib/Controller/UsersController.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author michag86 <micha_g@arcor.de> diff --git a/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php b/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php index 007ea04db46..11ffb8b0903 100644 --- a/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php +++ b/apps/provisioning_api/lib/Middleware/Exceptions/NotSubAdminException.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\Provisioning_API\Middleware\Exceptions; use OCP\AppFramework\Http; diff --git a/apps/provisioning_api/lib/Middleware/ProvisioningApiMiddleware.php b/apps/provisioning_api/lib/Middleware/ProvisioningApiMiddleware.php index e21f9b22878..4c7f7a654c8 100644 --- a/apps/provisioning_api/lib/Middleware/ProvisioningApiMiddleware.php +++ b/apps/provisioning_api/lib/Middleware/ProvisioningApiMiddleware.php @@ -1,5 +1,27 @@ <?php - +/** + * + * + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\Provisioning_API\Middleware; use OCA\Provisioning_API\Middleware\Exceptions\NotSubAdminException; diff --git a/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php b/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php index b7cb76c77c6..7f24ef5bcb3 100644 --- a/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php +++ b/apps/provisioning_api/tests/Controller/AppConfigControllerTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/provisioning_api/tests/Controller/UsersControllerTest.php b/apps/provisioning_api/tests/Controller/UsersControllerTest.php index e9d0a704f4f..ef47583e9df 100644 --- a/apps/provisioning_api/tests/Controller/UsersControllerTest.php +++ b/apps/provisioning_api/tests/Controller/UsersControllerTest.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author michag86 <micha_g@arcor.de> diff --git a/apps/sharebymail/l10n/el.js b/apps/sharebymail/l10n/el.js index 952d5245546..1cca5b74fb9 100644 --- a/apps/sharebymail/l10n/el.js +++ b/apps/sharebymail/l10n/el.js @@ -18,6 +18,7 @@ OC.L10N.register( "Password to access {file} was sent to you" : "Σας έχει αποσταλεί στο συνθηματικό για πρόσβαση {file}", "Sharing %s failed, this item is already shared with %s" : "Διαμοιρασμός %s απέτυχε, αυτό το αντικείμενο είναι ήδη διαμοιρασμένο με %s", "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Δεν μπορούμε να σας στείλουμε αυτοδημιουργημένο συνθηματικό. Παρακαλούμε βάλτε μία έγκυρη διεύθυνση email στις προσωπικές σας ρυθμίσεις και προσπαθήστε ξανά.", + "Failed to send share by email" : "Αποτυχία αποστολής συνδέσμου διαμοιρασμού μέσω Ηλ.ταχυδρομείου", "%s shared »%s« with you" : "%s διαμοιρασμένα »%s« με σένα", "%s shared »%s« with you." : "%s διαμοιράστηκε »%s« με εσάς.", "Click the button below to open it." : "Κάντε κλικ στο παρακάτω κουμπί για να το ανοίξετε.", @@ -34,6 +35,7 @@ OC.L10N.register( "You can choose a different password at any time in the share dialog." : "Μπορείτε να διαλέξετε ένα διαφορετικό συνθηματικό οποιαδήποτε στιγμή στον διάλογο διαμοιρασμού.", "Could not find share" : "Αδυναμία εύρεσης κοινόχρηστου", "Share by mail" : "Διαμοιρασμός με ηλεκτρονική αλληλογραφία", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Να επιτρέπεται οι χρήστες να στέλνουν εξατομικευμένο σύνδεσμο σε ένα αρχείο ή φάκελο μέσω mail.", "Send password by mail" : "Αποστολή συνθηματικου με ηλεκτρονική αλληλογραφία", "Enforce password protection" : "Επιβάλετε προστασία συνθηματικού", "Failed to send share by E-mail" : "Αποτυχία αποστολής συνδέσμου διαμοιρασμού μέσω Ηλ.ταχυδρομείου", diff --git a/apps/sharebymail/l10n/el.json b/apps/sharebymail/l10n/el.json index f8d942c000f..432e4ca129a 100644 --- a/apps/sharebymail/l10n/el.json +++ b/apps/sharebymail/l10n/el.json @@ -16,6 +16,7 @@ "Password to access {file} was sent to you" : "Σας έχει αποσταλεί στο συνθηματικό για πρόσβαση {file}", "Sharing %s failed, this item is already shared with %s" : "Διαμοιρασμός %s απέτυχε, αυτό το αντικείμενο είναι ήδη διαμοιρασμένο με %s", "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "Δεν μπορούμε να σας στείλουμε αυτοδημιουργημένο συνθηματικό. Παρακαλούμε βάλτε μία έγκυρη διεύθυνση email στις προσωπικές σας ρυθμίσεις και προσπαθήστε ξανά.", + "Failed to send share by email" : "Αποτυχία αποστολής συνδέσμου διαμοιρασμού μέσω Ηλ.ταχυδρομείου", "%s shared »%s« with you" : "%s διαμοιρασμένα »%s« με σένα", "%s shared »%s« with you." : "%s διαμοιράστηκε »%s« με εσάς.", "Click the button below to open it." : "Κάντε κλικ στο παρακάτω κουμπί για να το ανοίξετε.", @@ -32,6 +33,7 @@ "You can choose a different password at any time in the share dialog." : "Μπορείτε να διαλέξετε ένα διαφορετικό συνθηματικό οποιαδήποτε στιγμή στον διάλογο διαμοιρασμού.", "Could not find share" : "Αδυναμία εύρεσης κοινόχρηστου", "Share by mail" : "Διαμοιρασμός με ηλεκτρονική αλληλογραφία", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Να επιτρέπεται οι χρήστες να στέλνουν εξατομικευμένο σύνδεσμο σε ένα αρχείο ή φάκελο μέσω mail.", "Send password by mail" : "Αποστολή συνθηματικου με ηλεκτρονική αλληλογραφία", "Enforce password protection" : "Επιβάλετε προστασία συνθηματικού", "Failed to send share by E-mail" : "Αποτυχία αποστολής συνδέσμου διαμοιρασμού μέσω Ηλ.ταχυδρομείου", diff --git a/apps/sharebymail/l10n/es_DO.js b/apps/sharebymail/l10n/es_DO.js new file mode 100644 index 00000000000..92f61e8f63e --- /dev/null +++ b/apps/sharebymail/l10n/es_DO.js @@ -0,0 +1,50 @@ +OC.L10N.register( + "sharebymail", + { + "Shared with %1$s" : "Compartido con %1$s", + "Shared with {email}" : "Compartido con {email}", + "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s", + "Shared with {email} by {actor}" : "Compartido con {email} por {actor}", + "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s", + "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}", + "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado", + "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo", + "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo", + "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ", + "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo", + "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s", + "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}", + "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado", + "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada", + "Sharing %s failed, this item is already shared with %s" : "Se presentó una falla al compartir %s, este elemento ya ha sido compartido con %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.", + "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s ha compartido »%s« contigo", + "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s vía %s", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con la liga para accederlo. \n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« contigo. Ya deberías haber recibido un correo aparte con la liga para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", + "Password to access »%s«" : "Contraseña para acceder »%s«", + "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesitas reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", + "This is the password: %s" : "Esta es la contraseña: %s", + "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", + "Could not find share" : "No fue posible encontrar el elemento compartido", + "Share by mail" : "Compartir por correo", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ", + "Send password by mail" : "La contraseña ha sido enviada por correo", + "Enforce password protection" : "Forzar protección con contraseña", + "Failed to send share by E-mail" : "Se presentó una falla al enviar el recurso compartido por correo electrónico", + "%s shared »%s« with you on behalf of %s" : "%s ha compartido »%s« contigo a nombre de %s", + "Failed to create the E-mail" : "Se presentó una falla al crear el correo electrónico", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo a nombre de %s.\n\n%s\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo.\n\n%s\n", + "Cheers!" : "¡Saludos!", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Hola,<br><br>%s ha compartido <a href=\"%s\">%s</a> contigo a nombre de %s.<br><br> ", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Hola, <br><br>%s ha compartido <a href=\"%s\">%s</a> contigo.<br><br> " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/sharebymail/l10n/es_DO.json b/apps/sharebymail/l10n/es_DO.json new file mode 100644 index 00000000000..43a4bc87eb2 --- /dev/null +++ b/apps/sharebymail/l10n/es_DO.json @@ -0,0 +1,48 @@ +{ "translations": { + "Shared with %1$s" : "Compartido con %1$s", + "Shared with {email}" : "Compartido con {email}", + "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s", + "Shared with {email} by {actor}" : "Compartido con {email} por {actor}", + "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s", + "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}", + "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado", + "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo", + "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo", + "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ", + "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo", + "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s", + "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}", + "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado", + "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada", + "Sharing %s failed, this item is already shared with %s" : "Se presentó una falla al compartir %s, este elemento ya ha sido compartido con %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.", + "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s ha compartido »%s« contigo", + "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s vía %s", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con la liga para accederlo. \n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« contigo. Ya deberías haber recibido un correo aparte con la liga para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", + "Password to access »%s«" : "Contraseña para acceder »%s«", + "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesitas reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", + "This is the password: %s" : "Esta es la contraseña: %s", + "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", + "Could not find share" : "No fue posible encontrar el elemento compartido", + "Share by mail" : "Compartir por correo", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ", + "Send password by mail" : "La contraseña ha sido enviada por correo", + "Enforce password protection" : "Forzar protección con contraseña", + "Failed to send share by E-mail" : "Se presentó una falla al enviar el recurso compartido por correo electrónico", + "%s shared »%s« with you on behalf of %s" : "%s ha compartido »%s« contigo a nombre de %s", + "Failed to create the E-mail" : "Se presentó una falla al crear el correo electrónico", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo a nombre de %s.\n\n%s\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo.\n\n%s\n", + "Cheers!" : "¡Saludos!", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Hola,<br><br>%s ha compartido <a href=\"%s\">%s</a> contigo a nombre de %s.<br><br> ", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Hola, <br><br>%s ha compartido <a href=\"%s\">%s</a> contigo.<br><br> " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/sharebymail/l10n/es_EC.js b/apps/sharebymail/l10n/es_EC.js new file mode 100644 index 00000000000..92f61e8f63e --- /dev/null +++ b/apps/sharebymail/l10n/es_EC.js @@ -0,0 +1,50 @@ +OC.L10N.register( + "sharebymail", + { + "Shared with %1$s" : "Compartido con %1$s", + "Shared with {email}" : "Compartido con {email}", + "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s", + "Shared with {email} by {actor}" : "Compartido con {email} por {actor}", + "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s", + "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}", + "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado", + "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo", + "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo", + "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ", + "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo", + "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s", + "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}", + "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado", + "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada", + "Sharing %s failed, this item is already shared with %s" : "Se presentó una falla al compartir %s, este elemento ya ha sido compartido con %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.", + "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s ha compartido »%s« contigo", + "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s vía %s", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con la liga para accederlo. \n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« contigo. Ya deberías haber recibido un correo aparte con la liga para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", + "Password to access »%s«" : "Contraseña para acceder »%s«", + "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesitas reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", + "This is the password: %s" : "Esta es la contraseña: %s", + "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", + "Could not find share" : "No fue posible encontrar el elemento compartido", + "Share by mail" : "Compartir por correo", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ", + "Send password by mail" : "La contraseña ha sido enviada por correo", + "Enforce password protection" : "Forzar protección con contraseña", + "Failed to send share by E-mail" : "Se presentó una falla al enviar el recurso compartido por correo electrónico", + "%s shared »%s« with you on behalf of %s" : "%s ha compartido »%s« contigo a nombre de %s", + "Failed to create the E-mail" : "Se presentó una falla al crear el correo electrónico", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo a nombre de %s.\n\n%s\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo.\n\n%s\n", + "Cheers!" : "¡Saludos!", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Hola,<br><br>%s ha compartido <a href=\"%s\">%s</a> contigo a nombre de %s.<br><br> ", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Hola, <br><br>%s ha compartido <a href=\"%s\">%s</a> contigo.<br><br> " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/sharebymail/l10n/es_EC.json b/apps/sharebymail/l10n/es_EC.json new file mode 100644 index 00000000000..43a4bc87eb2 --- /dev/null +++ b/apps/sharebymail/l10n/es_EC.json @@ -0,0 +1,48 @@ +{ "translations": { + "Shared with %1$s" : "Compartido con %1$s", + "Shared with {email}" : "Compartido con {email}", + "Shared with %1$s by %2$s" : "Compartido con %1$s por %2$s", + "Shared with {email} by {actor}" : "Compartido con {email} por {actor}", + "Password for mail share sent to %1$s" : "La contraseña para el elemento compartido fue enviada a %1$s", + "Password for mail share sent to {email}" : "La contraseña para el elemento compartido fue enviada a {email}", + "Password for mail share sent to you" : "La contraseña para el elemento compartido se te ha enviado", + "You shared %1$s with %2$s by mail" : "Compartiste %1$s con %2$s por correo", + "You shared {file} with {email} by mail" : "Compartiste {file} con {email} por correo", + "%3$s shared %1$s with %2$s by mail" : "%3$s compartió %1$s con %2$s por correo ", + "{actor} shared {file} with {email} by mail" : "{actor} compartió {file} con {email} por correo", + "Password to access %1$s was sent to %2s" : "La contraseña para acceder %1$s fue enviada a %2s", + "Password to access {file} was sent to {email}" : "La contraseña para acceder {file} ha sido enviada a {email}", + "Password to access %1$s was sent to you" : "La contraseña para acceder %1$s se te ha enviado", + "Password to access {file} was sent to you" : "La contraseña para acceder {file} se te ha sido enviada", + "Sharing %s failed, this item is already shared with %s" : "Se presentó una falla al compartir %s, este elemento ya ha sido compartido con %s", + "We can't send you the auto-generated password. Please set a valid email address in your personal settings and try again." : "No es posible enviarte la contraseña auto-generada. Por favor establece una dirección de correo electrónico váilida en tus configuraciones personales y vuelve a intentarlo.", + "Failed to send share by email" : "Se presentó una falla al enviar el elemento compartido por correo electrónico", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s ha compartido »%s« contigo", + "Click the button below to open it." : "Haz click en el botón de abajo para abrirlo.", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s vía %s", + "%s shared »%s« with you.\nYou should have already received a separate mail with a link to access it.\n" : "%s compartió »%s« contigo.\nDeberías haber recibido ya un correo por separado con la liga para accederlo. \n", + "%s shared »%s« with you. You should have already received a separate mail with a link to access it." : "%s compartió »%s« contigo. Ya deberías haber recibido un correo aparte con la liga para accederlo. ", + "Password to access »%s« shared to you by %s" : "Contraseña para acceder »%s« compartido contigo por %s ", + "Password to access »%s«" : "Contraseña para acceder »%s«", + "It is protected with the following password: %s" : "Está protegido con la siguiente contraseña: %s", + "You just shared »%s« with %s. The share was already send to the recipient. Due to the security policies defined by the administrator of %s each share needs to be protected by password and it is not allowed to send the password directly to the recipient. Therefore you need to forward the password manually to the recipient." : "Acabas de compartir »%s« con %s. El elemento compartido ya ha sido enviado al destinatario. Debido a las políticas de seguridad definidas por el administrador de %s cada elelento compartido debe ser protegido por una contraseña y no se permite enviar la contraseña directamente al destinatario. Por lo tanto necesitas reenviar la contaseña manualmente al destinatario. ", + "Password to access »%s« shared with %s" : "La contraseña para acceder »%s« ha sido compartida con %s", + "This is the password: %s" : "Esta es la contraseña: %s", + "You can choose a different password at any time in the share dialog." : "Puedes elegir una contraseña diferente en cualquier momento en la ventana de diálogo de compartir. ", + "Could not find share" : "No fue posible encontrar el elemento compartido", + "Share by mail" : "Compartir por correo", + "Allows users to share a personalized link to a file or folder by putting in an email address." : "Le permite a los usuarios compartir una liga personalizada a un archivo o carpeta colocando una dirección de correo eletrónico. ", + "Send password by mail" : "La contraseña ha sido enviada por correo", + "Enforce password protection" : "Forzar protección con contraseña", + "Failed to send share by E-mail" : "Se presentó una falla al enviar el recurso compartido por correo electrónico", + "%s shared »%s« with you on behalf of %s" : "%s ha compartido »%s« contigo a nombre de %s", + "Failed to create the E-mail" : "Se presentó una falla al crear el correo electrónico", + "Hey there,\n\n%s shared »%s« with you on behalf of %s.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo a nombre de %s.\n\n%s\n", + "Hey there,\n\n%s shared »%s« with you.\n\n%s\n\n" : "Hola,\n\n%s ha compartido »%s« contigo.\n\n%s\n", + "Cheers!" : "¡Saludos!", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you on behalf of %s.<br><br>" : "Hola,<br><br>%s ha compartido <a href=\"%s\">%s</a> contigo a nombre de %s.<br><br> ", + "Hey there,<br><br>%s shared <a href=\"%s\">%s</a> with you.<br><br>" : "Hola, <br><br>%s ha compartido <a href=\"%s\">%s</a> contigo.<br><br> " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/systemtags/appinfo/app.php b/apps/systemtags/appinfo/app.php index 099ce7f9b95..e1c86939458 100644 --- a/apps/systemtags/appinfo/app.php +++ b/apps/systemtags/appinfo/app.php @@ -3,6 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/systemtags/l10n/es_DO.js b/apps/systemtags/l10n/es_DO.js new file mode 100644 index 00000000000..77f45fe1268 --- /dev/null +++ b/apps/systemtags/l10n/es_DO.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "systemtags", + { + "Tags" : "Etiquetas", + "Update" : "Actualizar", + "Create" : "Crear", + "Select tag…" : "Seleccionar etiqueta...", + "Tagged files" : "Archivos etiquetados", + "Select tags to filter by" : "Selecciona las etiquetas del filtro", + "No tags found" : "No se encontraron etiquetas", + "Please select tags to filter by" : "Por favor selecciona las etiquetas del filtro", + "No files found for the selected tags" : "No se encontraron archivos para las etiquetas seleccionadas", + "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada", + "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada", + "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s", + "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}", + "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada", + "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}", + "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s", + "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}", + "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s", + "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}", + "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s", + "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}", + "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s", + "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}", + "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s", + "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}", + "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s", + "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}", + "%s (restricted)" : "%s (restringido)", + "%s (invisible)" : "%s (invisible) ", + "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas", + "Collaborative tags" : "Etiquetas colaborativas", + "Create and edit collaborative tags. These tags affect all users." : "Crear y editar etiquetas colaborativas. Estas etiquetas afectan a todos los usuarios. ", + "Select tag …" : "Seleccionar etiqueta ...", + "Name" : "Nombre", + "Delete" : "Borrar", + "Public" : "Público", + "Restricted" : "Restringido", + "Invisible" : "Invisible", + "Reset" : "Restaurar", + "No files in here" : "No hay archivos aquí", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Size" : "Tamaño", + "Modified" : "Modificado" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/systemtags/l10n/es_DO.json b/apps/systemtags/l10n/es_DO.json new file mode 100644 index 00000000000..9a8e4adf3f8 --- /dev/null +++ b/apps/systemtags/l10n/es_DO.json @@ -0,0 +1,56 @@ +{ "translations": { + "Tags" : "Etiquetas", + "Update" : "Actualizar", + "Create" : "Crear", + "Select tag…" : "Seleccionar etiqueta...", + "Tagged files" : "Archivos etiquetados", + "Select tags to filter by" : "Selecciona las etiquetas del filtro", + "No tags found" : "No se encontraron etiquetas", + "Please select tags to filter by" : "Por favor selecciona las etiquetas del filtro", + "No files found for the selected tags" : "No se encontraron archivos para las etiquetas seleccionadas", + "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada", + "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada", + "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s", + "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}", + "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada", + "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}", + "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s", + "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}", + "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s", + "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}", + "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s", + "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}", + "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s", + "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}", + "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s", + "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}", + "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s", + "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}", + "%s (restricted)" : "%s (restringido)", + "%s (invisible)" : "%s (invisible) ", + "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas", + "Collaborative tags" : "Etiquetas colaborativas", + "Create and edit collaborative tags. These tags affect all users." : "Crear y editar etiquetas colaborativas. Estas etiquetas afectan a todos los usuarios. ", + "Select tag …" : "Seleccionar etiqueta ...", + "Name" : "Nombre", + "Delete" : "Borrar", + "Public" : "Público", + "Restricted" : "Restringido", + "Invisible" : "Invisible", + "Reset" : "Restaurar", + "No files in here" : "No hay archivos aquí", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Size" : "Tamaño", + "Modified" : "Modificado" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/systemtags/l10n/es_EC.js b/apps/systemtags/l10n/es_EC.js new file mode 100644 index 00000000000..77f45fe1268 --- /dev/null +++ b/apps/systemtags/l10n/es_EC.js @@ -0,0 +1,58 @@ +OC.L10N.register( + "systemtags", + { + "Tags" : "Etiquetas", + "Update" : "Actualizar", + "Create" : "Crear", + "Select tag…" : "Seleccionar etiqueta...", + "Tagged files" : "Archivos etiquetados", + "Select tags to filter by" : "Selecciona las etiquetas del filtro", + "No tags found" : "No se encontraron etiquetas", + "Please select tags to filter by" : "Por favor selecciona las etiquetas del filtro", + "No files found for the selected tags" : "No se encontraron archivos para las etiquetas seleccionadas", + "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada", + "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada", + "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s", + "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}", + "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada", + "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}", + "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s", + "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}", + "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s", + "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}", + "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s", + "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}", + "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s", + "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}", + "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s", + "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}", + "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s", + "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}", + "%s (restricted)" : "%s (restringido)", + "%s (invisible)" : "%s (invisible) ", + "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas", + "Collaborative tags" : "Etiquetas colaborativas", + "Create and edit collaborative tags. These tags affect all users." : "Crear y editar etiquetas colaborativas. Estas etiquetas afectan a todos los usuarios. ", + "Select tag …" : "Seleccionar etiqueta ...", + "Name" : "Nombre", + "Delete" : "Borrar", + "Public" : "Público", + "Restricted" : "Restringido", + "Invisible" : "Invisible", + "Reset" : "Restaurar", + "No files in here" : "No hay archivos aquí", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Size" : "Tamaño", + "Modified" : "Modificado" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/systemtags/l10n/es_EC.json b/apps/systemtags/l10n/es_EC.json new file mode 100644 index 00000000000..9a8e4adf3f8 --- /dev/null +++ b/apps/systemtags/l10n/es_EC.json @@ -0,0 +1,56 @@ +{ "translations": { + "Tags" : "Etiquetas", + "Update" : "Actualizar", + "Create" : "Crear", + "Select tag…" : "Seleccionar etiqueta...", + "Tagged files" : "Archivos etiquetados", + "Select tags to filter by" : "Selecciona las etiquetas del filtro", + "No tags found" : "No se encontraron etiquetas", + "Please select tags to filter by" : "Por favor selecciona las etiquetas del filtro", + "No files found for the selected tags" : "No se encontraron archivos para las etiquetas seleccionadas", + "Added system tag %1$s" : "Etiqueta del sistema %1$s agregada", + "Added system tag {systemtag}" : "Etiqueta del sistema {systemtag} agregada", + "%1$s added system tag %2$s" : "%1$s agregó la etiqueta del sistema %2$s", + "{actor} added system tag {systemtag}" : "{actor} agregó la etiqueta del sistema {systemtag}", + "Removed system tag %1$s" : "Etiqueta del sistema %1$s eliminada", + "Removed system tag {systemtag}" : "Eliminó la etiqueta del sistema {systemtag}", + "%1$s removed system tag %2$s" : "%1$s eliminó la etiqueta del sistema %2$s", + "{actor} removed system tag {systemtag}" : "{actor} eliminó la etiqueta del sistema {systemtag}", + "You created system tag %1$s" : "Creaste la etiqueta del sistema %1$s", + "You created system tag {systemtag}" : "Creaste la etiqueta del sistema {systemtag}", + "%1$s created system tag %2$s" : "%1$s creo la etiqueta del sistema %2$s", + "{actor} created system tag {systemtag}" : "{actor} creó la etiqueta del sistema {systemtag}", + "You deleted system tag %1$s" : "Borraste la etiqueta del sistema %1$s", + "You deleted system tag {systemtag}" : "Borraste la etiqueta del sistema {systemtag}", + "%1$s deleted system tag %2$s" : "%1$s borró la etiqueta del sistema %2$s", + "{actor} deleted system tag {systemtag}" : "{actor} borró la etiqueta del sistema {systemtag}", + "You updated system tag %2$s to %1$s" : "Actualizaste la etiqueta del sistema %2$s a %1$s", + "You updated system tag {oldsystemtag} to {newsystemtag}" : "Actualizaste la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "%1$s updated system tag %3$s to %2$s" : "%1$s actualizó la etiqueta del sistema %3$s a %2$s", + "{actor} updated system tag {oldsystemtag} to {newsystemtag}" : "{actor} actualizó la etiqueta del sistema {oldsystemtag} a {newsystemtag}", + "You added system tag %2$s to %1$s" : "Agregaste la etiqueta del sistema %2$s a %1$s", + "You added system tag {systemtag} to {file}" : "Agregaste la etiqueta del sistema {systemtag} a {file}", + "%1$s added system tag %3$s to %2$s" : "%1$s agregó la etiqueta del sistema %3$s a %2$s", + "{actor} added system tag {systemtag} to {file}" : "{actor} agregó la etiqueta del sistema {systemtag} a {file}", + "You removed system tag %2$s from %1$s" : "Eliminaste la etiqueta del sistema %2$s de %1$s", + "You removed system tag {systemtag} from {file}" : "Eliminaste la etiqueta del sistema {systemtag} de {file}", + "%1$s removed system tag %3$s from %2$s" : "%1$s eliminó la etiqueta del sistema %3$s de %2$s", + "{actor} removed system tag {systemtag} from {file}" : "{actor} eliminó la etiqueta del sistema {systemtag} de {file}", + "%s (restricted)" : "%s (restringido)", + "%s (invisible)" : "%s (invisible) ", + "<strong>System tags</strong> for a file have been modified" : "Las <strong>etiquetas del sistema</strong> para un archivo han sido modificadas", + "Collaborative tags" : "Etiquetas colaborativas", + "Create and edit collaborative tags. These tags affect all users." : "Crear y editar etiquetas colaborativas. Estas etiquetas afectan a todos los usuarios. ", + "Select tag …" : "Seleccionar etiqueta ...", + "Name" : "Nombre", + "Delete" : "Borrar", + "Public" : "Público", + "Restricted" : "Restringido", + "Invisible" : "Invisible", + "Reset" : "Restaurar", + "No files in here" : "No hay archivos aquí", + "No entries found in this folder" : "No se encontraron elementos en esta carpeta", + "Size" : "Tamaño", + "Modified" : "Modificado" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/systemtags/lib/Activity/Listener.php b/apps/systemtags/lib/Activity/Listener.php index 0fb5d4c12be..766e08ee8c3 100644 --- a/apps/systemtags/lib/Activity/Listener.php +++ b/apps/systemtags/lib/Activity/Listener.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/apps/systemtags/lib/Activity/Provider.php b/apps/systemtags/lib/Activity/Provider.php index db7ff94fd16..3dd53deae0b 100644 --- a/apps/systemtags/lib/Activity/Provider.php +++ b/apps/systemtags/lib/Activity/Provider.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/systemtags/lib/Activity/Setting.php b/apps/systemtags/lib/Activity/Setting.php index 4cdb11b9c84..febb2c34432 100644 --- a/apps/systemtags/lib/Activity/Setting.php +++ b/apps/systemtags/lib/Activity/Setting.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/systemtags/lib/Controller/LastUsedController.php b/apps/systemtags/lib/Controller/LastUsedController.php index cbd149d75fb..d2f7d5c62a6 100644 --- a/apps/systemtags/lib/Controller/LastUsedController.php +++ b/apps/systemtags/lib/Controller/LastUsedController.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/systemtags/lib/Settings/Admin.php b/apps/systemtags/lib/Settings/Admin.php index 9e21dafed8b..2d892f17f13 100644 --- a/apps/systemtags/lib/Settings/Admin.php +++ b/apps/systemtags/lib/Settings/Admin.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/systemtags/tests/Settings/AdminTest.php b/apps/systemtags/tests/Settings/AdminTest.php index d768ad86272..8b0472f2e9e 100644 --- a/apps/systemtags/tests/Settings/AdminTest.php +++ b/apps/systemtags/tests/Settings/AdminTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/testing/appinfo/app.php b/apps/testing/appinfo/app.php index 5dce74bf786..9b2f582f9d7 100644 --- a/apps/testing/appinfo/app.php +++ b/apps/testing/appinfo/app.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/testing/appinfo/routes.php b/apps/testing/appinfo/routes.php index 3e5fda4fc14..549496aab32 100644 --- a/apps/testing/appinfo/routes.php +++ b/apps/testing/appinfo/routes.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/testing/clean_opcode_cache.php b/apps/testing/clean_opcode_cache.php index d48d3131b70..d91bd84288b 100644 --- a/apps/testing/clean_opcode_cache.php +++ b/apps/testing/clean_opcode_cache.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/testing/lib/AlternativeHomeUserBackend.php b/apps/testing/lib/AlternativeHomeUserBackend.php index 1e86b0bc555..21511b6f6e3 100644 --- a/apps/testing/lib/AlternativeHomeUserBackend.php +++ b/apps/testing/lib/AlternativeHomeUserBackend.php @@ -1,8 +1,9 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH. + * * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2016, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/testing/lib/AppInfo/Application.php b/apps/testing/lib/AppInfo/Application.php index 9d2b100e8b0..233af80d9fb 100644 --- a/apps/testing/lib/AppInfo/Application.php +++ b/apps/testing/lib/AppInfo/Application.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud GmbH + * + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2016, ownCloud GmbH * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/apps/testing/lib/Controller/ConfigController.php b/apps/testing/lib/Controller/ConfigController.php index 7b3e73ab173..a7f7cc8a8bb 100644 --- a/apps/testing/lib/Controller/ConfigController.php +++ b/apps/testing/lib/Controller/ConfigController.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/testing/lib/Controller/LockingController.php b/apps/testing/lib/Controller/LockingController.php index 6056d9d5d7e..7b5c8cbf6c9 100644 --- a/apps/testing/lib/Controller/LockingController.php +++ b/apps/testing/lib/Controller/LockingController.php @@ -2,7 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/testing/lib/Controller/RateLimitTestController.php b/apps/testing/lib/Controller/RateLimitTestController.php index c43d33e5335..6ee8dde7368 100644 --- a/apps/testing/lib/Controller/RateLimitTestController.php +++ b/apps/testing/lib/Controller/RateLimitTestController.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/theming/appinfo/app.php b/apps/theming/appinfo/app.php index 941df6f73df..3d4b993f7bc 100644 --- a/apps/theming/appinfo/app.php +++ b/apps/theming/appinfo/app.php @@ -4,6 +4,8 @@ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/theming/appinfo/routes.php b/apps/theming/appinfo/routes.php index 530e13f53d4..a69ddc1a6c9 100644 --- a/apps/theming/appinfo/routes.php +++ b/apps/theming/appinfo/routes.php @@ -4,6 +4,9 @@ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> * @author oparoz <owncloud@interfasys.ch> * diff --git a/apps/theming/l10n/es_DO.js b/apps/theming/l10n/es_DO.js new file mode 100644 index 00000000000..4f98160b142 --- /dev/null +++ b/apps/theming/l10n/es_DO.js @@ -0,0 +1,39 @@ +OC.L10N.register( + "theming", + { + "Loading preview…" : "Cargando vista previa...", + "Saved" : "Guardado", + "Admin" : "Administración", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "The given name is too long" : "El nombre dado es demasiado largo", + "The given web address is too long" : "La dirección web dada es demasiado larga", + "The given slogan is too long" : "El lema dado es demasiado largo", + "The given color is invalid" : "El color dado es inválido", + "There is no error, the file uploaded with success" : "No hay errores, el archivo se cargó exitosamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", + "The uploaded file was only partially uploaded" : "La carga del archivo solo se realizó parcialmente", + "No file was uploaded" : "No se cargó el archivo", + "Missing a temporary folder" : "Falta una carpeta temporal", + "Failed to write file to disk." : "Se presentó una falla al escribir el archivo en el disco. ", + "A PHP extension stopped the file upload." : "Una extensión de PHP detuvo la carga del archivo. ", + "No file uploaded" : "No hay archivos cargados", + "Unsupported image type" : "Tipo de imagen no soportado", + "You are already using a custom theme" : "Ya estás usando un tema personalizado", + "Theming" : "Tematizar", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ", + "Name" : "Nombre", + "Reset to default" : "Restablecer al predeterminado", + "Web address" : "Dirección web", + "Web address https://…" : "Dirección web https://...", + "Slogan" : "Lema", + "Color" : "Color", + "Logo" : "Logotipo", + "Upload new logo" : "Cargar nuevo logotipo", + "Login image" : "Imágen de inicio de sesión", + "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", + "Remove background image" : "Eliminar imagen de fondo", + "reset to default" : "restaurar a predeterminado", + "Log in image" : "Imagen de inicio de sesión" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/theming/l10n/es_DO.json b/apps/theming/l10n/es_DO.json new file mode 100644 index 00000000000..866eb07f7fa --- /dev/null +++ b/apps/theming/l10n/es_DO.json @@ -0,0 +1,37 @@ +{ "translations": { + "Loading preview…" : "Cargando vista previa...", + "Saved" : "Guardado", + "Admin" : "Administración", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "The given name is too long" : "El nombre dado es demasiado largo", + "The given web address is too long" : "La dirección web dada es demasiado larga", + "The given slogan is too long" : "El lema dado es demasiado largo", + "The given color is invalid" : "El color dado es inválido", + "There is no error, the file uploaded with success" : "No hay errores, el archivo se cargó exitosamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", + "The uploaded file was only partially uploaded" : "La carga del archivo solo se realizó parcialmente", + "No file was uploaded" : "No se cargó el archivo", + "Missing a temporary folder" : "Falta una carpeta temporal", + "Failed to write file to disk." : "Se presentó una falla al escribir el archivo en el disco. ", + "A PHP extension stopped the file upload." : "Una extensión de PHP detuvo la carga del archivo. ", + "No file uploaded" : "No hay archivos cargados", + "Unsupported image type" : "Tipo de imagen no soportado", + "You are already using a custom theme" : "Ya estás usando un tema personalizado", + "Theming" : "Tematizar", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ", + "Name" : "Nombre", + "Reset to default" : "Restablecer al predeterminado", + "Web address" : "Dirección web", + "Web address https://…" : "Dirección web https://...", + "Slogan" : "Lema", + "Color" : "Color", + "Logo" : "Logotipo", + "Upload new logo" : "Cargar nuevo logotipo", + "Login image" : "Imágen de inicio de sesión", + "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", + "Remove background image" : "Eliminar imagen de fondo", + "reset to default" : "restaurar a predeterminado", + "Log in image" : "Imagen de inicio de sesión" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/theming/l10n/es_EC.js b/apps/theming/l10n/es_EC.js new file mode 100644 index 00000000000..4f98160b142 --- /dev/null +++ b/apps/theming/l10n/es_EC.js @@ -0,0 +1,39 @@ +OC.L10N.register( + "theming", + { + "Loading preview…" : "Cargando vista previa...", + "Saved" : "Guardado", + "Admin" : "Administración", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "The given name is too long" : "El nombre dado es demasiado largo", + "The given web address is too long" : "La dirección web dada es demasiado larga", + "The given slogan is too long" : "El lema dado es demasiado largo", + "The given color is invalid" : "El color dado es inválido", + "There is no error, the file uploaded with success" : "No hay errores, el archivo se cargó exitosamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", + "The uploaded file was only partially uploaded" : "La carga del archivo solo se realizó parcialmente", + "No file was uploaded" : "No se cargó el archivo", + "Missing a temporary folder" : "Falta una carpeta temporal", + "Failed to write file to disk." : "Se presentó una falla al escribir el archivo en el disco. ", + "A PHP extension stopped the file upload." : "Una extensión de PHP detuvo la carga del archivo. ", + "No file uploaded" : "No hay archivos cargados", + "Unsupported image type" : "Tipo de imagen no soportado", + "You are already using a custom theme" : "Ya estás usando un tema personalizado", + "Theming" : "Tematizar", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ", + "Name" : "Nombre", + "Reset to default" : "Restablecer al predeterminado", + "Web address" : "Dirección web", + "Web address https://…" : "Dirección web https://...", + "Slogan" : "Lema", + "Color" : "Color", + "Logo" : "Logotipo", + "Upload new logo" : "Cargar nuevo logotipo", + "Login image" : "Imágen de inicio de sesión", + "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", + "Remove background image" : "Eliminar imagen de fondo", + "reset to default" : "restaurar a predeterminado", + "Log in image" : "Imagen de inicio de sesión" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/theming/l10n/es_EC.json b/apps/theming/l10n/es_EC.json new file mode 100644 index 00000000000..866eb07f7fa --- /dev/null +++ b/apps/theming/l10n/es_EC.json @@ -0,0 +1,37 @@ +{ "translations": { + "Loading preview…" : "Cargando vista previa...", + "Saved" : "Guardado", + "Admin" : "Administración", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "The given name is too long" : "El nombre dado es demasiado largo", + "The given web address is too long" : "La dirección web dada es demasiado larga", + "The given slogan is too long" : "El lema dado es demasiado largo", + "The given color is invalid" : "El color dado es inválido", + "There is no error, the file uploaded with success" : "No hay errores, el archivo se cargó exitosamente", + "The uploaded file exceeds the upload_max_filesize directive in php.ini" : "El archivo cargado excede el valor establecido en la directiva upload_max_filesize en el archivo php.ini", + "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "El archivo cargado excede el valor especificado de la directiva MAX_FILE_SIZE en la forma de HTML", + "The uploaded file was only partially uploaded" : "La carga del archivo solo se realizó parcialmente", + "No file was uploaded" : "No se cargó el archivo", + "Missing a temporary folder" : "Falta una carpeta temporal", + "Failed to write file to disk." : "Se presentó una falla al escribir el archivo en el disco. ", + "A PHP extension stopped the file upload." : "Una extensión de PHP detuvo la carga del archivo. ", + "No file uploaded" : "No hay archivos cargados", + "Unsupported image type" : "Tipo de imagen no soportado", + "You are already using a custom theme" : "Ya estás usando un tema personalizado", + "Theming" : "Tematizar", + "Theming makes it possible to easily customize the look and feel of your instance and supported clients. This will be visible for all users." : "El tematizar hace posible personalizar facilmente la manera en que se ve tu instancia y clientes soportados. Esto será visible para todos los usuarios. ", + "Name" : "Nombre", + "Reset to default" : "Restablecer al predeterminado", + "Web address" : "Dirección web", + "Web address https://…" : "Dirección web https://...", + "Slogan" : "Lema", + "Color" : "Color", + "Logo" : "Logotipo", + "Upload new logo" : "Cargar nuevo logotipo", + "Login image" : "Imágen de inicio de sesión", + "Upload new login background" : "Cargar nueva imagen de fondo para inicio de sesión", + "Remove background image" : "Eliminar imagen de fondo", + "reset to default" : "restaurar a predeterminado", + "Log in image" : "Imagen de inicio de sesión" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/theming/lib/Capabilities.php b/apps/theming/lib/Capabilities.php index d94a65f21c1..b43779a27b5 100644 --- a/apps/theming/lib/Capabilities.php +++ b/apps/theming/lib/Capabilities.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, Joas Schilling <coding@schilljs.com> * + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> * * @license GNU AGPL version 3 or any later version * @@ -66,14 +68,15 @@ class Capabilities implements IPublicCapability { */ public function getCapabilities() { $backgroundLogo = $this->config->getAppValue('theming', 'backgroundMime', false); - + $color = $this->theming->getColorPrimary(); return [ 'theming' => [ 'name' => $this->theming->getName(), 'url' => $this->theming->getBaseUrl(), 'slogan' => $this->theming->getSlogan(), - 'color' => $this->theming->getColorPrimary(), - 'color-text' => $this->util->invertTextColor($this->theming->getColorPrimary()) ? '#000000' : '#FFFFFF', + 'color' => $color, + 'color-text' => $this->util->invertTextColor($color) ? '#000000' : '#FFFFFF', + 'color-element' => $this->util->elementColor($color), 'logo' => $this->url->getAbsoluteURL($this->theming->getLogo()), 'background' => $backgroundLogo === 'backgroundColor' ? $this->theming->getColorPrimary() : diff --git a/apps/theming/lib/Controller/IconController.php b/apps/theming/lib/Controller/IconController.php index 5532a08c83c..7a5f76de6b6 100644 --- a/apps/theming/lib/Controller/IconController.php +++ b/apps/theming/lib/Controller/IconController.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016 Julius Haertl <jus@bitgrid.net> * + * @author Joas Schilling <coding@schilljs.com> * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/theming/lib/Controller/ThemingController.php b/apps/theming/lib/Controller/ThemingController.php index ccc2634ec14..b7777f1f907 100644 --- a/apps/theming/lib/Controller/ThemingController.php +++ b/apps/theming/lib/Controller/ThemingController.php @@ -3,10 +3,15 @@ * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org> * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Daniel Calviño Sánchez <danxuliu@gmail.com> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Joas Schilling <coding@schilljs.com> * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> - * @author oparoz <owncloud@interfasys.ch> + * @author Robin Appelman <robin@icewind.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/theming/lib/IconBuilder.php b/apps/theming/lib/IconBuilder.php index d0e26e110fc..83258341985 100644 --- a/apps/theming/lib/IconBuilder.php +++ b/apps/theming/lib/IconBuilder.php @@ -2,22 +2,24 @@ /** * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net> * + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Julius Haertl <jus@bitgrid.net> * @author Julius Härtl <jus@bitgrid.net> * * @license GNU AGPL version 3 or any later version * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/apps/theming/lib/ImageManager.php b/apps/theming/lib/ImageManager.php index 88e456a2969..14dba0d0742 100644 --- a/apps/theming/lib/ImageManager.php +++ b/apps/theming/lib/ImageManager.php @@ -2,22 +2,22 @@ /** * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net> * - * @author Julius Härtl <jus@bitgrid.net> + * @author Julius Haertl <jus@bitgrid.net> * * @license GNU AGPL version 3 or any later version * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/apps/theming/lib/Migration/ThemingImages.php b/apps/theming/lib/Migration/ThemingImages.php index f6f484be8b5..4f929746cb1 100644 --- a/apps/theming/lib/Migration/ThemingImages.php +++ b/apps/theming/lib/Migration/ThemingImages.php @@ -2,22 +2,22 @@ /** * @copyright Copyright (c) 2017 Julius Härtl <jus@bitgrid.net> * - * @author Julius Härtl <jus@bitgrid.net> + * @author Julius Haertl <jus@bitgrid.net> * * @license GNU AGPL version 3 or any later version * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/apps/theming/lib/Settings/Admin.php b/apps/theming/lib/Settings/Admin.php index c8074f386af..12f5dd2b8fa 100644 --- a/apps/theming/lib/Settings/Admin.php +++ b/apps/theming/lib/Settings/Admin.php @@ -3,6 +3,12 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author iamfool <praveenraonp@gmail.com> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Julius Haertl <jus@bitgrid.net> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/theming/lib/Settings/Section.php b/apps/theming/lib/Settings/Section.php index 6078743dead..9ec990ebe48 100644 --- a/apps/theming/lib/Settings/Section.php +++ b/apps/theming/lib/Settings/Section.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/theming/lib/ThemingDefaults.php b/apps/theming/lib/ThemingDefaults.php index 6ee546d2630..3d756bdffc8 100644 --- a/apps/theming/lib/ThemingDefaults.php +++ b/apps/theming/lib/ThemingDefaults.php @@ -3,6 +3,17 @@ * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org> * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Joachim Bauch <bauch@struktur.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/theming/lib/Util.php b/apps/theming/lib/Util.php index 83d8c7aae47..194b5eeb0d0 100644 --- a/apps/theming/lib/Util.php +++ b/apps/theming/lib/Util.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net> * + * @author Joas Schilling <coding@schilljs.com> * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * * @license GNU AGPL version 3 or any later version * @@ -79,9 +81,8 @@ class Util { $l = $this->calculateLuminance($color); if($l>0.8) { return '#555555'; - } else { - return $color; } + return $color; } /** diff --git a/apps/theming/tests/CapabilitiesTest.php b/apps/theming/tests/CapabilitiesTest.php index 8ab7f6e2c7f..17fc253fa4f 100644 --- a/apps/theming/tests/CapabilitiesTest.php +++ b/apps/theming/tests/CapabilitiesTest.php @@ -2,6 +2,10 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify @@ -67,6 +71,7 @@ class CapabilitiesTest extends TestCase { 'slogan' => 'slogan', 'color' => '#FFFFFF', 'color-text' => '#000000', + 'color-element' => '#555555', 'logo' => 'http://absolute/logo', 'background' => 'http://absolute/background', ]], @@ -76,6 +81,7 @@ class CapabilitiesTest extends TestCase { 'slogan' => 'slogan3', 'color' => '#01e4a0', 'color-text' => '#FFFFFF', + 'color-element' => '#01e4a0', 'logo' => 'http://localhost/logo5', 'background' => 'http://localhost/background6', ]], @@ -85,6 +91,7 @@ class CapabilitiesTest extends TestCase { 'slogan' => 'slogan3', 'color' => '#000000', 'color-text' => '#FFFFFF', + 'color-element' => '#000000', 'logo' => 'http://localhost/logo5', 'background' => '#000000', ]], diff --git a/apps/theming/tests/Controller/IconControllerTest.php b/apps/theming/tests/Controller/IconControllerTest.php index ca1f7fe0ff7..d92677e1f84 100644 --- a/apps/theming/tests/Controller/IconControllerTest.php +++ b/apps/theming/tests/Controller/IconControllerTest.php @@ -2,22 +2,25 @@ /** * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net> * + * @author Joas Schilling <coding@schilljs.com> + * @author Julius Haertl <jus@bitgrid.net> * @author Julius Härtl <jus@bitgrid.net> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\Theming\Tests\Controller; diff --git a/apps/theming/tests/Controller/ThemingControllerTest.php b/apps/theming/tests/Controller/ThemingControllerTest.php index e964e886e5c..54b842bc4e8 100644 --- a/apps/theming/tests/Controller/ThemingControllerTest.php +++ b/apps/theming/tests/Controller/ThemingControllerTest.php @@ -2,9 +2,15 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Daniel Calviño Sánchez <danxuliu@gmail.com> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Joas Schilling <coding@schilljs.com> * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> - * @author oparoz <owncloud@interfasys.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/theming/tests/IconBuilderTest.php b/apps/theming/tests/IconBuilderTest.php index 6821655eafe..f25f76a8180 100644 --- a/apps/theming/tests/IconBuilderTest.php +++ b/apps/theming/tests/IconBuilderTest.php @@ -2,22 +2,25 @@ /** * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net> * + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Julius Haertl <jus@bitgrid.net> * @author Julius Härtl <jus@bitgrid.net> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\Theming\Tests; diff --git a/apps/theming/tests/ImageManagerTest.php b/apps/theming/tests/ImageManagerTest.php index 65bcb4dbc06..6c0b31528fc 100644 --- a/apps/theming/tests/ImageManagerTest.php +++ b/apps/theming/tests/ImageManagerTest.php @@ -2,22 +2,23 @@ /** * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net> * - * @author Julius Härtl <jus@bitgrid.net> + * @author Julius Haertl <jus@bitgrid.net> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ namespace OCA\Theming\Tests; diff --git a/apps/theming/tests/Migration/ThemingImages.php b/apps/theming/tests/Migration/ThemingImages.php index e15d0fd1bbc..a8d066c26f7 100644 --- a/apps/theming/tests/Migration/ThemingImages.php +++ b/apps/theming/tests/Migration/ThemingImages.php @@ -2,22 +2,22 @@ /** * @copyright Copyright (c) 2017 Julius Härtl <jus@bitgrid.net> * - * @author Julius Härtl <jus@bitgrid.net> + * @author Julius Haertl <jus@bitgrid.net> * * @license GNU AGPL version 3 or any later version * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/apps/theming/tests/ServicesTest.php b/apps/theming/tests/ServicesTest.php index 1e98e67841c..a46e28235f5 100644 --- a/apps/theming/tests/ServicesTest.php +++ b/apps/theming/tests/ServicesTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/theming/tests/Settings/AdminTest.php b/apps/theming/tests/Settings/AdminTest.php index fb55640e968..4f3c9a9faaa 100644 --- a/apps/theming/tests/Settings/AdminTest.php +++ b/apps/theming/tests/Settings/AdminTest.php @@ -2,7 +2,11 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author iamfool <praveenraonp@gmail.com> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Julius Haertl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/theming/tests/Settings/SectionTest.php b/apps/theming/tests/Settings/SectionTest.php index 90d1854aebf..09abf9e34f5 100644 --- a/apps/theming/tests/Settings/SectionTest.php +++ b/apps/theming/tests/Settings/SectionTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/theming/tests/ThemingDefaultsTest.php b/apps/theming/tests/ThemingDefaultsTest.php index abd85a612c9..1bc4dfc69dc 100644 --- a/apps/theming/tests/ThemingDefaultsTest.php +++ b/apps/theming/tests/ThemingDefaultsTest.php @@ -2,8 +2,14 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/theming/tests/UtilTest.php b/apps/theming/tests/UtilTest.php index d81c253f98a..94e4c9cbcc8 100644 --- a/apps/theming/tests/UtilTest.php +++ b/apps/theming/tests/UtilTest.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net> * + * @author Joas Schilling <coding@schilljs.com> * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/twofactor_backupcodes/l10n/es_DO.js b/apps/twofactor_backupcodes/l10n/es_DO.js new file mode 100644 index 00000000000..925894cb77d --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/es_DO.js @@ -0,0 +1,18 @@ +OC.L10N.register( + "twofactor_backupcodes", + { + "Generate backup codes" : "Generar los códigos de respaldo", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Los códigos de respaldo han sido generados. Se han usado {{used}} de {{total}} códigos.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después.", + "Save backup codes" : "Guardar códigos de respaldo", + "Print backup codes" : "Imprimir códigos de respaldo", + "Regenerate backup codes" : "Regenerar códigos de respaldo", + "If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ", + "An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ", + "Nextcloud backup codes" : "Códigos de respaldo de Nextcloud", + "You created two-factor backup codes for your account" : "Creaste códigos de respaldo de dos factores para tu cuenta", + "Backup code" : "Código de respaldo", + "Use backup code" : "Usa el código de respaldo", + "Second-factor backup codes" : "Códigos de respaldo del segundo factor" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/twofactor_backupcodes/l10n/es_DO.json b/apps/twofactor_backupcodes/l10n/es_DO.json new file mode 100644 index 00000000000..3cfd05bcd37 --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/es_DO.json @@ -0,0 +1,16 @@ +{ "translations": { + "Generate backup codes" : "Generar los códigos de respaldo", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Los códigos de respaldo han sido generados. Se han usado {{used}} de {{total}} códigos.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después.", + "Save backup codes" : "Guardar códigos de respaldo", + "Print backup codes" : "Imprimir códigos de respaldo", + "Regenerate backup codes" : "Regenerar códigos de respaldo", + "If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ", + "An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ", + "Nextcloud backup codes" : "Códigos de respaldo de Nextcloud", + "You created two-factor backup codes for your account" : "Creaste códigos de respaldo de dos factores para tu cuenta", + "Backup code" : "Código de respaldo", + "Use backup code" : "Usa el código de respaldo", + "Second-factor backup codes" : "Códigos de respaldo del segundo factor" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/twofactor_backupcodes/l10n/es_EC.js b/apps/twofactor_backupcodes/l10n/es_EC.js new file mode 100644 index 00000000000..925894cb77d --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/es_EC.js @@ -0,0 +1,18 @@ +OC.L10N.register( + "twofactor_backupcodes", + { + "Generate backup codes" : "Generar los códigos de respaldo", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Los códigos de respaldo han sido generados. Se han usado {{used}} de {{total}} códigos.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después.", + "Save backup codes" : "Guardar códigos de respaldo", + "Print backup codes" : "Imprimir códigos de respaldo", + "Regenerate backup codes" : "Regenerar códigos de respaldo", + "If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ", + "An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ", + "Nextcloud backup codes" : "Códigos de respaldo de Nextcloud", + "You created two-factor backup codes for your account" : "Creaste códigos de respaldo de dos factores para tu cuenta", + "Backup code" : "Código de respaldo", + "Use backup code" : "Usa el código de respaldo", + "Second-factor backup codes" : "Códigos de respaldo del segundo factor" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/twofactor_backupcodes/l10n/es_EC.json b/apps/twofactor_backupcodes/l10n/es_EC.json new file mode 100644 index 00000000000..3cfd05bcd37 --- /dev/null +++ b/apps/twofactor_backupcodes/l10n/es_EC.json @@ -0,0 +1,16 @@ +{ "translations": { + "Generate backup codes" : "Generar los códigos de respaldo", + "Backup codes have been generated. {{used}} of {{total}} codes have been used." : "Los códigos de respaldo han sido generados. Se han usado {{used}} de {{total}} códigos.", + "These are your backup codes. Please save and/or print them as you will not be able to read the codes again later" : "Estos son tus códigos de respaldo. Por favor resguárdalos y/o imprímelos ya que no podrás leerlos otra vez después.", + "Save backup codes" : "Guardar códigos de respaldo", + "Print backup codes" : "Imprimir códigos de respaldo", + "Regenerate backup codes" : "Regenerar códigos de respaldo", + "If you regenerate backup codes, you automatically invalidate old codes." : "Si regeneras los códigos de respaldo, automáticamente invalidarás los anteriores. ", + "An error occurred while generating your backup codes" : "Se presentó un error al generar tus códigos de respaldo. ", + "Nextcloud backup codes" : "Códigos de respaldo de Nextcloud", + "You created two-factor backup codes for your account" : "Creaste códigos de respaldo de dos factores para tu cuenta", + "Backup code" : "Código de respaldo", + "Use backup code" : "Usa el código de respaldo", + "Second-factor backup codes" : "Códigos de respaldo del segundo factor" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/updatenotification/appinfo/app.php b/apps/updatenotification/appinfo/app.php index 3e966fd1276..fd1739bde55 100644 --- a/apps/updatenotification/appinfo/app.php +++ b/apps/updatenotification/appinfo/app.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/updatenotification/l10n/es_DO.js b/apps/updatenotification/l10n/es_DO.js new file mode 100644 index 00000000000..7753f5b5a04 --- /dev/null +++ b/apps/updatenotification/l10n/es_DO.js @@ -0,0 +1,28 @@ +OC.L10N.register( + "updatenotification", + { + "Update notifications" : "Actualizar notificaciones", + "Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual", + "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ", + "Channel updated" : "Canal actualizado", + "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ", + "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ", + "Update to %1$s is available." : "La actualización a %1$s está disponible. ", + "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.", + "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.", + "A new version is available: %s" : "Una nueva versión está disponible: %s", + "Open updater" : "Abrir actualizador", + "Download now" : "Descargar ahora", + "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.", + "Your version is up to date." : "Tu verisón está actualizada.", + "Checked on %s" : "Verificado el %s", + "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:", + "Update channel:" : "Actualizar el canal:", + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Siempre puedes actualizar a una versión más reciente / canal experimental. Sin embargo nunca podrás desactualizar la versión a un canal más estable. ", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles.", + "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:", + "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.", + "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ", + "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/updatenotification/l10n/es_DO.json b/apps/updatenotification/l10n/es_DO.json new file mode 100644 index 00000000000..5dea8ca3eec --- /dev/null +++ b/apps/updatenotification/l10n/es_DO.json @@ -0,0 +1,26 @@ +{ "translations": { + "Update notifications" : "Actualizar notificaciones", + "Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual", + "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ", + "Channel updated" : "Canal actualizado", + "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ", + "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ", + "Update to %1$s is available." : "La actualización a %1$s está disponible. ", + "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.", + "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.", + "A new version is available: %s" : "Una nueva versión está disponible: %s", + "Open updater" : "Abrir actualizador", + "Download now" : "Descargar ahora", + "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.", + "Your version is up to date." : "Tu verisón está actualizada.", + "Checked on %s" : "Verificado el %s", + "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:", + "Update channel:" : "Actualizar el canal:", + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Siempre puedes actualizar a una versión más reciente / canal experimental. Sin embargo nunca podrás desactualizar la versión a un canal más estable. ", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles.", + "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:", + "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.", + "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ", + "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/updatenotification/l10n/es_EC.js b/apps/updatenotification/l10n/es_EC.js new file mode 100644 index 00000000000..7753f5b5a04 --- /dev/null +++ b/apps/updatenotification/l10n/es_EC.js @@ -0,0 +1,28 @@ +OC.L10N.register( + "updatenotification", + { + "Update notifications" : "Actualizar notificaciones", + "Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual", + "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ", + "Channel updated" : "Canal actualizado", + "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ", + "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ", + "Update to %1$s is available." : "La actualización a %1$s está disponible. ", + "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.", + "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.", + "A new version is available: %s" : "Una nueva versión está disponible: %s", + "Open updater" : "Abrir actualizador", + "Download now" : "Descargar ahora", + "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.", + "Your version is up to date." : "Tu verisón está actualizada.", + "Checked on %s" : "Verificado el %s", + "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:", + "Update channel:" : "Actualizar el canal:", + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Siempre puedes actualizar a una versión más reciente / canal experimental. Sin embargo nunca podrás desactualizar la versión a un canal más estable. ", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles.", + "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:", + "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.", + "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ", + "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/updatenotification/l10n/es_EC.json b/apps/updatenotification/l10n/es_EC.json new file mode 100644 index 00000000000..5dea8ca3eec --- /dev/null +++ b/apps/updatenotification/l10n/es_EC.json @@ -0,0 +1,26 @@ +{ "translations": { + "Update notifications" : "Actualizar notificaciones", + "Could not start updater, please try the manual update" : "No fue posible iniciar el actualizador, por favor intenta la actualización manual", + "{version} is available. Get more information on how to update." : "{version} está disponible. Obten más información de cómo actualizar. ", + "Channel updated" : "Canal actualizado", + "The update server could not be reached since %d days to check for new updates." : "El servidor de actualización no ha podido ser alcanzado desde %d días para verificar actualizaciones. ", + "Please check the Nextcloud and server log files for errors." : "Por favor verifica los archivos de bitacoras de Nextcloud y del servidor por errores. ", + "Update to %1$s is available." : "La actualización a %1$s está disponible. ", + "Update for %1$s to version %2$s is available." : "La actualización para %1$s a la versión %2$s está disponible.", + "Update for {app} to version %s is available." : "Actualización para {app} a la versión %s está disponible.", + "A new version is available: %s" : "Una nueva versión está disponible: %s", + "Open updater" : "Abrir actualizador", + "Download now" : "Descargar ahora", + "The update check is not yet finished. Please refresh the page." : "La verificación de actualización aún no termina. Por favor actualiza la página.", + "Your version is up to date." : "Tu verisón está actualizada.", + "Checked on %s" : "Verificado el %s", + "A non-default update server is in use to be checked for updates:" : "Un servidor de actualizaciones no-predeterminado está en uso para ser verficiado por actualizaciones:", + "Update channel:" : "Actualizar el canal:", + "You can always update to a newer version / experimental channel. But you can never downgrade to a more stable channel." : "Siempre puedes actualizar a una versión más reciente / canal experimental. Sin embargo nunca podrás desactualizar la versión a un canal más estable. ", + "Note that after a new release it can take some time before it shows up here. We roll out new versions spread out over time to our users and sometimes skip a version when issues are found." : "Nota que después una nueva publicación puede tomar algo de tiempo antes de que se muestre aquí. Distribuimos nuevas versiones para que sean distribuidas a través del tiempo para nuestros usuarios y algunas veces nos saltamos una versión cuando encontramos detalles.", + "Notify members of the following groups about available updates:" : "Notificar a los miembros de los siguientes grupos de las actualizaciones disponibles:", + "Only notification for app updates are available." : "Sólo se tienen disponibles notificaciones de actualizaciones de la aplicación.", + "The selected update channel makes dedicated notifications for the server obsolete." : "El canal de actualización seleccionado hace que las notificaciones dedicadas al servidor sean obsoletas. ", + "The selected update channel does not support updates of the server." : "El canal de actualización seleccionado no soporta actualizaciones del servidor. " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/updatenotification/lib/Controller/AdminController.php b/apps/updatenotification/lib/Controller/AdminController.php index fd68a6dd962..9d2a5074a4a 100644 --- a/apps/updatenotification/lib/Controller/AdminController.php +++ b/apps/updatenotification/lib/Controller/AdminController.php @@ -2,8 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/apps/updatenotification/lib/Notification/BackgroundJob.php b/apps/updatenotification/lib/Notification/BackgroundJob.php index 9155b9d2556..08baa35664f 100644 --- a/apps/updatenotification/lib/Notification/BackgroundJob.php +++ b/apps/updatenotification/lib/Notification/BackgroundJob.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/apps/updatenotification/lib/Notification/Notifier.php b/apps/updatenotification/lib/Notification/Notifier.php index 2fc1d36b0cb..cb7b89e01f5 100644 --- a/apps/updatenotification/lib/Notification/Notifier.php +++ b/apps/updatenotification/lib/Notification/Notifier.php @@ -3,7 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/updatenotification/lib/UpdateChecker.php b/apps/updatenotification/lib/UpdateChecker.php index 040a6c3a6ac..ad76de56953 100644 --- a/apps/updatenotification/lib/UpdateChecker.php +++ b/apps/updatenotification/lib/UpdateChecker.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/updatenotification/tests/Controller/AdminControllerTest.php b/apps/updatenotification/tests/Controller/AdminControllerTest.php index ebf044abffd..75588a1aec5 100644 --- a/apps/updatenotification/tests/Controller/AdminControllerTest.php +++ b/apps/updatenotification/tests/Controller/AdminControllerTest.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/apps/updatenotification/tests/ResetTokenBackgroundJobTest.php b/apps/updatenotification/tests/ResetTokenBackgroundJobTest.php index a52d46040cd..4309aed84bf 100644 --- a/apps/updatenotification/tests/ResetTokenBackgroundJobTest.php +++ b/apps/updatenotification/tests/ResetTokenBackgroundJobTest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/updatenotification/tests/UpdateCheckerTest.php b/apps/updatenotification/tests/UpdateCheckerTest.php index c5c3034dd72..f7ed83047a6 100644 --- a/apps/updatenotification/tests/UpdateCheckerTest.php +++ b/apps/updatenotification/tests/UpdateCheckerTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/apps/user_ldap/ajax/deleteConfiguration.php b/apps/user_ldap/ajax/deleteConfiguration.php index 6115ae2faa5..220f4c13c4a 100644 --- a/apps/user_ldap/ajax/deleteConfiguration.php +++ b/apps/user_ldap/ajax/deleteConfiguration.php @@ -4,10 +4,10 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> - * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/user_ldap/ajax/getConfiguration.php b/apps/user_ldap/ajax/getConfiguration.php index 34ac97f29e7..a6c3d975782 100644 --- a/apps/user_ldap/ajax/getConfiguration.php +++ b/apps/user_ldap/ajax/getConfiguration.php @@ -3,8 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Christopher Schäpers <kondou@ts.unde.re> * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * diff --git a/apps/user_ldap/ajax/getNewServerConfigPrefix.php b/apps/user_ldap/ajax/getNewServerConfigPrefix.php index 536aab4bc87..d65e9add563 100644 --- a/apps/user_ldap/ajax/getNewServerConfigPrefix.php +++ b/apps/user_ldap/ajax/getNewServerConfigPrefix.php @@ -5,6 +5,7 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/ajax/testConfiguration.php b/apps/user_ldap/ajax/testConfiguration.php index d48a6be9382..1b33a025440 100644 --- a/apps/user_ldap/ajax/testConfiguration.php +++ b/apps/user_ldap/ajax/testConfiguration.php @@ -2,9 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Allan Nordhøy <epost@anotheragency.no> * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/apps/user_ldap/ajax/wizard.php b/apps/user_ldap/ajax/wizard.php index 60102c72b40..b38761b0f22 100644 --- a/apps/user_ldap/ajax/wizard.php +++ b/apps/user_ldap/ajax/wizard.php @@ -4,9 +4,12 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php index 5239e52234a..f371ef9efb3 100644 --- a/apps/user_ldap/appinfo/app.php +++ b/apps/user_ldap/appinfo/app.php @@ -3,13 +3,13 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Bart Visscher <bartv@thisnet.nl> - * @author Christopher Schäpers <kondou@ts.unde.re> * @author Dominik Schmidt <dev@dominik-schmidt.de> * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin Appelman <robin@icewind.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -27,6 +27,13 @@ * */ +\OC::$server->registerService('LDAPUserPluginManager', function() { + return new OCA\User_LDAP\UserPluginManager(); +}); +\OC::$server->registerService('LDAPGroupPluginManager', function() { + return new OCA\User_LDAP\GroupPluginManager(); +}); + $helper = new \OCA\User_LDAP\Helper(\OC::$server->getConfig()); $configPrefixes = $helper->getServerConfigurationPrefixes(true); if(count($configPrefixes) > 0) { @@ -46,12 +53,19 @@ if(count($configPrefixes) > 0) { }); $userSession = \OC::$server->getUserSession(); + $userPluginManager = \OC::$server->query('LDAPUserPluginManager'); + $groupPluginManager = \OC::$server->query('LDAPGroupPluginManager'); + $userBackend = new OCA\User_LDAP\User_Proxy( - $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager, $userSession + $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager, $userSession, $userPluginManager ); - $groupBackend = new OCA\User_LDAP\Group_Proxy($configPrefixes, $ldapWrapper); + $groupBackend = new OCA\User_LDAP\Group_Proxy($configPrefixes, $ldapWrapper, $groupPluginManager); // register user backend OC_User::useBackend($userBackend); + + // Hook to allow plugins to work on registered backends + OC::$server->getEventDispatcher()->dispatch('OCA\\User_LDAP\\User\\User::postLDAPBackendAdded'); + \OC::$server->getGroupManager()->addBackend($groupBackend); } diff --git a/apps/user_ldap/appinfo/install.php b/apps/user_ldap/appinfo/install.php index 09f9b412342..f0701c66455 100644 --- a/apps/user_ldap/appinfo/install.php +++ b/apps/user_ldap/appinfo/install.php @@ -4,7 +4,8 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Roger Szabo <roger.szabo@web.de> + * @author Morris Jobke <hey@morrisjobke.de> + * @author root <root@localhost.localdomain> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/appinfo/register_command.php b/apps/user_ldap/appinfo/register_command.php index bd706e61f22..a9de74e1ec2 100644 --- a/apps/user_ldap/appinfo/register_command.php +++ b/apps/user_ldap/appinfo/register_command.php @@ -5,6 +5,9 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -37,7 +40,8 @@ $uBackend = new User_Proxy( new LDAP(), $ocConfig, \OC::$server->getNotificationManager(), - \OC::$server->getUserSession() + \OC::$server->getUserSession(), + \OC::$server->query('LDAPUserPluginManager') ); $deletedUsersIndex = new DeletedUsersIndex( $ocConfig, $dbConnection, $userMapping diff --git a/apps/user_ldap/appinfo/routes.php b/apps/user_ldap/appinfo/routes.php index 39964838d48..c86e16eb8f9 100644 --- a/apps/user_ldap/appinfo/routes.php +++ b/apps/user_ldap/appinfo/routes.php @@ -2,8 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roger Szabo <roger.szabo@web.de> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/appinfo/update.php b/apps/user_ldap/appinfo/update.php index f6f7389dd5f..7c0adbc048e 100644 --- a/apps/user_ldap/appinfo/update.php +++ b/apps/user_ldap/appinfo/update.php @@ -1,8 +1,11 @@ <?php /** - * * @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de) * + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/user_ldap/composer/composer/autoload_classmap.php b/apps/user_ldap/composer/composer/autoload_classmap.php index 6558af00212..0962fe2c4eb 100644 --- a/apps/user_ldap/composer/composer/autoload_classmap.php +++ b/apps/user_ldap/composer/composer/autoload_classmap.php @@ -24,9 +24,13 @@ return array( 'OCA\\User_LDAP\\Exceptions\\ConstraintViolationException' => $baseDir . '/../lib/Exceptions/ConstraintViolationException.php', 'OCA\\User_LDAP\\Exceptions\\NotOnLDAP' => $baseDir . '/../lib/Exceptions/NotOnLDAP.php', 'OCA\\User_LDAP\\FilesystemHelper' => $baseDir . '/../lib/FilesystemHelper.php', + 'OCA\\User_LDAP\\GroupPluginManager' => $baseDir . '/../lib/GroupPluginManager.php', 'OCA\\User_LDAP\\Group_LDAP' => $baseDir . '/../lib/Group_LDAP.php', 'OCA\\User_LDAP\\Group_Proxy' => $baseDir . '/../lib/Group_Proxy.php', 'OCA\\User_LDAP\\Helper' => $baseDir . '/../lib/Helper.php', + 'OCA\\User_LDAP\\IGroupLDAP' => $baseDir . '/../lib/IGroupLDAP.php', + 'OCA\\User_LDAP\\ILDAPGroupPlugin' => $baseDir . '/../lib/ILDAPGroupPlugin.php', + 'OCA\\User_LDAP\\ILDAPUserPlugin' => $baseDir . '/../lib/ILDAPUserPlugin.php', 'OCA\\User_LDAP\\ILDAPWrapper' => $baseDir . '/../lib/ILDAPWrapper.php', 'OCA\\User_LDAP\\IUserLDAP' => $baseDir . '/../lib/IUserLDAP.php', 'OCA\\User_LDAP\\Jobs\\CleanUp' => $baseDir . '/../lib/Jobs/CleanUp.php', @@ -47,6 +51,7 @@ return array( 'OCA\\User_LDAP\\Proxy' => $baseDir . '/../lib/Proxy.php', 'OCA\\User_LDAP\\Settings\\Admin' => $baseDir . '/../lib/Settings/Admin.php', 'OCA\\User_LDAP\\Settings\\Section' => $baseDir . '/../lib/Settings/Section.php', + 'OCA\\User_LDAP\\UserPluginManager' => $baseDir . '/../lib/UserPluginManager.php', 'OCA\\User_LDAP\\User\\DeletedUsersIndex' => $baseDir . '/../lib/User/DeletedUsersIndex.php', 'OCA\\User_LDAP\\User\\IUserTools' => $baseDir . '/../lib/User/IUserTools.php', 'OCA\\User_LDAP\\User\\Manager' => $baseDir . '/../lib/User/Manager.php', diff --git a/apps/user_ldap/composer/composer/autoload_static.php b/apps/user_ldap/composer/composer/autoload_static.php index f80900f7904..ece7dd69d27 100644 --- a/apps/user_ldap/composer/composer/autoload_static.php +++ b/apps/user_ldap/composer/composer/autoload_static.php @@ -39,9 +39,13 @@ class ComposerStaticInitUser_LDAP 'OCA\\User_LDAP\\Exceptions\\ConstraintViolationException' => __DIR__ . '/..' . '/../lib/Exceptions/ConstraintViolationException.php', 'OCA\\User_LDAP\\Exceptions\\NotOnLDAP' => __DIR__ . '/..' . '/../lib/Exceptions/NotOnLDAP.php', 'OCA\\User_LDAP\\FilesystemHelper' => __DIR__ . '/..' . '/../lib/FilesystemHelper.php', + 'OCA\\User_LDAP\\GroupPluginManager' => __DIR__ . '/..' . '/../lib/GroupPluginManager.php', 'OCA\\User_LDAP\\Group_LDAP' => __DIR__ . '/..' . '/../lib/Group_LDAP.php', 'OCA\\User_LDAP\\Group_Proxy' => __DIR__ . '/..' . '/../lib/Group_Proxy.php', 'OCA\\User_LDAP\\Helper' => __DIR__ . '/..' . '/../lib/Helper.php', + 'OCA\\User_LDAP\\IGroupLDAP' => __DIR__ . '/..' . '/../lib/IGroupLDAP.php', + 'OCA\\User_LDAP\\ILDAPGroupPlugin' => __DIR__ . '/..' . '/../lib/ILDAPGroupPlugin.php', + 'OCA\\User_LDAP\\ILDAPUserPlugin' => __DIR__ . '/..' . '/../lib/ILDAPUserPlugin.php', 'OCA\\User_LDAP\\ILDAPWrapper' => __DIR__ . '/..' . '/../lib/ILDAPWrapper.php', 'OCA\\User_LDAP\\IUserLDAP' => __DIR__ . '/..' . '/../lib/IUserLDAP.php', 'OCA\\User_LDAP\\Jobs\\CleanUp' => __DIR__ . '/..' . '/../lib/Jobs/CleanUp.php', @@ -62,6 +66,7 @@ class ComposerStaticInitUser_LDAP 'OCA\\User_LDAP\\Proxy' => __DIR__ . '/..' . '/../lib/Proxy.php', 'OCA\\User_LDAP\\Settings\\Admin' => __DIR__ . '/..' . '/../lib/Settings/Admin.php', 'OCA\\User_LDAP\\Settings\\Section' => __DIR__ . '/..' . '/../lib/Settings/Section.php', + 'OCA\\User_LDAP\\UserPluginManager' => __DIR__ . '/..' . '/../lib/UserPluginManager.php', 'OCA\\User_LDAP\\User\\DeletedUsersIndex' => __DIR__ . '/..' . '/../lib/User/DeletedUsersIndex.php', 'OCA\\User_LDAP\\User\\IUserTools' => __DIR__ . '/..' . '/../lib/User/IUserTools.php', 'OCA\\User_LDAP\\User\\Manager' => __DIR__ . '/..' . '/../lib/User/Manager.php', diff --git a/apps/user_ldap/l10n/es_DO.js b/apps/user_ldap/l10n/es_DO.js new file mode 100644 index 00000000000..63d3d71e0a9 --- /dev/null +++ b/apps/user_ldap/l10n/es_DO.js @@ -0,0 +1,197 @@ +OC.L10N.register( + "user_ldap", + { + "Failed to clear the mappings." : "Se presentó una falla al borrar los mapeos.", + "Failed to delete the server configuration" : "Se presentó una falla al borrar la configuración del servidor", + "Invalid configuration: Anonymous binding is not allowed." : "Configuración inválida: La vinculación anónima no está permitida. ", + "Valid configuration, connection established!" : "¡Configuración válida, conexión establecida!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuración válida, pero la vinculación falló. Por favor verifica la configuración del servidor y las credenciales.", + "Invalid configuration. Please have a look at the logs for further details." : "Configuración inválida. Por favor verifica las bitácoras para más detalles.", + "No action specified" : "No se ha especificado alguna acción", + "No configuration specified" : "No se ha especificado una configuración", + "No data specified" : "No se han especificado datos", + " Could not set configuration %s" : "No fue posible establecer la configuración %s", + "Action does not exist" : "La acción no existe", + "LDAP user and group backend" : "Backend de LDAP para usuario y grupo", + "Renewing …" : "Renovando ...", + "Very weak password" : "Contraseña muy debil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "The Base DN appears to be wrong" : "El DN Base parece estar incorrecto", + "Testing configuration…" : "Probando configuración... ", + "Configuration incorrect" : "Configuración Incorrecta", + "Configuration incomplete" : "Configuración incompleta", + "Configuration OK" : "Configuración correcta", + "Select groups" : "Seleccionar grupos", + "Select object classes" : "Seleccionar las clases de objeto", + "Please check the credentials, they seem to be wrong." : "Por favor verifica tus credenciales, al parecer están equivocadas.", + "Please specify the port, it could not be auto-detected." : "No fue posible auto-detectar el puerto, por favor especifícalo.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "No fue posible auto detectar el DN Base, por favor verifica las credenciales, servidor y puerto.", + "Could not detect Base DN, please enter it manually." : "No fue posible detectar el DN Base, por favor ingreésalo manualmente.", + "{nthServer}. Server" : "{nthServer}. Servidor", + "No object found in the given Base DN. Please revise." : "No fue posible encontrar ningún objeto en el DN Base dado. Por favor verifica.", + "More than 1,000 directory entries available." : "Se encuentran disponibles más de 1,000 elementos de directoiros. ", + " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Se presentó un error. Por favor verifica la DN Base, así como las configuraciones de la conexión y las credenciales.", + "Do you really want to delete the current Server Configuration?" : "¿Realmente deseas eliminar la configuración actual del servidor?", + "Confirm Deletion" : "Confirmar el borrado", + "Mappings cleared successfully!" : "¡Los mapeos se borraron exitosamente!", + "Error while clearing the mappings." : "Se presentó un error al borrar los mapeos. ", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "La vinculación anónima no está permitida. Por favor proporciona un Usuario DN y una Contaseña.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Error de Operaciones LDAP. Las vinculaciones anónimas pueden no estar permitidas. ", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Se presentó una falla en el guardado. Por favor verifica que la base de datos esté operando. Vuelve a cargar antes de continuar. ", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar la modalidad habilitará las consultas automaticas de LDAP. Dependiendo del tamaño de su LDAP esto puede tomar algun tiempo. ¿Aún desea cambiar la modalidad?", + "Mode switch" : "Cambio de modo", + "Select attributes" : "Seleccionar atributos", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Usuario no encontrado. Por favor verifica tus atributos de inicio de sesión y tu usuario. Filtro aplicado (para copiar-y-pegar para una validación de línea de comando): <br/>", + "User found and settings verified." : "Usuario encontrado y configuraciones verificadas. ", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Considera refinar la búsqueda, ya que abarca demasiados usuarios y solo el primero de ellos podrá iniciar sesión. ", + "An unspecified error occurred. Please check log and settings." : "Se presentó un error inesperado. Por fvor verifica la bitácora y las configuraciones.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtro de la búsqueda es inválido, posiblemente debido a temas de sintaxis como un número diferente de corchetes abiertos y cerrados. Por favor verifícalo. ", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Se presentó una falla con la conexión al servidor LDAP / AD, por favor verifica el servidor, puerto y credenciales. ", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Falta el \"%uid\" del marcador de posición. Será reemplazado con el nombre de usuario al consultar LDAP / AD.", + "Please provide a login name to test against" : "Favor de proporcionar un nombre de usuario contra el cual probar", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "El cuadro de grupo está deshabilitado, porque el servidor LDAP / AD no soporta memberOf.", + "Password change rejected. Hint: " : "Cambio de contraseña rechazado. Pista: ", + "Please login with the new password" : "Por favor inicia sesion con la nueva contraseña", + "Your password will expire tomorrow." : "Tu contraseña expirará mañana.", + "Your password will expire today." : "Tu contraseña expirará el día de hoy. ", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["La contraseña expirará dentro de %n día. ","La contraseña expirará dentro de %n días. "], + "LDAP / AD integration" : "Integración con LDAP / AD", + "_%s group found_::_%s groups found_" : ["Grupo %s encontrado","%s grupos encontrados"], + "_%s user found_::_%s users found_" : ["Usuario %s encontrado","%s usuarios encontrados"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "No fue posible detectar el atributo del nombre a desplegar del usuario. Por favor especifícalo tú mismo en las configuraciones avanzadas de LDAP. ", + "Could not find the desired feature" : "No fue posible encontrar la función deseada.", + "Invalid Host" : "Servidor inválido", + "Test Configuration" : "Probar configuración", + "Help" : "Ayuda", + "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen con los siguientes criterios están disponibles en %s:", + "Only these object classes:" : "Sólo estas clases de objetos:", + "Only from these groups:" : "Sólo desde estos grupos:", + "Search groups" : "Buscar grupos", + "Available groups" : "Grupos disponibles", + "Selected groups" : "Grupos seleccionados", + "Edit LDAP Query" : "Editar consulta a LDAP", + "LDAP Filter:" : "Filtro de LDAP:", + "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica cuales grupos LDAP tendrán acceso a la instancia %s.", + "Verify settings and count the groups" : "Verificar las configuraciones y contar los grupos", + "When logging in, %s will find the user based on the following attributes:" : "Al iniciar sesion, %s encontrará al usuario con base en los siguientes atributos:", + "LDAP / AD Username:" : "Usuario LDAP / AD:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Permite iniciar sesión contra el usuario LDAP / AD que es ya sea \"uid\" o \"sAMAccountName\" y será detectado. ", + "LDAP / AD Email Address:" : "Dirección de correo electrónico LDAP / AD", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Permite iniciar sesión contra el atributo de email. \"mail\" y \"mailPrimaryAddresw\" está permitido. ", + "Other Attributes:" : "Otros atributos:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Define el filtro a aplicar cuando se intenta iniciar sesión. \"%% uid\" remplaza el usuario en la acción de inicio de sesión. Ejemplo: \"uid=%% uid\"", + "Test Loginname" : "Probar nombre de usuario", + "Verify settings" : "Verificar configuraciones ", + "1. Server" : "1. Servidor", + "%s. Server:" : "%s. Servidor:", + "Add a new configuration" : "Agregar una nueva configuración", + "Copy current configuration into new directory binding" : "Copiar la configuración actual a un nuevo directorio de vinculación", + "Delete the current configuration" : "Borrar la configuración actual", + "Host" : "Servidor", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Puedes omitir el protocolo, a menos que requiera SSL. Si es el caso, empieza con ldaps://", + "Port" : "Puerto", + "Detect Port" : "Detectar Puerto", + "User DN" : "DN del usuario", + "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", + "Password" : "Contraseña", + "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "One Base DN per line" : "Un DN Base por línea", + "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", + "Detect Base DN" : "Detectar DN Base", + "Test Base DN" : "Probar el DN Base", + "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita solicitudes automaticas de LDAP. Es mejor para ambientes más grandes pero requiere mayor conocimiento de LDAP. ", + "Manually enter LDAP filters (recommended for large directories)" : "Ingresar los filtros LDAP manualmente (recomendado para directorios grandes)", + "Listing and searching for users is constrained by these criteria:" : "Los enlistados y las busquedas para los usuarios están acotados por estos criterios:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las clases de objetos más comunes para usuarios son organizationalPerson, person, user, and inetOrgPerson. Si no estás seguro de cuál clase de objeto selecciónar, por favor consulta tu directorio admin.", + "The filter specifies which LDAP users shall have access to the %s instance." : "El filtro especifica cuáles usuarios LDAP tendrán acceso a la instancia %s.", + "Verify settings and count users" : "Verificar configuraciones y contar ususarios", + "Saving" : "Guardando", + "Back" : "Atrás", + "Continue" : "Continuar", + "Please renew your password." : "Por favor renueva tu contraseña.", + "An internal error occurred." : "Se presentó un error interno. ", + "Please try again or contact your administrator." : "Por favor inténtarlo de nuevo o contacta a tu administrador. ", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Renew password" : "Renovar contraseña", + "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?", + "Wrong password." : "Contraseña incorrecta. ", + "Cancel" : "Cancelar", + "LDAP" : "LDAP", + "Server" : "Servidor", + "Users" : "Usuarios", + "Login Attributes" : "Atributos de Inicio de Sesión", + "Groups" : "Grupos", + "Expert" : "Experto", + "Advanced" : "Avanzado", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el backend no funcionará. Por favor solicita su instalación a tu administrador del sistema.", + "Connection Settings" : "Configuraciones de la conexión", + "Configuration Active" : "Configuracion Activa", + "When unchecked, this configuration will be skipped." : "Cuando no esté seleccionada, esta configuración será omitida.", + "Backup (Replica) Host" : "Servidor de copia de seguridad (Replica)", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Por favor proporciona un servidor de copia de seguridad opcional. Debe ser una réplica del servidor LDAP / AD principal.", + "Backup (Replica) Port" : "Puerto para copias de seguridad (Réplica)", + "Disable Main Server" : "Deshabilitar servidor principal", + "Only connect to the replica server." : "Sólo contectarse al servidor de réplica.", + "Turn off SSL certificate validation." : "Deshabilitar la validación del certificado SSL.", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "¡No se recomienda, úsalo únicamente para pruebas! Si la conexión sólo funciona con esta opción, importa el certificado SSL del servidor LDAP a tu servidor %s.", + "Cache Time-To-Live" : "Tiempo de vida del caché", + "in seconds. A change empties the cache." : "en segundos. Un cambio vacía la caché.", + "Directory Settings" : "Configuraciones del directorio", + "User Display Name Field" : "Campo de Usuario a desplegar", + "The LDAP attribute to use to generate the user's display name." : "El atributo LDAP a usar para generar el nombre del usuario a desplegar.", + "2nd User Display Name Field" : "2do Campo de Nombre a Desplegar del Usuario", + "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributo LDAP puede ser agregado al nombre a despelegar entre corchetes. Ejemplos de resultados »John Doe (john.doe@example.org)«.", + "Base User Tree" : "Árbol de Usuario Base", + "One User Base DN per line" : "Un Usuario Base de DN por línea", + "User Search Attributes" : "Atributos de búsqueda de usuario", + "Optional; one attribute per line" : "Opcional; un atributo por línea", + "Group Display Name Field" : "Campo de Nombre de Grupo a Desplegar", + "The LDAP attribute to use to generate the groups's display name." : "El atributo LDAP a usar para generar el nombre para mostrar del grupo.", + "Base Group Tree" : "Árbol base de grupo", + "One Group Base DN per line" : "Un DN Base de Grupo por línea", + "Group Search Attributes" : "Atributos de Búsqueda de Grupo", + "Group-Member association" : "Asociación Grupo-Miembro", + "Dynamic Group Member URL" : "URL Dinámico de Miembro de Grupo ", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "El atributo de LDAP que, en objetos de grupo, contiene una URL de búsqueda LDAP que determina cuáles objetos pertenecen al grupo. (Un ajuste vacío deshabilita la funcionalidad de membrecía de grupo dinámica.)", + "Nested Groups" : "Grupos Anidados", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Cuando está activado, los grupos que contengan grupos están soportados. (Sólo funciona si el atributo de miembro de grupo contiene los DNs). ", + "Paging chunksize" : "Tamaño del chunk de paginación", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "El tamaño de chunk usado para las búsquedas con paginación de LDAP puede regresar resuldados volumniosos tales como enumeraciones de usuarios o grupos. (Establecerlo a 0 deshabilita las búsquedas con paginación en estos casos). ", + "Enable LDAP password changes per user" : "Habilitar cambio de contraseñas en LDAP por el usuario", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Permitir que los usuarios LDAP puedan cambiar su contraseña y permitir a los Super Administradortes y Administradores de grupo cambiar la contraseña de sus usuarios LDAP. Únicamente funciona cuando la configuración de las poiíticas de control de acceso en el servidor LDAP está alineada. Como las contraseñas son enviadas en texto plano al servidor LDAP, se debe usar encripción en el transporte y del mismo modo se debe configurar el uso de funciones de resumen en el servidor LDAP", + "(New password is sent as plain text to LDAP)" : "(La nueva contraseña se envía como texto plano a LDAP)", + "Default password policy DN" : "DN de la política predeterminada de contraseñas", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "El DN de la política de contraseñas predeterminada que será usada para el manejo de expiración de contraseñas. Sólo funciona cuando está habilitado el cambio de contraseñas por el usuario y sólo está soportado para OpenLDAP. Déjalo en blanco para deshabilitar el manejo de expiración de contraseñas.", + "Special Attributes" : "Atributos Especiales", + "Quota Field" : "Campo de cuota", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Dejar en blanco para usar la cuota predeterminada del usuario. En caso contrario, por favor especifica el atributo LDAP / AD.", + "Quota Default" : "Cuota predeterminada", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Anular la cuota predeterminada para usuarios LDAP que no tienen una cuota establecida en el Campo Cuota. ", + "Email Field" : "Campo de correo electrónico", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Establecer el correo electrónico del usuario con base en el atributo LDAP. Déjalo vacío para el comportamiento predeterminado. ", + "User Home Folder Naming Rule" : "Regla de Nomenclatura para la Carpeta Inicio del Usuario", + "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Dejar vacío para el usuario (predeterminado). En caso contrario, especifica un atributo LDAP/AD.", + "Internal Username" : "Usuario interno", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Por defecto, el usuario interno se creará con base en el atributo UUID. Ésto asegura que el nombre de usuario sea único y que los caracteres no tengan que ser convertidos. El usuario intenro tiene la restricción de que sólo permite los siguientes caracteres: [ a-zA-Z0-9_.@- ]. El resto de los caracteres son reemplazados con su correspondencia ASCII o simplemente se omiten. En caso de colisiones, se agregará/ incrementará un número. El usuario interno se usa para identificar a un usuario internamente. Adicionalmente es el nombre predeterminado para la carpeta de inicio. También es parte de las URLs remotas, por ejemplo, para todos los servicios *DAV. Con este ajuste se puede anular el comportamiento predeterminado. Déjalo vacío para mantener el comportamiento predeterminado. Los cambios surtiran efecto sólo en los usuarios mapeados (agregados) nuevos a LDAP. ", + "Internal Username Attribute:" : "Atributo de nombre de usuario Interno:", + "Override UUID detection" : "Anular la detección UUID", + "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defecto, el atributo UUID se detecta automáticamente. Este atributo se usa para identificar, sin ninguna duda, a usuarios y grupos LDAP. Adicionalmente, el usuario interno se creará con base en el UUID, si no ha sido especificado otro comportamiento en la parte de arriba. Puedes anular la configuración y proporcionar el atributo que quieras. Debes asegurarte de que el atributo que quieres sea accesible por los usuarios y grupos y que sea único. Mantenlo vacío para tener el comportamiento predeterminado. Los cambios surtirán efecto sólo en los usuarios y grupos mapeados (agregados) nuevos a LDAP.", + "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", + "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", + "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", + "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", + "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "El id %u del marcador de posición falta. Será reemplazado con el usuario al consultar LDAP / AD.", + "Verify settings and count groups" : "Verificar configuraciones y contar grupos", + "Add a new and blank configuration" : "Agregar una configuración nueva y en blanco", + "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Puedes omitir el protocolo, excepto si requieres SSL. En ese caso, empieza con ldaps://", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "in bytes" : "en bytes" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_DO.json b/apps/user_ldap/l10n/es_DO.json new file mode 100644 index 00000000000..eefeb9a037f --- /dev/null +++ b/apps/user_ldap/l10n/es_DO.json @@ -0,0 +1,195 @@ +{ "translations": { + "Failed to clear the mappings." : "Se presentó una falla al borrar los mapeos.", + "Failed to delete the server configuration" : "Se presentó una falla al borrar la configuración del servidor", + "Invalid configuration: Anonymous binding is not allowed." : "Configuración inválida: La vinculación anónima no está permitida. ", + "Valid configuration, connection established!" : "¡Configuración válida, conexión establecida!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuración válida, pero la vinculación falló. Por favor verifica la configuración del servidor y las credenciales.", + "Invalid configuration. Please have a look at the logs for further details." : "Configuración inválida. Por favor verifica las bitácoras para más detalles.", + "No action specified" : "No se ha especificado alguna acción", + "No configuration specified" : "No se ha especificado una configuración", + "No data specified" : "No se han especificado datos", + " Could not set configuration %s" : "No fue posible establecer la configuración %s", + "Action does not exist" : "La acción no existe", + "LDAP user and group backend" : "Backend de LDAP para usuario y grupo", + "Renewing …" : "Renovando ...", + "Very weak password" : "Contraseña muy debil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "The Base DN appears to be wrong" : "El DN Base parece estar incorrecto", + "Testing configuration…" : "Probando configuración... ", + "Configuration incorrect" : "Configuración Incorrecta", + "Configuration incomplete" : "Configuración incompleta", + "Configuration OK" : "Configuración correcta", + "Select groups" : "Seleccionar grupos", + "Select object classes" : "Seleccionar las clases de objeto", + "Please check the credentials, they seem to be wrong." : "Por favor verifica tus credenciales, al parecer están equivocadas.", + "Please specify the port, it could not be auto-detected." : "No fue posible auto-detectar el puerto, por favor especifícalo.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "No fue posible auto detectar el DN Base, por favor verifica las credenciales, servidor y puerto.", + "Could not detect Base DN, please enter it manually." : "No fue posible detectar el DN Base, por favor ingreésalo manualmente.", + "{nthServer}. Server" : "{nthServer}. Servidor", + "No object found in the given Base DN. Please revise." : "No fue posible encontrar ningún objeto en el DN Base dado. Por favor verifica.", + "More than 1,000 directory entries available." : "Se encuentran disponibles más de 1,000 elementos de directoiros. ", + " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Se presentó un error. Por favor verifica la DN Base, así como las configuraciones de la conexión y las credenciales.", + "Do you really want to delete the current Server Configuration?" : "¿Realmente deseas eliminar la configuración actual del servidor?", + "Confirm Deletion" : "Confirmar el borrado", + "Mappings cleared successfully!" : "¡Los mapeos se borraron exitosamente!", + "Error while clearing the mappings." : "Se presentó un error al borrar los mapeos. ", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "La vinculación anónima no está permitida. Por favor proporciona un Usuario DN y una Contaseña.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Error de Operaciones LDAP. Las vinculaciones anónimas pueden no estar permitidas. ", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Se presentó una falla en el guardado. Por favor verifica que la base de datos esté operando. Vuelve a cargar antes de continuar. ", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar la modalidad habilitará las consultas automaticas de LDAP. Dependiendo del tamaño de su LDAP esto puede tomar algun tiempo. ¿Aún desea cambiar la modalidad?", + "Mode switch" : "Cambio de modo", + "Select attributes" : "Seleccionar atributos", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Usuario no encontrado. Por favor verifica tus atributos de inicio de sesión y tu usuario. Filtro aplicado (para copiar-y-pegar para una validación de línea de comando): <br/>", + "User found and settings verified." : "Usuario encontrado y configuraciones verificadas. ", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Considera refinar la búsqueda, ya que abarca demasiados usuarios y solo el primero de ellos podrá iniciar sesión. ", + "An unspecified error occurred. Please check log and settings." : "Se presentó un error inesperado. Por fvor verifica la bitácora y las configuraciones.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtro de la búsqueda es inválido, posiblemente debido a temas de sintaxis como un número diferente de corchetes abiertos y cerrados. Por favor verifícalo. ", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Se presentó una falla con la conexión al servidor LDAP / AD, por favor verifica el servidor, puerto y credenciales. ", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Falta el \"%uid\" del marcador de posición. Será reemplazado con el nombre de usuario al consultar LDAP / AD.", + "Please provide a login name to test against" : "Favor de proporcionar un nombre de usuario contra el cual probar", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "El cuadro de grupo está deshabilitado, porque el servidor LDAP / AD no soporta memberOf.", + "Password change rejected. Hint: " : "Cambio de contraseña rechazado. Pista: ", + "Please login with the new password" : "Por favor inicia sesion con la nueva contraseña", + "Your password will expire tomorrow." : "Tu contraseña expirará mañana.", + "Your password will expire today." : "Tu contraseña expirará el día de hoy. ", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["La contraseña expirará dentro de %n día. ","La contraseña expirará dentro de %n días. "], + "LDAP / AD integration" : "Integración con LDAP / AD", + "_%s group found_::_%s groups found_" : ["Grupo %s encontrado","%s grupos encontrados"], + "_%s user found_::_%s users found_" : ["Usuario %s encontrado","%s usuarios encontrados"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "No fue posible detectar el atributo del nombre a desplegar del usuario. Por favor especifícalo tú mismo en las configuraciones avanzadas de LDAP. ", + "Could not find the desired feature" : "No fue posible encontrar la función deseada.", + "Invalid Host" : "Servidor inválido", + "Test Configuration" : "Probar configuración", + "Help" : "Ayuda", + "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen con los siguientes criterios están disponibles en %s:", + "Only these object classes:" : "Sólo estas clases de objetos:", + "Only from these groups:" : "Sólo desde estos grupos:", + "Search groups" : "Buscar grupos", + "Available groups" : "Grupos disponibles", + "Selected groups" : "Grupos seleccionados", + "Edit LDAP Query" : "Editar consulta a LDAP", + "LDAP Filter:" : "Filtro de LDAP:", + "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica cuales grupos LDAP tendrán acceso a la instancia %s.", + "Verify settings and count the groups" : "Verificar las configuraciones y contar los grupos", + "When logging in, %s will find the user based on the following attributes:" : "Al iniciar sesion, %s encontrará al usuario con base en los siguientes atributos:", + "LDAP / AD Username:" : "Usuario LDAP / AD:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Permite iniciar sesión contra el usuario LDAP / AD que es ya sea \"uid\" o \"sAMAccountName\" y será detectado. ", + "LDAP / AD Email Address:" : "Dirección de correo electrónico LDAP / AD", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Permite iniciar sesión contra el atributo de email. \"mail\" y \"mailPrimaryAddresw\" está permitido. ", + "Other Attributes:" : "Otros atributos:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Define el filtro a aplicar cuando se intenta iniciar sesión. \"%% uid\" remplaza el usuario en la acción de inicio de sesión. Ejemplo: \"uid=%% uid\"", + "Test Loginname" : "Probar nombre de usuario", + "Verify settings" : "Verificar configuraciones ", + "1. Server" : "1. Servidor", + "%s. Server:" : "%s. Servidor:", + "Add a new configuration" : "Agregar una nueva configuración", + "Copy current configuration into new directory binding" : "Copiar la configuración actual a un nuevo directorio de vinculación", + "Delete the current configuration" : "Borrar la configuración actual", + "Host" : "Servidor", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Puedes omitir el protocolo, a menos que requiera SSL. Si es el caso, empieza con ldaps://", + "Port" : "Puerto", + "Detect Port" : "Detectar Puerto", + "User DN" : "DN del usuario", + "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", + "Password" : "Contraseña", + "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "One Base DN per line" : "Un DN Base por línea", + "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", + "Detect Base DN" : "Detectar DN Base", + "Test Base DN" : "Probar el DN Base", + "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita solicitudes automaticas de LDAP. Es mejor para ambientes más grandes pero requiere mayor conocimiento de LDAP. ", + "Manually enter LDAP filters (recommended for large directories)" : "Ingresar los filtros LDAP manualmente (recomendado para directorios grandes)", + "Listing and searching for users is constrained by these criteria:" : "Los enlistados y las busquedas para los usuarios están acotados por estos criterios:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las clases de objetos más comunes para usuarios son organizationalPerson, person, user, and inetOrgPerson. Si no estás seguro de cuál clase de objeto selecciónar, por favor consulta tu directorio admin.", + "The filter specifies which LDAP users shall have access to the %s instance." : "El filtro especifica cuáles usuarios LDAP tendrán acceso a la instancia %s.", + "Verify settings and count users" : "Verificar configuraciones y contar ususarios", + "Saving" : "Guardando", + "Back" : "Atrás", + "Continue" : "Continuar", + "Please renew your password." : "Por favor renueva tu contraseña.", + "An internal error occurred." : "Se presentó un error interno. ", + "Please try again or contact your administrator." : "Por favor inténtarlo de nuevo o contacta a tu administrador. ", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Renew password" : "Renovar contraseña", + "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?", + "Wrong password." : "Contraseña incorrecta. ", + "Cancel" : "Cancelar", + "LDAP" : "LDAP", + "Server" : "Servidor", + "Users" : "Usuarios", + "Login Attributes" : "Atributos de Inicio de Sesión", + "Groups" : "Grupos", + "Expert" : "Experto", + "Advanced" : "Avanzado", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el backend no funcionará. Por favor solicita su instalación a tu administrador del sistema.", + "Connection Settings" : "Configuraciones de la conexión", + "Configuration Active" : "Configuracion Activa", + "When unchecked, this configuration will be skipped." : "Cuando no esté seleccionada, esta configuración será omitida.", + "Backup (Replica) Host" : "Servidor de copia de seguridad (Replica)", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Por favor proporciona un servidor de copia de seguridad opcional. Debe ser una réplica del servidor LDAP / AD principal.", + "Backup (Replica) Port" : "Puerto para copias de seguridad (Réplica)", + "Disable Main Server" : "Deshabilitar servidor principal", + "Only connect to the replica server." : "Sólo contectarse al servidor de réplica.", + "Turn off SSL certificate validation." : "Deshabilitar la validación del certificado SSL.", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "¡No se recomienda, úsalo únicamente para pruebas! Si la conexión sólo funciona con esta opción, importa el certificado SSL del servidor LDAP a tu servidor %s.", + "Cache Time-To-Live" : "Tiempo de vida del caché", + "in seconds. A change empties the cache." : "en segundos. Un cambio vacía la caché.", + "Directory Settings" : "Configuraciones del directorio", + "User Display Name Field" : "Campo de Usuario a desplegar", + "The LDAP attribute to use to generate the user's display name." : "El atributo LDAP a usar para generar el nombre del usuario a desplegar.", + "2nd User Display Name Field" : "2do Campo de Nombre a Desplegar del Usuario", + "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributo LDAP puede ser agregado al nombre a despelegar entre corchetes. Ejemplos de resultados »John Doe (john.doe@example.org)«.", + "Base User Tree" : "Árbol de Usuario Base", + "One User Base DN per line" : "Un Usuario Base de DN por línea", + "User Search Attributes" : "Atributos de búsqueda de usuario", + "Optional; one attribute per line" : "Opcional; un atributo por línea", + "Group Display Name Field" : "Campo de Nombre de Grupo a Desplegar", + "The LDAP attribute to use to generate the groups's display name." : "El atributo LDAP a usar para generar el nombre para mostrar del grupo.", + "Base Group Tree" : "Árbol base de grupo", + "One Group Base DN per line" : "Un DN Base de Grupo por línea", + "Group Search Attributes" : "Atributos de Búsqueda de Grupo", + "Group-Member association" : "Asociación Grupo-Miembro", + "Dynamic Group Member URL" : "URL Dinámico de Miembro de Grupo ", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "El atributo de LDAP que, en objetos de grupo, contiene una URL de búsqueda LDAP que determina cuáles objetos pertenecen al grupo. (Un ajuste vacío deshabilita la funcionalidad de membrecía de grupo dinámica.)", + "Nested Groups" : "Grupos Anidados", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Cuando está activado, los grupos que contengan grupos están soportados. (Sólo funciona si el atributo de miembro de grupo contiene los DNs). ", + "Paging chunksize" : "Tamaño del chunk de paginación", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "El tamaño de chunk usado para las búsquedas con paginación de LDAP puede regresar resuldados volumniosos tales como enumeraciones de usuarios o grupos. (Establecerlo a 0 deshabilita las búsquedas con paginación en estos casos). ", + "Enable LDAP password changes per user" : "Habilitar cambio de contraseñas en LDAP por el usuario", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Permitir que los usuarios LDAP puedan cambiar su contraseña y permitir a los Super Administradortes y Administradores de grupo cambiar la contraseña de sus usuarios LDAP. Únicamente funciona cuando la configuración de las poiíticas de control de acceso en el servidor LDAP está alineada. Como las contraseñas son enviadas en texto plano al servidor LDAP, se debe usar encripción en el transporte y del mismo modo se debe configurar el uso de funciones de resumen en el servidor LDAP", + "(New password is sent as plain text to LDAP)" : "(La nueva contraseña se envía como texto plano a LDAP)", + "Default password policy DN" : "DN de la política predeterminada de contraseñas", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "El DN de la política de contraseñas predeterminada que será usada para el manejo de expiración de contraseñas. Sólo funciona cuando está habilitado el cambio de contraseñas por el usuario y sólo está soportado para OpenLDAP. Déjalo en blanco para deshabilitar el manejo de expiración de contraseñas.", + "Special Attributes" : "Atributos Especiales", + "Quota Field" : "Campo de cuota", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Dejar en blanco para usar la cuota predeterminada del usuario. En caso contrario, por favor especifica el atributo LDAP / AD.", + "Quota Default" : "Cuota predeterminada", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Anular la cuota predeterminada para usuarios LDAP que no tienen una cuota establecida en el Campo Cuota. ", + "Email Field" : "Campo de correo electrónico", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Establecer el correo electrónico del usuario con base en el atributo LDAP. Déjalo vacío para el comportamiento predeterminado. ", + "User Home Folder Naming Rule" : "Regla de Nomenclatura para la Carpeta Inicio del Usuario", + "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Dejar vacío para el usuario (predeterminado). En caso contrario, especifica un atributo LDAP/AD.", + "Internal Username" : "Usuario interno", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Por defecto, el usuario interno se creará con base en el atributo UUID. Ésto asegura que el nombre de usuario sea único y que los caracteres no tengan que ser convertidos. El usuario intenro tiene la restricción de que sólo permite los siguientes caracteres: [ a-zA-Z0-9_.@- ]. El resto de los caracteres son reemplazados con su correspondencia ASCII o simplemente se omiten. En caso de colisiones, se agregará/ incrementará un número. El usuario interno se usa para identificar a un usuario internamente. Adicionalmente es el nombre predeterminado para la carpeta de inicio. También es parte de las URLs remotas, por ejemplo, para todos los servicios *DAV. Con este ajuste se puede anular el comportamiento predeterminado. Déjalo vacío para mantener el comportamiento predeterminado. Los cambios surtiran efecto sólo en los usuarios mapeados (agregados) nuevos a LDAP. ", + "Internal Username Attribute:" : "Atributo de nombre de usuario Interno:", + "Override UUID detection" : "Anular la detección UUID", + "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defecto, el atributo UUID se detecta automáticamente. Este atributo se usa para identificar, sin ninguna duda, a usuarios y grupos LDAP. Adicionalmente, el usuario interno se creará con base en el UUID, si no ha sido especificado otro comportamiento en la parte de arriba. Puedes anular la configuración y proporcionar el atributo que quieras. Debes asegurarte de que el atributo que quieres sea accesible por los usuarios y grupos y que sea único. Mantenlo vacío para tener el comportamiento predeterminado. Los cambios surtirán efecto sólo en los usuarios y grupos mapeados (agregados) nuevos a LDAP.", + "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", + "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", + "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", + "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", + "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "El id %u del marcador de posición falta. Será reemplazado con el usuario al consultar LDAP / AD.", + "Verify settings and count groups" : "Verificar configuraciones y contar grupos", + "Add a new and blank configuration" : "Agregar una configuración nueva y en blanco", + "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Puedes omitir el protocolo, excepto si requieres SSL. En ese caso, empieza con ldaps://", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "in bytes" : "en bytes" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/user_ldap/l10n/es_EC.js b/apps/user_ldap/l10n/es_EC.js new file mode 100644 index 00000000000..63d3d71e0a9 --- /dev/null +++ b/apps/user_ldap/l10n/es_EC.js @@ -0,0 +1,197 @@ +OC.L10N.register( + "user_ldap", + { + "Failed to clear the mappings." : "Se presentó una falla al borrar los mapeos.", + "Failed to delete the server configuration" : "Se presentó una falla al borrar la configuración del servidor", + "Invalid configuration: Anonymous binding is not allowed." : "Configuración inválida: La vinculación anónima no está permitida. ", + "Valid configuration, connection established!" : "¡Configuración válida, conexión establecida!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuración válida, pero la vinculación falló. Por favor verifica la configuración del servidor y las credenciales.", + "Invalid configuration. Please have a look at the logs for further details." : "Configuración inválida. Por favor verifica las bitácoras para más detalles.", + "No action specified" : "No se ha especificado alguna acción", + "No configuration specified" : "No se ha especificado una configuración", + "No data specified" : "No se han especificado datos", + " Could not set configuration %s" : "No fue posible establecer la configuración %s", + "Action does not exist" : "La acción no existe", + "LDAP user and group backend" : "Backend de LDAP para usuario y grupo", + "Renewing …" : "Renovando ...", + "Very weak password" : "Contraseña muy debil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "The Base DN appears to be wrong" : "El DN Base parece estar incorrecto", + "Testing configuration…" : "Probando configuración... ", + "Configuration incorrect" : "Configuración Incorrecta", + "Configuration incomplete" : "Configuración incompleta", + "Configuration OK" : "Configuración correcta", + "Select groups" : "Seleccionar grupos", + "Select object classes" : "Seleccionar las clases de objeto", + "Please check the credentials, they seem to be wrong." : "Por favor verifica tus credenciales, al parecer están equivocadas.", + "Please specify the port, it could not be auto-detected." : "No fue posible auto-detectar el puerto, por favor especifícalo.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "No fue posible auto detectar el DN Base, por favor verifica las credenciales, servidor y puerto.", + "Could not detect Base DN, please enter it manually." : "No fue posible detectar el DN Base, por favor ingreésalo manualmente.", + "{nthServer}. Server" : "{nthServer}. Servidor", + "No object found in the given Base DN. Please revise." : "No fue posible encontrar ningún objeto en el DN Base dado. Por favor verifica.", + "More than 1,000 directory entries available." : "Se encuentran disponibles más de 1,000 elementos de directoiros. ", + " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Se presentó un error. Por favor verifica la DN Base, así como las configuraciones de la conexión y las credenciales.", + "Do you really want to delete the current Server Configuration?" : "¿Realmente deseas eliminar la configuración actual del servidor?", + "Confirm Deletion" : "Confirmar el borrado", + "Mappings cleared successfully!" : "¡Los mapeos se borraron exitosamente!", + "Error while clearing the mappings." : "Se presentó un error al borrar los mapeos. ", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "La vinculación anónima no está permitida. Por favor proporciona un Usuario DN y una Contaseña.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Error de Operaciones LDAP. Las vinculaciones anónimas pueden no estar permitidas. ", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Se presentó una falla en el guardado. Por favor verifica que la base de datos esté operando. Vuelve a cargar antes de continuar. ", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar la modalidad habilitará las consultas automaticas de LDAP. Dependiendo del tamaño de su LDAP esto puede tomar algun tiempo. ¿Aún desea cambiar la modalidad?", + "Mode switch" : "Cambio de modo", + "Select attributes" : "Seleccionar atributos", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Usuario no encontrado. Por favor verifica tus atributos de inicio de sesión y tu usuario. Filtro aplicado (para copiar-y-pegar para una validación de línea de comando): <br/>", + "User found and settings verified." : "Usuario encontrado y configuraciones verificadas. ", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Considera refinar la búsqueda, ya que abarca demasiados usuarios y solo el primero de ellos podrá iniciar sesión. ", + "An unspecified error occurred. Please check log and settings." : "Se presentó un error inesperado. Por fvor verifica la bitácora y las configuraciones.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtro de la búsqueda es inválido, posiblemente debido a temas de sintaxis como un número diferente de corchetes abiertos y cerrados. Por favor verifícalo. ", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Se presentó una falla con la conexión al servidor LDAP / AD, por favor verifica el servidor, puerto y credenciales. ", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Falta el \"%uid\" del marcador de posición. Será reemplazado con el nombre de usuario al consultar LDAP / AD.", + "Please provide a login name to test against" : "Favor de proporcionar un nombre de usuario contra el cual probar", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "El cuadro de grupo está deshabilitado, porque el servidor LDAP / AD no soporta memberOf.", + "Password change rejected. Hint: " : "Cambio de contraseña rechazado. Pista: ", + "Please login with the new password" : "Por favor inicia sesion con la nueva contraseña", + "Your password will expire tomorrow." : "Tu contraseña expirará mañana.", + "Your password will expire today." : "Tu contraseña expirará el día de hoy. ", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["La contraseña expirará dentro de %n día. ","La contraseña expirará dentro de %n días. "], + "LDAP / AD integration" : "Integración con LDAP / AD", + "_%s group found_::_%s groups found_" : ["Grupo %s encontrado","%s grupos encontrados"], + "_%s user found_::_%s users found_" : ["Usuario %s encontrado","%s usuarios encontrados"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "No fue posible detectar el atributo del nombre a desplegar del usuario. Por favor especifícalo tú mismo en las configuraciones avanzadas de LDAP. ", + "Could not find the desired feature" : "No fue posible encontrar la función deseada.", + "Invalid Host" : "Servidor inválido", + "Test Configuration" : "Probar configuración", + "Help" : "Ayuda", + "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen con los siguientes criterios están disponibles en %s:", + "Only these object classes:" : "Sólo estas clases de objetos:", + "Only from these groups:" : "Sólo desde estos grupos:", + "Search groups" : "Buscar grupos", + "Available groups" : "Grupos disponibles", + "Selected groups" : "Grupos seleccionados", + "Edit LDAP Query" : "Editar consulta a LDAP", + "LDAP Filter:" : "Filtro de LDAP:", + "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica cuales grupos LDAP tendrán acceso a la instancia %s.", + "Verify settings and count the groups" : "Verificar las configuraciones y contar los grupos", + "When logging in, %s will find the user based on the following attributes:" : "Al iniciar sesion, %s encontrará al usuario con base en los siguientes atributos:", + "LDAP / AD Username:" : "Usuario LDAP / AD:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Permite iniciar sesión contra el usuario LDAP / AD que es ya sea \"uid\" o \"sAMAccountName\" y será detectado. ", + "LDAP / AD Email Address:" : "Dirección de correo electrónico LDAP / AD", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Permite iniciar sesión contra el atributo de email. \"mail\" y \"mailPrimaryAddresw\" está permitido. ", + "Other Attributes:" : "Otros atributos:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Define el filtro a aplicar cuando se intenta iniciar sesión. \"%% uid\" remplaza el usuario en la acción de inicio de sesión. Ejemplo: \"uid=%% uid\"", + "Test Loginname" : "Probar nombre de usuario", + "Verify settings" : "Verificar configuraciones ", + "1. Server" : "1. Servidor", + "%s. Server:" : "%s. Servidor:", + "Add a new configuration" : "Agregar una nueva configuración", + "Copy current configuration into new directory binding" : "Copiar la configuración actual a un nuevo directorio de vinculación", + "Delete the current configuration" : "Borrar la configuración actual", + "Host" : "Servidor", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Puedes omitir el protocolo, a menos que requiera SSL. Si es el caso, empieza con ldaps://", + "Port" : "Puerto", + "Detect Port" : "Detectar Puerto", + "User DN" : "DN del usuario", + "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", + "Password" : "Contraseña", + "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "One Base DN per line" : "Un DN Base por línea", + "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", + "Detect Base DN" : "Detectar DN Base", + "Test Base DN" : "Probar el DN Base", + "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita solicitudes automaticas de LDAP. Es mejor para ambientes más grandes pero requiere mayor conocimiento de LDAP. ", + "Manually enter LDAP filters (recommended for large directories)" : "Ingresar los filtros LDAP manualmente (recomendado para directorios grandes)", + "Listing and searching for users is constrained by these criteria:" : "Los enlistados y las busquedas para los usuarios están acotados por estos criterios:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las clases de objetos más comunes para usuarios son organizationalPerson, person, user, and inetOrgPerson. Si no estás seguro de cuál clase de objeto selecciónar, por favor consulta tu directorio admin.", + "The filter specifies which LDAP users shall have access to the %s instance." : "El filtro especifica cuáles usuarios LDAP tendrán acceso a la instancia %s.", + "Verify settings and count users" : "Verificar configuraciones y contar ususarios", + "Saving" : "Guardando", + "Back" : "Atrás", + "Continue" : "Continuar", + "Please renew your password." : "Por favor renueva tu contraseña.", + "An internal error occurred." : "Se presentó un error interno. ", + "Please try again or contact your administrator." : "Por favor inténtarlo de nuevo o contacta a tu administrador. ", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Renew password" : "Renovar contraseña", + "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?", + "Wrong password." : "Contraseña incorrecta. ", + "Cancel" : "Cancelar", + "LDAP" : "LDAP", + "Server" : "Servidor", + "Users" : "Usuarios", + "Login Attributes" : "Atributos de Inicio de Sesión", + "Groups" : "Grupos", + "Expert" : "Experto", + "Advanced" : "Avanzado", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el backend no funcionará. Por favor solicita su instalación a tu administrador del sistema.", + "Connection Settings" : "Configuraciones de la conexión", + "Configuration Active" : "Configuracion Activa", + "When unchecked, this configuration will be skipped." : "Cuando no esté seleccionada, esta configuración será omitida.", + "Backup (Replica) Host" : "Servidor de copia de seguridad (Replica)", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Por favor proporciona un servidor de copia de seguridad opcional. Debe ser una réplica del servidor LDAP / AD principal.", + "Backup (Replica) Port" : "Puerto para copias de seguridad (Réplica)", + "Disable Main Server" : "Deshabilitar servidor principal", + "Only connect to the replica server." : "Sólo contectarse al servidor de réplica.", + "Turn off SSL certificate validation." : "Deshabilitar la validación del certificado SSL.", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "¡No se recomienda, úsalo únicamente para pruebas! Si la conexión sólo funciona con esta opción, importa el certificado SSL del servidor LDAP a tu servidor %s.", + "Cache Time-To-Live" : "Tiempo de vida del caché", + "in seconds. A change empties the cache." : "en segundos. Un cambio vacía la caché.", + "Directory Settings" : "Configuraciones del directorio", + "User Display Name Field" : "Campo de Usuario a desplegar", + "The LDAP attribute to use to generate the user's display name." : "El atributo LDAP a usar para generar el nombre del usuario a desplegar.", + "2nd User Display Name Field" : "2do Campo de Nombre a Desplegar del Usuario", + "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributo LDAP puede ser agregado al nombre a despelegar entre corchetes. Ejemplos de resultados »John Doe (john.doe@example.org)«.", + "Base User Tree" : "Árbol de Usuario Base", + "One User Base DN per line" : "Un Usuario Base de DN por línea", + "User Search Attributes" : "Atributos de búsqueda de usuario", + "Optional; one attribute per line" : "Opcional; un atributo por línea", + "Group Display Name Field" : "Campo de Nombre de Grupo a Desplegar", + "The LDAP attribute to use to generate the groups's display name." : "El atributo LDAP a usar para generar el nombre para mostrar del grupo.", + "Base Group Tree" : "Árbol base de grupo", + "One Group Base DN per line" : "Un DN Base de Grupo por línea", + "Group Search Attributes" : "Atributos de Búsqueda de Grupo", + "Group-Member association" : "Asociación Grupo-Miembro", + "Dynamic Group Member URL" : "URL Dinámico de Miembro de Grupo ", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "El atributo de LDAP que, en objetos de grupo, contiene una URL de búsqueda LDAP que determina cuáles objetos pertenecen al grupo. (Un ajuste vacío deshabilita la funcionalidad de membrecía de grupo dinámica.)", + "Nested Groups" : "Grupos Anidados", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Cuando está activado, los grupos que contengan grupos están soportados. (Sólo funciona si el atributo de miembro de grupo contiene los DNs). ", + "Paging chunksize" : "Tamaño del chunk de paginación", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "El tamaño de chunk usado para las búsquedas con paginación de LDAP puede regresar resuldados volumniosos tales como enumeraciones de usuarios o grupos. (Establecerlo a 0 deshabilita las búsquedas con paginación en estos casos). ", + "Enable LDAP password changes per user" : "Habilitar cambio de contraseñas en LDAP por el usuario", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Permitir que los usuarios LDAP puedan cambiar su contraseña y permitir a los Super Administradortes y Administradores de grupo cambiar la contraseña de sus usuarios LDAP. Únicamente funciona cuando la configuración de las poiíticas de control de acceso en el servidor LDAP está alineada. Como las contraseñas son enviadas en texto plano al servidor LDAP, se debe usar encripción en el transporte y del mismo modo se debe configurar el uso de funciones de resumen en el servidor LDAP", + "(New password is sent as plain text to LDAP)" : "(La nueva contraseña se envía como texto plano a LDAP)", + "Default password policy DN" : "DN de la política predeterminada de contraseñas", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "El DN de la política de contraseñas predeterminada que será usada para el manejo de expiración de contraseñas. Sólo funciona cuando está habilitado el cambio de contraseñas por el usuario y sólo está soportado para OpenLDAP. Déjalo en blanco para deshabilitar el manejo de expiración de contraseñas.", + "Special Attributes" : "Atributos Especiales", + "Quota Field" : "Campo de cuota", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Dejar en blanco para usar la cuota predeterminada del usuario. En caso contrario, por favor especifica el atributo LDAP / AD.", + "Quota Default" : "Cuota predeterminada", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Anular la cuota predeterminada para usuarios LDAP que no tienen una cuota establecida en el Campo Cuota. ", + "Email Field" : "Campo de correo electrónico", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Establecer el correo electrónico del usuario con base en el atributo LDAP. Déjalo vacío para el comportamiento predeterminado. ", + "User Home Folder Naming Rule" : "Regla de Nomenclatura para la Carpeta Inicio del Usuario", + "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Dejar vacío para el usuario (predeterminado). En caso contrario, especifica un atributo LDAP/AD.", + "Internal Username" : "Usuario interno", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Por defecto, el usuario interno se creará con base en el atributo UUID. Ésto asegura que el nombre de usuario sea único y que los caracteres no tengan que ser convertidos. El usuario intenro tiene la restricción de que sólo permite los siguientes caracteres: [ a-zA-Z0-9_.@- ]. El resto de los caracteres son reemplazados con su correspondencia ASCII o simplemente se omiten. En caso de colisiones, se agregará/ incrementará un número. El usuario interno se usa para identificar a un usuario internamente. Adicionalmente es el nombre predeterminado para la carpeta de inicio. También es parte de las URLs remotas, por ejemplo, para todos los servicios *DAV. Con este ajuste se puede anular el comportamiento predeterminado. Déjalo vacío para mantener el comportamiento predeterminado. Los cambios surtiran efecto sólo en los usuarios mapeados (agregados) nuevos a LDAP. ", + "Internal Username Attribute:" : "Atributo de nombre de usuario Interno:", + "Override UUID detection" : "Anular la detección UUID", + "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defecto, el atributo UUID se detecta automáticamente. Este atributo se usa para identificar, sin ninguna duda, a usuarios y grupos LDAP. Adicionalmente, el usuario interno se creará con base en el UUID, si no ha sido especificado otro comportamiento en la parte de arriba. Puedes anular la configuración y proporcionar el atributo que quieras. Debes asegurarte de que el atributo que quieres sea accesible por los usuarios y grupos y que sea único. Mantenlo vacío para tener el comportamiento predeterminado. Los cambios surtirán efecto sólo en los usuarios y grupos mapeados (agregados) nuevos a LDAP.", + "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", + "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", + "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", + "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", + "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "El id %u del marcador de posición falta. Será reemplazado con el usuario al consultar LDAP / AD.", + "Verify settings and count groups" : "Verificar configuraciones y contar grupos", + "Add a new and blank configuration" : "Agregar una configuración nueva y en blanco", + "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Puedes omitir el protocolo, excepto si requieres SSL. En ese caso, empieza con ldaps://", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "in bytes" : "en bytes" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/user_ldap/l10n/es_EC.json b/apps/user_ldap/l10n/es_EC.json new file mode 100644 index 00000000000..eefeb9a037f --- /dev/null +++ b/apps/user_ldap/l10n/es_EC.json @@ -0,0 +1,195 @@ +{ "translations": { + "Failed to clear the mappings." : "Se presentó una falla al borrar los mapeos.", + "Failed to delete the server configuration" : "Se presentó una falla al borrar la configuración del servidor", + "Invalid configuration: Anonymous binding is not allowed." : "Configuración inválida: La vinculación anónima no está permitida. ", + "Valid configuration, connection established!" : "¡Configuración válida, conexión establecida!", + "Valid configuration, but binding failed. Please check the server settings and credentials." : "Configuración válida, pero la vinculación falló. Por favor verifica la configuración del servidor y las credenciales.", + "Invalid configuration. Please have a look at the logs for further details." : "Configuración inválida. Por favor verifica las bitácoras para más detalles.", + "No action specified" : "No se ha especificado alguna acción", + "No configuration specified" : "No se ha especificado una configuración", + "No data specified" : "No se han especificado datos", + " Could not set configuration %s" : "No fue posible establecer la configuración %s", + "Action does not exist" : "La acción no existe", + "LDAP user and group backend" : "Backend de LDAP para usuario y grupo", + "Renewing …" : "Renovando ...", + "Very weak password" : "Contraseña muy debil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "The Base DN appears to be wrong" : "El DN Base parece estar incorrecto", + "Testing configuration…" : "Probando configuración... ", + "Configuration incorrect" : "Configuración Incorrecta", + "Configuration incomplete" : "Configuración incompleta", + "Configuration OK" : "Configuración correcta", + "Select groups" : "Seleccionar grupos", + "Select object classes" : "Seleccionar las clases de objeto", + "Please check the credentials, they seem to be wrong." : "Por favor verifica tus credenciales, al parecer están equivocadas.", + "Please specify the port, it could not be auto-detected." : "No fue posible auto-detectar el puerto, por favor especifícalo.", + "Base DN could not be auto-detected, please revise credentials, host and port." : "No fue posible auto detectar el DN Base, por favor verifica las credenciales, servidor y puerto.", + "Could not detect Base DN, please enter it manually." : "No fue posible detectar el DN Base, por favor ingreésalo manualmente.", + "{nthServer}. Server" : "{nthServer}. Servidor", + "No object found in the given Base DN. Please revise." : "No fue posible encontrar ningún objeto en el DN Base dado. Por favor verifica.", + "More than 1,000 directory entries available." : "Se encuentran disponibles más de 1,000 elementos de directoiros. ", + " entries available within the provided Base DN" : "elementos disponibles dentro del DN Base proporcionado", + "An error occurred. Please check the Base DN, as well as connection settings and credentials." : "Se presentó un error. Por favor verifica la DN Base, así como las configuraciones de la conexión y las credenciales.", + "Do you really want to delete the current Server Configuration?" : "¿Realmente deseas eliminar la configuración actual del servidor?", + "Confirm Deletion" : "Confirmar el borrado", + "Mappings cleared successfully!" : "¡Los mapeos se borraron exitosamente!", + "Error while clearing the mappings." : "Se presentó un error al borrar los mapeos. ", + "Anonymous bind is not allowed. Please provide a User DN and Password." : "La vinculación anónima no está permitida. Por favor proporciona un Usuario DN y una Contaseña.", + "LDAP Operations error. Anonymous bind might not be allowed." : "Error de Operaciones LDAP. Las vinculaciones anónimas pueden no estar permitidas. ", + "Saving failed. Please make sure the database is in Operation. Reload before continuing." : "Se presentó una falla en el guardado. Por favor verifica que la base de datos esté operando. Vuelve a cargar antes de continuar. ", + "Switching the mode will enable automatic LDAP queries. Depending on your LDAP size they may take a while. Do you still want to switch the mode?" : "Cambiar la modalidad habilitará las consultas automaticas de LDAP. Dependiendo del tamaño de su LDAP esto puede tomar algun tiempo. ¿Aún desea cambiar la modalidad?", + "Mode switch" : "Cambio de modo", + "Select attributes" : "Seleccionar atributos", + "User not found. Please check your login attributes and username. Effective filter (to copy-and-paste for command-line validation): <br/>" : "Usuario no encontrado. Por favor verifica tus atributos de inicio de sesión y tu usuario. Filtro aplicado (para copiar-y-pegar para una validación de línea de comando): <br/>", + "User found and settings verified." : "Usuario encontrado y configuraciones verificadas. ", + "Consider narrowing your search, as it encompassed many users, only the first one of whom will be able to log in." : "Considera refinar la búsqueda, ya que abarca demasiados usuarios y solo el primero de ellos podrá iniciar sesión. ", + "An unspecified error occurred. Please check log and settings." : "Se presentó un error inesperado. Por fvor verifica la bitácora y las configuraciones.", + "The search filter is invalid, probably due to syntax issues like uneven number of opened and closed brackets. Please revise." : "El filtro de la búsqueda es inválido, posiblemente debido a temas de sintaxis como un número diferente de corchetes abiertos y cerrados. Por favor verifícalo. ", + "A connection error to LDAP / AD occurred, please check host, port and credentials." : "Se presentó una falla con la conexión al servidor LDAP / AD, por favor verifica el servidor, puerto y credenciales. ", + "The \"%uid\" placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "Falta el \"%uid\" del marcador de posición. Será reemplazado con el nombre de usuario al consultar LDAP / AD.", + "Please provide a login name to test against" : "Favor de proporcionar un nombre de usuario contra el cual probar", + "The group box was disabled, because the LDAP / AD server does not support memberOf." : "El cuadro de grupo está deshabilitado, porque el servidor LDAP / AD no soporta memberOf.", + "Password change rejected. Hint: " : "Cambio de contraseña rechazado. Pista: ", + "Please login with the new password" : "Por favor inicia sesion con la nueva contraseña", + "Your password will expire tomorrow." : "Tu contraseña expirará mañana.", + "Your password will expire today." : "Tu contraseña expirará el día de hoy. ", + "_Your password will expire within %n day._::_Your password will expire within %n days._" : ["La contraseña expirará dentro de %n día. ","La contraseña expirará dentro de %n días. "], + "LDAP / AD integration" : "Integración con LDAP / AD", + "_%s group found_::_%s groups found_" : ["Grupo %s encontrado","%s grupos encontrados"], + "_%s user found_::_%s users found_" : ["Usuario %s encontrado","%s usuarios encontrados"], + "Could not detect user display name attribute. Please specify it yourself in advanced LDAP settings." : "No fue posible detectar el atributo del nombre a desplegar del usuario. Por favor especifícalo tú mismo en las configuraciones avanzadas de LDAP. ", + "Could not find the desired feature" : "No fue posible encontrar la función deseada.", + "Invalid Host" : "Servidor inválido", + "Test Configuration" : "Probar configuración", + "Help" : "Ayuda", + "Groups meeting these criteria are available in %s:" : "Los grupos que cumplen con los siguientes criterios están disponibles en %s:", + "Only these object classes:" : "Sólo estas clases de objetos:", + "Only from these groups:" : "Sólo desde estos grupos:", + "Search groups" : "Buscar grupos", + "Available groups" : "Grupos disponibles", + "Selected groups" : "Grupos seleccionados", + "Edit LDAP Query" : "Editar consulta a LDAP", + "LDAP Filter:" : "Filtro de LDAP:", + "The filter specifies which LDAP groups shall have access to the %s instance." : "El filtro especifica cuales grupos LDAP tendrán acceso a la instancia %s.", + "Verify settings and count the groups" : "Verificar las configuraciones y contar los grupos", + "When logging in, %s will find the user based on the following attributes:" : "Al iniciar sesion, %s encontrará al usuario con base en los siguientes atributos:", + "LDAP / AD Username:" : "Usuario LDAP / AD:", + "Allows login against the LDAP / AD username, which is either \"uid\" or \"sAMAccountName\" and will be detected." : "Permite iniciar sesión contra el usuario LDAP / AD que es ya sea \"uid\" o \"sAMAccountName\" y será detectado. ", + "LDAP / AD Email Address:" : "Dirección de correo electrónico LDAP / AD", + "Allows login against an email attribute. \"mail\" and \"mailPrimaryAddress\" allowed." : "Permite iniciar sesión contra el atributo de email. \"mail\" y \"mailPrimaryAddresw\" está permitido. ", + "Other Attributes:" : "Otros atributos:", + "Defines the filter to apply, when login is attempted. \"%%uid\" replaces the username in the login action. Example: \"uid=%%uid\"" : "Define el filtro a aplicar cuando se intenta iniciar sesión. \"%% uid\" remplaza el usuario en la acción de inicio de sesión. Ejemplo: \"uid=%% uid\"", + "Test Loginname" : "Probar nombre de usuario", + "Verify settings" : "Verificar configuraciones ", + "1. Server" : "1. Servidor", + "%s. Server:" : "%s. Servidor:", + "Add a new configuration" : "Agregar una nueva configuración", + "Copy current configuration into new directory binding" : "Copiar la configuración actual a un nuevo directorio de vinculación", + "Delete the current configuration" : "Borrar la configuración actual", + "Host" : "Servidor", + "You can omit the protocol, unless you require SSL. If so, start with ldaps://" : "Puedes omitir el protocolo, a menos que requiera SSL. Si es el caso, empieza con ldaps://", + "Port" : "Puerto", + "Detect Port" : "Detectar Puerto", + "User DN" : "DN del usuario", + "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." : "El DN del cliente del usuario con el que se vinculará, ejem. uid=agente,dc=ejemplo,dc=com. Para tener un acceso anónimo, deja el DN y la contraseña vacíos.", + "Password" : "Contraseña", + "For anonymous access, leave DN and Password empty." : "Para acceso anónimo, deja la contraseña y DN vacíos.", + "One Base DN per line" : "Un DN Base por línea", + "You can specify Base DN for users and groups in the Advanced tab" : "Puedes especificar el DN Base para usuarios y grupos en la pestaña Avanzado", + "Detect Base DN" : "Detectar DN Base", + "Test Base DN" : "Probar el DN Base", + "Avoids automatic LDAP requests. Better for bigger setups, but requires some LDAP knowledge." : "Evita solicitudes automaticas de LDAP. Es mejor para ambientes más grandes pero requiere mayor conocimiento de LDAP. ", + "Manually enter LDAP filters (recommended for large directories)" : "Ingresar los filtros LDAP manualmente (recomendado para directorios grandes)", + "Listing and searching for users is constrained by these criteria:" : "Los enlistados y las busquedas para los usuarios están acotados por estos criterios:", + "The most common object classes for users are organizationalPerson, person, user, and inetOrgPerson. If you are not sure which object class to select, please consult your directory admin." : "Las clases de objetos más comunes para usuarios son organizationalPerson, person, user, and inetOrgPerson. Si no estás seguro de cuál clase de objeto selecciónar, por favor consulta tu directorio admin.", + "The filter specifies which LDAP users shall have access to the %s instance." : "El filtro especifica cuáles usuarios LDAP tendrán acceso a la instancia %s.", + "Verify settings and count users" : "Verificar configuraciones y contar ususarios", + "Saving" : "Guardando", + "Back" : "Atrás", + "Continue" : "Continuar", + "Please renew your password." : "Por favor renueva tu contraseña.", + "An internal error occurred." : "Se presentó un error interno. ", + "Please try again or contact your administrator." : "Por favor inténtarlo de nuevo o contacta a tu administrador. ", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Renew password" : "Renovar contraseña", + "Wrong password. Reset it?" : "Contraseña incorrecta. ¿Deseas restablecerla?", + "Wrong password." : "Contraseña incorrecta. ", + "Cancel" : "Cancelar", + "LDAP" : "LDAP", + "Server" : "Servidor", + "Users" : "Usuarios", + "Login Attributes" : "Atributos de Inicio de Sesión", + "Groups" : "Grupos", + "Expert" : "Experto", + "Advanced" : "Avanzado", + "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." : "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el backend no funcionará. Por favor solicita su instalación a tu administrador del sistema.", + "Connection Settings" : "Configuraciones de la conexión", + "Configuration Active" : "Configuracion Activa", + "When unchecked, this configuration will be skipped." : "Cuando no esté seleccionada, esta configuración será omitida.", + "Backup (Replica) Host" : "Servidor de copia de seguridad (Replica)", + "Give an optional backup host. It must be a replica of the main LDAP/AD server." : "Por favor proporciona un servidor de copia de seguridad opcional. Debe ser una réplica del servidor LDAP / AD principal.", + "Backup (Replica) Port" : "Puerto para copias de seguridad (Réplica)", + "Disable Main Server" : "Deshabilitar servidor principal", + "Only connect to the replica server." : "Sólo contectarse al servidor de réplica.", + "Turn off SSL certificate validation." : "Deshabilitar la validación del certificado SSL.", + "Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." : "¡No se recomienda, úsalo únicamente para pruebas! Si la conexión sólo funciona con esta opción, importa el certificado SSL del servidor LDAP a tu servidor %s.", + "Cache Time-To-Live" : "Tiempo de vida del caché", + "in seconds. A change empties the cache." : "en segundos. Un cambio vacía la caché.", + "Directory Settings" : "Configuraciones del directorio", + "User Display Name Field" : "Campo de Usuario a desplegar", + "The LDAP attribute to use to generate the user's display name." : "El atributo LDAP a usar para generar el nombre del usuario a desplegar.", + "2nd User Display Name Field" : "2do Campo de Nombre a Desplegar del Usuario", + "Optional. An LDAP attribute to be added to the display name in brackets. Results in e.g. »John Doe (john.doe@example.org)«." : "Opcional. Un atributo LDAP puede ser agregado al nombre a despelegar entre corchetes. Ejemplos de resultados »John Doe (john.doe@example.org)«.", + "Base User Tree" : "Árbol de Usuario Base", + "One User Base DN per line" : "Un Usuario Base de DN por línea", + "User Search Attributes" : "Atributos de búsqueda de usuario", + "Optional; one attribute per line" : "Opcional; un atributo por línea", + "Group Display Name Field" : "Campo de Nombre de Grupo a Desplegar", + "The LDAP attribute to use to generate the groups's display name." : "El atributo LDAP a usar para generar el nombre para mostrar del grupo.", + "Base Group Tree" : "Árbol base de grupo", + "One Group Base DN per line" : "Un DN Base de Grupo por línea", + "Group Search Attributes" : "Atributos de Búsqueda de Grupo", + "Group-Member association" : "Asociación Grupo-Miembro", + "Dynamic Group Member URL" : "URL Dinámico de Miembro de Grupo ", + "The LDAP attribute that on group objects contains an LDAP search URL that determines what objects belong to the group. (An empty setting disables dynamic group membership functionality.)" : "El atributo de LDAP que, en objetos de grupo, contiene una URL de búsqueda LDAP que determina cuáles objetos pertenecen al grupo. (Un ajuste vacío deshabilita la funcionalidad de membrecía de grupo dinámica.)", + "Nested Groups" : "Grupos Anidados", + "When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" : "Cuando está activado, los grupos que contengan grupos están soportados. (Sólo funciona si el atributo de miembro de grupo contiene los DNs). ", + "Paging chunksize" : "Tamaño del chunk de paginación", + "Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" : "El tamaño de chunk usado para las búsquedas con paginación de LDAP puede regresar resuldados volumniosos tales como enumeraciones de usuarios o grupos. (Establecerlo a 0 deshabilita las búsquedas con paginación en estos casos). ", + "Enable LDAP password changes per user" : "Habilitar cambio de contraseñas en LDAP por el usuario", + "Allow LDAP users to change their password and allow Super Administrators and Group Administrators to change the password of their LDAP users. Only works when access control policies are configured accordingly on the LDAP server. As passwords are sent in plaintext to the LDAP server, transport encryption must be used and password hashing should be configured on the LDAP server." : "Permitir que los usuarios LDAP puedan cambiar su contraseña y permitir a los Super Administradortes y Administradores de grupo cambiar la contraseña de sus usuarios LDAP. Únicamente funciona cuando la configuración de las poiíticas de control de acceso en el servidor LDAP está alineada. Como las contraseñas son enviadas en texto plano al servidor LDAP, se debe usar encripción en el transporte y del mismo modo se debe configurar el uso de funciones de resumen en el servidor LDAP", + "(New password is sent as plain text to LDAP)" : "(La nueva contraseña se envía como texto plano a LDAP)", + "Default password policy DN" : "DN de la política predeterminada de contraseñas", + "The DN of a default password policy that will be used for password expiry handling. Works only when LDAP password changes per user are enabled and is only supported by OpenLDAP. Leave empty to disable password expiry handling." : "El DN de la política de contraseñas predeterminada que será usada para el manejo de expiración de contraseñas. Sólo funciona cuando está habilitado el cambio de contraseñas por el usuario y sólo está soportado para OpenLDAP. Déjalo en blanco para deshabilitar el manejo de expiración de contraseñas.", + "Special Attributes" : "Atributos Especiales", + "Quota Field" : "Campo de cuota", + "Leave empty for user's default quota. Otherwise, specify an LDAP/AD attribute." : "Dejar en blanco para usar la cuota predeterminada del usuario. En caso contrario, por favor especifica el atributo LDAP / AD.", + "Quota Default" : "Cuota predeterminada", + "Override default quota for LDAP users who do not have a quota set in the Quota Field." : "Anular la cuota predeterminada para usuarios LDAP que no tienen una cuota establecida en el Campo Cuota. ", + "Email Field" : "Campo de correo electrónico", + "Set the user's email from their LDAP attribute. Leave it empty for default behaviour." : "Establecer el correo electrónico del usuario con base en el atributo LDAP. Déjalo vacío para el comportamiento predeterminado. ", + "User Home Folder Naming Rule" : "Regla de Nomenclatura para la Carpeta Inicio del Usuario", + "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." : "Dejar vacío para el usuario (predeterminado). En caso contrario, especifica un atributo LDAP/AD.", + "Internal Username" : "Usuario interno", + "By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." : "Por defecto, el usuario interno se creará con base en el atributo UUID. Ésto asegura que el nombre de usuario sea único y que los caracteres no tengan que ser convertidos. El usuario intenro tiene la restricción de que sólo permite los siguientes caracteres: [ a-zA-Z0-9_.@- ]. El resto de los caracteres son reemplazados con su correspondencia ASCII o simplemente se omiten. En caso de colisiones, se agregará/ incrementará un número. El usuario interno se usa para identificar a un usuario internamente. Adicionalmente es el nombre predeterminado para la carpeta de inicio. También es parte de las URLs remotas, por ejemplo, para todos los servicios *DAV. Con este ajuste se puede anular el comportamiento predeterminado. Déjalo vacío para mantener el comportamiento predeterminado. Los cambios surtiran efecto sólo en los usuarios mapeados (agregados) nuevos a LDAP. ", + "Internal Username Attribute:" : "Atributo de nombre de usuario Interno:", + "Override UUID detection" : "Anular la detección UUID", + "By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." : "Por defecto, el atributo UUID se detecta automáticamente. Este atributo se usa para identificar, sin ninguna duda, a usuarios y grupos LDAP. Adicionalmente, el usuario interno se creará con base en el UUID, si no ha sido especificado otro comportamiento en la parte de arriba. Puedes anular la configuración y proporcionar el atributo que quieras. Debes asegurarte de que el atributo que quieres sea accesible por los usuarios y grupos y que sea único. Mantenlo vacío para tener el comportamiento predeterminado. Los cambios surtirán efecto sólo en los usuarios y grupos mapeados (agregados) nuevos a LDAP.", + "UUID Attribute for Users:" : "Atributo UUID para Usuarios:", + "UUID Attribute for Groups:" : "Atributo UUID para Grupos:", + "Username-LDAP User Mapping" : "Mapeo del Usuario al Usuario LDAP", + "Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have an internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." : "Los usuario son usados para almacenar y asignar (meta) datos. Para poder identificar y reconocer con precisión a los usuarios, cada usuario LDAP contará con un Usuario interno. Esto requiere un mapeo del Usuario al usuario-LDAP. El Usuario creado se mapea al UUID del usuario LDAP. Adicionalmente el DN se guarda en caché para reducir las interacciones con LDAP, pero no se usa para identificación. Si el DN cambia, las modficaciones serán encontradas. El Usuario interno se usa en todos lados. Limpiar los mapeos dejará rastros en todos lados. ¡Limpiar los mapeos no es senible a la configuración, afecta a todas las configuraciones LDAP! Nunca borres las configuraciones en el ambiente de producción, sólo házlo en los ambientes de pruebas o de experimentación. ", + "Clear Username-LDAP User Mapping" : "Borrar el mapeo de los Usuarios a los Usuarios-LDAP", + "Clear Groupname-LDAP Group Mapping" : "Borrar el mapeo de los Nombres de grupo a los grupos-LDAP", + "The %uid placeholder is missing. It will be replaced with the login name when querying LDAP / AD." : "El id %u del marcador de posición falta. Será reemplazado con el usuario al consultar LDAP / AD.", + "Verify settings and count groups" : "Verificar configuraciones y contar grupos", + "Add a new and blank configuration" : "Agregar una configuración nueva y en blanco", + "You can omit the protocol, except you require SSL. Then start with ldaps://" : "Puedes omitir el protocolo, excepto si requieres SSL. En ese caso, empieza con ldaps://", + "<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." : "<b>Advertencia:</b> Las aplicaciones user_ldap y user_webdavauth son incompatibles. Puedes expermientar comportamientos inesperados. Por favor solicita a tu administrador del sistema deshabilitar alguno de ellos.", + "in bytes" : "en bytes" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/user_ldap/lib/Access.php b/apps/user_ldap/lib/Access.php index bbf07165090..89f401c4888 100644 --- a/apps/user_ldap/lib/Access.php +++ b/apps/user_ldap/lib/Access.php @@ -8,8 +8,10 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Benjamin Diele <benjamin@diele.be> + * @author bline <scottbeck@gmail.com> * @author Christopher Schäpers <kondou@ts.unde.re> * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it> * @author Lukas Reschke <lukas@statuscode.ch> @@ -18,9 +20,10 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Nicolas Grekas <nicolas.grekas@gmail.com> * @author Ralph Krimmel <rkrimme1@gwdg.de> - * @author Renaud Fortier <Renaud.Fortier@fsaa.ulaval.ca> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/lib/Command/Search.php b/apps/user_ldap/lib/Command/Search.php index d348d5b31c9..ae61bfcd41c 100644 --- a/apps/user_ldap/lib/Command/Search.php +++ b/apps/user_ldap/lib/Command/Search.php @@ -4,7 +4,10 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -111,7 +114,7 @@ class Search extends Command { $this->validateOffsetAndLimit($offset, $limit); if($input->getOption('group')) { - $proxy = new Group_Proxy($configPrefixes, $ldapWrapper); + $proxy = new Group_Proxy($configPrefixes, $ldapWrapper, \OC::$server->query('LDAPGroupPluginManager')); $getMethod = 'getGroups'; $printID = false; // convert the limit of groups to null. This will show all the groups available instead of @@ -125,7 +128,8 @@ class Search extends Command { $ldapWrapper, $this->ocConfig, \OC::$server->getNotificationManager(), - \OC::$server->getUserSession() + \OC::$server->getUserSession(), + \OC::$server->query('LDAPUserPluginManager') ); $getMethod = 'getDisplayNames'; $printID = true; diff --git a/apps/user_ldap/lib/Command/SetConfig.php b/apps/user_ldap/lib/Command/SetConfig.php index 5188bee1049..db656558efc 100644 --- a/apps/user_ldap/lib/Command/SetConfig.php +++ b/apps/user_ldap/lib/Command/SetConfig.php @@ -5,6 +5,7 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/user_ldap/lib/Command/TestConfig.php b/apps/user_ldap/lib/Command/TestConfig.php index cd3ecc26d2b..a385c892e1e 100644 --- a/apps/user_ldap/lib/Command/TestConfig.php +++ b/apps/user_ldap/lib/Command/TestConfig.php @@ -5,6 +5,7 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/user_ldap/lib/Configuration.php b/apps/user_ldap/lib/Configuration.php index c65e6e34e2c..bf8a9095a68 100644 --- a/apps/user_ldap/lib/Configuration.php +++ b/apps/user_ldap/lib/Configuration.php @@ -2,8 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Alexander Bergolth <leo@strike.wu.ac.at> * @author Alex Weirig <alex.weirig@technolink.lu> + * @author Alexander Bergolth <leo@strike.wu.ac.at> * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> @@ -12,6 +12,8 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roger Szabo <roger.szabo@web.de> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> + * @author Xuanwo <xuanwo@yunify.com> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/lib/Connection.php b/apps/user_ldap/lib/Connection.php index 9e84cbde35b..0f10874bc2f 100644 --- a/apps/user_ldap/lib/Connection.php +++ b/apps/user_ldap/lib/Connection.php @@ -4,6 +4,8 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> + * @author Brent Bloxam <brent.bloxam@gmail.com> + * @author Jarkko Lehtoranta <devel@jlranta.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> @@ -11,7 +13,9 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Roger Szabo <roger.szabo@web.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author root <root@localhost.localdomain> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Xuanwo <xuanwo@yunify.com> * * @license AGPL-3.0 diff --git a/apps/user_ldap/lib/GroupPluginManager.php b/apps/user_ldap/lib/GroupPluginManager.php new file mode 100644 index 00000000000..b3064f61a76 --- /dev/null +++ b/apps/user_ldap/lib/GroupPluginManager.php @@ -0,0 +1,169 @@ +<?php +/** + * @copyright Copyright (c) 2017 EITA Cooperative (eita.org.br) + * + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\User_LDAP; + +use OCP\GroupInterface; + +class GroupPluginManager { + + private $respondToActions = 0; + + private $which = array( + GroupInterface::CREATE_GROUP => null, + GroupInterface::DELETE_GROUP => null, + GroupInterface::ADD_TO_GROUP => null, + GroupInterface::REMOVE_FROM_GROUP => null, + GroupInterface::COUNT_USERS => null, + GroupInterface::GROUP_DETAILS => null + ); + + /** + * @return int All implemented actions + */ + public function getImplementedActions() { + return $this->respondToActions; + } + + /** + * Registers a group plugin that may implement some actions, overriding User_LDAP's group actions. + * @param ILDAPGroupPlugin $plugin + */ + public function register(ILDAPGroupPlugin $plugin) { + $respondToActions = $plugin->respondToActions(); + $this->respondToActions |= $respondToActions; + + foreach($this->which as $action => $v) { + if ((bool)($respondToActions & $action)) { + $this->which[$action] = $plugin; + \OC::$server->getLogger()->debug("Registered action ".$action." to plugin ".get_class($plugin), ['app' => 'user_ldap']); + } + } + } + + /** + * Signal if there is a registered plugin that implements some given actions + * @param int $actions Actions defined in \OCP\GroupInterface, like GroupInterface::REMOVE_FROM_GROUP + * @return bool + */ + public function implementsActions($actions) { + return ($actions & $this->respondToActions) == $actions; + } + + /** + * Create a group + * @param string $gid Group Id + * @return string | null The group DN if group creation was successful. + * @throws \Exception + */ + public function createGroup($gid) { + $plugin = $this->which[GroupInterface::CREATE_GROUP]; + + if ($plugin) { + return $plugin->createGroup($gid); + } + throw new \Exception('No plugin implements createGroup in this LDAP Backend.'); + } + + /** + * Delete a group + * @param string $gid Group Id of the group to delete + * @return bool + * @throws \Exception + */ + public function deleteGroup($gid) { + $plugin = $this->which[GroupInterface::DELETE_GROUP]; + + if ($plugin) { + return $plugin->deleteGroup($gid); + } + throw new \Exception('No plugin implements deleteGroup in this LDAP Backend.'); + } + + /** + * Add a user to a group + * @param string $uid ID of the user to add to group + * @param string $gid ID of the group in which add the user + * @return bool + * @throws \Exception + * + * Adds a user to a group. + */ + public function addToGroup($uid, $gid) { + $plugin = $this->which[GroupInterface::ADD_TO_GROUP]; + + if ($plugin) { + return $plugin->addToGroup($uid, $gid); + } + throw new \Exception('No plugin implements addToGroup in this LDAP Backend.'); + } + + /** + * Removes a user from a group + * @param string $uid ID of the user to remove from group + * @param string $gid ID of the group from which remove the user + * @return bool + * @throws \Exception + * + * removes the user from a group. + */ + public function removeFromGroup($uid, $gid) { + $plugin = $this->which[GroupInterface::REMOVE_FROM_GROUP]; + + if ($plugin) { + return $plugin->removeFromGroup($uid, $gid); + } + throw new \Exception('No plugin implements removeFromGroup in this LDAP Backend.'); + } + + /** + * get the number of all users matching the search string in a group + * @param string $gid ID of the group + * @param string $search query string + * @return int|false + * @throws \Exception + */ + public function countUsersInGroup($gid, $search = '') { + $plugin = $this->which[GroupInterface::COUNT_USERS]; + + if ($plugin) { + return $plugin->countUsersInGroup($gid,$search); + } + throw new \Exception('No plugin implements countUsersInGroup in this LDAP Backend.'); + } + + /** + * get an array with group details + * @param string $gid + * @return array|false + * @throws \Exception + */ + public function getGroupDetails($gid) { + $plugin = $this->which[GroupInterface::GROUP_DETAILS]; + + if ($plugin) { + return $plugin->getGroupDetails($gid); + } + throw new \Exception('No plugin implements getGroupDetails in this LDAP Backend.'); + } +} diff --git a/apps/user_ldap/lib/Group_LDAP.php b/apps/user_ldap/lib/Group_LDAP.php index 55d31649f10..3faa96bc2b8 100644 --- a/apps/user_ldap/lib/Group_LDAP.php +++ b/apps/user_ldap/lib/Group_LDAP.php @@ -2,10 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Alexander Bergolth <leo@strike.wu.ac.at> * @author Alex Weirig <alex.weirig@technolink.lu> + * @author Alexander Bergolth <leo@strike.wu.ac.at> * @author alexweirig <alex.weirig@technolink.lu> * @author Andreas Fischer <bantu@owncloud.com> + * @author Andreas Pflug <dev@admin4.org> * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Christopher Schäpers <kondou@ts.unde.re> @@ -17,7 +18,9 @@ * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * @author Xuanwo <xuanwo@yunify.com> * * @license AGPL-3.0 @@ -39,8 +42,9 @@ namespace OCA\User_LDAP; use OC\Cache\CappedMemoryCache; +use OCP\GroupInterface; -class Group_LDAP extends BackendUtility implements \OCP\GroupInterface { +class Group_LDAP extends BackendUtility implements \OCP\GroupInterface, IGroupLDAP { protected $enabled = false; /** @@ -53,7 +57,10 @@ class Group_LDAP extends BackendUtility implements \OCP\GroupInterface { */ protected $cachedGroupsByMember; - public function __construct(Access $access) { + /** @var GroupPluginManager */ + protected $groupPluginManager; + + public function __construct(Access $access, GroupPluginManager $groupPluginManager) { parent::__construct($access); $filter = $this->access->connection->ldapGroupFilter; $gassoc = $this->access->connection->ldapGroupMemberAssocAttr; @@ -63,6 +70,7 @@ class Group_LDAP extends BackendUtility implements \OCP\GroupInterface { $this->cachedGroupMembers = new CappedMemoryCache(); $this->cachedGroupsByMember = new CappedMemoryCache(); + $this->groupPluginManager = $groupPluginManager; } /** @@ -860,6 +868,10 @@ class Group_LDAP extends BackendUtility implements \OCP\GroupInterface { * @return int|bool */ public function countUsersInGroup($gid, $search = '') { + if ($this->groupPluginManager->implementsActions(GroupInterface::COUNT_USERS)) { + return $this->groupPluginManager->countUsersInGroup($gid, $search); + } + $cacheKey = 'countUsersInGroup-'.$gid.'-'.$search; if(!$this->enabled || !$this->groupExists($gid)) { return false; @@ -1067,17 +1079,114 @@ class Group_LDAP extends BackendUtility implements \OCP\GroupInterface { * @return boolean * * Returns the supported actions as int to be - * compared with \OC\User\Backend::CREATE_USER etc. + * compared with GroupInterface::CREATE_GROUP etc. */ public function implementsActions($actions) { - return (bool)(\OC\Group\Backend::COUNT_USERS & $actions); + return (bool)((GroupInterface::COUNT_USERS | + $this->groupPluginManager->getImplementedActions()) & $actions); } /** * Return access for LDAP interaction. * @return Access instance of Access for LDAP interaction */ - public function getLDAPAccess() { + public function getLDAPAccess($gid) { return $this->access; } + + /** + * create a group + * @param string $gid + * @return bool + * @throws \Exception + */ + public function createGroup($gid) { + if ($this->groupPluginManager->implementsActions(GroupInterface::CREATE_GROUP)) { + if ($dn = $this->groupPluginManager->createGroup($gid)) { + //updates group mapping + $this->access->dn2ocname($dn, $gid, false); + $this->access->connection->writeToCache("groupExists".$gid, true); + } + return $dn != null; + } + throw new \Exception('Could not create group in LDAP backend.'); + } + + /** + * delete a group + * @param string $gid gid of the group to delete + * @return bool + * @throws \Exception + */ + public function deleteGroup($gid) { + if ($this->groupPluginManager->implementsActions(GroupInterface::DELETE_GROUP)) { + if ($ret = $this->groupPluginManager->deleteGroup($gid)) { + #delete group in nextcloud internal db + $this->access->getGroupMapper()->unmap($gid); + $this->access->connection->writeToCache("groupExists".$gid, false); + } + return $ret; + } + throw new \Exception('Could not delete group in LDAP backend.'); + } + + /** + * Add a user to a group + * @param string $uid Name of the user to add to group + * @param string $gid Name of the group in which add the user + * @return bool + * @throws \Exception + */ + public function addToGroup($uid, $gid) { + if ($this->groupPluginManager->implementsActions(GroupInterface::ADD_TO_GROUP)) { + if ($ret = $this->groupPluginManager->addToGroup($uid, $gid)) { + $this->access->connection->clearCache(); + } + return $ret; + } + throw new \Exception('Could not add user to group in LDAP backend.'); + } + + /** + * Removes a user from a group + * @param string $uid Name of the user to remove from group + * @param string $gid Name of the group from which remove the user + * @return bool + * @throws \Exception + */ + public function removeFromGroup($uid, $gid) { + if ($this->groupPluginManager->implementsActions(GroupInterface::REMOVE_FROM_GROUP)) { + if ($ret = $this->groupPluginManager->removeFromGroup($uid, $gid)) { + $this->access->connection->clearCache(); + } + return $ret; + } + throw new \Exception('Could not remove user from group in LDAP backend.'); + } + + /** + * Gets group details + * @param string $gid Name of the group + * @return array | false + * @throws \Exception + */ + public function getGroupDetails($gid) { + if ($this->groupPluginManager->implementsActions(GroupInterface::GROUP_DETAILS)) { + return $this->groupPluginManager->getGroupDetails($gid); + } + throw new \Exception('Could not get group details in LDAP backend.'); + } + + /** + * Return LDAP connection resource from a cloned connection. + * The cloned connection needs to be closed manually. + * of the current access. + * @param string $gid + * @return resource of the LDAP connection + */ + public function getNewLDAPConnection($gid) { + $connection = clone $this->access->getConnection(); + return $connection->getConnectionResource(); + } + } diff --git a/apps/user_ldap/lib/Group_Proxy.php b/apps/user_ldap/lib/Group_Proxy.php index e546c84a90c..ad3fba4092f 100644 --- a/apps/user_ldap/lib/Group_Proxy.php +++ b/apps/user_ldap/lib/Group_Proxy.php @@ -7,6 +7,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -26,7 +27,7 @@ namespace OCA\User_LDAP; -class Group_Proxy extends Proxy implements \OCP\GroupInterface { +class Group_Proxy extends Proxy implements \OCP\GroupInterface, IGroupLDAP { private $backends = array(); private $refBackend = null; @@ -34,11 +35,11 @@ class Group_Proxy extends Proxy implements \OCP\GroupInterface { * Constructor * @param string[] $serverConfigPrefixes array containing the config Prefixes */ - public function __construct($serverConfigPrefixes, ILDAPWrapper $ldap) { + public function __construct($serverConfigPrefixes, ILDAPWrapper $ldap, GroupPluginManager $groupPluginManager) { parent::__construct($ldap); foreach($serverConfigPrefixes as $configPrefix) { $this->backends[$configPrefix] = - new \OCA\User_LDAP\Group_LDAP($this->getAccess($configPrefix)); + new \OCA\User_LDAP\Group_LDAP($this->getAccess($configPrefix), $groupPluginManager); if(is_null($this->refBackend)) { $this->refBackend = &$this->backends[$configPrefix]; } @@ -146,6 +147,51 @@ class Group_Proxy extends Proxy implements \OCP\GroupInterface { } /** + * @param string $gid + * @return bool + */ + public function createGroup($gid) { + return $this->handleRequest( + $gid, 'createGroup', array($gid)); + } + + /** + * delete a group + * @param string $gid gid of the group to delete + * @return bool + */ + public function deleteGroup($gid) { + return $this->handleRequest( + $gid, 'deleteGroup', array($gid)); + } + + /** + * Add a user to a group + * @param string $uid Name of the user to add to group + * @param string $gid Name of the group in which add the user + * @return bool + * + * Adds a user to a group. + */ + public function addToGroup($uid, $gid) { + return $this->handleRequest( + $gid, 'addToGroup', array($uid, $gid)); + } + + /** + * Removes a user from a group + * @param string $uid Name of the user to remove from group + * @param string $gid Name of the group from which remove the user + * @return bool + * + * removes the user from a group. + */ + public function removeFromGroup($uid, $gid) { + return $this->handleRequest( + $gid, 'removeFromGroup', array($uid, $gid)); + } + + /** * returns the number of users in a group, who match the search term * @param string $gid the internal group name * @param string $search optional, a search string @@ -157,6 +203,16 @@ class Group_Proxy extends Proxy implements \OCP\GroupInterface { } /** + * get an array with group details + * @param string $gid + * @return array|false + */ + public function getGroupDetails($gid) { + return $this->handleRequest( + $gid, 'getGroupDetails', array($gid)); + } + + /** * get a list of all groups * @return string[] with group names * @@ -190,7 +246,7 @@ class Group_Proxy extends Proxy implements \OCP\GroupInterface { * @return boolean * * Returns the supported actions as int to be - * compared with \OC\User\Backend::CREATE_USER etc. + * compared with \OCP\GroupInterface::CREATE_GROUP etc. */ public function implementsActions($actions) { //it's the same across all our user backends obviously @@ -203,6 +259,17 @@ class Group_Proxy extends Proxy implements \OCP\GroupInterface { * @return Access instance of Access for LDAP interaction */ public function getLDAPAccess($gid) { - return $this->handleRequest($gid, 'getLDAPAccess', []); + return $this->handleRequest($gid, 'getLDAPAccess', [$gid]); } + + /** + * Return a new LDAP connection for the specified group. + * The connection needs to be closed manually. + * @param string $gid + * @return resource of the LDAP connection + */ + public function getNewLDAPConnection($gid) { + return $this->handleRequest($gid, 'getNewLDAPConnection', array($gid)); + } + } diff --git a/apps/user_ldap/lib/Helper.php b/apps/user_ldap/lib/Helper.php index 891ab7f0a3a..a433ea8e4a7 100644 --- a/apps/user_ldap/lib/Helper.php +++ b/apps/user_ldap/lib/Helper.php @@ -8,9 +8,12 @@ * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> - * @author Roger Szabo <roger.szabo@web.de> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -294,10 +297,12 @@ class Helper { $ldapWrapper = new LDAP(); $ocConfig = \OC::$server->getConfig(); $notificationManager = \OC::$server->getNotificationManager(); + $userSession = \OC::$server->getUserSession(); + $userPluginManager = \OC::$server->query('LDAPUserPluginManager'); $userBackend = new User_Proxy( - $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager, $userSession + $configPrefixes, $ldapWrapper, $ocConfig, $notificationManager, $userSession, $userPluginManager ); $uid = $userBackend->loginName2UserName($param['uid'] ); if($uid !== false) { diff --git a/apps/user_ldap/lib/IGroupLDAP.php b/apps/user_ldap/lib/IGroupLDAP.php new file mode 100644 index 00000000000..55dd60c16a2 --- /dev/null +++ b/apps/user_ldap/lib/IGroupLDAP.php @@ -0,0 +1,44 @@ +<?php +/** + * @copyright Copyright (c) 2017, EITA Cooperative (eita.org.br) + * + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\User_LDAP; + +interface IGroupLDAP { + + //Used by LDAPProvider + + /** + * Return access for LDAP interaction. + * @param string $gid + * @return Access instance of Access for LDAP interaction + */ + public function getLDAPAccess($gid); + + /** + * Return a new LDAP connection for the specified group. + * @param string $gid + * @return resource of the LDAP connection + */ + public function getNewLDAPConnection($gid); + +} diff --git a/apps/user_ldap/lib/ILDAPGroupPlugin.php b/apps/user_ldap/lib/ILDAPGroupPlugin.php new file mode 100644 index 00000000000..bdad1d7707b --- /dev/null +++ b/apps/user_ldap/lib/ILDAPGroupPlugin.php @@ -0,0 +1,86 @@ +<?php +/** + * @copyright Copyright (c) 2017 EITA Cooperative (eita.org.br) + * + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\User_LDAP; + + +interface ILDAPGroupPlugin { + + /** + * Check if plugin implements actions + * @return int + * + * Returns the supported actions as int to be + * compared with OC_GROUP_BACKEND_CREATE_GROUP etc. + */ + public function respondToActions(); + + /** + * @param string $gid + * @return string|null The group DN if group creation was successful. + */ + public function createGroup($gid); + + /** + * delete a group + * @param string $gid gid of the group to delete + * @return bool + */ + public function deleteGroup($gid); + + /** + * Add a user to a group + * @param string $uid Name of the user to add to group + * @param string $gid Name of the group in which add the user + * @return bool + * + * Adds a user to a group. + */ + public function addToGroup($uid, $gid); + + /** + * Removes a user from a group + * @param string $uid Name of the user to remove from group + * @param string $gid Name of the group from which remove the user + * @return bool + * + * removes the user from a group. + */ + public function removeFromGroup($uid, $gid); + + /** + * get the number of all users matching the search string in a group + * @param string $gid + * @param string $search + * @return int|false + */ + public function countUsersInGroup($gid, $search = ''); + + /** + * get an array with group details + * @param string $gid + * @return array|false + */ + public function getGroupDetails($gid); + +} diff --git a/apps/user_ldap/lib/ILDAPUserPlugin.php b/apps/user_ldap/lib/ILDAPUserPlugin.php new file mode 100644 index 00000000000..9250830fc82 --- /dev/null +++ b/apps/user_ldap/lib/ILDAPUserPlugin.php @@ -0,0 +1,93 @@ +<?php +/** + * @copyright Copyright (c) 2017 EITA Cooperative (eita.org.br) + * + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\User_LDAP; + + +interface ILDAPUserPlugin { + + /** + * Check if plugin implements actions + * @return int + * + * Returns the supported actions as int to be + * compared with OC_USER_BACKEND_CREATE_USER etc. + */ + public function respondToActions(); + + /** + * Create a new user in LDAP Backend + * + * @param string $uid The UID of the user to create + * @param string $password The password of the new user + * @return bool + */ + public function createUser($uid, $password); + + /** + * Set password + * + * @param string $uid The username + * @param string $password The new password + * @return bool + * + * Change the password of a user + */ + public function setPassword($uid, $password); + + /** + * get the user's home directory + * @param string $uid the username + * @return boolean + */ + public function getHome($uid); + + /** + * get display name of the user + * @param string $uid user ID of the user + * @return string display name + */ + public function getDisplayName($uid); + + /** + * set display name of the user + * @param string $uid user ID of the user + * @param string $displayName new user's display name + * @return string display name + */ + public function setDisplayName($uid, $displayName); + + /** + * checks whether the user is allowed to change his avatar in Nextcloud + * @param string $uid the Nextcloud user name + * @return boolean either the user can or cannot + */ + public function canChangeAvatar($uid); + + /** + * Count the number of users + * @return int|bool + */ + public function countUsers(); + +} diff --git a/apps/user_ldap/lib/ILDAPWrapper.php b/apps/user_ldap/lib/ILDAPWrapper.php index 71dd60c3725..52919c48e5f 100644 --- a/apps/user_ldap/lib/ILDAPWrapper.php +++ b/apps/user_ldap/lib/ILDAPWrapper.php @@ -8,6 +8,8 @@ * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roger Szabo <roger.szabo@web.de> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -163,7 +165,7 @@ interface ILDAPWrapper { * @return resource|false an LDAP search result resource, false on error */ public function search($link, $baseDN, $filter, $attr, $attrsOnly = 0, $limit = 0); - + /** * Replace the value of a userPassword by $password * @param resource $link LDAP link resource diff --git a/apps/user_ldap/lib/IUserLDAP.php b/apps/user_ldap/lib/IUserLDAP.php index cb7d0138892..dcd9d938b29 100644 --- a/apps/user_ldap/lib/IUserLDAP.php +++ b/apps/user_ldap/lib/IUserLDAP.php @@ -1,8 +1,10 @@ <?php /** - * * @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de) * + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/user_ldap/lib/Jobs/CleanUp.php b/apps/user_ldap/lib/Jobs/CleanUp.php index 44e8f5469f1..849c30ecd65 100644 --- a/apps/user_ldap/lib/Jobs/CleanUp.php +++ b/apps/user_ldap/lib/Jobs/CleanUp.php @@ -5,6 +5,9 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -100,7 +103,8 @@ class CleanUp extends TimedJob { new LDAP(), $this->ocConfig, \OC::$server->getNotificationManager(), - \OC::$server->getUserSession() + \OC::$server->getUserSession(), + \OC::$server->query('LDAPUserPluginManager') ); } diff --git a/apps/user_ldap/lib/Jobs/UpdateGroups.php b/apps/user_ldap/lib/Jobs/UpdateGroups.php index 4c9a06a5f68..49b79f2d618 100644 --- a/apps/user_ldap/lib/Jobs/UpdateGroups.php +++ b/apps/user_ldap/lib/Jobs/UpdateGroups.php @@ -10,7 +10,11 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -193,9 +197,9 @@ class UpdateGroups extends \OC\BackgroundJob\TimedJob { $userMapper = new UserMapping($dbc); $ldapAccess->setGroupMapper($groupMapper); $ldapAccess->setUserMapper($userMapper); - self::$groupBE = new \OCA\User_LDAP\Group_LDAP($ldapAccess); + self::$groupBE = new \OCA\User_LDAP\Group_LDAP($ldapAccess, \OC::$server->query('LDAPGroupPluginManager')); } else { - self::$groupBE = new \OCA\User_LDAP\Group_Proxy($configPrefixes, $ldapWrapper); + self::$groupBE = new \OCA\User_LDAP\Group_Proxy($configPrefixes, $ldapWrapper, \OC::$server->query('LDAPGroupPluginManager')); } return self::$groupBE; diff --git a/apps/user_ldap/lib/LDAPProvider.php b/apps/user_ldap/lib/LDAPProvider.php index bf8691006c6..94793980b39 100644 --- a/apps/user_ldap/lib/LDAPProvider.php +++ b/apps/user_ldap/lib/LDAPProvider.php @@ -1,8 +1,12 @@ <?php /** - * * @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de) * + * @author Joas Schilling <coding@schilljs.com> + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify @@ -33,7 +37,8 @@ use OCA\User_LDAP\User\DeletedUsersIndex; */ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport { - private $backend; + private $userBackend; + private $groupBackend; private $logger; private $helper; private $deletedUsersIndex; @@ -41,20 +46,36 @@ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport { /** * Create new LDAPProvider * @param \OCP\IServerContainer $serverContainer + * @param Helper $helper + * @param DeletedUsersIndex $deletedUsersIndex * @throws \Exception if user_ldap app was not enabled */ public function __construct(IServerContainer $serverContainer, Helper $helper, DeletedUsersIndex $deletedUsersIndex) { $this->logger = $serverContainer->getLogger(); $this->helper = $helper; $this->deletedUsersIndex = $deletedUsersIndex; + $userBackendFound = false; + $groupBackendFound = false; foreach ($serverContainer->getUserManager()->getBackends() as $backend){ - $this->logger->debug('instance '.get_class($backend).' backend.', ['app' => 'user_ldap']); + $this->logger->debug('instance '.get_class($backend).' user backend.', ['app' => 'user_ldap']); if ($backend instanceof IUserLDAP) { - $this->backend = $backend; - return; + $this->userBackend = $backend; + $userBackendFound = true; + break; } } - throw new \Exception('To use the LDAPProvider, user_ldap app must be enabled'); + foreach ($serverContainer->getGroupManager()->getBackends() as $backend){ + $this->logger->debug('instance '.get_class($backend).' group backend.', ['app' => 'user_ldap']); + if ($backend instanceof IGroupLDAP) { + $this->groupBackend = $backend; + $groupBackendFound = true; + break; + } + } + + if (!$userBackendFound or !$groupBackendFound) { + throw new \Exception('To use the LDAPProvider, user_ldap app must be enabled'); + } } /** @@ -64,16 +85,33 @@ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport { * @throws \Exception if translation was unsuccessful */ public function getUserDN($uid) { - if(!$this->backend->userExists($uid)){ + if(!$this->userBackend->userExists($uid)){ throw new \Exception('User id not found in LDAP'); } - $result = $this->backend->getLDAPAccess($uid)->username2dn($uid); + $result = $this->userBackend->getLDAPAccess($uid)->username2dn($uid); if(!$result){ throw new \Exception('Translation to LDAP DN unsuccessful'); } return $result; } - + + /** + * Translate a group id to LDAP DN. + * @param string $gid group id + * @return string + * @throws \Exception + */ + public function getGroupDN($gid) { + if(!$this->groupBackend->groupExists($gid)){ + throw new \Exception('Group id not found in LDAP'); + } + $result = $this->groupBackend->getLDAPAccess($gid)->groupname2dn($gid); + if(!$result){ + throw new \Exception('Translation to LDAP DN unsuccessful'); + } + return $result; + } + /** * Translate a LDAP DN to an internal user name. If there is no mapping between * the DN and the user name, a new one will be created. @@ -82,7 +120,7 @@ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport { * @throws \Exception if translation was unsuccessful */ public function getUserName($dn) { - $result = $this->backend->dn2UserName($dn); + $result = $this->userBackend->dn2UserName($dn); if(!$result){ throw new \Exception('Translation to internal user name unsuccessful'); } @@ -115,10 +153,24 @@ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport { * @throws \Exception if user id was not found in LDAP */ public function getLDAPConnection($uid) { - if(!$this->backend->userExists($uid)){ + if(!$this->userBackend->userExists($uid)){ throw new \Exception('User id not found in LDAP'); } - return $this->backend->getNewLDAPConnection($uid); + return $this->userBackend->getNewLDAPConnection($uid); + } + + /** + * Return a new LDAP connection resource for the specified user. + * The connection must be closed manually. + * @param string $gid group id + * @return resource of the LDAP connection + * @throws \Exception if group id was not found in LDAP + */ + public function getGroupLDAPConnection($gid) { + if(!$this->groupBackend->groupExists($gid)){ + throw new \Exception('Group id not found in LDAP'); + } + return $this->groupBackend->getNewLDAPConnection($gid); } /** @@ -128,10 +180,10 @@ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport { * @throws \Exception if user id was not found in LDAP */ public function getLDAPBaseUsers($uid) { - if(!$this->backend->userExists($uid)){ + if(!$this->userBackend->userExists($uid)){ throw new \Exception('User id not found in LDAP'); } - return $this->backend->getLDAPAccess($uid)->getConnection()->getConfiguration()['ldap_base_users']; + return $this->userBackend->getLDAPAccess($uid)->getConnection()->getConfiguration()['ldap_base_users']; } /** @@ -141,10 +193,10 @@ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport { * @throws \Exception if user id was not found in LDAP */ public function getLDAPBaseGroups($uid) { - if(!$this->backend->userExists($uid)){ + if(!$this->userBackend->userExists($uid)){ throw new \Exception('User id not found in LDAP'); } - return $this->backend->getLDAPAccess($uid)->getConnection()->getConfiguration()['ldap_base_groups']; + return $this->userBackend->getLDAPAccess($uid)->getConnection()->getConfiguration()['ldap_base_groups']; } /** @@ -153,10 +205,23 @@ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport { * @throws \Exception if user id was not found in LDAP */ public function clearCache($uid) { - if(!$this->backend->userExists($uid)){ + if(!$this->userBackend->userExists($uid)){ throw new \Exception('User id not found in LDAP'); } - $this->backend->getLDAPAccess($uid)->getConnection()->clearCache(); + $this->userBackend->getLDAPAccess($uid)->getConnection()->clearCache(); + } + + /** + * Clear the cache if a cache is used, otherwise do nothing. + * Acts on the LDAP connection of a group + * @param string $gid group id + * @throws \Exception if user id was not found in LDAP + */ + public function clearGroupCache($gid) { + if(!$this->groupBackend->groupExists($gid)){ + throw new \Exception('Group id not found in LDAP'); + } + $this->groupBackend->getLDAPAccess($gid)->getConnection()->clearCache(); } /** @@ -165,7 +230,7 @@ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport { * @return bool whether the DN exists */ public function dnExists($dn) { - $result = $this->backend->dn2UserName($dn); + $result = $this->userBackend->dn2UserName($dn); return !$result ? false : true; } @@ -184,4 +249,44 @@ class LDAPProvider implements ILDAPProvider, IDeletionFlagSupport { public function unflagRecord($uid) { //do nothing } + + /** + * Get the LDAP attribute name for the user's display name + * @param string $uid user id + * @return string the display name field + * @throws \Exception if user id was not found in LDAP + */ + public function getLDAPDisplayNameField($uid) { + if(!$this->userBackend->userExists($uid)){ + throw new \Exception('User id not found in LDAP'); + } + return $this->userBackend->getLDAPAccess($uid)->getConnection()->getConfiguration()['ldap_display_name']; + } + + /** + * Get the LDAP attribute name for the email + * @param string $uid user id + * @return string the email field + * @throws \Exception if user id was not found in LDAP + */ + public function getLDAPEmailField($uid) { + if(!$this->userBackend->userExists($uid)){ + throw new \Exception('User id not found in LDAP'); + } + return $this->userBackend->getLDAPAccess($uid)->getConnection()->getConfiguration()['ldap_email_attr']; + } + + /** + * Get the LDAP type of association between users and groups + * @param string $gid group id + * @return string the configuration, one of: 'memberUid', 'uniqueMember', 'member', 'gidNumber' + * @throws \Exception if group id was not found in LDAP + */ + public function getLDAPGroupMemberAssoc($gid) { + if(!$this->groupBackend->groupExists($gid)){ + throw new \Exception('Group id not found in LDAP'); + } + return $this->groupBackend->getLDAPAccess($gid)->getConnection()->getConfiguration()['ldap_group_member_assoc_attribute']; + } + } diff --git a/apps/user_ldap/lib/LDAPProviderFactory.php b/apps/user_ldap/lib/LDAPProviderFactory.php index f2915b43163..c57f996cde5 100644 --- a/apps/user_ldap/lib/LDAPProviderFactory.php +++ b/apps/user_ldap/lib/LDAPProviderFactory.php @@ -1,8 +1,11 @@ <?php /** - * * @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de) * + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/user_ldap/lib/Migration/UUIDFixGroup.php b/apps/user_ldap/lib/Migration/UUIDFixGroup.php index 9ea406efadf..7258029dfd1 100644 --- a/apps/user_ldap/lib/Migration/UUIDFixGroup.php +++ b/apps/user_ldap/lib/Migration/UUIDFixGroup.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Roger Szabo <roger.szabo@web.de> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license GNU AGPL version 3 or any later version * @@ -33,6 +35,7 @@ class UUIDFixGroup extends UUIDFix { public function __construct(GroupMapping $mapper, LDAP $ldap, IConfig $config, Helper $helper) { $this->mapper = $mapper; $this->proxy = new User_Proxy($helper->getServerConfigurationPrefixes(true), $ldap, $config, - \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); + \OC::$server->getNotificationManager(), \OC::$server->getUserSession(), + \OC::$server->query('LDAPUserPluginManager')); } } diff --git a/apps/user_ldap/lib/Migration/UUIDFixUser.php b/apps/user_ldap/lib/Migration/UUIDFixUser.php index ee1457dcccb..28765917ae0 100644 --- a/apps/user_ldap/lib/Migration/UUIDFixUser.php +++ b/apps/user_ldap/lib/Migration/UUIDFixUser.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license GNU AGPL version 3 or any later version * @@ -32,6 +33,7 @@ use OCP\IConfig; class UUIDFixUser extends UUIDFix { public function __construct(UserMapping $mapper, LDAP $ldap, IConfig $config, Helper $helper) { $this->mapper = $mapper; - $this->proxy = new Group_Proxy($helper->getServerConfigurationPrefixes(true), $ldap, $config); + $groupPluginManager = \OC::$server->query('LDAPGroupPluginManager'); + $this->proxy = new Group_Proxy($helper->getServerConfigurationPrefixes(true), $ldap, $groupPluginManager); } } diff --git a/apps/user_ldap/lib/Notification/Notifier.php b/apps/user_ldap/lib/Notification/Notifier.php index 795d8d4c344..8c9d20c12dc 100644 --- a/apps/user_ldap/lib/Notification/Notifier.php +++ b/apps/user_ldap/lib/Notification/Notifier.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Roger Szabo <roger.szabo@web.de> * + * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Roger Szabo <roger.szabo@web.de> * * @license GNU AGPL version 3 or any later version diff --git a/apps/user_ldap/lib/Proxy.php b/apps/user_ldap/lib/Proxy.php index 305d2c4181b..ec075d761c5 100644 --- a/apps/user_ldap/lib/Proxy.php +++ b/apps/user_ldap/lib/Proxy.php @@ -10,6 +10,8 @@ * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/user_ldap/lib/Settings/Admin.php b/apps/user_ldap/lib/Settings/Admin.php index 32035128b64..33a86ad72d2 100644 --- a/apps/user_ldap/lib/Settings/Admin.php +++ b/apps/user_ldap/lib/Settings/Admin.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/user_ldap/lib/Settings/Section.php b/apps/user_ldap/lib/Settings/Section.php index 86d293d3879..0ff52160a97 100644 --- a/apps/user_ldap/lib/Settings/Section.php +++ b/apps/user_ldap/lib/Settings/Section.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/user_ldap/lib/User/Manager.php b/apps/user_ldap/lib/User/Manager.php index 743456d68e2..f04106b7fbf 100644 --- a/apps/user_ldap/lib/User/Manager.php +++ b/apps/user_ldap/lib/User/Manager.php @@ -6,6 +6,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roger Szabo <roger.szabo@web.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/user_ldap/lib/User/User.php b/apps/user_ldap/lib/User/User.php index a46b0053b40..ed3ecedf227 100644 --- a/apps/user_ldap/lib/User/User.php +++ b/apps/user_ldap/lib/User/User.php @@ -4,10 +4,13 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> - * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roger Szabo <roger.szabo@web.de> + * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/lib/UserPluginManager.php b/apps/user_ldap/lib/UserPluginManager.php new file mode 100644 index 00000000000..b3fda494022 --- /dev/null +++ b/apps/user_ldap/lib/UserPluginManager.php @@ -0,0 +1,210 @@ +<?php +/** + * @copyright Copyright (c) 2017 EITA Cooperative (eita.org.br) + * + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\User_LDAP; + +use OC\User\Backend; + +class UserPluginManager { + + public $test = false; + + private $respondToActions = 0; + + private $which = array( + Backend::CREATE_USER => null, + Backend::SET_PASSWORD => null, + Backend::GET_HOME => null, + Backend::GET_DISPLAYNAME => null, + Backend::SET_DISPLAYNAME => null, + Backend::PROVIDE_AVATAR => null, + Backend::COUNT_USERS => null, + 'deleteUser' => null + ); + + /** + * @return int All implemented actions, except for 'deleteUser' + */ + public function getImplementedActions() { + return $this->respondToActions; + } + + /** + * Registers a group plugin that may implement some actions, overriding User_LDAP's user actions. + * + * @param ILDAPUserPlugin $plugin + */ + public function register(ILDAPUserPlugin $plugin) { + $respondToActions = $plugin->respondToActions(); + $this->respondToActions |= $respondToActions; + + foreach($this->which as $action => $v) { + if (is_int($action) && (bool)($respondToActions & $action)) { + $this->which[$action] = $plugin; + \OC::$server->getLogger()->debug("Registered action ".$action." to plugin ".get_class($plugin), ['app' => 'user_ldap']); + } + } + if (method_exists($plugin,'deleteUser')) { + $this->which['deleteUser'] = $plugin; + \OC::$server->getLogger()->debug("Registered action deleteUser to plugin ".get_class($plugin), ['app' => 'user_ldap']); + } + } + + /** + * Signal if there is a registered plugin that implements some given actions + * @param int $actions Actions defined in \OC\User\Backend, like Backend::CREATE_USER + * @return bool + */ + public function implementsActions($actions) { + return ($actions & $this->respondToActions) == $actions; + } + + /** + * Create a new user in LDAP Backend + * + * @param string $username The username of the user to create + * @param string $password The password of the new user + * @return bool + * @throws \Exception + */ + public function createUser($username, $password) { + $plugin = $this->which[Backend::CREATE_USER]; + + if ($plugin) { + return $plugin->createUser($username,$password); + } + throw new \Exception('No plugin implements createUser in this LDAP Backend.'); + } + + /** + * Change the password of a user* + * @param string $uid The username + * @param string $password The new password + * @return bool + * @throws \Exception + */ + public function setPassword($uid, $password) { + $plugin = $this->which[Backend::SET_PASSWORD]; + + if ($plugin) { + return $plugin->setPassword($uid,$password); + } + throw new \Exception('No plugin implements setPassword in this LDAP Backend.'); + } + + /** + * checks whether the user is allowed to change his avatar in Nextcloud + * @param string $uid the Nextcloud user name + * @return boolean either the user can or cannot + * @throws \Exception + */ + public function canChangeAvatar($uid) { + $plugin = $this->which[Backend::PROVIDE_AVATAR]; + + if ($plugin) { + return $plugin->canChangeAvatar($uid); + } + throw new \Exception('No plugin implements canChangeAvatar in this LDAP Backend.'); + } + + /** + * Get the user's home directory + * @param string $uid the username + * @return boolean + * @throws \Exception + */ + public function getHome($uid) { + $plugin = $this->which[Backend::GET_HOME]; + + if ($plugin) { + return $plugin->getHome($uid); + } + throw new \Exception('No plugin implements getHome in this LDAP Backend.'); + } + + /** + * Get display name of the user + * @param string $uid user ID of the user + * @return string display name + * @throws \Exception + */ + public function getDisplayName($uid) { + $plugin = $this->which[Backend::GET_DISPLAYNAME]; + + if ($plugin) { + return $plugin->getDisplayName($uid); + } + throw new \Exception('No plugin implements getDisplayName in this LDAP Backend.'); + } + + /** + * Set display name of the user + * @param string $uid user ID of the user + * @param string $displayName new user's display name + * @return string display name + * @throws \Exception + */ + public function setDisplayName($uid, $displayName) { + $plugin = $this->which[Backend::SET_DISPLAYNAME]; + + if ($plugin) { + return $plugin->setDisplayName($uid, $displayName); + } + throw new \Exception('No plugin implements setDisplayName in this LDAP Backend.'); + } + + /** + * Count the number of users + * @return int|bool + * @throws \Exception + */ + public function countUsers() { + $plugin = $this->which[Backend::COUNT_USERS]; + + if ($plugin) { + return $plugin->countUsers(); + } + throw new \Exception('No plugin implements countUsers in this LDAP Backend.'); + } + + /** + * @return bool + */ + public function canDeleteUser() { + return $this->which['deleteUser'] !== null; + } + + /** + * @param $uid + * @return bool + * @throws \Exception + */ + public function deleteUser($uid) { + $plugin = $this->which['deleteUser']; + if ($plugin) { + return $plugin->deleteUser($uid); + } + throw new \Exception('No plugin implements deleteUser in this LDAP Backend.'); + } +} + diff --git a/apps/user_ldap/lib/User_LDAP.php b/apps/user_ldap/lib/User_LDAP.php index 0a9a1cfe4c2..ca157f69538 100644 --- a/apps/user_ldap/lib/User_LDAP.php +++ b/apps/user_ldap/lib/User_LDAP.php @@ -13,9 +13,12 @@ * @author Renaud Fortier <Renaud.Fortier@fsaa.ulaval.ca> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Tom Needham <tom@owncloud.com> - * @author Roger Szabo <roger.szabo@web.de> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -56,16 +59,20 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn /** @var string */ protected $currentUserInDeletionProcess; + /** @var UserPluginManager */ + protected $userPluginManager; + /** * @param Access $access * @param \OCP\IConfig $ocConfig * @param \OCP\Notification\IManager $notificationManager * @param IUserSession $userSession */ - public function __construct(Access $access, IConfig $ocConfig, INotificationManager $notificationManager, IUserSession $userSession) { + public function __construct(Access $access, IConfig $ocConfig, INotificationManager $notificationManager, IUserSession $userSession, UserPluginManager $userPluginManager) { parent::__construct($access); $this->ocConfig = $ocConfig; $this->notificationManager = $notificationManager; + $this->userPluginManager = $userPluginManager; $this->registerHooks($userSession); } @@ -88,6 +95,10 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn * @return boolean either the user can or cannot */ public function canChangeAvatar($uid) { + if ($this->userPluginManager->implementsActions(Backend::PROVIDE_AVATAR)) { + return $this->userPluginManager->canChangeAvatar($uid); + } + $user = $this->access->userManager->get($uid); if(!$user instanceof User) { return false; @@ -207,6 +218,10 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn * @return bool */ public function setPassword($uid, $password) { + if ($this->userPluginManager->implementsActions(Backend::SET_PASSWORD)) { + return $this->userPluginManager->setPassword($uid, $password); + } + $user = $this->access->userManager->get($uid); if(!$user instanceof User) { @@ -364,6 +379,10 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn * @return bool */ public function deleteUser($uid) { + if ($this->userPluginManager->canDeleteUser()) { + return $this->userPluginManager->deleteUser($uid); + } + $marked = $this->ocConfig->getUserValue($uid, 'user_ldap', 'isDeleted', 0); if(intval($marked) === 0) { \OC::$server->getLogger()->notice( @@ -393,6 +412,10 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn return false; } + if ($this->userPluginManager->implementsActions(Backend::GET_HOME)) { + return $this->userPluginManager->getHome($uid); + } + $cacheKey = 'getHome'.$uid; $path = $this->access->connection->getFromCache($cacheKey); if(!is_null($path)) { @@ -425,6 +448,10 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn * @return string|false display name */ public function getDisplayName($uid) { + if ($this->userPluginManager->implementsActions(Backend::GET_DISPLAYNAME)) { + return $this->userPluginManager->getDisplayName($uid); + } + if(!$this->userExists($uid)) { return false; } @@ -470,6 +497,19 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn } /** + * set display name of the user + * @param string $uid user ID of the user + * @param string $displayName new display name of the user + * @return string|false display name + */ + public function setDisplayName($uid, $displayName) { + if ($this->userPluginManager->implementsActions(Backend::SET_DISPLAYNAME)) { + return $this->userPluginManager->setDisplayName($uid, $displayName); + } + return false; + } + + /** * Get a list of all display names * * @param string $search @@ -506,7 +546,8 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn | Backend::GET_DISPLAYNAME | Backend::PROVIDE_AVATAR | Backend::COUNT_USERS - | ((intval($this->access->connection->turnOnPasswordChange) === 1)?(Backend::SET_PASSWORD):0)) + | ((intval($this->access->connection->turnOnPasswordChange) === 1)?(Backend::SET_PASSWORD):0) + | $this->userPluginManager->getImplementedActions()) & $actions); } @@ -523,6 +564,10 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn * @return int|bool */ public function countUsers() { + if ($this->userPluginManager->implementsActions(Backend::COUNT_USERS)) { + return $this->userPluginManager->countUsers(); + } + $filter = $this->access->getFilterForUserCount(); $cacheKey = 'countUsers-'.$filter; if(!is_null($entries = $this->access->connection->getFromCache($cacheKey))) { @@ -561,4 +606,18 @@ class User_LDAP extends BackendUtility implements \OCP\IUserBackend, \OCP\UserIn $connection = clone $this->access->getConnection(); return $connection->getConnectionResource(); } + + /** + * create new user + * @param string $username username of the new user + * @param string $password password of the new user + * @return bool was the user created? + */ + public function createUser($username, $password) { + if ($this->userPluginManager->implementsActions(Backend::CREATE_USER)) { + return $this->userPluginManager->createUser($username, $password); + } + return false; + } + } diff --git a/apps/user_ldap/lib/User_Proxy.php b/apps/user_ldap/lib/User_Proxy.php index a25eb1bc621..ccc82760b02 100644 --- a/apps/user_ldap/lib/User_Proxy.php +++ b/apps/user_ldap/lib/User_Proxy.php @@ -8,8 +8,10 @@ * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> + * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -48,11 +50,13 @@ class User_Proxy extends Proxy implements \OCP\IUserBackend, \OCP\UserInterface, * @param IUserSession $userSession */ public function __construct(array $serverConfigPrefixes, ILDAPWrapper $ldap, IConfig $ocConfig, - INotificationManager $notificationManager, IUserSession $userSession) { + INotificationManager $notificationManager, IUserSession $userSession, + UserPluginManager $userPluginManager) { parent::__construct($ldap); foreach($serverConfigPrefixes as $configPrefix) { $this->backends[$configPrefix] = - new User_LDAP($this->getAccess($configPrefix), $ocConfig, $notificationManager, $userSession); + new User_LDAP($this->getAccess($configPrefix), $ocConfig, $notificationManager, $userSession, $userPluginManager); + if(is_null($this->refBackend)) { $this->refBackend = &$this->backends[$configPrefix]; } @@ -233,12 +237,23 @@ class User_Proxy extends Proxy implements \OCP\IUserBackend, \OCP\UserInterface, } /** + * set display name of the user + * + * @param string $uid user ID of the user + * @param string $displayName new display name + * @return string display name + */ + public function setDisplayName($uid, $displayName) { + return $this->handleRequest($uid, 'setDisplayName', array($uid, $displayName)); + } + + /** * checks whether the user is allowed to change his avatar in Nextcloud * @param string $uid the Nextcloud user name * @return boolean either the user can or cannot */ public function canChangeAvatar($uid) { - return $this->handleRequest($uid, 'canChangeAvatar', array($uid), true); + return $this->handleRequest($uid, 'canChangeAvatar', array($uid)); } /** @@ -322,4 +337,14 @@ class User_Proxy extends Proxy implements \OCP\IUserBackend, \OCP\UserInterface, public function getNewLDAPConnection($uid) { return $this->handleRequest($uid, 'getNewLDAPConnection', array($uid)); } + + /** + * Creates a new user in LDAP + * @param $username + * @param $password + * @return bool + */ + public function createUser($username, $password) { + return $this->handleRequest($username, 'createUser', array($username,$password)); + } } diff --git a/apps/user_ldap/lib/Wizard.php b/apps/user_ldap/lib/Wizard.php index 7376507d134..bf7c6bbeb93 100644 --- a/apps/user_ldap/lib/Wizard.php +++ b/apps/user_ldap/lib/Wizard.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Alexander Bergolth <leo@strike.wu.ac.at> + * @author Allan Nordhøy <epost@anotheragency.no> * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Jean-Louis Dupond <jean-louis@dupond.be> @@ -13,7 +14,9 @@ * @author Nicolas Grekas <nicolas.grekas@gmail.com> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> + * @author Tobias Brunner <tobias@tobru.ch> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Xuanwo <xuanwo@yunify.com> * diff --git a/apps/user_ldap/tests/AccessTest.php b/apps/user_ldap/tests/AccessTest.php index 85f0516dec2..22829f38c06 100644 --- a/apps/user_ldap/tests/AccessTest.php +++ b/apps/user_ldap/tests/AccessTest.php @@ -6,9 +6,14 @@ * @author Andreas Fischer <bantu@owncloud.com> * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Lukas Reschke <lukas@statuscode.ch> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/tests/ConnectionTest.php b/apps/user_ldap/tests/ConnectionTest.php index 87ebc8d9ad3..c0f91d25d39 100644 --- a/apps/user_ldap/tests/ConnectionTest.php +++ b/apps/user_ldap/tests/ConnectionTest.php @@ -3,9 +3,12 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Jarkko Lehtoranta <devel@jlranta.com> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/tests/GroupLDAPPluginTest.php b/apps/user_ldap/tests/GroupLDAPPluginTest.php new file mode 100644 index 00000000000..9b13e37bc97 --- /dev/null +++ b/apps/user_ldap/tests/GroupLDAPPluginTest.php @@ -0,0 +1,248 @@ +<?php +/** + * @copyright Copyright (c) 2017 EITA Cooperative (eita.org.br) + * + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\User_LDAP\Tests; + + +use OCP\GroupInterface; +use OCA\User_LDAP\GroupPluginManager; + +class GroupLDAPPluginTest extends \Test\TestCase { + + /** + * @return GroupPluginManager + */ + private function getGroupPluginManager() { + return new GroupPluginManager(); + } + + public function testImplementsActions() { + $pluginManager = $this->getGroupPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') + ->setMethods(['respondToActions']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(GroupInterface::CREATE_GROUP); + + $plugin2 = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') + ->setMethods(['respondToActions']) + ->getMock(); + + $plugin2->expects($this->any()) + ->method('respondToActions') + ->willReturn(GroupInterface::ADD_TO_GROUP); + + $pluginManager->register($plugin); + $pluginManager->register($plugin2); + + $this->assertEquals($pluginManager->getImplementedActions(), GroupInterface::CREATE_GROUP | GroupInterface::ADD_TO_GROUP); + $this->assertTrue($pluginManager->implementsActions(GroupInterface::CREATE_GROUP)); + $this->assertTrue($pluginManager->implementsActions(GroupInterface::ADD_TO_GROUP)); + } + + public function testCreateGroup() { + $pluginManager = $this->getGroupPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') + ->setMethods(['respondToActions', 'createGroup']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(GroupInterface::CREATE_GROUP); + + $plugin->expects($this->once()) + ->method('createGroup') + ->with( + $this->equalTo('group') + ); + + $pluginManager->register($plugin); + $pluginManager->createGroup('group'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements createGroup in this LDAP Backend. + */ + public function testCreateGroupNotRegistered() { + $pluginManager = $this->getGroupPluginManager(); + $pluginManager->createGroup('foo'); + } + + public function testDeleteGroup() { + $pluginManager = $this->getGroupPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') + ->setMethods(['respondToActions', 'deleteGroup']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(GroupInterface::DELETE_GROUP); + + $plugin->expects($this->once()) + ->method('deleteGroup') + ->with( + $this->equalTo('group') + ); + + $pluginManager->register($plugin); + $pluginManager->deleteGroup('group'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements deleteGroup in this LDAP Backend. + */ + public function testDeleteGroupNotRegistered() { + $pluginManager = $this->getGroupPluginManager(); + $pluginManager->deleteGroup('foo'); + } + + public function testAddToGroup() { + $pluginManager = $this->getGroupPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') + ->setMethods(['respondToActions', 'addToGroup']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(GroupInterface::ADD_TO_GROUP); + + $plugin->expects($this->once()) + ->method('addToGroup') + ->with( + $this->equalTo('uid'), + $this->equalTo('gid') + ); + + $pluginManager->register($plugin); + $pluginManager->addToGroup('uid', 'gid'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements addToGroup in this LDAP Backend. + */ + public function testAddToGroupNotRegistered() { + $pluginManager = $this->getGroupPluginManager(); + $pluginManager->addToGroup('foo', 'bar'); + } + + public function testRemoveFromGroup() { + $pluginManager = $this->getGroupPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') + ->setMethods(['respondToActions', 'removeFromGroup']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(GroupInterface::REMOVE_FROM_GROUP); + + $plugin->expects($this->once()) + ->method('removeFromGroup') + ->with( + $this->equalTo('uid'), + $this->equalTo('gid') + ); + + $pluginManager->register($plugin); + $pluginManager->removeFromGroup('uid', 'gid'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements removeFromGroup in this LDAP Backend. + */ + public function testRemoveFromGroupNotRegistered() { + $pluginManager = $this->getGroupPluginManager(); + $pluginManager->removeFromGroup('foo', 'bar'); + } + + public function testCountUsersInGroup() { + $pluginManager = $this->getGroupPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') + ->setMethods(['respondToActions', 'countUsersInGroup']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(GroupInterface::COUNT_USERS); + + $plugin->expects($this->once()) + ->method('countUsersInGroup') + ->with( + $this->equalTo('gid'), + $this->equalTo('search') + ); + + $pluginManager->register($plugin); + $pluginManager->countUsersInGroup('gid', 'search'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements countUsersInGroup in this LDAP Backend. + */ + public function testCountUsersInGroupNotRegistered() { + $pluginManager = $this->getGroupPluginManager(); + $pluginManager->countUsersInGroup('foo', 'bar'); + } + + public function testgetGroupDetails() { + $pluginManager = $this->getGroupPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPGroupPluginDummy') + ->setMethods(['respondToActions', 'getGroupDetails']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(GroupInterface::GROUP_DETAILS); + + $plugin->expects($this->once()) + ->method('getGroupDetails') + ->with( + $this->equalTo('gid') + ); + + $pluginManager->register($plugin); + $pluginManager->getGroupDetails('gid'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements getGroupDetails in this LDAP Backend. + */ + public function testgetGroupDetailsNotRegistered() { + $pluginManager = $this->getGroupPluginManager(); + $pluginManager->getGroupDetails('foo'); + } +} diff --git a/apps/user_ldap/tests/Group_LDAPTest.php b/apps/user_ldap/tests/Group_LDAPTest.php index 9b5216742fe..8eabf2d295a 100644 --- a/apps/user_ldap/tests/Group_LDAPTest.php +++ b/apps/user_ldap/tests/Group_LDAPTest.php @@ -7,8 +7,11 @@ * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * @author Xuanwo <xuanwo@yunify.com> * * @license AGPL-3.0 @@ -29,6 +32,7 @@ namespace OCA\User_LDAP\Tests; +use OCP\GroupInterface; use OCA\User_LDAP\Group_LDAP as GroupLDAP; use OCA\User_LDAP\ILDAPWrapper; @@ -69,6 +73,10 @@ class Group_LDAPTest extends \Test\TestCase { return $access; } + private function getPluginManagerMock() { + return $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager')->getMock(); + } + private function enableGroups($access) { $access->connection->expects($this->any()) ->method('__get') @@ -82,6 +90,7 @@ class Group_LDAPTest extends \Test\TestCase { public function testCountEmptySearchString() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); $this->enableGroups($access); @@ -98,7 +107,7 @@ class Group_LDAPTest extends \Test\TestCase { ->method('countUsers') ->will($this->returnValue(2)); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $users = $groupBackend->countUsersInGroup('group'); $this->assertSame(6, $users); @@ -106,6 +115,7 @@ class Group_LDAPTest extends \Test\TestCase { public function testCountWithSearchString() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); $this->enableGroups($access); @@ -137,14 +147,39 @@ class Group_LDAPTest extends \Test\TestCase { return 'foobar' . \OCP\Util::generateRandomBytes(7); })); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access,$pluginManager); $users = $groupBackend->countUsersInGroup('group', '3'); $this->assertSame(2, $users); } + public function testCountUsersWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions','countUsersInGroup']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::COUNT_USERS) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('countUsersInGroup') + ->with('gid', 'search') + ->willReturn(42); + + $ldap = new GroupLDAP( + $this->getAccessMock(), + $pluginManager + ); + + $this->assertEquals($ldap->countUsersInGroup('gid', 'search'),42); + } + public function testGidNumber2NameSuccess() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; @@ -158,7 +193,7 @@ class Group_LDAPTest extends \Test\TestCase { ->with('cn=foo,dc=barfoo,dc=bar') ->will($this->returnValue('MyGroup')); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $group = $groupBackend->gidNumber2Name('3117', $userDN); @@ -167,6 +202,8 @@ class Group_LDAPTest extends \Test\TestCase { public function testGidNumberID2NameNoGroup() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; @@ -178,7 +215,7 @@ class Group_LDAPTest extends \Test\TestCase { $access->expects($this->never()) ->method('dn2groupname'); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $group = $groupBackend->gidNumber2Name('3117', $userDN); @@ -187,6 +224,8 @@ class Group_LDAPTest extends \Test\TestCase { public function testGidNumberID2NameNoName() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; @@ -199,7 +238,7 @@ class Group_LDAPTest extends \Test\TestCase { ->method('dn2groupname') ->will($this->returnValue(false)); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $group = $groupBackend->gidNumber2Name('3117', $userDN); @@ -208,6 +247,8 @@ class Group_LDAPTest extends \Test\TestCase { public function testGetEntryGidNumberValue() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $dn = 'cn=foobar,cn=foo,dc=barfoo,dc=bar'; @@ -218,7 +259,7 @@ class Group_LDAPTest extends \Test\TestCase { ->with($dn, $attr) ->will($this->returnValue(array('3117'))); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $gid = $groupBackend->getGroupGidNumber($dn); @@ -227,6 +268,8 @@ class Group_LDAPTest extends \Test\TestCase { public function testGetEntryGidNumberNoValue() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $dn = 'cn=foobar,cn=foo,dc=barfoo,dc=bar'; @@ -237,7 +280,7 @@ class Group_LDAPTest extends \Test\TestCase { ->with($dn, $attr) ->will($this->returnValue(false)); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $gid = $groupBackend->getGroupGidNumber($dn); @@ -246,6 +289,8 @@ class Group_LDAPTest extends \Test\TestCase { public function testPrimaryGroupID2NameSuccess() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; @@ -264,7 +309,7 @@ class Group_LDAPTest extends \Test\TestCase { ->with('cn=foo,dc=barfoo,dc=bar') ->will($this->returnValue('MyGroup')); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $group = $groupBackend->primaryGroupID2Name('3117', $userDN); @@ -273,6 +318,8 @@ class Group_LDAPTest extends \Test\TestCase { public function testPrimaryGroupID2NameNoSID() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; @@ -288,7 +335,7 @@ class Group_LDAPTest extends \Test\TestCase { $access->expects($this->never()) ->method('dn2groupname'); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $group = $groupBackend->primaryGroupID2Name('3117', $userDN); @@ -297,6 +344,8 @@ class Group_LDAPTest extends \Test\TestCase { public function testPrimaryGroupID2NameNoGroup() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; @@ -313,7 +362,7 @@ class Group_LDAPTest extends \Test\TestCase { $access->expects($this->never()) ->method('dn2groupname'); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $group = $groupBackend->primaryGroupID2Name('3117', $userDN); @@ -322,6 +371,8 @@ class Group_LDAPTest extends \Test\TestCase { public function testPrimaryGroupID2NameNoName() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $userDN = 'cn=alice,cn=foo,dc=barfoo,dc=bar'; @@ -339,7 +390,7 @@ class Group_LDAPTest extends \Test\TestCase { ->method('dn2groupname') ->will($this->returnValue(false)); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $group = $groupBackend->primaryGroupID2Name('3117', $userDN); @@ -350,6 +401,8 @@ class Group_LDAPTest extends \Test\TestCase { //tests getEntryGroupID via getGroupPrimaryGroupID //which is basically identical to getUserPrimaryGroupIDs $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $dn = 'cn=foobar,cn=foo,dc=barfoo,dc=bar'; @@ -360,7 +413,7 @@ class Group_LDAPTest extends \Test\TestCase { ->with($dn, $attr) ->will($this->returnValue(array('3117'))); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $gid = $groupBackend->getGroupPrimaryGroupID($dn); @@ -371,6 +424,8 @@ class Group_LDAPTest extends \Test\TestCase { //tests getEntryGroupID via getGroupPrimaryGroupID //which is basically identical to getUserPrimaryGroupIDs $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $dn = 'cn=foobar,cn=foo,dc=barfoo,dc=bar'; @@ -381,7 +436,7 @@ class Group_LDAPTest extends \Test\TestCase { ->with($dn, $attr) ->will($this->returnValue(false)); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $gid = $groupBackend->getGroupPrimaryGroupID($dn); @@ -394,6 +449,8 @@ class Group_LDAPTest extends \Test\TestCase { */ public function testInGroupHitsUidGidCache() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $uid = 'someUser'; @@ -408,19 +465,21 @@ class Group_LDAPTest extends \Test\TestCase { $access->expects($this->never()) ->method('username2dn'); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $groupBackend->inGroup($uid, $gid); } public function testGetGroupsWithOffset() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $access->expects($this->once()) ->method('nextcloudGroupNames') ->will($this->returnValue(array('group1', 'group2'))); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $groups = $groupBackend->getGroups('', 2, 2); $this->assertSame(2, count($groups)); @@ -432,6 +491,8 @@ class Group_LDAPTest extends \Test\TestCase { */ public function testUsersInGroupPrimaryMembersOnly() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $access->connection->expects($this->any()) @@ -457,7 +518,7 @@ class Group_LDAPTest extends \Test\TestCase { ->method('nextcloudUserNames') ->willReturnOnConsecutiveCalls(['lisa', 'bart', 'kira', 'brad'], ['walle', 'dino', 'xenia']); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $users = $groupBackend->usersInGroup('foobar'); $this->assertSame(7, count($users)); @@ -469,6 +530,8 @@ class Group_LDAPTest extends \Test\TestCase { */ public function testUsersInGroupPrimaryAndUnixMembers() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $access->connection->expects($this->any()) @@ -492,7 +555,7 @@ class Group_LDAPTest extends \Test\TestCase { ->method('nextcloudUserNames') ->will($this->returnValue(array('lisa', 'bart', 'kira', 'brad'))); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $users = $groupBackend->usersInGroup('foobar'); $this->assertSame(4, count($users)); @@ -504,6 +567,8 @@ class Group_LDAPTest extends \Test\TestCase { */ public function testCountUsersInGroupPrimaryMembersOnly() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $access->connection->expects($this->any()) @@ -527,7 +592,7 @@ class Group_LDAPTest extends \Test\TestCase { ->method('countUsers') ->will($this->returnValue(4)); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $users = $groupBackend->countUsersInGroup('foobar'); $this->assertSame(4, $users); @@ -535,6 +600,8 @@ class Group_LDAPTest extends \Test\TestCase { public function testGetUserGroupsMemberOf() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); + $this->enableGroups($access); $dn = 'cn=userX,dc=foobar'; @@ -558,7 +625,7 @@ class Group_LDAPTest extends \Test\TestCase { ->method('groupsMatchFilter') ->will($this->returnArgument(0)); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $groups = $groupBackend->getUserGroups('userX'); $this->assertSame(2, count($groups)); @@ -566,6 +633,7 @@ class Group_LDAPTest extends \Test\TestCase { public function testGetUserGroupsMemberOfDisabled() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); $access->connection->expects($this->any()) ->method('__get') @@ -595,12 +663,13 @@ class Group_LDAPTest extends \Test\TestCase { ->method('nextcloudGroupNames') ->will($this->returnValue([])); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $groupBackend->getUserGroups('userX'); } public function testGetGroupsByMember() { $access = $this->getAccessMock(); + $pluginManager = $this->getPluginManagerMock(); $access->connection->expects($this->any()) ->method('__get') @@ -646,11 +715,243 @@ class Group_LDAPTest extends \Test\TestCase { ->method('fetchListOfGroups') ->will($this->returnValue([$group1, $group2])); - $groupBackend = new GroupLDAP($access); + $groupBackend = new GroupLDAP($access, $pluginManager); $groups = $groupBackend->getUserGroups('userX'); $this->assertEquals(['group1', 'group2'], $groups); $groupsAgain = $groupBackend->getUserGroups('userX'); $this->assertEquals(['group1', 'group2'], $groupsAgain); } + + public function testCreateGroupWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions','createGroup']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::CREATE_GROUP) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('createGroup') + ->with('gid') + ->willReturn('result'); + + $ldap = new GroupLDAP( + $this->getAccessMock(), + $pluginManager + ); + + $this->assertEquals($ldap->createGroup('gid'),true); + } + + /** + * @expectedException \Exception + */ + public function testCreateGroupFailing() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions', 'createGroup']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::CREATE_GROUP) + ->willReturn(false); + + $ldap = new GroupLDAP( + $this->getAccessMock(), + $pluginManager + ); + + $ldap->createGroup('gid'); + } + + public function testDeleteGroupWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions','deleteGroup']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::DELETE_GROUP) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('deleteGroup') + ->with('gid') + ->willReturn('result'); + + $access = $this->getAccessMock(); + + $mapper = $this->getMockBuilder('\OCA\User_LDAP\Mapping\GroupMapping') + ->setMethods(['unmap']) + ->disableOriginalConstructor() + ->getMock(); + + $access->expects($this->any()) + ->method('getGroupMapper') + ->will($this->returnValue($mapper)); + + $ldap = new GroupLDAP( + $access, + $pluginManager + ); + + $this->assertEquals($ldap->deleteGroup('gid'),'result'); + } + + /** + * @expectedException \Exception + */ + public function testDeleteGroupFailing() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions', 'deleteGroup']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::DELETE_GROUP) + ->willReturn(false); + + $ldap = new GroupLDAP( + $this->getAccessMock(), + $pluginManager + ); + + $ldap->deleteGroup('gid'); + } + + public function testAddToGroupWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions','addToGroup']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::ADD_TO_GROUP) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('addToGroup') + ->with('uid', 'gid') + ->willReturn('result'); + + $ldap = new GroupLDAP( + $this->getAccessMock(), + $pluginManager + ); + + $this->assertEquals($ldap->addToGroup('uid', 'gid'),'result'); + } + + /** + * @expectedException \Exception + */ + public function testAddToGroupFailing() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions', 'addToGroup']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::ADD_TO_GROUP) + ->willReturn(false); + + $ldap = new GroupLDAP( + $this->getAccessMock(), + $pluginManager + ); + + $ldap->addToGroup('uid', 'gid'); + } + + public function testRemoveFromGroupWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions','removeFromGroup']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::REMOVE_FROM_GROUP) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('removeFromGroup') + ->with('uid', 'gid') + ->willReturn('result'); + + $ldap = new GroupLDAP( + $this->getAccessMock(), + $pluginManager + ); + + $this->assertEquals($ldap->removeFromGroup('uid', 'gid'),'result'); + } + + /** + * @expectedException \Exception + */ + public function testRemoveFromGroupFailing() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions', 'removeFromGroup']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::REMOVE_FROM_GROUP) + ->willReturn(false); + + $ldap = new GroupLDAP( + $this->getAccessMock(), + $pluginManager + ); + + $ldap->removeFromGroup('uid', 'gid'); + } + + public function testGetGroupDetailsWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions','getGroupDetails']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::GROUP_DETAILS) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('getGroupDetails') + ->with('gid') + ->willReturn('result'); + + $ldap = new GroupLDAP( + $this->getAccessMock(), + $pluginManager + ); + + $this->assertEquals($ldap->getGroupDetails('gid'),'result'); + } + + /** + * @expectedException \Exception + */ + public function testGetGroupDetailsFailing() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\GroupPluginManager') + ->setMethods(['implementsActions', 'getGroupDetails']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(GroupInterface::GROUP_DETAILS) + ->willReturn(false); + + $ldap = new GroupLDAP( + $this->getAccessMock(), + $pluginManager + ); + + $ldap->getGroupDetails('gid'); + } + } diff --git a/apps/user_ldap/tests/HelperTest.php b/apps/user_ldap/tests/HelperTest.php index ca0bbcc4e81..31d17cbaede 100644 --- a/apps/user_ldap/tests/HelperTest.php +++ b/apps/user_ldap/tests/HelperTest.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OCA\User_LDAP\Tests; diff --git a/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php b/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php index 84e1e6b458a..3bc3699fbac 100644 --- a/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php +++ b/apps/user_ldap/tests/Integration/AbstractIntegrationTest.php @@ -4,6 +4,9 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author root <root@localhost.localdomain> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -68,6 +71,13 @@ abstract class AbstractIntegrationTest { * the LDAP backend. */ public function init() { + \OC::$server->registerService('LDAPUserPluginManager', function() { + return new \OCA\User_LDAP\UserPluginManager(); + }); + \OC::$server->registerService('LDAPGroupPluginManager', function() { + return new \OCA\User_LDAP\GroupPluginManager(); + }); + $this->initLDAPWrapper(); $this->initConnection(); $this->initUserManager(); diff --git a/apps/user_ldap/tests/Integration/Bootstrap.php b/apps/user_ldap/tests/Integration/Bootstrap.php index f52f1322171..46299098ab2 100644 --- a/apps/user_ldap/tests/Integration/Bootstrap.php +++ b/apps/user_ldap/tests/Integration/Bootstrap.php @@ -1,23 +1,23 @@ <?php - /** * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * - * @license AGPL-3.0 + * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/apps/user_ldap/tests/Integration/ExceptionOnLostConnection.php b/apps/user_ldap/tests/Integration/ExceptionOnLostConnection.php index 0dc80e87238..32dfb72d9c1 100644 --- a/apps/user_ldap/tests/Integration/ExceptionOnLostConnection.php +++ b/apps/user_ldap/tests/Integration/ExceptionOnLostConnection.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php index bd8e4bdd7a2..0238d68f59f 100644 --- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php +++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestAttributeDetection.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license GNU AGPL version 3 or any later version * @@ -49,12 +50,12 @@ class IntegrationTestAttributeDetection extends AbstractIntegrationTest { $groupMapper->clear(); $this->access->setGroupMapper($groupMapper); - $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); + $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession(), \OC::$server->query('LDAPUserPluginManager')); $userManager = \OC::$server->getUserManager(); $userManager->clearBackends(); $userManager->registerBackend($userBackend); - $groupBackend = new Group_LDAP($this->access); + $groupBackend = new Group_LDAP($this->access, \OC::$server->query('LDAPGroupPluginManager')); $groupManger = \OC::$server->getGroupManager(); $groupManger->clearBackends(); $groupManger->addBackend($groupBackend); diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php index 95bfb99b65b..cab5f6196fd 100644 --- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php +++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestFetchUsersByLoginName.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -47,7 +48,7 @@ class IntegrationTestFetchUsersByLoginName extends AbstractIntegrationTest { $this->mapping = new UserMapping(\OC::$server->getDatabaseConnection()); $this->mapping->clear(); $this->access->setUserMapper($this->mapping); - $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); + $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession(), \OC::$server->query('LDAPUserPluginManager')); } /** diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php index 3c8cf22bb5b..d54d001c4ad 100644 --- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php +++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestPaging.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -47,7 +48,7 @@ class IntegrationTestPaging extends AbstractIntegrationTest { require(__DIR__ . '/../setup-scripts/createExplicitUsers.php'); parent::init(); - $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); + $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession(), \OC::$server->query('LDAPUserPluginManager')); } public function initConnection() { diff --git a/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php b/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php index 765cee00f91..9ee5a7efac2 100644 --- a/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php +++ b/apps/user_ldap/tests/Integration/Lib/IntegrationTestUserHome.php @@ -4,6 +4,9 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -51,7 +54,7 @@ class IntegrationTestUserHome extends AbstractIntegrationTest { $this->mapping = new UserMapping(\OC::$server->getDatabaseConnection()); $this->mapping->clear(); $this->access->setUserMapper($this->mapping); - $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); + $this->backend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession(), \OC::$server->query('LDAPUserPluginManager')); } /** diff --git a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php index 8c9e215edaa..599458a9721 100644 --- a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php +++ b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserAvatar.php @@ -5,7 +5,9 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roger Szabo <roger.szabo@web.de> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -50,7 +52,7 @@ class IntegrationTestUserAvatar extends AbstractIntegrationTest { $this->mapping = new UserMapping(\OC::$server->getDatabaseConnection()); $this->mapping->clear(); $this->access->setUserMapper($this->mapping); - $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); + $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession(), \OC::$server->query('LDAPUserPluginManager')); \OC_User::useBackend($userBackend); } diff --git a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserCleanUp.php b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserCleanUp.php index ce81b9a26d6..0d072bcf973 100644 --- a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserCleanUp.php +++ b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserCleanUp.php @@ -3,7 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Joas Schilling <coding@schilljs.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -46,7 +46,7 @@ class IntegrationTestUserCleanUp extends AbstractIntegrationTest { $this->mapping->clear(); $this->access->setUserMapper($this->mapping); - $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); + $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession(), \OC::$server->query('LDAPUserPluginManager')); \OC_User::useBackend($userBackend); } diff --git a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php index 1f5d16567f7..476bc8e7596 100644 --- a/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php +++ b/apps/user_ldap/tests/Integration/Lib/User/IntegrationTestUserDisplayName.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -43,7 +44,7 @@ class IntegrationTestUserDisplayName extends AbstractIntegrationTest { $this->mapping = new UserMapping(\OC::$server->getDatabaseConnection()); $this->mapping->clear(); $this->access->setUserMapper($this->mapping); - $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession()); + $userBackend = new User_LDAP($this->access, \OC::$server->getConfig(), \OC::$server->getNotificationManager(), \OC::$server->getUserSession(), \OC::$server->query('LDAPUserPluginManager')); \OC_User::useBackend($userBackend); } diff --git a/apps/user_ldap/tests/Jobs/CleanUpTest.php b/apps/user_ldap/tests/Jobs/CleanUpTest.php index 62cebcf328e..1f30af3a58a 100644 --- a/apps/user_ldap/tests/Jobs/CleanUpTest.php +++ b/apps/user_ldap/tests/Jobs/CleanUpTest.php @@ -5,6 +5,7 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/tests/LDAPGroupPluginDummy.php b/apps/user_ldap/tests/LDAPGroupPluginDummy.php new file mode 100644 index 00000000000..ac67b526571 --- /dev/null +++ b/apps/user_ldap/tests/LDAPGroupPluginDummy.php @@ -0,0 +1,59 @@ +<?php +/** + * @copyright Copyright (c) 2017 EITA Cooperative (eita.org.br) + * + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\User_LDAP\Tests; + + +use OCA\User_LDAP\ILDAPGroupPlugin; + +class LDAPGroupPluginDummy implements ILDAPGroupPlugin { + + + public function respondToActions() { + return null; + } + + public function createGroup($gid) { + return null; + } + + public function deleteGroup($gid) { + return null; + } + + public function addToGroup($uid, $gid) { + return null; + } + + public function removeFromGroup($uid, $gid) { + return null; + } + + public function countUsersInGroup($gid, $search = '') { + return null; + } + + public function getGroupDetails($gid) { + return null; + } +} diff --git a/apps/user_ldap/tests/LDAPProviderTest.php b/apps/user_ldap/tests/LDAPProviderTest.php index 585e0df662b..f3a27dec2c4 100644 --- a/apps/user_ldap/tests/LDAPProviderTest.php +++ b/apps/user_ldap/tests/LDAPProviderTest.php @@ -1,8 +1,11 @@ <?php /** - * * @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de) * + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author root <root@localhost.localdomain> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify @@ -22,6 +25,8 @@ namespace OCA\User_LDAP\Tests; +use OCA\User_LDAP\IGroupLDAP; +use OCP\IConfig; use OCP\IServerContainer; use OCA\User_LDAP\IUserLDAP; @@ -38,21 +43,57 @@ class LDAPProviderTest extends \Test\TestCase { parent::setUp(); } - private function getServerMock(IUserLDAP $backend) { + private function getServerMock(IUserLDAP $userBackend, IGroupLDAP $groupBackend) { $server = $this->getMockBuilder('OC\Server') - ->setMethods(['getUserManager', 'getBackends']) + ->setMethods(['getUserManager', 'getBackends', 'getGroupManager']) ->setConstructorArgs(['', new \OC\Config(\OC::$configDir)]) ->getMock(); $server->expects($this->at(1)) ->method('getBackends') - ->willReturn([$backend]); + ->willReturn([$userBackend]); + $server->expects($this->any()) + ->method('getUserManager') + ->willReturn($this->getUserManagerMock($userBackend)); + $server->expects($this->any()) + ->method('getGroupManager') + ->willReturn($this->getGroupManagerMock($groupBackend)); $server->expects($this->any()) ->method($this->anything()) ->willReturnSelf(); return $server; } + + private function getUserManagerMock(IUserLDAP $userBackend) { + $userManager = $this->getMockBuilder('OC\User\Manager') + ->setMethods(['getBackends']) + ->setConstructorArgs([$this->createMock(IConfig::class)]) + ->getMock(); + $userManager->expects($this->any()) + ->method('getBackends') + ->willReturn([$userBackend]); + return $userManager; + } + private function getGroupManagerMock(IGroupLDAP $groupBackend) { + $groupManager = $this->getMockBuilder('OC\Group\Manager') + ->setMethods(['getBackends']) + ->disableOriginalConstructor() + ->getMock(); + $groupManager->expects($this->any()) + ->method('getBackends') + ->willReturn([$groupBackend]); + return $groupManager; + } + + private function getDefaultGroupBackendMock() { + $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') + ->disableOriginalConstructor() + ->getMock(); + + return $groupBackend; + } + private function getLDAPProvider(IServerContainer $serverContainer) { $factory = new \OCA\User_LDAP\LDAPProviderFactory($serverContainer); return $factory->getLDAPProvider(); @@ -63,50 +104,100 @@ class LDAPProviderTest extends \Test\TestCase { * @expectedExceptionMessage User id not found in LDAP */ public function testGetUserDNUserIDNotFound() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->any())->method('userExists')->willReturn(false); + $userBackend->expects($this->any())->method('userExists')->willReturn(false); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $ldapProvider->getUserDN('nonexisting_user'); } public function testGetUserDN() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['userExists', 'getLDAPAccess', 'username2dn']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->at(0)) + $userBackend->expects($this->at(0)) ->method('userExists') ->willReturn(true); - $backend->expects($this->at(2)) + $userBackend->expects($this->at(2)) ->method('username2dn') ->willReturn('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org'); - $backend->expects($this->any()) + $userBackend->expects($this->any()) ->method($this->anything()) ->willReturnSelf(); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $this->assertEquals('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org', $ldapProvider->getUserDN('existing_user')); } + /** + * @expectedException \Exception + * @expectedExceptionMessage Group id not found in LDAP + */ + public function testGetGroupDNGroupIDNotFound() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') + ->setMethods(['groupExists']) + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend->expects($this->any())->method('groupExists')->willReturn(false); + + $server = $this->getServerMock($userBackend, $groupBackend); + + $ldapProvider = $this->getLDAPProvider($server); + $ldapProvider->getGroupDN('nonexisting_group'); + } + + public function testGetGroupDN() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->setMethods(['userExists', 'getLDAPAccess', 'username2dn']) + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') + ->setMethods(['groupExists', 'getLDAPAccess', 'groupname2dn']) + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend->expects($this->at(0)) + ->method('groupExists') + ->willReturn(true); + $groupBackend->expects($this->at(2)) + ->method('groupname2dn') + ->willReturn('cn=existing_group,ou=Are Sufficient To,ou=Test,dc=example,dc=org'); + $groupBackend->expects($this->any()) + ->method($this->anything()) + ->willReturnSelf(); + + $server = $this->getServerMock($userBackend, $groupBackend); + + $ldapProvider = $this->getLDAPProvider($server); + $this->assertEquals('cn=existing_group,ou=Are Sufficient To,ou=Test,dc=example,dc=org', + $ldapProvider->getGroupDN('existing_group')); + } + public function testGetUserName() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['dn2UserName']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->any()) + $userBackend->expects($this->any()) ->method('dn2UserName') ->willReturn('existing_user'); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $this->assertEquals('existing_user', @@ -114,12 +205,12 @@ class LDAPProviderTest extends \Test\TestCase { } public function testDNasBaseParameter() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods([]) ->disableOriginalConstructor() ->getMock(); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $helper = new \OCA\User_LDAP\Helper(\OC::$server->getConfig()); @@ -130,12 +221,12 @@ class LDAPProviderTest extends \Test\TestCase { } public function testSanitizeDN() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods([]) ->disableOriginalConstructor() ->getMock(); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $helper = new \OCA\User_LDAP\Helper(\OC::$server->getConfig()); @@ -150,69 +241,115 @@ class LDAPProviderTest extends \Test\TestCase { * @expectedExceptionMessage User id not found in LDAP */ public function testGetLDAPConnectionUserIDNotFound() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->any())->method('userExists')->willReturn(false); + $userBackend->expects($this->any())->method('userExists')->willReturn(false); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $ldapProvider->getLDAPConnection('nonexisting_user'); } public function testGetLDAPConnection() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['userExists', 'getNewLDAPConnection']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->any()) + $userBackend->expects($this->any()) ->method('userExists') ->willReturn(true); - $backend->expects($this->any()) + $userBackend->expects($this->any()) ->method('getNewLDAPConnection') ->willReturn(true); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $this->assertTrue($ldapProvider->getLDAPConnection('existing_user')); } + + /** + * @expectedException \Exception + * @expectedExceptionMessage Group id not found in LDAP + */ + public function testGetGroupLDAPConnectionGroupIDNotFound() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') + ->setMethods(['groupExists']) + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend->expects($this->any())->method('groupExists')->willReturn(false); + + $server = $this->getServerMock($userBackend, $groupBackend); + + $ldapProvider = $this->getLDAPProvider($server); + $ldapProvider->getGroupLDAPConnection('nonexisting_group'); + } + + public function testGetGroupLDAPConnection() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') + ->setMethods(['groupExists','getNewLDAPConnection']) + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend->expects($this->any()) + ->method('groupExists') + ->willReturn(true); + + $groupBackend->expects($this->any()) + ->method('getNewLDAPConnection') + ->willReturn(true); + + $server = $this->getServerMock($userBackend, $groupBackend); + + $ldapProvider = $this->getLDAPProvider($server); + $this->assertTrue($ldapProvider->getGroupLDAPConnection('existing_group')); + } /** * @expectedException \Exception * @expectedExceptionMessage User id not found in LDAP */ public function testGetLDAPBaseUsersUserIDNotFound() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->any())->method('userExists')->willReturn(false); + $userBackend->expects($this->any())->method('userExists')->willReturn(false); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $ldapProvider->getLDAPBaseUsers('nonexisting_user'); } public function testGetLDAPBaseUsers() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->at(0)) + $userBackend->expects($this->at(0)) ->method('userExists') ->willReturn(true); - $backend->expects($this->at(3)) + $userBackend->expects($this->at(3)) ->method('getConfiguration') ->willReturn(array('ldap_base_users'=>'ou=users,dc=example,dc=org')); - $backend->expects($this->any()) + $userBackend->expects($this->any()) ->method($this->anything()) ->willReturnSelf(); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $this->assertEquals('ou=users,dc=example,dc=org', $ldapProvider->getLDAPBaseUsers('existing_user')); @@ -223,34 +360,34 @@ class LDAPProviderTest extends \Test\TestCase { * @expectedExceptionMessage User id not found in LDAP */ public function testGetLDAPBaseGroupsUserIDNotFound() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->any())->method('userExists')->willReturn(false); + $userBackend->expects($this->any())->method('userExists')->willReturn(false); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $ldapProvider->getLDAPBaseGroups('nonexisting_user'); } public function testGetLDAPBaseGroups() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->at(0)) + $userBackend->expects($this->at(0)) ->method('userExists') ->willReturn(true); - $backend->expects($this->at(3)) + $userBackend->expects($this->at(3)) ->method('getConfiguration') ->willReturn(array('ldap_base_groups'=>'ou=groups,dc=example,dc=org')); - $backend->expects($this->any()) + $userBackend->expects($this->any()) ->method($this->anything()) ->willReturnSelf(); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $this->assertEquals('ou=groups,dc=example,dc=org', $ldapProvider->getLDAPBaseGroups('existing_user')); @@ -261,62 +398,107 @@ class LDAPProviderTest extends \Test\TestCase { * @expectedExceptionMessage User id not found in LDAP */ public function testClearCacheUserIDNotFound() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['userExists']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->any())->method('userExists')->willReturn(false); + $userBackend->expects($this->any())->method('userExists')->willReturn(false); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $ldapProvider->clearCache('nonexisting_user'); } public function testClearCache() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'clearCache']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->at(0)) + $userBackend->expects($this->at(0)) ->method('userExists') ->willReturn(true); - $backend->expects($this->at(3)) + $userBackend->expects($this->at(3)) ->method('clearCache') ->willReturn(true); - $backend->expects($this->any()) + $userBackend->expects($this->any()) ->method($this->anything()) ->willReturnSelf(); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $ldapProvider->clearCache('existing_user'); $this->assertTrue(TRUE); } + + /** + * @expectedException \Exception + * @expectedExceptionMessage Group id not found in LDAP + */ + public function testClearGroupCacheGroupIDNotFound() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->disableOriginalConstructor() + ->getMock(); + $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') + ->setMethods(['groupExists']) + ->disableOriginalConstructor() + ->getMock(); + $groupBackend->expects($this->any())->method('groupExists')->willReturn(false); + + $server = $this->getServerMock($userBackend, $groupBackend); + + $ldapProvider = $this->getLDAPProvider($server); + $ldapProvider->clearGroupCache('nonexisting_group'); + } + + public function testClearGroupCache() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->disableOriginalConstructor() + ->getMock(); + $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') + ->setMethods(['groupExists', 'getLDAPAccess', 'getConnection', 'clearCache']) + ->disableOriginalConstructor() + ->getMock(); + $groupBackend->expects($this->at(0)) + ->method('groupExists') + ->willReturn(true); + $groupBackend->expects($this->at(3)) + ->method('clearCache') + ->willReturn(true); + $groupBackend->expects($this->any()) + ->method($this->anything()) + ->willReturnSelf(); + + $server = $this->getServerMock($userBackend, $groupBackend); + + $ldapProvider = $this->getLDAPProvider($server); + $ldapProvider->clearGroupCache('existing_group'); + $this->assertTrue(TRUE); + } public function testDnExists() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods(['dn2UserName']) ->disableOriginalConstructor() ->getMock(); - $backend->expects($this->any()) + $userBackend->expects($this->any()) ->method('dn2UserName') ->willReturn('existing_user'); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $this->assertTrue($ldapProvider->dnExists('cn=existing_user,ou=Are Sufficient To,ou=Test,dc=example,dc=org')); } public function testFlagRecord() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods([]) ->disableOriginalConstructor() ->getMock(); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $ldapProvider->flagRecord('existing_user'); @@ -324,15 +506,140 @@ class LDAPProviderTest extends \Test\TestCase { } public function testUnflagRecord() { - $backend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') ->setMethods([]) ->disableOriginalConstructor() ->getMock(); - $server = $this->getServerMock($backend); + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); $ldapProvider = $this->getLDAPProvider($server); $ldapProvider->unflagRecord('existing_user'); $this->assertTrue(TRUE); } + + /** + * @expectedException \Exception + * @expectedExceptionMessage User id not found in LDAP + */ + public function testGetLDAPDisplayNameFieldUserIDNotFound() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->setMethods(['userExists']) + ->disableOriginalConstructor() + ->getMock(); + $userBackend->expects($this->any())->method('userExists')->willReturn(false); + + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); + + $ldapProvider = $this->getLDAPProvider($server); + $ldapProvider->getLDAPDisplayNameField('nonexisting_user'); + } + + public function testGetLDAPDisplayNameField() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration']) + ->disableOriginalConstructor() + ->getMock(); + $userBackend->expects($this->at(0)) + ->method('userExists') + ->willReturn(true); + $userBackend->expects($this->at(3)) + ->method('getConfiguration') + ->willReturn(array('ldap_display_name'=>'displayName')); + $userBackend->expects($this->any()) + ->method($this->anything()) + ->willReturnSelf(); + + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); + + $ldapProvider = $this->getLDAPProvider($server); + $this->assertEquals('displayName', $ldapProvider->getLDAPDisplayNameField('existing_user')); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage User id not found in LDAP + */ + public function testGetLDAPEmailFieldUserIDNotFound() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->setMethods(['userExists']) + ->disableOriginalConstructor() + ->getMock(); + $userBackend->expects($this->any())->method('userExists')->willReturn(false); + + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); + + $ldapProvider = $this->getLDAPProvider($server); + $ldapProvider->getLDAPEmailField('nonexisting_user'); + } + + public function testGetLDAPEmailField() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->setMethods(['userExists', 'getLDAPAccess', 'getConnection', 'getConfiguration']) + ->disableOriginalConstructor() + ->getMock(); + $userBackend->expects($this->at(0)) + ->method('userExists') + ->willReturn(true); + $userBackend->expects($this->at(3)) + ->method('getConfiguration') + ->willReturn(array('ldap_email_attr'=>'mail')); + $userBackend->expects($this->any()) + ->method($this->anything()) + ->willReturnSelf(); + + $server = $this->getServerMock($userBackend, $this->getDefaultGroupBackendMock()); + + $ldapProvider = $this->getLDAPProvider($server); + $this->assertEquals('mail', $ldapProvider->getLDAPEmailField('existing_user')); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage Group id not found in LDAP + */ + public function testGetLDAPGroupMemberAssocUserIDNotFound() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') + ->setMethods(['groupExists']) + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend->expects($this->any())->method('groupExists')->willReturn(false); + + $server = $this->getServerMock($userBackend, $groupBackend); + + $ldapProvider = $this->getLDAPProvider($server); + $ldapProvider->getLDAPGroupMemberAssoc('nonexisting_group'); + } + + public function testgetLDAPGroupMemberAssoc() { + $userBackend = $this->getMockBuilder('OCA\User_LDAP\User_LDAP') + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend = $this->getMockBuilder('OCA\User_LDAP\Group_LDAP') + ->setMethods(['groupExists', 'getLDAPAccess', 'getConnection', 'getConfiguration']) + ->disableOriginalConstructor() + ->getMock(); + + $groupBackend->expects($this->at(0)) + ->method('groupExists') + ->willReturn(true); + $groupBackend->expects($this->any()) + ->method('getConfiguration') + ->willReturn(array('ldap_group_member_assoc_attribute'=>'assoc_type')); + $groupBackend->expects($this->any()) + ->method($this->anything()) + ->willReturnSelf(); + + $server = $this->getServerMock($userBackend, $groupBackend); + + $ldapProvider = $this->getLDAPProvider($server); + $this->assertEquals('assoc_type', $ldapProvider->getLDAPGroupMemberAssoc('existing_group')); + } + } diff --git a/apps/user_ldap/tests/LDAPTest.php b/apps/user_ldap/tests/LDAPTest.php index 1ac8cef12de..8e181741b50 100644 --- a/apps/user_ldap/tests/LDAPTest.php +++ b/apps/user_ldap/tests/LDAPTest.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/apps/user_ldap/tests/LDAPUserPluginDummy.php b/apps/user_ldap/tests/LDAPUserPluginDummy.php new file mode 100644 index 00000000000..eb7029a6ef7 --- /dev/null +++ b/apps/user_ldap/tests/LDAPUserPluginDummy.php @@ -0,0 +1,63 @@ +<?php +/** + * @copyright Copyright (c) 2017 EITA Cooperative (eita.org.br) + * + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\User_LDAP\Tests; + + +use OCA\User_LDAP\ILDAPUserPlugin; + +class LDAPUserPluginDummy implements ILDAPUserPlugin { + + public function respondToActions() { + return null; + } + + public function createUser($username, $password) { + return null; + } + + public function setPassword($uid, $password) { + return null; + } + + public function getHome($uid) { + return null; + } + + public function getDisplayName($uid) { + return null; + } + + public function setDisplayName($uid, $displayName) { + return null; + } + + public function canChangeAvatar($uid) { + return null; + } + + public function countUsers() { + return null; + } + +} diff --git a/apps/user_ldap/tests/Mapping/AbstractMappingTest.php b/apps/user_ldap/tests/Mapping/AbstractMappingTest.php index c9845bb31e5..d3d33a82da9 100644 --- a/apps/user_ldap/tests/Mapping/AbstractMappingTest.php +++ b/apps/user_ldap/tests/Mapping/AbstractMappingTest.php @@ -6,6 +6,7 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> * * @license AGPL-3.0 diff --git a/apps/user_ldap/tests/Settings/AdminTest.php b/apps/user_ldap/tests/Settings/AdminTest.php index 86234861536..8161896e719 100644 --- a/apps/user_ldap/tests/Settings/AdminTest.php +++ b/apps/user_ldap/tests/Settings/AdminTest.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/apps/user_ldap/tests/Settings/SectionTest.php b/apps/user_ldap/tests/Settings/SectionTest.php index 5f565e89933..65dff000af3 100644 --- a/apps/user_ldap/tests/Settings/SectionTest.php +++ b/apps/user_ldap/tests/Settings/SectionTest.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version diff --git a/apps/user_ldap/tests/User/ManagerTest.php b/apps/user_ldap/tests/User/ManagerTest.php index 823081f1da2..da30b210b17 100644 --- a/apps/user_ldap/tests/User/ManagerTest.php +++ b/apps/user_ldap/tests/User/ManagerTest.php @@ -6,6 +6,8 @@ * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Philippe Jung <phil.jung@free.fr> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/apps/user_ldap/tests/User/UserTest.php b/apps/user_ldap/tests/User/UserTest.php index b118a613e87..ede60fef5c0 100644 --- a/apps/user_ldap/tests/User/UserTest.php +++ b/apps/user_ldap/tests/User/UserTest.php @@ -4,8 +4,12 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/apps/user_ldap/tests/UserLDAPPluginTest.php b/apps/user_ldap/tests/UserLDAPPluginTest.php new file mode 100644 index 00000000000..1d7d2ee7c75 --- /dev/null +++ b/apps/user_ldap/tests/UserLDAPPluginTest.php @@ -0,0 +1,311 @@ +<?php +/** + * @copyright Copyright (c) 2017 EITA Cooperative (eita.org.br) + * + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ + +namespace OCA\User_LDAP\Tests; + + +use OC\User\Backend; +use OCA\User_LDAP\UserPluginManager; + +class UserLDAPPluginTest extends \Test\TestCase { + + /** + * @return UserPluginManager + */ + private function getUserPluginManager() { + return new UserPluginManager(); + } + + public function testImplementsActions() { + $pluginManager = $this->getUserPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') + ->setMethods(['respondToActions']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(Backend::CREATE_USER); + + $plugin2 = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') + ->setMethods(['respondToActions']) + ->getMock(); + + $plugin2->expects($this->any()) + ->method('respondToActions') + ->willReturn(Backend::PROVIDE_AVATAR); + + $pluginManager->register($plugin); + $pluginManager->register($plugin2); + + $this->assertEquals($pluginManager->getImplementedActions(), Backend::CREATE_USER | Backend::PROVIDE_AVATAR); + $this->assertTrue($pluginManager->implementsActions(Backend::CREATE_USER)); + $this->assertTrue($pluginManager->implementsActions(Backend::PROVIDE_AVATAR)); + } + + public function testCreateUser() { + $pluginManager = $this->getUserPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') + ->setMethods(['respondToActions', 'createUser']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(Backend::CREATE_USER); + + $plugin->expects($this->once()) + ->method('createUser') + ->with( + $this->equalTo('user'), + $this->equalTo('password') + ); + + $pluginManager->register($plugin); + $pluginManager->createUser('user', 'password'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements createUser in this LDAP Backend. + */ + public function testCreateUserNotRegistered() { + $pluginManager = $this->getUserPluginManager(); + $pluginManager->createUser('foo','bar'); + } + + public function testSetPassword() { + $pluginManager = $this->getUserPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') + ->setMethods(['respondToActions', 'setPassword']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(Backend::SET_PASSWORD); + + $plugin->expects($this->once()) + ->method('setPassword') + ->with( + $this->equalTo('user'), + $this->equalTo('password') + ); + + $pluginManager->register($plugin); + $pluginManager->setPassword('user', 'password'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements setPassword in this LDAP Backend. + */ + public function testSetPasswordNotRegistered() { + $pluginManager = $this->getUserPluginManager(); + $pluginManager->setPassword('foo','bar'); + } + + public function testGetHome() { + $pluginManager = $this->getUserPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') + ->setMethods(['respondToActions', 'getHome']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(Backend::GET_HOME); + + $plugin->expects($this->once()) + ->method('getHome') + ->with( + $this->equalTo('uid') + ); + + $pluginManager->register($plugin); + $pluginManager->getHome('uid'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements getHome in this LDAP Backend. + */ + public function testGetHomeNotRegistered() { + $pluginManager = $this->getUserPluginManager(); + $pluginManager->getHome('foo'); + } + + public function testGetDisplayName() { + $pluginManager = $this->getUserPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') + ->setMethods(['respondToActions', 'getDisplayName']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(Backend::GET_DISPLAYNAME); + + $plugin->expects($this->once()) + ->method('getDisplayName') + ->with( + $this->equalTo('uid') + ); + + $pluginManager->register($plugin); + $pluginManager->getDisplayName('uid'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements getDisplayName in this LDAP Backend. + */ + public function testGetDisplayNameNotRegistered() { + $pluginManager = $this->getUserPluginManager(); + $pluginManager->getDisplayName('foo'); + } + + public function testSetDisplayName() { + $pluginManager = $this->getUserPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') + ->setMethods(['respondToActions', 'setDisplayName']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(Backend::SET_DISPLAYNAME); + + $plugin->expects($this->once()) + ->method('setDisplayName') + ->with( + $this->equalTo('user'), + $this->equalTo('password') + ); + + $pluginManager->register($plugin); + $pluginManager->setDisplayName('user', 'password'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements setDisplayName in this LDAP Backend. + */ + public function testSetDisplayNameNotRegistered() { + $pluginManager = $this->getUserPluginManager(); + $pluginManager->setDisplayName('foo', 'bar'); + } + + public function testCanChangeAvatar() { + $pluginManager = $this->getUserPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') + ->setMethods(['respondToActions', 'canChangeAvatar']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(Backend::PROVIDE_AVATAR); + + $plugin->expects($this->once()) + ->method('canChangeAvatar') + ->with( + $this->equalTo('uid') + ); + + $pluginManager->register($plugin); + $pluginManager->canChangeAvatar('uid'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements canChangeAvatar in this LDAP Backend. + */ + public function testCanChangeAvatarNotRegistered() { + $pluginManager = $this->getUserPluginManager(); + $pluginManager->canChangeAvatar('foo'); + } + + public function testCountUsers() { + $pluginManager = $this->getUserPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') + ->setMethods(['respondToActions', 'countUsers']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(Backend::COUNT_USERS); + + $plugin->expects($this->once()) + ->method('countUsers'); + + $pluginManager->register($plugin); + $pluginManager->countUsers(); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements countUsers in this LDAP Backend. + */ + public function testCountUsersNotRegistered() { + $pluginManager = $this->getUserPluginManager(); + $pluginManager->countUsers(); + } + + public function testDeleteUser() { + $pluginManager = $this->getUserPluginManager(); + + $plugin = $this->getMockBuilder('OCA\User_LDAP\Tests\LDAPUserPluginDummy') + ->setMethods(['respondToActions', 'canDeleteUser','deleteUser']) + ->getMock(); + + $plugin->expects($this->any()) + ->method('respondToActions') + ->willReturn(0); + + $plugin->expects($this->any()) + ->method('canDeleteUser') + ->willReturn(true); + + $plugin->expects($this->once()) + ->method('deleteUser') + ->with( + $this->equalTo('uid') + ); + + $this->assertFalse($pluginManager->canDeleteUser()); + $pluginManager->register($plugin); + $this->assertTrue($pluginManager->canDeleteUser()); + $pluginManager->deleteUser('uid'); + } + + /** + * @expectedException \Exception + * @expectedExceptionMessage No plugin implements deleteUser in this LDAP Backend. + */ + public function testDeleteUserNotRegistered() { + $pluginManager = $this->getUserPluginManager(); + $pluginManager->deleteUser('foo'); + } +} diff --git a/apps/user_ldap/tests/User_LDAPTest.php b/apps/user_ldap/tests/User_LDAPTest.php index 44bc55b4148..fbe9953bbb9 100644 --- a/apps/user_ldap/tests/User_LDAPTest.php +++ b/apps/user_ldap/tests/User_LDAPTest.php @@ -8,8 +8,10 @@ * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Roger Szabo <roger.szabo@web.de> + * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -29,6 +31,7 @@ namespace OCA\User_LDAP\Tests; +use OC\User\Backend; use OC\User\Session; use OCA\User_LDAP\Access; use OCA\User_LDAP\Connection; @@ -119,6 +122,10 @@ class User_LDAPTest extends TestCase { return $access; } + private function getDefaultPluginManagerMock() { + return $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager')->getMock(); + } + private function prepareMockForUserExists(&$access) { $access->expects($this->any()) ->method('username2dn') @@ -207,7 +214,8 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = $backend->checkPassword('roland', 'dt19'); @@ -218,7 +226,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = $backend->checkPassword('roland', 'wrong'); @@ -229,7 +237,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = $backend->checkPassword('mallory', 'evil'); @@ -244,7 +252,7 @@ class User_LDAPTest extends TestCase { ->method('username2dn') ->will($this->returnValue(false)); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = $backend->checkPassword('roland', 'dt19'); @@ -254,7 +262,7 @@ class User_LDAPTest extends TestCase { public function testCheckPasswordPublicAPI() { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = \OCP\User::checkPassword('roland', 'dt19'); @@ -264,7 +272,7 @@ class User_LDAPTest extends TestCase { public function testCheckPasswordPublicAPIWrongPassword() { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = \OCP\User::checkPassword('roland', 'wrong'); @@ -274,7 +282,7 @@ class User_LDAPTest extends TestCase { public function testCheckPasswordPublicAPIWrongUser() { $access = $this->getAccessMock(); $this->prepareAccessForCheckPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = \OCP\User::checkPassword('mallory', 'evil'); @@ -283,7 +291,7 @@ class User_LDAPTest extends TestCase { public function testDeleteUserCancel() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $result = $backend->deleteUser('notme'); $this->assertFalse($result); } @@ -313,7 +321,7 @@ class User_LDAPTest extends TestCase { ->method('getOCName') ->willReturn($uid); - $backend = new UserLDAP($access, $this->configMock, $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->configMock, $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $user = $this->createMock(IUser::class); $user->expects($this->once()) @@ -326,6 +334,36 @@ class User_LDAPTest extends TestCase { $this->assertSame($backend->getHome($uid), $home); } + public function testDeleteUserWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager') + ->setMethods(['canDeleteUser','deleteUser']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('canDeleteUser') + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('deleteUser') + ->with('uid') + ->willReturn('result'); + + $access = $this->createMock(Access::class); + $config = $this->createMock(IConfig::class); + $noti = $this->createMock(INotificationManager::class); + $session = $this->createMock(Session::class); + + $ldap = new User_LDAP( + $access, + $config, + $noti, + $session, + $pluginManager + ); + + $this->assertEquals($ldap->deleteUser('uid'),'result'); + } + /** * Prepares the Access mock for getUsers tests * @param Access $access mock @@ -381,7 +419,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersNoParam() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $result = $backend->getUsers(); $this->assertEquals(3, count($result)); @@ -390,7 +428,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersLimitOffset() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $result = $backend->getUsers('', 1, 2); $this->assertEquals(1, count($result)); @@ -399,7 +437,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersLimitOffset2() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $result = $backend->getUsers('', 2, 1); $this->assertEquals(2, count($result)); @@ -408,7 +446,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersSearchWithResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $result = $backend->getUsers('yo'); $this->assertEquals(2, count($result)); @@ -417,7 +455,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersSearchEmptyResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $result = $backend->getUsers('nix'); $this->assertEquals(0, count($result)); @@ -426,7 +464,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersViaAPINoParam() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = \OCP\User::getUsers(); @@ -436,7 +474,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersViaAPILimitOffset() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('', 1, 2); @@ -446,7 +484,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersViaAPILimitOffset2() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('', 2, 1); @@ -456,7 +494,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersViaAPISearchWithResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('yo'); @@ -466,7 +504,7 @@ class User_LDAPTest extends TestCase { public function testGetUsersViaAPISearchEmptyResult() { $access = $this->getAccessMock(); $this->prepareAccessForGetUsers($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $result = \OCP\User::getUsers('nix'); @@ -475,7 +513,7 @@ class User_LDAPTest extends TestCase { public function testUserExists() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); $access->expects($this->any()) @@ -497,7 +535,7 @@ class User_LDAPTest extends TestCase { */ public function testUserExistsForDeleted() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); $access->expects($this->any()) @@ -515,7 +553,7 @@ class User_LDAPTest extends TestCase { public function testUserExistsForNeverExisting() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); $access->expects($this->any()) @@ -534,7 +572,7 @@ class User_LDAPTest extends TestCase { public function testUserExistsPublicAPI() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); \OC_User::useBackend($backend); @@ -557,7 +595,7 @@ class User_LDAPTest extends TestCase { */ public function testUserExistsPublicAPIForDeleted() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); \OC_User::useBackend($backend); @@ -576,7 +614,7 @@ class User_LDAPTest extends TestCase { public function testUserExistsPublicAPIForNeverExisting() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); \OC_User::useBackend($backend); @@ -596,7 +634,7 @@ class User_LDAPTest extends TestCase { public function testDeleteUserExisting() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); //we do not support deleting existing users at all $result = $backend->deleteUser('gunslinger'); @@ -607,7 +645,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $config = $this->createMock(IConfig::class); $noti = $this->createMock(INotificationManager::class); - $backend = new UserLDAP($access, $config, $noti, $this->createMock(Session::class)); + $backend = new UserLDAP($access, $config, $noti, $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -643,7 +681,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $config = $this->createMock(IConfig::class); $noti = $this->createMock(INotificationManager::class); - $backend = new UserLDAP($access, $config, $noti, $this->createMock(Session::class)); + $backend = new UserLDAP($access, $config, $noti, $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); $dataDir = \OC::$server->getConfig()->getSystemValue( @@ -686,7 +724,7 @@ class User_LDAPTest extends TestCase { */ public function testGetHomeNoPath() { $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -719,7 +757,7 @@ class User_LDAPTest extends TestCase { $uid = 'newyorker'; $access = $this->getAccessMock(); - $backend = new UserLDAP($access, $this->configMock, $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->configMock, $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -751,6 +789,43 @@ class User_LDAPTest extends TestCase { $backend->getHome($uid); } + public function testGetHomeWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager') + ->setMethods(['implementsActions','getHome']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(Backend::GET_HOME) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('getHome') + ->with('uid') + ->willReturn('result'); + + $access = $this->getAccessMock(); + $config = $this->createMock(IConfig::class); + $noti = $this->createMock(INotificationManager::class); + $session = $this->createMock(Session::class); + + $access->connection->expects($this->any()) + ->method('getFromCache') + ->will($this->returnCallback(function($uid) { + return true; + })); + + $ldap = new User_LDAP( + $access, + $config, + $noti, + $session, + $pluginManager + ); + + $this->assertEquals($ldap->getHome('uid'),'result'); + } + private function prepareAccessForGetDisplayName(&$access) { $access->connection->expects($this->any()) ->method('__get') @@ -792,7 +867,7 @@ class User_LDAPTest extends TestCase { public function testGetDisplayName() { $access = $this->getAccessMock(); $this->prepareAccessForGetDisplayName($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -833,7 +908,7 @@ class User_LDAPTest extends TestCase { } })); $this->prepareAccessForGetDisplayName($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $this->prepareMockForUserExists($access); $access->connection->expects($this->any()) @@ -853,6 +928,37 @@ class User_LDAPTest extends TestCase { $this->assertEquals('newyorker', $result); } + public function testGetDisplayNameWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager') + ->setMethods(['implementsActions','getDisplayName']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(Backend::GET_DISPLAYNAME) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('getDisplayName') + ->with('uid') + ->willReturn('result'); + + $access = $this->createMock(Access::class); + $config = $this->createMock(IConfig::class); + $noti = $this->createMock(INotificationManager::class); + $session = $this->createMock(Session::class); + + $ldap = new User_LDAP( + $access, + $config, + $noti, + $session, + $pluginManager + ); + + $this->assertEquals($ldap->getDisplayName('uid'),'result'); + } + //no test for getDisplayNames, because it just invokes getUsers and //getDisplayName @@ -863,7 +969,7 @@ class User_LDAPTest extends TestCase { ->method('countUsers') ->will($this->returnValue(5)); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $result = $backend->countUsers(); $this->assertEquals(5, $result); @@ -876,12 +982,42 @@ class User_LDAPTest extends TestCase { ->method('countUsers') ->will($this->returnValue(false)); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $result = $backend->countUsers(); $this->assertFalse($result); } + public function testCountUsersWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager') + ->setMethods(['implementsActions','countUsers']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(Backend::COUNT_USERS) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('countUsers') + ->willReturn(42); + + $access = $this->createMock(Access::class); + $config = $this->createMock(IConfig::class); + $noti = $this->createMock(INotificationManager::class); + $session = $this->createMock(Session::class); + + $ldap = new User_LDAP( + $access, + $config, + $noti, + $session, + $pluginManager + ); + + $this->assertEquals($ldap->countUsers(),42); + } + public function testLoginName2UserNameSuccess() { $loginName = 'Alice'; $username = 'alice'; @@ -909,7 +1045,7 @@ class User_LDAPTest extends TestCase { ->method('writeToCache') ->with($this->equalTo('loginName2UserName-'.$loginName), $this->equalTo($username)); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $name = $backend->loginName2UserName($loginName); $this->assertSame($username, $name); @@ -938,7 +1074,7 @@ class User_LDAPTest extends TestCase { ->method('writeToCache') ->with($this->equalTo('loginName2UserName-'.$loginName), false); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $name = $backend->loginName2UserName($loginName); $this->assertSame(false, $name); @@ -985,7 +1121,7 @@ class User_LDAPTest extends TestCase { ->method('getUserValue') ->willReturn(1); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); $name = $backend->loginName2UserName($loginName); $this->assertSame(false, $name); @@ -1010,7 +1146,7 @@ class User_LDAPTest extends TestCase { } return null; })); - + $access->connection->expects($this->any()) ->method('getFromCache') ->will($this->returnCallback(function($uid) { @@ -1066,7 +1202,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForSetPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $this->assertTrue(\OC_User::setPassword('roland', 'dt')); @@ -1076,7 +1212,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForSetPassword($access); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $this->assertTrue(\OC_User::setPassword('roland', 'dt12234$')); @@ -1086,7 +1222,7 @@ class User_LDAPTest extends TestCase { $access = $this->getAccessMock(); $this->prepareAccessForSetPassword($access, false); - $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class)); + $backend = new UserLDAP($access, $this->createMock(IConfig::class), $this->createMock(INotificationManager::class), $this->createMock(Session::class), $this->getDefaultPluginManagerMock()); \OC_User::useBackend($backend); $this->assertFalse(\OC_User::setPassword('roland', 'dt12234$')); @@ -1111,7 +1247,8 @@ class User_LDAPTest extends TestCase { $access, $config, $noti, - $userSession + $userSession, + $this->getDefaultPluginManagerMock() ); $ldap->setPassword('NotExistingUser', 'Password'); } @@ -1136,8 +1273,185 @@ class User_LDAPTest extends TestCase { $access, $config, $noti, - $userSession + $userSession, + $this->getDefaultPluginManagerMock() ); $this->assertFalse($ldap->setPassword('NotExistingUser', 'Password')); } + + public function testSetPasswordWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager') + ->setMethods(['implementsActions','setPassword']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(Backend::SET_PASSWORD) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('setPassword') + ->with('uid','password') + ->willReturn('result'); + + $access = $this->createMock(Access::class); + $config = $this->createMock(IConfig::class); + $noti = $this->createMock(INotificationManager::class); + $session = $this->createMock(Session::class); + + $ldap = new User_LDAP( + $access, + $config, + $noti, + $session, + $pluginManager + ); + + $this->assertEquals($ldap->setPassword('uid', 'password'),'result'); + } + + public function testCanChangeAvatarWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager') + ->setMethods(['implementsActions','canChangeAvatar']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(Backend::PROVIDE_AVATAR) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('canChangeAvatar') + ->with('uid') + ->willReturn('result'); + + $access = $this->createMock(Access::class); + $config = $this->createMock(IConfig::class); + $noti = $this->createMock(INotificationManager::class); + $session = $this->createMock(Session::class); + + $ldap = new User_LDAP( + $access, + $config, + $noti, + $session, + $pluginManager + ); + + $this->assertEquals($ldap->canChangeAvatar('uid'),'result'); + } + + public function testSetDisplayNameWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager') + ->setMethods(['implementsActions','setDisplayName']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(Backend::SET_DISPLAYNAME) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('setDisplayName') + ->with('uid','displayName') + ->willReturn('result'); + + $access = $this->createMock(Access::class); + $config = $this->createMock(IConfig::class); + $noti = $this->createMock(INotificationManager::class); + $session = $this->createMock(Session::class); + + $ldap = new User_LDAP( + $access, + $config, + $noti, + $session, + $pluginManager + ); + + $this->assertEquals($ldap->setDisplayName('uid', 'displayName'),'result'); + } + + public function testSetDisplayNameFailing() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager') + ->setMethods(['implementsActions','setDisplayName']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(Backend::SET_DISPLAYNAME) + ->willReturn(false); + + $access = $this->createMock(Access::class); + $config = $this->createMock(IConfig::class); + $noti = $this->createMock(INotificationManager::class); + $session = $this->createMock(Session::class); + + $ldap = new User_LDAP( + $access, + $config, + $noti, + $session, + $pluginManager + ); + + $this->assertFalse($ldap->setDisplayName('uid', 'displayName')); + } + + public function testCreateUserWithPlugin() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager') + ->setMethods(['implementsActions','createUser']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(Backend::CREATE_USER) + ->willReturn(true); + + $pluginManager->expects($this->once()) + ->method('createUser') + ->with('uid','password') + ->willReturn('result'); + + $access = $this->createMock(Access::class); + $config = $this->createMock(IConfig::class); + $noti = $this->createMock(INotificationManager::class); + $session = $this->createMock(Session::class); + + $ldap = new User_LDAP( + $access, + $config, + $noti, + $session, + $pluginManager + ); + + $this->assertEquals($ldap->createUser('uid', 'password'),'result'); + } + + public function testCreateUserFailing() { + $pluginManager = $this->getMockBuilder('\OCA\User_LDAP\UserPluginManager') + ->setMethods(['implementsActions', 'createUser']) + ->getMock(); + + $pluginManager->expects($this->once()) + ->method('implementsActions') + ->with(Backend::CREATE_USER) + ->willReturn(false); + + $access = $this->createMock(Access::class); + $config = $this->createMock(IConfig::class); + $noti = $this->createMock(INotificationManager::class); + $session = $this->createMock(Session::class); + + $ldap = new User_LDAP( + $access, + $config, + $noti, + $session, + $pluginManager + ); + + $this->assertFalse($ldap->createUser('uid', 'password')); + } } diff --git a/apps/user_ldap/tests/User_ProxyTest.php b/apps/user_ldap/tests/User_ProxyTest.php index 68b1e4428ca..126391401e5 100644 --- a/apps/user_ldap/tests/User_ProxyTest.php +++ b/apps/user_ldap/tests/User_ProxyTest.php @@ -2,6 +2,11 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roger Szabo <roger.szabo@web.de> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify @@ -21,8 +26,10 @@ namespace OCA\User_LDAP\Tests; +use OCA\User_LDAP\ILDAPUserPlugin; use OCA\User_LDAP\ILDAPWrapper; use OCA\User_LDAP\User_Proxy; +use OCA\User_LDAP\UserPluginManager; use OCP\IConfig; use OCP\IUserSession; use OCP\Notification\IManager as INotificationManager; @@ -39,6 +46,8 @@ class User_ProxyTest extends TestCase { private $userSession; /** @var User_Proxy|\PHPUnit_Framework_MockObject_MockObject */ private $proxy; + /** @var UserPluginManager|\PHPUnit_Framework_MockObject_MockObject */ + private $userPluginManager; public function setUp() { parent::setUp(); @@ -47,6 +56,7 @@ class User_ProxyTest extends TestCase { $this->config = $this->createMock(IConfig::class); $this->notificationManager = $this->createMock(INotificationManager::class); $this->userSession = $this->createMock(IUserSession::class); + $this->userPluginManager = $this->createMock(UserPluginManager::class); $this->proxy = $this->getMockBuilder(User_Proxy::class) ->setConstructorArgs([ [], @@ -54,6 +64,7 @@ class User_ProxyTest extends TestCase { $this->config, $this->notificationManager, $this->userSession, + $this->userPluginManager ]) ->setMethods(['handleRequest']) ->getMock(); @@ -68,4 +79,23 @@ class User_ProxyTest extends TestCase { $this->assertTrue($this->proxy->setPassword('MyUid', 'MyPassword')); } + + public function testSetDisplayName() { + $this->proxy + ->expects($this->once()) + ->method('handleRequest') + ->with('MyUid', 'setDisplayName', ['MyUid', 'MyPassword']) + ->willReturn(true); + + $this->assertTrue($this->proxy->setDisplayName('MyUid', 'MyPassword')); } + + public function testCreateUser() { + $this->proxy + ->expects($this->once()) + ->method('handleRequest') + ->with('MyUid', 'createUser', ['MyUid', 'MyPassword']) + ->willReturn(true); + + $this->assertTrue($this->proxy->createUser('MyUid', 'MyPassword')); + } } diff --git a/apps/user_ldap/tests/WizardTest.php b/apps/user_ldap/tests/WizardTest.php index 545d112338b..e7717aad37c 100644 --- a/apps/user_ldap/tests/WizardTest.php +++ b/apps/user_ldap/tests/WizardTest.php @@ -5,7 +5,9 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Viktor Szépe <viktor@szepe.net> * * @license AGPL-3.0 diff --git a/apps/workflowengine/l10n/es_DO.js b/apps/workflowengine/l10n/es_DO.js new file mode 100644 index 00000000000..a67dbc8472f --- /dev/null +++ b/apps/workflowengine/l10n/es_DO.js @@ -0,0 +1,73 @@ +OC.L10N.register( + "workflowengine", + { + "Saved" : "Guardado", + "Saving failed:" : "Falla al guardar:", + "File MIME type" : "Tipo MIME del archivo", + "is" : "es", + "is not" : "no es", + "matches" : "coincide", + "does not match" : "No coincide", + "Example: {placeholder}" : "Ejemplo: {placeholder}", + "File size (upload)" : "Tamaño del archivo (carga)", + "less" : "menos", + "less or equals" : "menos o igual", + "greater or equals" : "mayor o igual", + "greater" : "mayor", + "File system tag" : "Etiqueta del sistema de archivos", + "is tagged with" : "está etiquetado con", + "is not tagged with" : "no está etiquetado con", + "Select tag…" : "Seleccionar etiqueta...", + "Request remote address" : "Solicitar dirección remota", + "matches IPv4" : "coincide con IPv4", + "does not match IPv4" : "no coincide con IPv4", + "matches IPv6" : "coincide con IPv6", + "does not match IPv6" : "no coincide con IPv6", + "Request time" : "Tiempo de la solicitud", + "between" : "entre", + "not between" : "no entre", + "Start" : "Inicio", + "End" : "Fin", + "Select timezone…" : "Selecciona la zona horaria...", + "Request URL" : "Solicitar URL", + "Predefined URLs" : "URLs predefinidos", + "Files WebDAV" : "Archivos WebDAV", + "Request user agent" : "Solicitar agente de usuario", + "Sync clients" : "Sincronizar clientes", + "Android client" : "Cliente Android", + "iOS client" : "Cliente iOS", + "Desktop client" : "Cliente de escritorio", + "User group membership" : "Membresia al grupo de usuarios", + "is member of" : "es miembro de", + "is not member of" : "no es miembro de", + "The given operator is invalid" : "El operador indicado es inválido", + "The given regular expression is invalid" : "La expresión regular indicada es inválida", + "The given file size is invalid" : "El tamaño de archivo indicado es inválido", + "The given tag id is invalid" : "El id de la etiqueta es inválido", + "The given IP range is invalid" : "El rango de IP's es inválido", + "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", + "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", + "The given time span is invalid" : "El espacio de tiempo dado es inválido", + "The given start time is invalid" : "El tiempo inicial dado no es válido", + "The given end time is invalid" : "El tiempo final dado no es válido", + "The given group does not exist" : "El grupo dado no existe", + "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", + "Operation #%s does not exist" : "La operación #%s no existe", + "Operation %s does not exist" : "La operación %s no existe", + "Operation %s is invalid" : "La operación %s es inválida", + "Check %s does not exist" : "La validación %s no existe", + "Check %s is invalid" : "La validación %s no es inválida", + "Check #%s does not exist" : "La validación #%s no existe", + "Workflow" : "Flujo de trabajo", + "Open documentation" : "Abrir la documentación", + "Add rule group" : "Agregar regla de grupo", + "Short rule description" : "Descripción corta de la regla", + "Add rule" : "Agregar regla", + "Reset" : "Restablecer", + "Save" : "Guardar", + "Saving…" : "Guardando...", + "Loading…" : "Cargando...", + "Successfully saved" : "Guardado exitosamente", + "File mime type" : "Tipo mime del archivo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/es_DO.json b/apps/workflowengine/l10n/es_DO.json new file mode 100644 index 00000000000..1ae425f4e19 --- /dev/null +++ b/apps/workflowengine/l10n/es_DO.json @@ -0,0 +1,71 @@ +{ "translations": { + "Saved" : "Guardado", + "Saving failed:" : "Falla al guardar:", + "File MIME type" : "Tipo MIME del archivo", + "is" : "es", + "is not" : "no es", + "matches" : "coincide", + "does not match" : "No coincide", + "Example: {placeholder}" : "Ejemplo: {placeholder}", + "File size (upload)" : "Tamaño del archivo (carga)", + "less" : "menos", + "less or equals" : "menos o igual", + "greater or equals" : "mayor o igual", + "greater" : "mayor", + "File system tag" : "Etiqueta del sistema de archivos", + "is tagged with" : "está etiquetado con", + "is not tagged with" : "no está etiquetado con", + "Select tag…" : "Seleccionar etiqueta...", + "Request remote address" : "Solicitar dirección remota", + "matches IPv4" : "coincide con IPv4", + "does not match IPv4" : "no coincide con IPv4", + "matches IPv6" : "coincide con IPv6", + "does not match IPv6" : "no coincide con IPv6", + "Request time" : "Tiempo de la solicitud", + "between" : "entre", + "not between" : "no entre", + "Start" : "Inicio", + "End" : "Fin", + "Select timezone…" : "Selecciona la zona horaria...", + "Request URL" : "Solicitar URL", + "Predefined URLs" : "URLs predefinidos", + "Files WebDAV" : "Archivos WebDAV", + "Request user agent" : "Solicitar agente de usuario", + "Sync clients" : "Sincronizar clientes", + "Android client" : "Cliente Android", + "iOS client" : "Cliente iOS", + "Desktop client" : "Cliente de escritorio", + "User group membership" : "Membresia al grupo de usuarios", + "is member of" : "es miembro de", + "is not member of" : "no es miembro de", + "The given operator is invalid" : "El operador indicado es inválido", + "The given regular expression is invalid" : "La expresión regular indicada es inválida", + "The given file size is invalid" : "El tamaño de archivo indicado es inválido", + "The given tag id is invalid" : "El id de la etiqueta es inválido", + "The given IP range is invalid" : "El rango de IP's es inválido", + "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", + "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", + "The given time span is invalid" : "El espacio de tiempo dado es inválido", + "The given start time is invalid" : "El tiempo inicial dado no es válido", + "The given end time is invalid" : "El tiempo final dado no es válido", + "The given group does not exist" : "El grupo dado no existe", + "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", + "Operation #%s does not exist" : "La operación #%s no existe", + "Operation %s does not exist" : "La operación %s no existe", + "Operation %s is invalid" : "La operación %s es inválida", + "Check %s does not exist" : "La validación %s no existe", + "Check %s is invalid" : "La validación %s no es inválida", + "Check #%s does not exist" : "La validación #%s no existe", + "Workflow" : "Flujo de trabajo", + "Open documentation" : "Abrir la documentación", + "Add rule group" : "Agregar regla de grupo", + "Short rule description" : "Descripción corta de la regla", + "Add rule" : "Agregar regla", + "Reset" : "Restablecer", + "Save" : "Guardar", + "Saving…" : "Guardando...", + "Loading…" : "Cargando...", + "Successfully saved" : "Guardado exitosamente", + "File mime type" : "Tipo mime del archivo" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/apps/workflowengine/l10n/es_EC.js b/apps/workflowengine/l10n/es_EC.js new file mode 100644 index 00000000000..a67dbc8472f --- /dev/null +++ b/apps/workflowengine/l10n/es_EC.js @@ -0,0 +1,73 @@ +OC.L10N.register( + "workflowengine", + { + "Saved" : "Guardado", + "Saving failed:" : "Falla al guardar:", + "File MIME type" : "Tipo MIME del archivo", + "is" : "es", + "is not" : "no es", + "matches" : "coincide", + "does not match" : "No coincide", + "Example: {placeholder}" : "Ejemplo: {placeholder}", + "File size (upload)" : "Tamaño del archivo (carga)", + "less" : "menos", + "less or equals" : "menos o igual", + "greater or equals" : "mayor o igual", + "greater" : "mayor", + "File system tag" : "Etiqueta del sistema de archivos", + "is tagged with" : "está etiquetado con", + "is not tagged with" : "no está etiquetado con", + "Select tag…" : "Seleccionar etiqueta...", + "Request remote address" : "Solicitar dirección remota", + "matches IPv4" : "coincide con IPv4", + "does not match IPv4" : "no coincide con IPv4", + "matches IPv6" : "coincide con IPv6", + "does not match IPv6" : "no coincide con IPv6", + "Request time" : "Tiempo de la solicitud", + "between" : "entre", + "not between" : "no entre", + "Start" : "Inicio", + "End" : "Fin", + "Select timezone…" : "Selecciona la zona horaria...", + "Request URL" : "Solicitar URL", + "Predefined URLs" : "URLs predefinidos", + "Files WebDAV" : "Archivos WebDAV", + "Request user agent" : "Solicitar agente de usuario", + "Sync clients" : "Sincronizar clientes", + "Android client" : "Cliente Android", + "iOS client" : "Cliente iOS", + "Desktop client" : "Cliente de escritorio", + "User group membership" : "Membresia al grupo de usuarios", + "is member of" : "es miembro de", + "is not member of" : "no es miembro de", + "The given operator is invalid" : "El operador indicado es inválido", + "The given regular expression is invalid" : "La expresión regular indicada es inválida", + "The given file size is invalid" : "El tamaño de archivo indicado es inválido", + "The given tag id is invalid" : "El id de la etiqueta es inválido", + "The given IP range is invalid" : "El rango de IP's es inválido", + "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", + "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", + "The given time span is invalid" : "El espacio de tiempo dado es inválido", + "The given start time is invalid" : "El tiempo inicial dado no es válido", + "The given end time is invalid" : "El tiempo final dado no es válido", + "The given group does not exist" : "El grupo dado no existe", + "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", + "Operation #%s does not exist" : "La operación #%s no existe", + "Operation %s does not exist" : "La operación %s no existe", + "Operation %s is invalid" : "La operación %s es inválida", + "Check %s does not exist" : "La validación %s no existe", + "Check %s is invalid" : "La validación %s no es inválida", + "Check #%s does not exist" : "La validación #%s no existe", + "Workflow" : "Flujo de trabajo", + "Open documentation" : "Abrir la documentación", + "Add rule group" : "Agregar regla de grupo", + "Short rule description" : "Descripción corta de la regla", + "Add rule" : "Agregar regla", + "Reset" : "Restablecer", + "Save" : "Guardar", + "Saving…" : "Guardando...", + "Loading…" : "Cargando...", + "Successfully saved" : "Guardado exitosamente", + "File mime type" : "Tipo mime del archivo" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/apps/workflowengine/l10n/es_EC.json b/apps/workflowengine/l10n/es_EC.json new file mode 100644 index 00000000000..1ae425f4e19 --- /dev/null +++ b/apps/workflowengine/l10n/es_EC.json @@ -0,0 +1,71 @@ +{ "translations": { + "Saved" : "Guardado", + "Saving failed:" : "Falla al guardar:", + "File MIME type" : "Tipo MIME del archivo", + "is" : "es", + "is not" : "no es", + "matches" : "coincide", + "does not match" : "No coincide", + "Example: {placeholder}" : "Ejemplo: {placeholder}", + "File size (upload)" : "Tamaño del archivo (carga)", + "less" : "menos", + "less or equals" : "menos o igual", + "greater or equals" : "mayor o igual", + "greater" : "mayor", + "File system tag" : "Etiqueta del sistema de archivos", + "is tagged with" : "está etiquetado con", + "is not tagged with" : "no está etiquetado con", + "Select tag…" : "Seleccionar etiqueta...", + "Request remote address" : "Solicitar dirección remota", + "matches IPv4" : "coincide con IPv4", + "does not match IPv4" : "no coincide con IPv4", + "matches IPv6" : "coincide con IPv6", + "does not match IPv6" : "no coincide con IPv6", + "Request time" : "Tiempo de la solicitud", + "between" : "entre", + "not between" : "no entre", + "Start" : "Inicio", + "End" : "Fin", + "Select timezone…" : "Selecciona la zona horaria...", + "Request URL" : "Solicitar URL", + "Predefined URLs" : "URLs predefinidos", + "Files WebDAV" : "Archivos WebDAV", + "Request user agent" : "Solicitar agente de usuario", + "Sync clients" : "Sincronizar clientes", + "Android client" : "Cliente Android", + "iOS client" : "Cliente iOS", + "Desktop client" : "Cliente de escritorio", + "User group membership" : "Membresia al grupo de usuarios", + "is member of" : "es miembro de", + "is not member of" : "no es miembro de", + "The given operator is invalid" : "El operador indicado es inválido", + "The given regular expression is invalid" : "La expresión regular indicada es inválida", + "The given file size is invalid" : "El tamaño de archivo indicado es inválido", + "The given tag id is invalid" : "El id de la etiqueta es inválido", + "The given IP range is invalid" : "El rango de IP's es inválido", + "The given IP range is not valid for IPv4" : "El rango de IPs dado no es válido para IPv4", + "The given IP range is not valid for IPv6" : "El rango de IPs dado no es válido para IPv6", + "The given time span is invalid" : "El espacio de tiempo dado es inválido", + "The given start time is invalid" : "El tiempo inicial dado no es válido", + "The given end time is invalid" : "El tiempo final dado no es válido", + "The given group does not exist" : "El grupo dado no existe", + "Check %s is invalid or does not exist" : "La validación %s es inválida o no existe", + "Operation #%s does not exist" : "La operación #%s no existe", + "Operation %s does not exist" : "La operación %s no existe", + "Operation %s is invalid" : "La operación %s es inválida", + "Check %s does not exist" : "La validación %s no existe", + "Check %s is invalid" : "La validación %s no es inválida", + "Check #%s does not exist" : "La validación #%s no existe", + "Workflow" : "Flujo de trabajo", + "Open documentation" : "Abrir la documentación", + "Add rule group" : "Agregar regla de grupo", + "Short rule description" : "Descripción corta de la regla", + "Add rule" : "Agregar regla", + "Reset" : "Restablecer", + "Save" : "Guardar", + "Saving…" : "Guardando...", + "Loading…" : "Cargando...", + "Successfully saved" : "Guardado exitosamente", + "File mime type" : "Tipo mime del archivo" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/autotest.sh b/autotest.sh index 307af64edb7..e7300363c3a 100755 --- a/autotest.sh +++ b/autotest.sh @@ -13,11 +13,10 @@ # @copyright 2012-2015 Thomas Müller thomas.mueller@tmit.eu # -#$EXECUTOR_NUMBER is set by Jenkins and allows us to run autotest in parallel -DATABASENAME=oc_autotest$EXECUTOR_NUMBER -DATABASEUSER=oc_autotest$EXECUTOR_NUMBER +DATABASENAME=oc_autotest +DATABASEUSER=oc_autotest DATABASEHOST=localhost -ADMINLOGIN=admin$EXECUTOR_NUMBER +ADMINLOGIN=admin BASEDIR=$PWD PRIMARY_STORAGE_CONFIGS="local swift" diff --git a/build/integration/features/bootstrap/AppConfiguration.php b/build/integration/features/bootstrap/AppConfiguration.php index 39fee5e361a..03bdeae0b88 100644 --- a/build/integration/features/bootstrap/AppConfiguration.php +++ b/build/integration/features/bootstrap/AppConfiguration.php @@ -1,8 +1,9 @@ <?php /** - + * * * @author Joas Schilling <coding@schilljs.com> + * @author Sergio Bertolin <sbertolin@solidgear.es> * * @license GNU AGPL version 3 or any later version * diff --git a/build/integration/features/bootstrap/Auth.php b/build/integration/features/bootstrap/Auth.php index ae411cc7ab3..b185dd0b8c8 100644 --- a/build/integration/features/bootstrap/Auth.php +++ b/build/integration/features/bootstrap/Auth.php @@ -1,7 +1,11 @@ <?php /** * + * * @author Christoph Wurst <christoph@owncloud.com> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Phil Davis <phil.davis@inf.org> * * @license GNU AGPL version 3 or any later version * diff --git a/build/integration/features/bootstrap/BasicStructure.php b/build/integration/features/bootstrap/BasicStructure.php index 9e7aa272d0a..03392ff6619 100644 --- a/build/integration/features/bootstrap/BasicStructure.php +++ b/build/integration/features/bootstrap/BasicStructure.php @@ -1,12 +1,16 @@ <?php /** - + * * * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Sergio Bertolin <sbertolin@solidgear.es> + * @author Sergio Bertolín <sbertolin@solidgear.es> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/build/integration/features/bootstrap/CalDavContext.php b/build/integration/features/bootstrap/CalDavContext.php index 8c0348f37a8..27f26b20fbe 100644 --- a/build/integration/features/bootstrap/CalDavContext.php +++ b/build/integration/features/bootstrap/CalDavContext.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Phil Davis <phil.davis@inf.org> * * @license AGPL-3.0 * diff --git a/build/integration/features/bootstrap/CapabilitiesContext.php b/build/integration/features/bootstrap/CapabilitiesContext.php index 1220e224158..6ff9b1813c4 100644 --- a/build/integration/features/bootstrap/CapabilitiesContext.php +++ b/build/integration/features/bootstrap/CapabilitiesContext.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author Joas Schilling <coding@schilljs.com> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/build/integration/features/bootstrap/CardDavContext.php b/build/integration/features/bootstrap/CardDavContext.php index 8ff8b55d28d..dbac4e2254f 100644 --- a/build/integration/features/bootstrap/CardDavContext.php +++ b/build/integration/features/bootstrap/CardDavContext.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Phil Davis <phil.davis@inf.org> * * @license AGPL-3.0 * diff --git a/build/integration/features/bootstrap/ChecksumsContext.php b/build/integration/features/bootstrap/ChecksumsContext.php index 4dd43db852f..f2fc2d1d653 100644 --- a/build/integration/features/bootstrap/ChecksumsContext.php +++ b/build/integration/features/bootstrap/ChecksumsContext.php @@ -1,8 +1,9 @@ <?php /** - + * * * @author Joas Schilling <coding@schilljs.com> + * @author Phil Davis <phil.davis@inf.org> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/build/integration/features/bootstrap/CommandLine.php b/build/integration/features/bootstrap/CommandLine.php index e880cfe24ab..2c717e7f5ed 100644 --- a/build/integration/features/bootstrap/CommandLine.php +++ b/build/integration/features/bootstrap/CommandLine.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2016, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/build/integration/features/bootstrap/CommandLineContext.php b/build/integration/features/bootstrap/CommandLineContext.php index 9a48c8517c7..d8073bde221 100644 --- a/build/integration/features/bootstrap/CommandLineContext.php +++ b/build/integration/features/bootstrap/CommandLineContext.php @@ -1,8 +1,11 @@ <?php /** + * @copyright Copyright (c) 2016, ownCloud, Inc. + * + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Sujith H <sharidasan@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2016, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/build/integration/features/bootstrap/CommentsContext.php b/build/integration/features/bootstrap/CommentsContext.php index 1d1b47f9736..651e8c5eedf 100644 --- a/build/integration/features/bootstrap/CommentsContext.php +++ b/build/integration/features/bootstrap/CommentsContext.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/build/integration/features/bootstrap/FeatureContext.php b/build/integration/features/bootstrap/FeatureContext.php index c066fa54198..6b0b199ec6e 100644 --- a/build/integration/features/bootstrap/FeatureContext.php +++ b/build/integration/features/bootstrap/FeatureContext.php @@ -1,7 +1,8 @@ <?php /** - * + * + * @author Joas Schilling <coding@schilljs.com> * @author Sergio Bertolin <sbertolin@solidgear.es> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/build/integration/features/bootstrap/FederationContext.php b/build/integration/features/bootstrap/FederationContext.php index e6e99e2fa92..f6c6de335a8 100644 --- a/build/integration/features/bootstrap/FederationContext.php +++ b/build/integration/features/bootstrap/FederationContext.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author Joas Schilling <coding@schilljs.com> * @author Sergio Bertolin <sbertolin@solidgear.es> diff --git a/build/integration/features/bootstrap/FilesDropContext.php b/build/integration/features/bootstrap/FilesDropContext.php index 760d76ac5e5..62d06ddf750 100644 --- a/build/integration/features/bootstrap/FilesDropContext.php +++ b/build/integration/features/bootstrap/FilesDropContext.php @@ -1,5 +1,26 @@ <?php - +/** + * + * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ use Behat\Behat\Context\Context; use Behat\Behat\Context\SnippetAcceptingContext; use Behat\Behat\Tester\Exception\PendingException; diff --git a/build/integration/features/bootstrap/LDAPContext.php b/build/integration/features/bootstrap/LDAPContext.php index f23de6f47cd..237f316674f 100644 --- a/build/integration/features/bootstrap/LDAPContext.php +++ b/build/integration/features/bootstrap/LDAPContext.php @@ -1,5 +1,4 @@ <?php - /** * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> * diff --git a/build/integration/features/bootstrap/Provisioning.php b/build/integration/features/bootstrap/Provisioning.php index 94da63a653f..00402d73a2c 100644 --- a/build/integration/features/bootstrap/Provisioning.php +++ b/build/integration/features/bootstrap/Provisioning.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/build/integration/features/bootstrap/SetupContext.php b/build/integration/features/bootstrap/SetupContext.php index 53ad7619d3d..ac9261756d2 100644 --- a/build/integration/features/bootstrap/SetupContext.php +++ b/build/integration/features/bootstrap/SetupContext.php @@ -1,9 +1,8 @@ <?php /** - + * @copyright Morris Jobke * * @author Morris Jobke <hey@morrisjobke.de> - * @copyright Morris Jobke * * @license GNU AGPL version 3 or any later version * diff --git a/build/integration/features/bootstrap/ShareesContext.php b/build/integration/features/bootstrap/ShareesContext.php index 822a7011270..f659495fcae 100644 --- a/build/integration/features/bootstrap/ShareesContext.php +++ b/build/integration/features/bootstrap/ShareesContext.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author Joas Schilling <coding@schilljs.com> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/build/integration/features/bootstrap/Sharing.php b/build/integration/features/bootstrap/Sharing.php index e5618987069..1921a86656d 100644 --- a/build/integration/features/bootstrap/Sharing.php +++ b/build/integration/features/bootstrap/Sharing.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/build/integration/features/bootstrap/TagsContext.php b/build/integration/features/bootstrap/TagsContext.php index 24ee8863e29..df2f1cae263 100644 --- a/build/integration/features/bootstrap/TagsContext.php +++ b/build/integration/features/bootstrap/TagsContext.php @@ -4,6 +4,9 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Phil Davis <phil.davis@inf.org> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sergio Bertolin <sbertolin@solidgear.es> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/build/integration/features/bootstrap/Trashbin.php b/build/integration/features/bootstrap/Trashbin.php index c7d3a338ac1..c215e70260f 100644 --- a/build/integration/features/bootstrap/Trashbin.php +++ b/build/integration/features/bootstrap/Trashbin.php @@ -1,8 +1,9 @@ <?php /** + * @copyright Copyright (c) 2017, ownCloud GmbH. + * * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2017, ownCloud GmbH. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/build/integration/features/bootstrap/WebDav.php b/build/integration/features/bootstrap/WebDav.php index 9242b80ac13..5d6ca0633b6 100644 --- a/build/integration/features/bootstrap/WebDav.php +++ b/build/integration/features/bootstrap/WebDav.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author David Toledo <dtoledo@solidgear.es> * @author Joas Schilling <coding@schilljs.com> diff --git a/build/license.php b/build/license.php index 3f1fe41764a..cb19f196fff 100644 --- a/build/license.php +++ b/build/license.php @@ -322,6 +322,7 @@ With help from many libraries and frameworks including: } $authors = array_map(function($author){ + $author = $this->fixInvalidEmail($author); $this->authors[$author] = $author; return " * @author $author"; }, $authors); @@ -348,6 +349,14 @@ With help from many libraries and frameworks including: } return $author; } + + private function fixInvalidEmail($author) { + preg_match('/<(.*)>/', $author, $mailMatch); + if (count($mailMatch) === 2 && !filter_var($mailMatch[1], FILTER_VALIDATE_EMAIL)) { + $author = str_replace('<'.$mailMatch[1].'>', '"'.$mailMatch[1].'"', $author); + } + return $author; + } } $licenses = new Licenses; diff --git a/console.php b/console.php index df02e89dff3..d6854279ca3 100644 --- a/console.php +++ b/console.php @@ -4,8 +4,12 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> + * @author Ko- <k.stoffelen@cs.ru.nl> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Patrick Paysant <patrick.paysant@linagora.com> + * @author RealRancor <fisch.666@gmx.de> + * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * diff --git a/core/Application.php b/core/Application.php index 5fafb0441f0..9a29b4bcdff 100644 --- a/core/Application.php +++ b/core/Application.php @@ -8,8 +8,6 @@ * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 diff --git a/core/Command/App/Enable.php b/core/Command/App/Enable.php index 4aa38cd6f8f..2d8bd76e858 100644 --- a/core/Command/App/Enable.php +++ b/core/Command/App/Enable.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/core/Command/App/GetPath.php b/core/Command/App/GetPath.php index 33a812c674e..367fb7db20a 100644 --- a/core/Command/App/GetPath.php +++ b/core/Command/App/GetPath.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 diff --git a/core/Command/App/Install.php b/core/Command/App/Install.php index 0c99c7ff85a..c8c4652d7ba 100644 --- a/core/Command/App/Install.php +++ b/core/Command/App/Install.php @@ -2,7 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Klaus Herberth <klaus@jsxc.org> + * @author sualko <klaus@jsxc.org> * * @license AGPL-3.0 * diff --git a/core/Command/Config/App/Base.php b/core/Command/Config/App/Base.php index 3f29591dd15..9cd7bd6135a 100644 --- a/core/Command/Config/App/Base.php +++ b/core/Command/Config/App/Base.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/core/Command/Config/System/Base.php b/core/Command/Config/System/Base.php index 4e49baf5ab2..08d85dd8dc2 100644 --- a/core/Command/Config/System/Base.php +++ b/core/Command/Config/System/Base.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/core/Command/Db/ConvertMysqlToMB4.php b/core/Command/Db/ConvertMysqlToMB4.php index 38aff8b09d8..a38604931dc 100644 --- a/core/Command/Db/ConvertMysqlToMB4.php +++ b/core/Command/Db/ConvertMysqlToMB4.php @@ -1,8 +1,10 @@ <?php /** + * @copyright Copyright (c) 2017, ownCloud GmbH + * + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2017, ownCloud GmbH * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/core/Command/Db/ConvertType.php b/core/Command/Db/ConvertType.php index a7839522934..7fdf1f39b8e 100644 --- a/core/Command/Db/ConvertType.php +++ b/core/Command/Db/ConvertType.php @@ -5,10 +5,12 @@ * @author Andreas Fischer <bantu@owncloud.com> * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sander Ruitenbeek <sander@grids.be> * @author tbelau666 <thomas.belau@gmx.de> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author unclejamal3000 <andreas.pramhaas@posteo.de> * * @license AGPL-3.0 * diff --git a/core/Command/Db/Migrations/ExecuteCommand.php b/core/Command/Db/Migrations/ExecuteCommand.php index 0f21bdf28eb..88dfe648090 100644 --- a/core/Command/Db/Migrations/ExecuteCommand.php +++ b/core/Command/Db/Migrations/ExecuteCommand.php @@ -1,11 +1,10 @@ <?php /** - * @author Joas Schilling <coding@schilljs.com> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * @copyright Copyright (c) 2017, ownCloud GmbH * + * @author Joas Schilling <coding@schilljs.com> + * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/core/Command/Db/Migrations/GenerateCommand.php b/core/Command/Db/Migrations/GenerateCommand.php index 0825ddb7085..8fbc1781d94 100644 --- a/core/Command/Db/Migrations/GenerateCommand.php +++ b/core/Command/Db/Migrations/GenerateCommand.php @@ -1,11 +1,10 @@ <?php /** - * @author Joas Schilling <coding@schilljs.com> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * @copyright Copyright (c) 2017, ownCloud GmbH * + * @author Joas Schilling <coding@schilljs.com> + * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/core/Command/Db/Migrations/GenerateFromSchemaFileCommand.php b/core/Command/Db/Migrations/GenerateFromSchemaFileCommand.php index 4f888b38a14..d8dc2be11a4 100644 --- a/core/Command/Db/Migrations/GenerateFromSchemaFileCommand.php +++ b/core/Command/Db/Migrations/GenerateFromSchemaFileCommand.php @@ -3,7 +3,6 @@ * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * * @author Joas Schilling <coding@schilljs.com> - * @author Julius Haertl <jus@bitgrid.net> * * @license GNU AGPL version 3 or any later version * diff --git a/core/Command/Db/Migrations/MigrateCommand.php b/core/Command/Db/Migrations/MigrateCommand.php index 2b0e082acaa..e5dddaebf2d 100644 --- a/core/Command/Db/Migrations/MigrateCommand.php +++ b/core/Command/Db/Migrations/MigrateCommand.php @@ -1,8 +1,9 @@ <?php /** - * @author Thomas Müller <thomas.mueller@tmit.eu> - * * @copyright Copyright (c) 2017, ownCloud GmbH + * + * @author Joas Schilling <coding@schilljs.com> + * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/core/Command/Db/Migrations/StatusCommand.php b/core/Command/Db/Migrations/StatusCommand.php index 20172000ee3..9fa497a126f 100644 --- a/core/Command/Db/Migrations/StatusCommand.php +++ b/core/Command/Db/Migrations/StatusCommand.php @@ -1,8 +1,9 @@ <?php /** - * @author Thomas Müller <thomas.mueller@tmit.eu> - * * @copyright Copyright (c) 2017, ownCloud GmbH + * + * @author Joas Schilling <coding@schilljs.com> + * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/core/Command/Encryption/DecryptAll.php b/core/Command/Encryption/DecryptAll.php index a2c306adc28..9931a279ff4 100644 --- a/core/Command/Encryption/DecryptAll.php +++ b/core/Command/Encryption/DecryptAll.php @@ -5,6 +5,8 @@ * @author Björn Schießle <bjoern@schiessle.org> * @author davitol <dtoledo@solidgear.es> * @author Joas Schilling <coding@schilljs.com> + * @author Marius Blüm <marius@lineone.io> + * @author Morris Jobke <hey@morrisjobke.de> * @author Sergio Bertolín <sbertolin@solidgear.es> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/core/Command/Encryption/EncryptAll.php b/core/Command/Encryption/EncryptAll.php index 584bc8a70c7..a2b56683324 100644 --- a/core/Command/Encryption/EncryptAll.php +++ b/core/Command/Encryption/EncryptAll.php @@ -4,6 +4,8 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Matthew Setter <matthew@matthewsetter.com> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/core/Command/Integrity/SignApp.php b/core/Command/Integrity/SignApp.php index 26d2791475b..d2c726b6747 100644 --- a/core/Command/Integrity/SignApp.php +++ b/core/Command/Integrity/SignApp.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/core/Command/Integrity/SignCore.php b/core/Command/Integrity/SignCore.php index 8f951204a58..88416b3e723 100644 --- a/core/Command/Integrity/SignCore.php +++ b/core/Command/Integrity/SignCore.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/core/Command/InterruptedException.php b/core/Command/InterruptedException.php index ef81b5d9393..4470ea82d2b 100644 --- a/core/Command/InterruptedException.php +++ b/core/Command/InterruptedException.php @@ -1,8 +1,9 @@ <?php /** + * @copyright Copyright (c) 2017, ownCloud, Inc. + * * @author Vincent Petry <pvince81@owncloud.com> * - * @copyright Copyright (c) 2017, ownCloud, Inc. * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/core/Command/L10n/CreateJs.php b/core/Command/L10n/CreateJs.php index e52f588b831..9c14490b97f 100644 --- a/core/Command/L10n/CreateJs.php +++ b/core/Command/L10n/CreateJs.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/core/Command/Log/File.php b/core/Command/Log/File.php index d53484f086d..e5db2c1acc4 100644 --- a/core/Command/Log/File.php +++ b/core/Command/Log/File.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Thomas Pulzer <t.pulzer@kniel.de> * diff --git a/core/Command/Log/Manage.php b/core/Command/Log/Manage.php index 578e8e8dac6..267e84c140f 100644 --- a/core/Command/Log/Manage.php +++ b/core/Command/Log/Manage.php @@ -5,6 +5,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Thomas Pulzer <t.pulzer@kniel.de> * * @license AGPL-3.0 * diff --git a/core/Command/Maintenance/Install.php b/core/Command/Maintenance/Install.php index 342614236d7..755d3d386c1 100644 --- a/core/Command/Maintenance/Install.php +++ b/core/Command/Maintenance/Install.php @@ -4,9 +4,11 @@ * * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Christian Kampka <christian@kampka.net> + * @author Daniel Hansson <daniel@techandme.se> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Pulzer <t.pulzer@kniel.de> * diff --git a/core/Command/Maintenance/Mimetype/UpdateJS.php b/core/Command/Maintenance/Mimetype/UpdateJS.php index f302b4a2018..a6925c5dc61 100644 --- a/core/Command/Maintenance/Mimetype/UpdateJS.php +++ b/core/Command/Maintenance/Mimetype/UpdateJS.php @@ -5,6 +5,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Thomas Ebert <thomas.ebert@usability.de> * * @license AGPL-3.0 * diff --git a/core/Command/Maintenance/UpdateHtaccess.php b/core/Command/Maintenance/UpdateHtaccess.php index 89eeb7ccf5b..4b9c8a72b52 100644 --- a/core/Command/Maintenance/UpdateHtaccess.php +++ b/core/Command/Maintenance/UpdateHtaccess.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license AGPL-3.0 diff --git a/core/Command/Maintenance/UpdateTheme.php b/core/Command/Maintenance/UpdateTheme.php index f750a142a5f..cf015b82635 100644 --- a/core/Command/Maintenance/UpdateTheme.php +++ b/core/Command/Maintenance/UpdateTheme.php @@ -6,18 +6,18 @@ * * @license GNU AGPL version 3 or any later version * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/core/Command/TwoFactorAuth/Base.php b/core/Command/TwoFactorAuth/Base.php index e99703ecd73..fe817d214ba 100644 --- a/core/Command/TwoFactorAuth/Base.php +++ b/core/Command/TwoFactorAuth/Base.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/core/Command/TwoFactorAuth/Disable.php b/core/Command/TwoFactorAuth/Disable.php index d0303edac39..0564c89017c 100644 --- a/core/Command/TwoFactorAuth/Disable.php +++ b/core/Command/TwoFactorAuth/Disable.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Joas Schilling <coding@schilljs.com> * * @license AGPL-3.0 * diff --git a/core/Command/TwoFactorAuth/Enable.php b/core/Command/TwoFactorAuth/Enable.php index a15fb83b666..98e8b178cdb 100644 --- a/core/Command/TwoFactorAuth/Enable.php +++ b/core/Command/TwoFactorAuth/Enable.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Joas Schilling <coding@schilljs.com> * * @license AGPL-3.0 * diff --git a/core/Command/Upgrade.php b/core/Command/Upgrade.php index abc37527d2a..0877c19bc01 100644 --- a/core/Command/Upgrade.php +++ b/core/Command/Upgrade.php @@ -5,9 +5,12 @@ * @author Andreas Fischer <bantu@owncloud.com> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Jürgen Haas <juergen@paragon-es.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Owen Winkler <a_github@midnightcircus.com> + * @author Robin Appelman <robin@icewind.nl> + * @author Sander Ruitenbeek <sander@grids.be> * @author Steffen Lindner <mail@steffen-lindner.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Pulzer <t.pulzer@kniel.de> diff --git a/core/Command/User/Add.php b/core/Command/User/Add.php index 8dd25a7f297..cc53f1c78c0 100644 --- a/core/Command/User/Add.php +++ b/core/Command/User/Add.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Laurens Post <lkpost@scept.re> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/core/Command/User/Report.php b/core/Command/User/Report.php index 9a3bd9e5906..98a258ec313 100644 --- a/core/Command/User/Report.php +++ b/core/Command/User/Report.php @@ -5,6 +5,7 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/core/Command/User/ResetPassword.php b/core/Command/User/ResetPassword.php index 56260e9714a..9e69626c38d 100644 --- a/core/Command/User/ResetPassword.php +++ b/core/Command/User/ResetPassword.php @@ -8,6 +8,8 @@ * @author Joas Schilling <coding@schilljs.com> * @author Laurens Post <lkpost@scept.re> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sujith H <sharidasan@owncloud.com> * * @license AGPL-3.0 * diff --git a/core/Controller/AvatarController.php b/core/Controller/AvatarController.php index bf9a576398e..36b12fbd79c 100644 --- a/core/Controller/AvatarController.php +++ b/core/Controller/AvatarController.php @@ -5,7 +5,6 @@ * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/core/Controller/ClientFlowLoginController.php b/core/Controller/ClientFlowLoginController.php index 5767c9e1c62..e56a02ca704 100644 --- a/core/Controller/ClientFlowLoginController.php +++ b/core/Controller/ClientFlowLoginController.php @@ -2,6 +2,11 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/core/Controller/ContactsMenuController.php b/core/Controller/ContactsMenuController.php index 76eaf11085d..db6383cb2ac 100644 --- a/core/Controller/ContactsMenuController.php +++ b/core/Controller/ContactsMenuController.php @@ -1,9 +1,10 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/core/Controller/CssController.php b/core/Controller/CssController.php index 3cf477290fe..95a41f8dd15 100644 --- a/core/Controller/CssController.php +++ b/core/Controller/CssController.php @@ -2,6 +2,11 @@ /** * @copyright Copyright (c) 2016, John Molakvoæ (skjnldsv@protonmail.com) * + * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/core/Controller/JsController.php b/core/Controller/JsController.php index 1a025edbcad..f02948e47a0 100644 --- a/core/Controller/JsController.php +++ b/core/Controller/JsController.php @@ -2,6 +2,8 @@ /** * @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/core/Controller/LoginController.php b/core/Controller/LoginController.php index 462b9091d4f..e87e097e423 100644 --- a/core/Controller/LoginController.php +++ b/core/Controller/LoginController.php @@ -4,11 +4,16 @@ * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Sandro Lutz <sandro.lutz@temparus.ch> + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> + * @author justin-sleep <justin@quarterfull.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Sandro Lutz <sandro.lutz@temparus.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Ujjwal Bhardwaj <ujjwalb1996@gmail.com> * * @license AGPL-3.0 * diff --git a/core/Controller/LostController.php b/core/Controller/LostController.php index 04a3a07bea2..befa1da6944 100644 --- a/core/Controller/LostController.php +++ b/core/Controller/LostController.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Julius Haertl <jus@bitgrid.net> diff --git a/core/Controller/OCJSController.php b/core/Controller/OCJSController.php index 9c19f0c0adf..de880968a69 100644 --- a/core/Controller/OCJSController.php +++ b/core/Controller/OCJSController.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/core/Controller/OCSController.php b/core/Controller/OCSController.php index ff939f71a4f..278e01403a7 100644 --- a/core/Controller/OCSController.php +++ b/core/Controller/OCSController.php @@ -1,6 +1,10 @@ <?php /** * + * + * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/core/Controller/PreviewController.php b/core/Controller/PreviewController.php index 4e2b2f0287a..dcb27bc8883 100644 --- a/core/Controller/PreviewController.php +++ b/core/Controller/PreviewController.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/core/Controller/SetupController.php b/core/Controller/SetupController.php index bb7c8c4969d..f79e9efe0c2 100644 --- a/core/Controller/SetupController.php +++ b/core/Controller/SetupController.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bart Visscher <bartv@thisnet.nl> + * @author Damjan Georgievski <gdamjan@gmail.com> * @author ideaship <ideaship@users.noreply.github.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/core/Controller/TwoFactorChallengeController.php b/core/Controller/TwoFactorChallengeController.php index 50d63b07403..a5d7d14f367 100644 --- a/core/Controller/TwoFactorChallengeController.php +++ b/core/Controller/TwoFactorChallengeController.php @@ -1,10 +1,12 @@ <?php - /** * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Cornelius Kölbel <cornelius.koelbel@netknights.it> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/core/Controller/UserController.php b/core/Controller/UserController.php index fc282e36d9b..24746c65e5f 100644 --- a/core/Controller/UserController.php +++ b/core/Controller/UserController.php @@ -4,6 +4,7 @@ * * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/core/Middleware/TwoFactorMiddleware.php b/core/Middleware/TwoFactorMiddleware.php index a4e0d7219ec..d3811f7d27e 100644 --- a/core/Middleware/TwoFactorMiddleware.php +++ b/core/Middleware/TwoFactorMiddleware.php @@ -4,6 +4,8 @@ * * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/core/Migrations/Version13000Date20170919121250.php b/core/Migrations/Version13000Date20170919121250.php index c709875984c..0857d6d5ceb 100644 --- a/core/Migrations/Version13000Date20170919121250.php +++ b/core/Migrations/Version13000Date20170919121250.php @@ -1,4 +1,26 @@ <?php +/** + * + * + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OC\Core\Migrations; use Doctrine\DBAL\Schema\Schema; diff --git a/core/Migrations/Version13000Date20170926101637.php b/core/Migrations/Version13000Date20170926101637.php index ded34cedd39..f51828e7a33 100644 --- a/core/Migrations/Version13000Date20170926101637.php +++ b/core/Migrations/Version13000Date20170926101637.php @@ -1,4 +1,26 @@ <?php +/** + * + * + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + */ namespace OC\Core\Migrations; use Doctrine\DBAL\Schema\Schema; diff --git a/core/ajax/update.php b/core/ajax/update.php index 818291d3eff..71d60f5c432 100644 --- a/core/ajax/update.php +++ b/core/ajax/update.php @@ -4,6 +4,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Ko- <k.stoffelen@cs.ru.nl> * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/core/css/guest.css b/core/css/guest.css index 576efafec5f..79c98d37f5f 100644 --- a/core/css/guest.css +++ b/core/css/guest.css @@ -624,6 +624,8 @@ p.info { .float-spinner { margin-top: -32px; padding-top: 32px; + height: 32px; + display: none; } [class^='icon-'], [class*=' icon-'] { background-repeat: no-repeat; diff --git a/core/css/header.scss b/core/css/header.scss index 530e78186a8..952389882c3 100644 --- a/core/css/header.scss +++ b/core/css/header.scss @@ -143,7 +143,6 @@ #header-left, .header-left { flex: 0 0; flex-grow: 1; - overflow: hidden; white-space: nowrap; } @@ -206,7 +205,8 @@ nav { } #navigation, -.ui-datepicker { +.ui-datepicker, +.ui-timepicker.ui-widget { position: relative; left: -100%; width: 160px; @@ -223,7 +223,7 @@ nav { position: absolute; pointer-events: none; border-color: rgba(0, 0, 0, 0); - border-bottom-color: rgba(255, 255, 255, .97); + border-bottom-color: $color-main-background; border-width: 9px; margin-left: -9px; } @@ -318,6 +318,10 @@ nav { .in-header { display: none; } + ul { + display: flex; + flex-direction: column; + } } /* USER MENU -----------------------------------------------------------------*/ diff --git a/core/css/styles.scss b/core/css/styles.scss index d88a00a82f5..e5e0145cddb 100644 --- a/core/css/styles.scss +++ b/core/css/styles.scss @@ -1070,6 +1070,75 @@ code { background: $color-main-background; } + +/* ---- jQuery UI timepicker ---- */ +.ui-widget.ui-timepicker { + margin-top: 10px !important; + width: auto !important; + border-radius: $border-radius; + + .ui-widget-content { + border: none !important; + } + + .ui-state-default, + .ui-widget-content .ui-state-default, + .ui-widget-header .ui-state-default { + border: 1px solid transparent; + background: inherit; + } + .ui-widget-header { + padding: 7px; + font-size: 13px; + border: none; + background-color: $color-main-background; + color: $color-main-text; + + .ui-timepicker-title { + line-height: 1; + font-weight: 300; + } + } + .ui-timepicker-table { + th { + font-weight: normal; + color: nc-lighten($color-main-text, 33%); + opacity: .8; + } + tr:hover { + background-color: inherit; + } + td { + > * { + border-radius: 50%; + text-align: center; + font-weight: normal; + color: $color-main-text; + padding: 8px 7px; + font-size: .9em; + line-height: 12px; + } + + &.ui-timepicker-hour-cell a.ui-state-active, + &.ui-timepicker-minute-cell a.ui-state-active, + .ui-state-hover, + .ui-state-focus { + background-color: $color-primary; + color: $color-primary-text; + font-weight: bold; + } + + &.ui-timepicker-minutes:not(.ui-state-hover) { + color: nc-lighten($color-main-text, 33%); + } + + &.ui-timepicker-hours { + border-right: 1px solid $color-border; + } + } + } +} + /* ---- DIALOGS ---- */ #oc-dialog-filepicker-content { diff --git a/core/js/js.js b/core/js/js.js index c02ef5c7920..1f84b40a35a 100644 --- a/core/js/js.js +++ b/core/js/js.js @@ -1512,7 +1512,7 @@ function initCore() { var resizeMenu = function() { var appList = $('#appmenu li'); - var headerWidth = $('.header-left').width() - $('#nextcloud').width() + var headerWidth = $('.header-left').width() - $('#nextcloud').width(); var usePercentualAppMenuLimit = 0.33; var minAppsDesktop = 8; var availableWidth = headerWidth - $(appList).width(); diff --git a/core/js/tests/specs/coreSpec.js b/core/js/tests/specs/coreSpec.js index dd13cba8e2b..9848fb46ffc 100644 --- a/core/js/tests/specs/coreSpec.js +++ b/core/js/tests/specs/coreSpec.js @@ -256,10 +256,10 @@ describe('Core base tests', function() { describe('filePath', function() { beforeEach(function() { OC.webroot = 'http://localhost'; - OC.appswebroots['files'] = OC.webroot + '/apps3/files'; + OC.appswebroots.files = OC.webroot + '/apps3/files'; }); afterEach(function() { - delete OC.appswebroots['files']; + delete OC.appswebroots.files; }); it('Uses a direct link for css and images,' , function() { diff --git a/core/js/tests/specs/files/clientSpec.js b/core/js/tests/specs/files/clientSpec.js index f75998029a9..d66c209bca5 100644 --- a/core/js/tests/specs/files/clientSpec.js +++ b/core/js/tests/specs/files/clientSpec.js @@ -448,7 +448,7 @@ describe('OC.Files.Client tests', function() { expect(info.id).toEqual(11); // file entry - var info = response[1]; + info = response[1]; expect(info instanceof OC.Files.FileInfo).toEqual(true); expect(info.id).toEqual(51); diff --git a/core/js/tests/specs/jquery.avatarSpec.js b/core/js/tests/specs/jquery.avatarSpec.js index d7305736690..b9351d2a8a0 100644 --- a/core/js/tests/specs/jquery.avatarSpec.js +++ b/core/js/tests/specs/jquery.avatarSpec.js @@ -11,7 +11,7 @@ describe('jquery.avatar tests', function() { var $div; - var devicePixelRatio + var devicePixelRatio; beforeEach(function() { $('#testArea').append($('<div id="avatardiv">')); @@ -24,7 +24,7 @@ describe('jquery.avatar tests', function() { afterEach(function() { $div.remove(); - window.devicePixelRatio = devicePixelRatio + window.devicePixelRatio = devicePixelRatio; }); describe('size', function() { diff --git a/core/js/tests/specs/mimeTypeSpec.js b/core/js/tests/specs/mimeTypeSpec.js index 182941de1a9..8ad0300a0a7 100644 --- a/core/js/tests/specs/mimeTypeSpec.js +++ b/core/js/tests/specs/mimeTypeSpec.js @@ -26,17 +26,17 @@ describe('MimeType tests', function() { beforeEach(function() { _files = OC.MimeTypeList.files; _aliases = OC.MimeTypeList.aliases; - _theme = OC.MimeTypeList.themes['abc']; + _theme = OC.MimeTypeList.themes.abc; OC.MimeTypeList.files = ['folder', 'folder-shared', 'folder-external', 'foo-bar', 'foo', 'file']; OC.MimeTypeList.aliases = {'app/foobar': 'foo/bar'}; - OC.MimeTypeList.themes['abc'] = ['folder']; + OC.MimeTypeList.themes.abc = ['folder']; }); afterEach(function() { OC.MimeTypeList.files = _files; OC.MimeTypeList.aliases = _aliases; - OC.MimeTypeList.themes['abc'] = _theme; + OC.MimeTypeList.themes.abc = _theme; }); describe('_getFile', function() { @@ -109,9 +109,9 @@ describe('MimeType tests', function() { var res = OC.MimeType.getIconUrl('dir'); expect(Object.keys(OC.MimeType._mimeTypeIcons).length).toEqual(1); - expect(OC.MimeType._mimeTypeIcons['dir']).toEqual(res); + expect(OC.MimeType._mimeTypeIcons.dir).toEqual(res); - var res = OC.MimeType.getIconUrl('dir-shared'); + res = OC.MimeType.getIconUrl('dir-shared'); expect(Object.keys(OC.MimeType._mimeTypeIcons).length).toEqual(2); expect(OC.MimeType._mimeTypeIcons['dir-shared']).toEqual(res); }); diff --git a/core/js/tests/specs/sharedialoglinkshareview.js b/core/js/tests/specs/sharedialoglinkshareview.js index 811919b5603..12f5e762cee 100644 --- a/core/js/tests/specs/sharedialoglinkshareview.js +++ b/core/js/tests/specs/sharedialoglinkshareview.js @@ -48,7 +48,6 @@ describe('OC.Share.ShareDialogLinkShareView', function () { configModel = new OC.Share.ShareConfigModel({ enforcePasswordForPublicLink: false, isResharingAllowed: true, - enforcePasswordForPublicLink: false, isDefaultExpireDateEnabled: false, isDefaultExpireDateEnforced: false, defaultExpireDate: 7 diff --git a/core/js/tests/specs/sharedialogshareelistview.js b/core/js/tests/specs/sharedialogshareelistview.js index 1d8552f0527..8ee2c48fe39 100644 --- a/core/js/tests/specs/sharedialogshareelistview.js +++ b/core/js/tests/specs/sharedialogshareelistview.js @@ -59,7 +59,6 @@ describe('OC.Share.ShareDialogShareeListView', function () { configModel = new OC.Share.ShareConfigModel({ enforcePasswordForPublicLink: false, isResharingAllowed: true, - enforcePasswordForPublicLink: false, isDefaultExpireDateEnabled: false, isDefaultExpireDateEnforced: false, defaultExpireDate: 7 diff --git a/core/js/tests/specs/sharedialogviewSpec.js b/core/js/tests/specs/sharedialogviewSpec.js index 95349bc4875..c6d5793623c 100644 --- a/core/js/tests/specs/sharedialogviewSpec.js +++ b/core/js/tests/specs/sharedialogviewSpec.js @@ -67,7 +67,6 @@ describe('OC.Share.ShareDialogView', function() { configModel = new OC.Share.ShareConfigModel({ enforcePasswordForPublicLink: false, isResharingAllowed: true, - enforcePasswordForPublicLink: false, isDefaultExpireDateEnabled: false, isDefaultExpireDateEnforced: false, defaultExpireDate: 7 diff --git a/core/l10n/de.js b/core/l10n/de.js index 96d6dd878a0..2f84324ce4e 100644 --- a/core/l10n/de.js +++ b/core/l10n/de.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "Der \"Strict-Transport-Security\" HTTP-Header ist nicht auf mindestens \"{seconds}\" Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in unseren <a href=\"{docUrl}\" rel=\"noreferrer\">Sicherheitshinweisen</a> erläutert ist.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du greifst auf diese Site über HTTP zu. Wir raten dringend dazu, deinen Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in unseren <a href=\"{docUrl}\">Sicherheitshinweisen</a> beschrieben ist.", "Shared" : "Geteilt", + "Shared with" : "Geteilt mit", + "Shared by" : "Geteilt von", "Error setting expiration date" : "Fehler beim Setzen des Ablaufdatums", "The public link will expire no later than {days} days after it is created" : "Der öffentliche Link wird spätestens {days} Tage nach seiner Erstellung ablaufen", "Set expiration date" : "Setze ein Ablaufdatum", diff --git a/core/l10n/de.json b/core/l10n/de.json index 3066596959a..a55fe4d5cf7 100644 --- a/core/l10n/de.json +++ b/core/l10n/de.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "Der \"Strict-Transport-Security\" HTTP-Header ist nicht auf mindestens \"{seconds}\" Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in unseren <a href=\"{docUrl}\" rel=\"noreferrer\">Sicherheitshinweisen</a> erläutert ist.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du greifst auf diese Site über HTTP zu. Wir raten dringend dazu, deinen Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in unseren <a href=\"{docUrl}\">Sicherheitshinweisen</a> beschrieben ist.", "Shared" : "Geteilt", + "Shared with" : "Geteilt mit", + "Shared by" : "Geteilt von", "Error setting expiration date" : "Fehler beim Setzen des Ablaufdatums", "The public link will expire no later than {days} days after it is created" : "Der öffentliche Link wird spätestens {days} Tage nach seiner Erstellung ablaufen", "Set expiration date" : "Setze ein Ablaufdatum", diff --git a/core/l10n/de_DE.js b/core/l10n/de_DE.js index 91bb5a23e45..5fcf1322690 100644 --- a/core/l10n/de_DE.js +++ b/core/l10n/de_DE.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "Der \"Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens \"{seconds}“ Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in unseren <a href=\"{docUrl}\" rel=\"noreferrer\">Sicherheitshinweisen</a> erläutert ist.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Sie greifen auf diese Site über HTTP zu. Wir raten dringend dazu, Ihren Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in unseren <a href=\"{docUrl}\">Sicherheitshinweisen</a> beschrieben ist.", "Shared" : "Geteilt", + "Shared with" : "Geteilt mit", + "Shared by" : "Geteilt von", "Error setting expiration date" : "Fehler beim Setzen des Ablaufdatums", "The public link will expire no later than {days} days after it is created" : "Der öffentliche Link wird spätestens {days} Tage nach seiner Erstellung ablaufen", "Set expiration date" : "Ein Ablaufdatum setzen", diff --git a/core/l10n/de_DE.json b/core/l10n/de_DE.json index 09700b7bfa2..d3d521a84d4 100644 --- a/core/l10n/de_DE.json +++ b/core/l10n/de_DE.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "Der \"Strict-Transport-Security“-HTTP-Header ist nicht auf mindestens \"{seconds}“ Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in unseren <a href=\"{docUrl}\" rel=\"noreferrer\">Sicherheitshinweisen</a> erläutert ist.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Sie greifen auf diese Site über HTTP zu. Wir raten dringend dazu, Ihren Server so zu konfigurieren, dass er stattdessen nur HTTPS akzeptiert, wie es in unseren <a href=\"{docUrl}\">Sicherheitshinweisen</a> beschrieben ist.", "Shared" : "Geteilt", + "Shared with" : "Geteilt mit", + "Shared by" : "Geteilt von", "Error setting expiration date" : "Fehler beim Setzen des Ablaufdatums", "The public link will expire no later than {days} days after it is created" : "Der öffentliche Link wird spätestens {days} Tage nach seiner Erstellung ablaufen", "Set expiration date" : "Ein Ablaufdatum setzen", diff --git a/core/l10n/en_GB.js b/core/l10n/en_GB.js index 8b9312e4284..7d236551b7c 100644 --- a/core/l10n/en_GB.js +++ b/core/l10n/en_GB.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Shared", + "Shared with" : "Shared with", + "Shared by" : "Shared by", "Error setting expiration date" : "Error setting expiration date", "The public link will expire no later than {days} days after it is created" : "The public link will expire no later than {days} days after it is created", "Set expiration date" : "Set expiration date", @@ -275,6 +277,7 @@ OC.L10N.register( "Alternative Logins" : "Alternative Logins", "Account access" : "Account access", "You are about to grant %s access to your %s account." : "You are about to grant %s access to your %s account.", + "Grant access" : "Grant access", "App token" : "App token", "Alternative login using app token" : "Alternative login using app token", "Redirecting …" : "Redirecting …", diff --git a/core/l10n/en_GB.json b/core/l10n/en_GB.json index 66bbbc67fe3..df3ea44e215 100644 --- a/core/l10n/en_GB.json +++ b/core/l10n/en_GB.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Shared", + "Shared with" : "Shared with", + "Shared by" : "Shared by", "Error setting expiration date" : "Error setting expiration date", "The public link will expire no later than {days} days after it is created" : "The public link will expire no later than {days} days after it is created", "Set expiration date" : "Set expiration date", @@ -273,6 +275,7 @@ "Alternative Logins" : "Alternative Logins", "Account access" : "Account access", "You are about to grant %s access to your %s account." : "You are about to grant %s access to your %s account.", + "Grant access" : "Grant access", "App token" : "App token", "Alternative login using app token" : "Alternative login using app token", "Redirecting …" : "Redirecting …", diff --git a/core/l10n/es.js b/core/l10n/es.js index cdf89bcd198..1eed97ee9cc 100644 --- a/core/l10n/es.js +++ b/core/l10n/es.js @@ -11,7 +11,7 @@ OC.L10N.register( "Invalid image" : "La imagen no es válida", "An error occurred. Please contact your admin." : "Ha ocurrido un error. Póngase en contacto con su administrador.", "No temporary profile picture available, try again" : "No hay disponible una imagen temporal de perfil, pruebe de nuevo", - "No crop data provided" : "No se proporcionó datos del recorte", + "No crop data provided" : "No se han proporcionado datos del recorte", "No valid crop data provided" : "Recorte inválido", "Crop is not square" : "El recorte no es cuadrado", "State token does not match" : "El token dado no coincide", @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "La cabecera HTTP \"Strict-Transport-Security\" no está configurada en al menos \"{seconds}\" segundos. Para una mejor seguridad recomendamos que habilite HSTS como se describe en <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Está ingresando a este sitio de internet vía HTTP. Le sugerimos enérgicamente que configure su servidor que utilice HTTPS como se describe en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Error estableciendo fecha de caducidad", "The public link will expire no later than {days} days after it is created" : "El vínculo público no expirará antes de {days} desde que se creó", "Set expiration date" : "Establecer fecha de caducidad", @@ -193,7 +195,7 @@ OC.L10N.register( "Collaborative tags" : "Etiquetas colaborativas", "No tags found" : "No se encontraron etiquetas", "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", + "Hello world!" : "¡Hola, mundo!", "sunny" : "soleado", "Hello {name}, the weather is {weather}" : "Hola {name}, el día es {weather}", "Hello {name}" : "Hola {name}", @@ -263,7 +265,7 @@ OC.L10N.register( "Search" : "Buscar", "Reset search" : "Resetear búsqueda", "Confirm your password" : "Confirme su contraseña", - "Server side authentication failed!" : "La autenticación a fallado en el servidor.", + "Server side authentication failed!" : "La autenticación ha fallado en el servidor.", "Please contact your administrator." : "Por favor, contacte con el administrador.", "An internal error occurred." : "Ha habido un error interno.", "Please try again or contact your administrator." : "Por favor reintente nuevamente o contáctese con su administrador.", @@ -275,6 +277,7 @@ OC.L10N.register( "Alternative Logins" : "Inicios de sesión alternativos", "Account access" : "Acceso a la cuenta", "You are about to grant %s access to your %s account." : "Estás a punto de conceder a %s acceso a tu cuenta de %s", + "Grant access" : "Conceder acceso", "App token" : "Token de app", "Alternative login using app token" : "Login alternativo usando token de app", "Redirecting …" : "Redireccionando...", diff --git a/core/l10n/es.json b/core/l10n/es.json index 9c3837dbb54..de665e11a60 100644 --- a/core/l10n/es.json +++ b/core/l10n/es.json @@ -9,7 +9,7 @@ "Invalid image" : "La imagen no es válida", "An error occurred. Please contact your admin." : "Ha ocurrido un error. Póngase en contacto con su administrador.", "No temporary profile picture available, try again" : "No hay disponible una imagen temporal de perfil, pruebe de nuevo", - "No crop data provided" : "No se proporcionó datos del recorte", + "No crop data provided" : "No se han proporcionado datos del recorte", "No valid crop data provided" : "Recorte inválido", "Crop is not square" : "El recorte no es cuadrado", "State token does not match" : "El token dado no coincide", @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "La cabecera HTTP \"Strict-Transport-Security\" no está configurada en al menos \"{seconds}\" segundos. Para una mejor seguridad recomendamos que habilite HSTS como se describe en <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Está ingresando a este sitio de internet vía HTTP. Le sugerimos enérgicamente que configure su servidor que utilice HTTPS como se describe en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.", "Shared" : "Compartido", + "Shared with" : "Compartido con", + "Shared by" : "Compartido por", "Error setting expiration date" : "Error estableciendo fecha de caducidad", "The public link will expire no later than {days} days after it is created" : "El vínculo público no expirará antes de {days} desde que se creó", "Set expiration date" : "Establecer fecha de caducidad", @@ -191,7 +193,7 @@ "Collaborative tags" : "Etiquetas colaborativas", "No tags found" : "No se encontraron etiquetas", "unknown text" : "texto desconocido", - "Hello world!" : "¡Hola mundo!", + "Hello world!" : "¡Hola, mundo!", "sunny" : "soleado", "Hello {name}, the weather is {weather}" : "Hola {name}, el día es {weather}", "Hello {name}" : "Hola {name}", @@ -261,7 +263,7 @@ "Search" : "Buscar", "Reset search" : "Resetear búsqueda", "Confirm your password" : "Confirme su contraseña", - "Server side authentication failed!" : "La autenticación a fallado en el servidor.", + "Server side authentication failed!" : "La autenticación ha fallado en el servidor.", "Please contact your administrator." : "Por favor, contacte con el administrador.", "An internal error occurred." : "Ha habido un error interno.", "Please try again or contact your administrator." : "Por favor reintente nuevamente o contáctese con su administrador.", @@ -273,6 +275,7 @@ "Alternative Logins" : "Inicios de sesión alternativos", "Account access" : "Acceso a la cuenta", "You are about to grant %s access to your %s account." : "Estás a punto de conceder a %s acceso a tu cuenta de %s", + "Grant access" : "Conceder acceso", "App token" : "Token de app", "Alternative login using app token" : "Login alternativo usando token de app", "Redirecting …" : "Redireccionando...", diff --git a/core/l10n/es_EC.js b/core/l10n/es_EC.js new file mode 100644 index 00000000000..2572a49ed86 --- /dev/null +++ b/core/l10n/es_EC.js @@ -0,0 +1,357 @@ +OC.L10N.register( + "core", + { + "Please select a file." : "Por favor selecciona un archivo.", + "File is too big" : "El archivo es demasiado grande.", + "The selected file is not an image." : "El archivo seleccionado no es una imagen.", + "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", + "Invalid file provided" : "Archivo proporcionado inválido", + "No image or file provided" : "No se especificó un archivo o imagen", + "Unknown filetype" : "Tipo de archivo desconocido", + "Invalid image" : "Imagen inválida", + "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", + "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", + "No crop data provided" : "No se han proporcionado datos del recorte", + "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", + "Crop is not square" : "El recorte no es cuadrado", + "State token does not match" : "La ficha de estado no corresponde", + "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", + "Couldn't reset password because the token is invalid" : "No ha sido posible restablecer la contraseña porque la ficha es inválida", + "Couldn't reset password because the token is expired" : "No ha sido posible restablecer la contraseña porque la ficha ha expirado", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No fue posible enviar el correo electrónico para restablecer porque no hay una dirección de correo electrónico para este usuario. Por favor contacta a tu adminsitrador. ", + "%s password reset" : "%s restablecer la contraseña", + "Password reset" : "Restablecer contraseña", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", + "Reset your password" : "Restablecer tu contraseña", + "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", + "Couldn't send reset email. Please make sure your username is correct." : "No fue posible restablecer el correo electrónico. Por favor asegurarte de que tu nombre de usuario sea correcto. ", + "Preparing update" : "Preparando actualización", + "[%d / %d]: %s" : "[%d / %d]: %s ", + "Repair warning: " : "Advertencia de reparación:", + "Repair error: " : "Error de reparación: ", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php.", + "[%d / %d]: Checking table %s" : "[%d / %d]: Verificando tabla %s", + "Turned on maintenance mode" : "Modo mantenimiento activado", + "Turned off maintenance mode" : "Modo mantenimiento desactivado", + "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", + "Updating database schema" : "Actualizando esquema de base de datos", + "Updated database" : "Base de datos actualizada", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Verificando si el archivo del esquema de base de datos puede ser actualizado (esto puedo tomar mucho tiempo dependiendo del tamaño de la base de datos)", + "Checked database schema update" : "Actualización del esquema de base de datos verificada", + "Checking updates of apps" : "Verificando actualizaciones para aplicaciones", + "Checking for update of app \"%s\" in appstore" : "Verificando actualizaciones para la aplicacion \"%s\" en la appstore", + "Update app \"%s\" from appstore" : "Actualizar la aplicación \"%s\" desde la appstore", + "Checked for update of app \"%s\" in appstore" : "Se verificaron actualizaciones para la aplicación \"%s\" en la appstore", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", + "Checked database schema update for apps" : "Se verificó la actualización del esquema de la base de datos para las aplicaciones", + "Updated \"%s\" to %s" : "Actualizando \"%s\" a %s", + "Set log level to debug" : "Establecer nivel de bitacora a depurar", + "Reset log level" : "Restablecer nivel de bitácora", + "Starting code integrity check" : "Comenzando verificación de integridad del código", + "Finished code integrity check" : "Terminó la verificación de integridad del código ", + "%s (3rdparty)" : "%s (de 3ros)", + "%s (incompatible)" : "%s (incompatible)", + "Following apps have been disabled: %s" : "Las siguientes aplicaciones han sido deshabilitadas: %s", + "Already up to date" : "Ya está actualizado", + "Search contacts …" : "Buscar contactos ...", + "No contacts found" : "No se encontraron contactos", + "Show all contacts …" : "Mostrar todos los contactos ...", + "There was an error loading your contacts" : "Se presentó un error al cargar tus contactos", + "Loading your contacts …" : "Cargando sus contactos ... ", + "Looking for {term} …" : "Buscando {term} ...", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Se presentaron problemas con la verificación de integridad del código. Más información ...</a>", + "No action available" : "No hay acciones disponibles", + "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", + "Settings" : "Configuraciones ", + "Connection to server lost" : "Se ha perdido la conexión con el servidor", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un erorr al cargar la página, recargando en %n segundo","Se presentó un erorr al cargar la página, recargando en %n segundo"], + "Saving..." : "Guardando...", + "Dismiss" : "Descartar", + "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", + "Authentication required" : "Se requiere autenticación", + "Password" : "Contraseña", + "Cancel" : "Cancelar", + "Confirm" : "Confirmar", + "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", + "seconds ago" : "hace segundos", + "Logging in …" : "Iniciando sesión ...", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "La liga para restablecer tu contraseña ha sido enviada a tu correo electrónico. Si no lo recibes dentro de un tiempo razonable, verifica las carpetas de spam/basura.<br>Si no la encuentras consulta a tu adminstrador local.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tus archivos están encriptados. No habrá manera de recuperar tus datos una vez que restablezca tu contraseña. <br />Si no estás seguro de qué hacer, por favor contacta a tu administrador antes de continuar. <br />¿Realmente deseas continuar?", + "I know what I'm doing" : "Sé lo que estoy haciendo", + "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", + "No" : "No", + "Yes" : "Sí", + "No files in here" : "No hay archivos aquí", + "Choose" : "Seleccionar", + "Copy" : "Copiar", + "Move" : "Mover", + "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", + "OK" : "OK", + "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", + "read-only" : "sólo-lectura", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo"], + "One file conflict" : "Un conflicto en el archivo", + "New Files" : "Archivos Nuevos", + "Already existing files" : "Archivos ya existentes", + "Which files do you want to keep?" : "¿Cuales archivos deseas mantener?", + "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", + "Continue" : "Continuar", + "(all selected)" : "(todos seleccionados)", + "({count} selected)" : "({count} seleccionados)", + "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", + "Pending" : "Pendiente", + "Copy to {folder}" : "Copiar a {folder}", + "Move to {folder}" : "Mover a {folder}", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Tu servidor web aún no se encuentra correctamente configurado para permitir la sincronización de archivos porque la interface de WebDAV parece estar rota. ", + "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor no cuenta con una conexión a Internet: No fue posible alcanzar diversos puntos de acceso <EndPoints>. Esto significa que algunas funcionalidades como el montaje de almacenamiento externo, notificaciónes de actualizaciones o la instalación de aplicaciones de terceros no funcionarán. Acceder archivos de forma remota y el envío de correos electrónicos de notificación puede que tampoco funcionen. Te sugerimos habilitar la conexión a Internet para este servidor si deseas contar con todas las características.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No ha sido configurada la memoria caché. Por favor configura un memechache si está disponible para mejorar el desempeño. Puedes encontrar información adicional en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No fue posible leer /dev/urandom por PHP que es altamente desalentado por razones de seguridad. Puedes obtener más información en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Estás usando PHP {version}. Te recomendamos actualizar tu versión de PHP para aprovechar <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">las actualizaciones de seguridad y desempeño suministradas por el Grupo PHP</a> tan pronto como tu distribución lo soporte. ", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no estás accediendo a Nextcloud desde un proxy de confianza, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached está configurado como un caché distribuido, pero el módulo equivocado PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memchached\" y no \"memchache\". Por favor ve el <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">wiki de ambos módulos</a>.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Algunos archivos no pasaron la verificación de integridad. Para más información de cómo resolver este tema consulta nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Listado de archivos inválidos …</a> / <a href=\"{rescanEndpoint}\">Volver a escanear…</a>)", + "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "El PHP OPcache no está configurado correctamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Para un mejor desempeño, recomendamos </a> usar las siguientes configuraciones en php.ini:<code>", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "La fución PHP \"set_time_limit\" no está disponible. Esto podría generar scripts que se interrumpan a media ejecución, rompiendo la instalación. Te recomendamos ámpliamente habilitar esta función.", + "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Posiblemente tus archivos y directorio de datos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Te recomendamos ámpliamente configurar tu servidor web de tal modo que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web. ", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "El encabezado HTTP \"{header}\" no está configurado como \"{expected}\". Este es un riesgo potencial de seguridad o privacidad y te recomendamos cambiar esta configuración.", + "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para mejorar la seguridad, te recomendamos habilitar HSTS como se describe en nuestros <a href=\"{docUrl}\" rel=\"noreferrer\">consejos de seguridad</a>.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Estás accediendo este sitio via HTTP. Te recomendamos ámpliamente que configures tu servidor para que en su lugar, el uso de HTTPS sea requerido como está descrito en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.", + "Shared" : "Compartido", + "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", + "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", + "Set expiration date" : "Selecciona la vigencia de tu archivo", + "Expiration" : "Expiración", + "Expiration date" : "Fecha de expiración", + "Choose a password for the public link" : "Seleccione una contraseña para la liga pública", + "Choose a password for the public link or press the \"Enter\" key" : "Elige una contraseña para la liga pública o presiona la tecla \"Intro\"", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No está soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar.", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Resharing is not allowed" : "No se permite volver a compartir", + "Share to {name}" : "Compartir con {name}", + "Share link" : "Compartir liga", + "Link" : "Liga", + "Password protect" : "Proteger con contraseña", + "Allow editing" : "Permitir editar", + "Email link to person" : "Enviar la liga por correo electrónico a una persona", + "Send" : "Enviar", + "Allow upload and editing" : "Permitir carga y edición", + "Read only" : "Sólo lectura", + "File drop (upload only)" : "Permitir carga", + "Shared with you and the group {group} by {owner}" : "Compartido contigo y el grupo {group} por {owner}", + "Shared with you by {owner}" : "Compartido contigo por {owner}", + "Choose a password for the mail share" : "Elige una contraseña para el elemento compartido por correo", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} ha compartido mediante una liga", + "group" : "grupo", + "remote" : "remoto", + "email" : "correo electrónico", + "shared by {sharer}" : "compartido por {sharer}", + "Unshare" : "Dejar de compartir", + "Can reshare" : "Puede volver a compartir", + "Can edit" : "Puede editar", + "Can create" : "Puede crear", + "Can change" : "Puede cambiar", + "Can delete" : "Puede borrar", + "Access control" : "Control de acceso", + "Could not unshare" : "No fue posible dejar de compartir", + "Error while sharing" : "Se presentó un error al compartir", + "Share details could not be loaded for this item." : "Los detalles del recurso compartido no se pudieron cargar para este elemento. ", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Se requiere de la menos {count} caracter para el auto completar","Se requieren de la menos {count} caracteres para el auto completar"], + "This list is maybe truncated - please refine your search term to see more results." : "Esta lista puede estar truncada - por favor refina tus términos de búsqueda para poder ver más resultados. ", + "No users or groups found for {search}" : "No se encontraron usuarios o gurpos para {search}", + "No users found for {search}" : "No se encontraron usuarios para {search}", + "An error occurred. Please try again" : "Se presentó un error. Por favor vuelve a intentarlo", + "{sharee} (group)" : "{sharee} (grupo)", + "{sharee} (remote)" : "{sharee} (remoto)", + "{sharee} (email)" : "{sharee} (correo electrónico)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "Share" : "Compartir", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", + "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", + "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Name or email address..." : "Nombre o dirección de correo electrónico", + "Name or federated cloud ID..." : "Nombre...", + "Name, federated cloud ID or email address..." : "Nombre o dirección de correo electrónico...", + "Name..." : "Nombre...", + "Error" : "Error", + "Error removing share" : "Se presentó un error al dejar de compartir", + "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", + "restricted" : "restringido", + "invisible" : "invisible", + "({scope})" : "({scope})", + "Delete" : "Borrar", + "Rename" : "Renombrar", + "Collaborative tags" : "Etiquetas colaborativas", + "No tags found" : "No se encontraron etiquetas", + "unknown text" : "texto desconocido", + "Hello world!" : "¡Hola mundo!", + "sunny" : "soleado", + "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", + "Hello {name}" : "Hola {name}", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", + "new" : "nuevo", + "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos"], + "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", + "Update to {version}" : "Actualizar a {version}", + "An error occurred." : "Se presentó un error.", + "Please reload the page." : "Por favor vuelve a cargar la página.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", + "Continue to Nextcloud" : "Continuar a Nextcloud", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["La actualización fue exitosa. Lo estamos redireccionando a Nextcloud en %n segundo. ","La actualización fue exitosa. Te redireccionaremos a Nextcloud en %n segundos."], + "Searching other places" : "Buscando en otras ubicaciones", + "No search results in other folders for {tag}{filter}{endtag}" : "No hay resultados para la búsqueda {tag}{filter}{endtag} en otras carpetas", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} resultado de la búsqueda en otra carpeta","{count} resultados de la búsqueda en otras carpetas"], + "Personal" : "Personal", + "Users" : "Usuarios", + "Apps" : "Aplicaciones", + "Admin" : "Administración", + "Help" : "Ayuda", + "Access forbidden" : "Acceso prohibido", + "File not found" : "Archivo no encontrado", + "The specified document has not been found on the server." : "El documento especificado no ha sido encontrado en el servidor. ", + "You can click here to return to %s." : "Puedes hacer click aquí para regresar a %s.", + "Internal Server Error" : "Error interno del servidor", + "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", + "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", + "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", + "Technical details" : "Detalles técnicos", + "Remote Address: %s" : "Dirección Remota: %s", + "Request ID: %s" : "ID de solicitud: %s", + "Type: %s" : "Tipo: %s", + "Code: %s" : "Código: %s", + "Message: %s" : "Mensaje: %s", + "File: %s" : "Archivo: %s", + "Line: %s" : "Línea: %s", + "Trace" : "Rastrear", + "Security warning" : "Advertencia de seguridad", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para más información de cómo configurar propiamente tu servidor, por favor ve la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentación</a>.", + "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", + "Username" : "Usuario", + "Storage & database" : "Almacenamiento & base de datos", + "Data folder" : "Carpeta de datos", + "Configure the database" : "Configurar la base de datos", + "Only %s is available." : "Sólo %s está disponible.", + "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", + "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", + "Database user" : "Usuario de la base de datos", + "Database password" : "Contraseña de la base de datos", + "Database name" : "Nombre de la base de datos", + "Database tablespace" : "Espacio de tablas en la base de datos", + "Database host" : "Servidor de base de datos", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", + "Performance warning" : "Advertencia de desempeño", + "SQLite will be used as database." : "SQLite será usado como la base de datos.", + "For larger installations we recommend to choose a different database backend." : "Para instalaciones más grandes te recomendamos elegir un backend de base de datos diferente.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "El uso de SQLiite es especialmente desalentado al usar el cliente de escritorio para sincrionizar. ", + "Finish setup" : "Terminar configuración", + "Finishing …" : "Terminando …", + "Need help?" : "¿Necesitas ayuda?", + "See the documentation" : "Ver la documentación", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", + "More apps" : "Más aplicaciones", + "Search" : "Buscar", + "Reset search" : "Reestablecer búsqueda", + "Confirm your password" : "Confirma tu contraseña", + "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", + "Please contact your administrator." : "Por favor contacta al administrador.", + "An internal error occurred." : "Se presentó un error interno.", + "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", + "Username or email" : "Usuario o correo electrónico", + "Wrong password. Reset it?" : "Contraseña equivocada. ¿Deseas restablecerla?", + "Wrong password." : "Contraseña inválida. ", + "Log in" : "Ingresar", + "Stay logged in" : "Mantener la sesión abierta", + "Alternative Logins" : "Accesos Alternativos", + "Account access" : "Acceo de cuenta", + "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", + "Grant access" : "Conceder acceso", + "App token" : "Ficha de la aplicación", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", + "Redirecting …" : "Redireccionando ... ", + "New password" : "Nueva contraseña", + "New Password" : "Nueva Contraseña", + "Reset password" : "Restablecer contraseña", + "Two-factor authentication" : "Autenticación de dos-factores", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "La seguridad mejorada está habilitada para tu cuenta. Favor de autenticarte usando un segundo factor. ", + "Cancel log in" : "Cancelar inicio de sesión", + "Use backup code" : "Usar código de respaldo", + "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", + "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "Dependiendo de tu configuración, este botón podría funcionar también para confiar en el dominio:", + "Add \"%s\" as trusted domain" : "Agregar \"%s\" como un dominio de confianza", + "App update required" : "Se requiere una actualización de la aplicación", + "%s will be updated to version %s" : "%s será actualizado a la versión %s", + "These apps will be updated:" : "Las siguientes apllicaciones se actualizarán:", + "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", + "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", + "Start update" : "Iniciar actualización", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", + "Detailed logs" : "Bitácoras detalladas", + "Update needed" : "Se requiere de una actualización", + "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para más ayuda, consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">doccumentación</a>.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", + "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", + "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", + "This page will refresh itself when the %s instance is available again." : "Esta página se actualizará sola cuando la instancia %s esté disponible de nuevo. ", + "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", + "Thank you for your patience." : "Gracias por tu paciencia.", + "Problem loading page, reloading in 5 seconds" : "Se presentó un problema al cargar la página, recargando en 5 segundos", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tus archivos están encriptados. Si no has habilitado la llave de recuperación, no habrá manera de que puedas recuperar tus datos una vez que restablezcas tu contraseña.<br />Si no estás seguro de lo que estás haciendo, por favor contacta a tu adminstrador antes de continuar. <br />¿Realmente deseas continuar?", + "Ok" : "Ok", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Posiblemente tus directorios de datos y archivos son accesibles desde Internet. El archivo .htaccess no está funcionando. Te recomendamos ámpliamente que configures tu servidor web de tal modo que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web. ", + "Shared with {recipients}" : "Compartido con {recipients}", + "Error while unsharing" : "Se presentó un error al dejar de compartir", + "can reshare" : "puede volver a compartir", + "can edit" : "puede editar", + "can create" : "puede crear", + "can change" : "puede modificar", + "can delete" : "puede borrar", + "access control" : "control de acceso", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Comparte con personas en otros servidores usando sus IDs username@example.com/nextcloud", + "Share with users or by mail..." : "Compartir con otros usuarios o por correo electrónico...", + "Share with users or remote users..." : "Compartir con otros usuarios o con otros usuarios remotos...", + "Share with users, remote users or by mail..." : "Compartir con otros usuarios, otros usuarios remotos o por correo electrónico...", + "Share with users or groups..." : "Compartir con otros usuarios o grupos...", + "Share with users, groups or by mail..." : "Compartir con otros usuarios, grupos o por correo electrónico...", + "Share with users, groups or remote users..." : "Compartir con otros usuarios, otros usuarios remotos o grupos...", + "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios rempotos o por correo...", + "Share with users..." : "Compartir con otros usuarios...", + "The object type is not specified." : "El tipo del objeto no está especificado.", + "Enter new" : "Ingresar nuevo", + "Add" : "Agregar", + "Edit tags" : "Editar etiquetas", + "Error loading dialog template: {error}" : "Se presentó un error al cargar la plantilla de diálogo: {error}", + "No tags selected for deletion." : "No se seleccionaron etiquetas para borrar.", + "The update was successful. Redirecting you to Nextcloud now." : "La actualización fue exitosa. Redirigiendote ahora a tu Nextcloud. ", + "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola,\n\nsólo queremos informarte que %s ha compartido %s contigo.\n\nVelo aquí: %s\n\n", + "The share will expire on %s." : "El recurso dejará de ser compartido el %s.", + "Cheers!" : "¡Saludos!", + "The server encountered an internal error and was unable to complete your request." : "Se presentó un error interno en el servidor y no fue posible completar tu solicitud. ", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Por favor contacta al administrador del servidor si este problema se presenta en múltiples ocasiones, por favor incluye los detalles técnicos siguientes en tu reporte. ", + "Log out" : "Salir", + "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", + "Use the following link to reset your password: {link}" : "Usa la siguiente liga para restablecer tu contraseña: {link}", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola,<br><br> sólo queremos informarte que %s ha compartido <strong>%s</strong> contigo. <br><a href=\"%s\">¡Velo!</a><br><br>", + "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud se encuentra en modo de usuario único.", + "This means only administrators can use the instance." : "Esto significa que sólo los administradores pueden usar la instancia.", + "You are accessing the server from an untrusted domain." : "Estás accediendo al servidor desde un dominio no de confianza. ", + "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor contacta a tu administrador. Si eres el administrador de esta instancia, configura la opción \"trusted_domains\" en config/config.php. Un ejemplo de configuración se proporciona en config/config.sample.php. ", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ", + "Please use the command line updater because you have a big instance." : "Por favor usa el actualizador de línea de comando porque cuentas con una instancia grande. ", + "You are about to grant \"%s\" access to your %s account." : "Estás apunto de concederle a \"%s\" acceso a yu cuenta %s." +}, +"nplurals=2; plural=(n != 1);"); diff --git a/core/l10n/es_EC.json b/core/l10n/es_EC.json new file mode 100644 index 00000000000..02d82b31876 --- /dev/null +++ b/core/l10n/es_EC.json @@ -0,0 +1,355 @@ +{ "translations": { + "Please select a file." : "Por favor selecciona un archivo.", + "File is too big" : "El archivo es demasiado grande.", + "The selected file is not an image." : "El archivo seleccionado no es una imagen.", + "The selected file cannot be read." : "El archivo seleccionado no se puede leer.", + "Invalid file provided" : "Archivo proporcionado inválido", + "No image or file provided" : "No se especificó un archivo o imagen", + "Unknown filetype" : "Tipo de archivo desconocido", + "Invalid image" : "Imagen inválida", + "An error occurred. Please contact your admin." : "Se presentó un error. Por favor contacta a tu adminsitrador. ", + "No temporary profile picture available, try again" : "No hay una imagen de perfil temporal disponible, por favor inténtalo de nuevo", + "No crop data provided" : "No se han proporcionado datos del recorte", + "No valid crop data provided" : "No se han proporcionado datos válidos del recorte", + "Crop is not square" : "El recorte no es cuadrado", + "State token does not match" : "La ficha de estado no corresponde", + "Password reset is disabled" : "Restablecer contraseña se encuentra deshabilitado", + "Couldn't reset password because the token is invalid" : "No ha sido posible restablecer la contraseña porque la ficha es inválida", + "Couldn't reset password because the token is expired" : "No ha sido posible restablecer la contraseña porque la ficha ha expirado", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "No fue posible enviar el correo electrónico para restablecer porque no hay una dirección de correo electrónico para este usuario. Por favor contacta a tu adminsitrador. ", + "%s password reset" : "%s restablecer la contraseña", + "Password reset" : "Restablecer contraseña", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en el siguiente botón para restablecer tu contraseña. Si no has solicitado restablecer su contraseña, por favor ignora este correo. ", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "Haz click en la siguiente liga para restablecer su contraseña. Si no has solicitado restablecer la contraseña, por favor ignora este mensaje. ", + "Reset your password" : "Restablecer tu contraseña", + "Couldn't send reset email. Please contact your administrator." : "No fue posible enviar el correo de restauración. Por favor contacta a tu adminsitrador. ", + "Couldn't send reset email. Please make sure your username is correct." : "No fue posible restablecer el correo electrónico. Por favor asegurarte de que tu nombre de usuario sea correcto. ", + "Preparing update" : "Preparando actualización", + "[%d / %d]: %s" : "[%d / %d]: %s ", + "Repair warning: " : "Advertencia de reparación:", + "Repair error: " : "Error de reparación: ", + "Please use the command line updater because automatic updating is disabled in the config.php." : "Por favor usa el actualizador de línea de comandos ya que el actualizador automático se encuentra deshabilitado en config.php.", + "[%d / %d]: Checking table %s" : "[%d / %d]: Verificando tabla %s", + "Turned on maintenance mode" : "Modo mantenimiento activado", + "Turned off maintenance mode" : "Modo mantenimiento desactivado", + "Maintenance mode is kept active" : "El modo mantenimiento sigue activo", + "Updating database schema" : "Actualizando esquema de base de datos", + "Updated database" : "Base de datos actualizada", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "Verificando si el archivo del esquema de base de datos puede ser actualizado (esto puedo tomar mucho tiempo dependiendo del tamaño de la base de datos)", + "Checked database schema update" : "Actualización del esquema de base de datos verificada", + "Checking updates of apps" : "Verificando actualizaciones para aplicaciones", + "Checking for update of app \"%s\" in appstore" : "Verificando actualizaciones para la aplicacion \"%s\" en la appstore", + "Update app \"%s\" from appstore" : "Actualizar la aplicación \"%s\" desde la appstore", + "Checked for update of app \"%s\" in appstore" : "Se verificaron actualizaciones para la aplicación \"%s\" en la appstore", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "Verificando si el esquema de la base de datos para %s puede ser actualizado (esto puede tomar mucho tiempo dependiendo del tamaño de la base de datos)", + "Checked database schema update for apps" : "Se verificó la actualización del esquema de la base de datos para las aplicaciones", + "Updated \"%s\" to %s" : "Actualizando \"%s\" a %s", + "Set log level to debug" : "Establecer nivel de bitacora a depurar", + "Reset log level" : "Restablecer nivel de bitácora", + "Starting code integrity check" : "Comenzando verificación de integridad del código", + "Finished code integrity check" : "Terminó la verificación de integridad del código ", + "%s (3rdparty)" : "%s (de 3ros)", + "%s (incompatible)" : "%s (incompatible)", + "Following apps have been disabled: %s" : "Las siguientes aplicaciones han sido deshabilitadas: %s", + "Already up to date" : "Ya está actualizado", + "Search contacts …" : "Buscar contactos ...", + "No contacts found" : "No se encontraron contactos", + "Show all contacts …" : "Mostrar todos los contactos ...", + "There was an error loading your contacts" : "Se presentó un error al cargar tus contactos", + "Loading your contacts …" : "Cargando sus contactos ... ", + "Looking for {term} …" : "Buscando {term} ...", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">Se presentaron problemas con la verificación de integridad del código. Más información ...</a>", + "No action available" : "No hay acciones disponibles", + "Error fetching contact actions" : "Se presentó un error al traer las acciónes de contatos", + "Settings" : "Configuraciones ", + "Connection to server lost" : "Se ha perdido la conexión con el servidor", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["Se presentó un erorr al cargar la página, recargando en %n segundo","Se presentó un erorr al cargar la página, recargando en %n segundo"], + "Saving..." : "Guardando...", + "Dismiss" : "Descartar", + "This action requires you to confirm your password" : "Esta acción requiere que confirmes tu contraseña", + "Authentication required" : "Se requiere autenticación", + "Password" : "Contraseña", + "Cancel" : "Cancelar", + "Confirm" : "Confirmar", + "Failed to authenticate, try again" : "Falla en la autenticación, por favor reintentalo", + "seconds ago" : "hace segundos", + "Logging in …" : "Iniciando sesión ...", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "La liga para restablecer tu contraseña ha sido enviada a tu correo electrónico. Si no lo recibes dentro de un tiempo razonable, verifica las carpetas de spam/basura.<br>Si no la encuentras consulta a tu adminstrador local.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tus archivos están encriptados. No habrá manera de recuperar tus datos una vez que restablezca tu contraseña. <br />Si no estás seguro de qué hacer, por favor contacta a tu administrador antes de continuar. <br />¿Realmente deseas continuar?", + "I know what I'm doing" : "Sé lo que estoy haciendo", + "Password can not be changed. Please contact your administrator." : "Las contraseñas no se pueden cambiar. Por favor contacta a tu adminstrador", + "No" : "No", + "Yes" : "Sí", + "No files in here" : "No hay archivos aquí", + "Choose" : "Seleccionar", + "Copy" : "Copiar", + "Move" : "Mover", + "Error loading file picker template: {error}" : "Se presentó un error al cargar la plantilla del seleccionador de archivos: {error}", + "OK" : "OK", + "Error loading message template: {error}" : "Se presentó un error al cargar la plantilla del mensaje: {error}", + "read-only" : "sólo-lectura", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} conflicto de archivo","{count} conflictos en el archivo"], + "One file conflict" : "Un conflicto en el archivo", + "New Files" : "Archivos Nuevos", + "Already existing files" : "Archivos ya existentes", + "Which files do you want to keep?" : "¿Cuales archivos deseas mantener?", + "If you select both versions, the copied file will have a number added to its name." : "Si seleccionas ambas versiones, se le agregará un número al nombre del archivo copiado.", + "Continue" : "Continuar", + "(all selected)" : "(todos seleccionados)", + "({count} selected)" : "({count} seleccionados)", + "Error loading file exists template" : "Se presentó un error al cargar la plantilla de existe archivo ", + "Pending" : "Pendiente", + "Copy to {folder}" : "Copiar a {folder}", + "Move to {folder}" : "Mover a {folder}", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "Tu servidor web aún no se encuentra correctamente configurado para permitir la sincronización de archivos porque la interface de WebDAV parece estar rota. ", + "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Tu servidor web no está correctamente configurado para resolver \"{url}\". Puedes encontrar más información en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "Este servidor no cuenta con una conexión a Internet: No fue posible alcanzar diversos puntos de acceso <EndPoints>. Esto significa que algunas funcionalidades como el montaje de almacenamiento externo, notificaciónes de actualizaciones o la instalación de aplicaciones de terceros no funcionarán. Acceder archivos de forma remota y el envío de correos electrónicos de notificación puede que tampoco funcionen. Te sugerimos habilitar la conexión a Internet para este servidor si deseas contar con todas las características.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No ha sido configurada la memoria caché. Por favor configura un memechache si está disponible para mejorar el desempeño. Puedes encontrar información adicional en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "No fue posible leer /dev/urandom por PHP que es altamente desalentado por razones de seguridad. Puedes obtener más información en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "Estás usando PHP {version}. Te recomendamos actualizar tu versión de PHP para aprovechar <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">las actualizaciones de seguridad y desempeño suministradas por el Grupo PHP</a> tan pronto como tu distribución lo soporte. ", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "La configuración de los encabezados del proxy inverso es incorrecta, o estás accediendo a Nextcloud desde un proxy de confianza. Si no estás accediendo a Nextcloud desde un proxy de confianza, se trata de un tema de seguridad y le puede permitir a un atacante hacer su dirección IP apócrifa visible para Nextcloud. Puedes encontar más infomración en nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>.", + "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached está configurado como un caché distribuido, pero el módulo equivocado PHP \"memcache\" está instalado. \\OC\\Memcache\\Memcached sólo soporta \"memchached\" y no \"memchache\". Por favor ve el <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">wiki de ambos módulos</a>.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "Algunos archivos no pasaron la verificación de integridad. Para más información de cómo resolver este tema consulta nuestra <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentación</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">Listado de archivos inválidos …</a> / <a href=\"{rescanEndpoint}\">Volver a escanear…</a>)", + "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "El PHP OPcache no está configurado correctamente. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">Para un mejor desempeño, recomendamos </a> usar las siguientes configuraciones en php.ini:<code>", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "La fución PHP \"set_time_limit\" no está disponible. Esto podría generar scripts que se interrumpan a media ejecución, rompiendo la instalación. Te recomendamos ámpliamente habilitar esta función.", + "Error occurred while checking server setup" : "Se presentó un error al verificar la configuración del servidor", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Posiblemente tus archivos y directorio de datos sean accesibles desde Internet. El archivo .htaccess no está funcionando. Te recomendamos ámpliamente configurar tu servidor web de tal modo que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web. ", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "El encabezado HTTP \"{header}\" no está configurado como \"{expected}\". Este es un riesgo potencial de seguridad o privacidad y te recomendamos cambiar esta configuración.", + "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "El encabezado HTTP \"Strict-Transport-Security\" no está configurado a al menos \"{seconds}\" segundos. Para mejorar la seguridad, te recomendamos habilitar HSTS como se describe en nuestros <a href=\"{docUrl}\" rel=\"noreferrer\">consejos de seguridad</a>.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Estás accediendo este sitio via HTTP. Te recomendamos ámpliamente que configures tu servidor para que en su lugar, el uso de HTTPS sea requerido como está descrito en nuestros <a href=\"{docUrl}\">consejos de seguridad</a>.", + "Shared" : "Compartido", + "Error setting expiration date" : "Se presentó un error al establecer la fecha de expiración", + "The public link will expire no later than {days} days after it is created" : "La liga pública expirará a los {days} días de haber sido creada", + "Set expiration date" : "Selecciona la vigencia de tu archivo", + "Expiration" : "Expiración", + "Expiration date" : "Fecha de expiración", + "Choose a password for the public link" : "Seleccione una contraseña para la liga pública", + "Choose a password for the public link or press the \"Enter\" key" : "Elige una contraseña para la liga pública o presiona la tecla \"Intro\"", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No está soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar.", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Resharing is not allowed" : "No se permite volver a compartir", + "Share to {name}" : "Compartir con {name}", + "Share link" : "Compartir liga", + "Link" : "Liga", + "Password protect" : "Proteger con contraseña", + "Allow editing" : "Permitir editar", + "Email link to person" : "Enviar la liga por correo electrónico a una persona", + "Send" : "Enviar", + "Allow upload and editing" : "Permitir carga y edición", + "Read only" : "Sólo lectura", + "File drop (upload only)" : "Permitir carga", + "Shared with you and the group {group} by {owner}" : "Compartido contigo y el grupo {group} por {owner}", + "Shared with you by {owner}" : "Compartido contigo por {owner}", + "Choose a password for the mail share" : "Elige una contraseña para el elemento compartido por correo", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}} ha compartido mediante una liga", + "group" : "grupo", + "remote" : "remoto", + "email" : "correo electrónico", + "shared by {sharer}" : "compartido por {sharer}", + "Unshare" : "Dejar de compartir", + "Can reshare" : "Puede volver a compartir", + "Can edit" : "Puede editar", + "Can create" : "Puede crear", + "Can change" : "Puede cambiar", + "Can delete" : "Puede borrar", + "Access control" : "Control de acceso", + "Could not unshare" : "No fue posible dejar de compartir", + "Error while sharing" : "Se presentó un error al compartir", + "Share details could not be loaded for this item." : "Los detalles del recurso compartido no se pudieron cargar para este elemento. ", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["Se requiere de la menos {count} caracter para el auto completar","Se requieren de la menos {count} caracteres para el auto completar"], + "This list is maybe truncated - please refine your search term to see more results." : "Esta lista puede estar truncada - por favor refina tus términos de búsqueda para poder ver más resultados. ", + "No users or groups found for {search}" : "No se encontraron usuarios o gurpos para {search}", + "No users found for {search}" : "No se encontraron usuarios para {search}", + "An error occurred. Please try again" : "Se presentó un error. Por favor vuelve a intentarlo", + "{sharee} (group)" : "{sharee} (grupo)", + "{sharee} (remote)" : "{sharee} (remoto)", + "{sharee} (email)" : "{sharee} (correo electrónico)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "Share" : "Compartir", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "Comparte con otras personas ingresando una dirección de correo electrónico.", + "Share with other people by entering a user or group or a federated cloud ID." : "Comparte con otras personas ingresando un usuario o un grupo.", + "Share with other people by entering a user or group or an email address." : "Comparte con otras personas ingresando un usuario, un grupo o una dirección de correo electrónico.", + "Name or email address..." : "Nombre o dirección de correo electrónico", + "Name or federated cloud ID..." : "Nombre...", + "Name, federated cloud ID or email address..." : "Nombre o dirección de correo electrónico...", + "Name..." : "Nombre...", + "Error" : "Error", + "Error removing share" : "Se presentó un error al dejar de compartir", + "Non-existing tag #{tag}" : "Etiqueta #{tag} no-existente", + "restricted" : "restringido", + "invisible" : "invisible", + "({scope})" : "({scope})", + "Delete" : "Borrar", + "Rename" : "Renombrar", + "Collaborative tags" : "Etiquetas colaborativas", + "No tags found" : "No se encontraron etiquetas", + "unknown text" : "texto desconocido", + "Hello world!" : "¡Hola mundo!", + "sunny" : "soleado", + "Hello {name}, the weather is {weather}" : "Hola {name}, el clima es {weather}", + "Hello {name}" : "Hola {name}", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>Estos son los resultados de tu búsqueda <script>alert(1)</script></strong>", + "new" : "nuevo", + "_download %n file_::_download %n files_" : ["Descargar %n archivos","Descargar %n archivos"], + "The update is in progress, leaving this page might interrupt the process in some environments." : "La actualización está en curso, abandonar esta página puede interrumpir el proceso en algunos ambientes. ", + "Update to {version}" : "Actualizar a {version}", + "An error occurred." : "Se presentó un error.", + "Please reload the page." : "Por favor vuelve a cargar la página.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "La actualización no fue exitosa. Para más información <a href=\"{url}\">consulta nuestro comentario en el foro </a> que cubre este tema. ", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "La actualización no fue exitosa. Por favor reporta este tema a la <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Comunidad Nextcloud</a>.", + "Continue to Nextcloud" : "Continuar a Nextcloud", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["La actualización fue exitosa. Lo estamos redireccionando a Nextcloud en %n segundo. ","La actualización fue exitosa. Te redireccionaremos a Nextcloud en %n segundos."], + "Searching other places" : "Buscando en otras ubicaciones", + "No search results in other folders for {tag}{filter}{endtag}" : "No hay resultados para la búsqueda {tag}{filter}{endtag} en otras carpetas", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} resultado de la búsqueda en otra carpeta","{count} resultados de la búsqueda en otras carpetas"], + "Personal" : "Personal", + "Users" : "Usuarios", + "Apps" : "Aplicaciones", + "Admin" : "Administración", + "Help" : "Ayuda", + "Access forbidden" : "Acceso prohibido", + "File not found" : "Archivo no encontrado", + "The specified document has not been found on the server." : "El documento especificado no ha sido encontrado en el servidor. ", + "You can click here to return to %s." : "Puedes hacer click aquí para regresar a %s.", + "Internal Server Error" : "Error interno del servidor", + "The server was unable to complete your request." : "El servidor no pudo completar tu solicitud.", + "If this happens again, please send the technical details below to the server administrator." : "Si esto vuelve a suceder, por favor envia los detalles tecnicos siguientes al adminsitrador del sistema.", + "More details can be found in the server log." : "Puedes consultar más detalles en la bitácora del servidor. ", + "Technical details" : "Detalles técnicos", + "Remote Address: %s" : "Dirección Remota: %s", + "Request ID: %s" : "ID de solicitud: %s", + "Type: %s" : "Tipo: %s", + "Code: %s" : "Código: %s", + "Message: %s" : "Mensaje: %s", + "File: %s" : "Archivo: %s", + "Line: %s" : "Línea: %s", + "Trace" : "Rastrear", + "Security warning" : "Advertencia de seguridad", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "Tu directorio de datos y sus archivos probablemente sean accesibles desde Internet ya que el archivo .htaccess no funciona.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "Para más información de cómo configurar propiamente tu servidor, por favor ve la <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentación</a>.", + "Create an <strong>admin account</strong>" : "Crear una <strong>cuenta de administrador</strong>", + "Username" : "Usuario", + "Storage & database" : "Almacenamiento & base de datos", + "Data folder" : "Carpeta de datos", + "Configure the database" : "Configurar la base de datos", + "Only %s is available." : "Sólo %s está disponible.", + "Install and activate additional PHP modules to choose other database types." : "Instala y activa módulos adicionales de PHP para seleccionar otros tipos de bases de datos. ", + "For more details check out the documentation." : "Por favor consulta la documentación para más detalles. ", + "Database user" : "Usuario de la base de datos", + "Database password" : "Contraseña de la base de datos", + "Database name" : "Nombre de la base de datos", + "Database tablespace" : "Espacio de tablas en la base de datos", + "Database host" : "Servidor de base de datos", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "Por favor especifica el número de puerto así como el nombre del servidor (ejem., localhost:5432).", + "Performance warning" : "Advertencia de desempeño", + "SQLite will be used as database." : "SQLite será usado como la base de datos.", + "For larger installations we recommend to choose a different database backend." : "Para instalaciones más grandes te recomendamos elegir un backend de base de datos diferente.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "El uso de SQLiite es especialmente desalentado al usar el cliente de escritorio para sincrionizar. ", + "Finish setup" : "Terminar configuración", + "Finishing …" : "Terminando …", + "Need help?" : "¿Necesitas ayuda?", + "See the documentation" : "Ver la documentación", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "Esta aplicación requiere de JavaScript para su correcta operación. Por favor {linkstart}habilita JavaScript{linkend} y vuelve a cargar la página. ", + "More apps" : "Más aplicaciones", + "Search" : "Buscar", + "Reset search" : "Reestablecer búsqueda", + "Confirm your password" : "Confirma tu contraseña", + "Server side authentication failed!" : "¡Falló la autenticación del lado del servidor!", + "Please contact your administrator." : "Por favor contacta al administrador.", + "An internal error occurred." : "Se presentó un error interno.", + "Please try again or contact your administrator." : "Por favor vuelve a intentarlo o contacta a tu adminsitrador. ", + "Username or email" : "Usuario o correo electrónico", + "Wrong password. Reset it?" : "Contraseña equivocada. ¿Deseas restablecerla?", + "Wrong password." : "Contraseña inválida. ", + "Log in" : "Ingresar", + "Stay logged in" : "Mantener la sesión abierta", + "Alternative Logins" : "Accesos Alternativos", + "Account access" : "Acceo de cuenta", + "You are about to grant %s access to your %s account." : "Estas a punto de otorgar acceso de %s a tu cuenta %s.", + "Grant access" : "Conceder acceso", + "App token" : "Ficha de la aplicación", + "Alternative login using app token" : "Inicio de sesión alternativo usando la ficha de la aplicación", + "Redirecting …" : "Redireccionando ... ", + "New password" : "Nueva contraseña", + "New Password" : "Nueva Contraseña", + "Reset password" : "Restablecer contraseña", + "Two-factor authentication" : "Autenticación de dos-factores", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "La seguridad mejorada está habilitada para tu cuenta. Favor de autenticarte usando un segundo factor. ", + "Cancel log in" : "Cancelar inicio de sesión", + "Use backup code" : "Usar código de respaldo", + "Error while validating your second factor" : "Se presentó un error al validar tu segundo factor", + "Access through untrusted domain" : "Accesa a través de un dominio no de confianza", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "Por favor contacta a tu adminsitrador. Si tu eres un administrador, edita la propiedad \"trusted_domains\" en el archivo config/config.php como en el ejemplo config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "Dependiendo de tu configuración, este botón podría funcionar también para confiar en el dominio:", + "Add \"%s\" as trusted domain" : "Agregar \"%s\" como un dominio de confianza", + "App update required" : "Se requiere una actualización de la aplicación", + "%s will be updated to version %s" : "%s será actualizado a la versión %s", + "These apps will be updated:" : "Las siguientes apllicaciones se actualizarán:", + "These incompatible apps will be disabled:" : "Las siguientes aplicaciones incompatibles serán deshabilitadas:", + "The theme %s has been disabled." : "El tema %s ha sido deshabilitado. ", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "Por favor asegurarte de que la base de datos, la carpeta de configuración y las carpetas de datos hayan sido respaldadas antes de continuar. ", + "Start update" : "Iniciar actualización", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "Para evitar la expiración de tiempo en instalaciones grandes, puedes ejecutar el siguiente comando desde tu directorio de instalación:", + "Detailed logs" : "Bitácoras detalladas", + "Update needed" : "Se requiere de una actualización", + "Please use the command line updater because you have a big instance with more than 50 users." : "Favor de usar el actualizador desde la línea de comandos ya que tu instancia cuenta con más de 50 usuarios.", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "Para más ayuda, consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">doccumentación</a>.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "Estoy conciente de que si continúo haciendo la actualización vía web, la interfaz de usuario corre el riesgo de que el tiempo de la solicitud expire y cause pérdida de datos, pero cuento con un respaldo y sé como restaurar mi instancia en caso de una falla. ", + "Upgrade via web on my own risk" : "Actualizar vía Web bajo mi propio riesgo", + "This %s instance is currently in maintenance mode, which may take a while." : "Esta instancia %s se encuentra actualmente en modo mantenimiento, que podría tomar algo de tiempo. ", + "This page will refresh itself when the %s instance is available again." : "Esta página se actualizará sola cuando la instancia %s esté disponible de nuevo. ", + "Contact your system administrator if this message persists or appeared unexpectedly." : "Contacta a tu administrador del sistema si este mensaje persiste o se presentó de manera inesperada.", + "Thank you for your patience." : "Gracias por tu paciencia.", + "Problem loading page, reloading in 5 seconds" : "Se presentó un problema al cargar la página, recargando en 5 segundos", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Tus archivos están encriptados. Si no has habilitado la llave de recuperación, no habrá manera de que puedas recuperar tus datos una vez que restablezcas tu contraseña.<br />Si no estás seguro de lo que estás haciendo, por favor contacta a tu adminstrador antes de continuar. <br />¿Realmente deseas continuar?", + "Ok" : "Ok", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "Posiblemente tus directorios de datos y archivos son accesibles desde Internet. El archivo .htaccess no está funcionando. Te recomendamos ámpliamente que configures tu servidor web de tal modo que el directorio de datos no sea accesible o que muevas el directorio de datos fuera de la raíz de documentos del servidor web. ", + "Shared with {recipients}" : "Compartido con {recipients}", + "Error while unsharing" : "Se presentó un error al dejar de compartir", + "can reshare" : "puede volver a compartir", + "can edit" : "puede editar", + "can create" : "puede crear", + "can change" : "puede modificar", + "can delete" : "puede borrar", + "access control" : "control de acceso", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "Comparte con personas en otros servidores usando sus IDs username@example.com/nextcloud", + "Share with users or by mail..." : "Compartir con otros usuarios o por correo electrónico...", + "Share with users or remote users..." : "Compartir con otros usuarios o con otros usuarios remotos...", + "Share with users, remote users or by mail..." : "Compartir con otros usuarios, otros usuarios remotos o por correo electrónico...", + "Share with users or groups..." : "Compartir con otros usuarios o grupos...", + "Share with users, groups or by mail..." : "Compartir con otros usuarios, grupos o por correo electrónico...", + "Share with users, groups or remote users..." : "Compartir con otros usuarios, otros usuarios remotos o grupos...", + "Share with users, groups, remote users or by mail..." : "Compartir con usuarios, grupos, usuarios rempotos o por correo...", + "Share with users..." : "Compartir con otros usuarios...", + "The object type is not specified." : "El tipo del objeto no está especificado.", + "Enter new" : "Ingresar nuevo", + "Add" : "Agregar", + "Edit tags" : "Editar etiquetas", + "Error loading dialog template: {error}" : "Se presentó un error al cargar la plantilla de diálogo: {error}", + "No tags selected for deletion." : "No se seleccionaron etiquetas para borrar.", + "The update was successful. Redirecting you to Nextcloud now." : "La actualización fue exitosa. Redirigiendote ahora a tu Nextcloud. ", + "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "Hola,\n\nsólo queremos informarte que %s ha compartido %s contigo.\n\nVelo aquí: %s\n\n", + "The share will expire on %s." : "El recurso dejará de ser compartido el %s.", + "Cheers!" : "¡Saludos!", + "The server encountered an internal error and was unable to complete your request." : "Se presentó un error interno en el servidor y no fue posible completar tu solicitud. ", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "Por favor contacta al administrador del servidor si este problema se presenta en múltiples ocasiones, por favor incluye los detalles técnicos siguientes en tu reporte. ", + "Log out" : "Salir", + "This action requires you to confirm your password:" : "Esta acción requiere que confirmes tu contraseña:", + "Use the following link to reset your password: {link}" : "Usa la siguiente liga para restablecer tu contraseña: {link}", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "Hola,<br><br> sólo queremos informarte que %s ha compartido <strong>%s</strong> contigo. <br><a href=\"%s\">¡Velo!</a><br><br>", + "This Nextcloud instance is currently in single user mode." : "Esta instalación de Nextcloud se encuentra en modo de usuario único.", + "This means only administrators can use the instance." : "Esto significa que sólo los administradores pueden usar la instancia.", + "You are accessing the server from an untrusted domain." : "Estás accediendo al servidor desde un dominio no de confianza. ", + "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "Por favor contacta a tu administrador. Si eres el administrador de esta instancia, configura la opción \"trusted_domains\" en config/config.php. Un ejemplo de configuración se proporciona en config/config.sample.php. ", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "Dependiendo de tu configuración, como adminsitrador podrías llegar a usar el botón inferior para confiar en este dominio. ", + "Please use the command line updater because you have a big instance." : "Por favor usa el actualizador de línea de comando porque cuentas con una instancia grande. ", + "You are about to grant \"%s\" access to your %s account." : "Estás apunto de concederle a \"%s\" acceso a yu cuenta %s." +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/core/l10n/fr.js b/core/l10n/fr.js index d7201277c25..29b08f5a4c5 100644 --- a/core/l10n/fr.js +++ b/core/l10n/fr.js @@ -74,7 +74,7 @@ OC.L10N.register( "Cancel" : "Annuler", "Confirm" : "Confirmer", "Failed to authenticate, try again" : "Échec d'authentification, essayez à nouveau", - "seconds ago" : "à l'instant", + "seconds ago" : "À l'instant", "Logging in …" : "Connexion…", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Un lien permettant de réinitialiser votre mot de passe vient de vous être envoyé par courriel.<br>Si vous ne le recevez pas dans un délai raisonnable, contactez votre administrateur.<br>N'oubliez pas de vérifier dans votre dossier pourriel / spam!", "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vos fichiers sont chiffrés. Il n'y aura aucun moyen de récupérer vos données une fois le mot de passe réinitialisé.<br />Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer. <br />Voulez-vous vraiment continuer ?", @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée à au moins \"{seconds}\" secondes. Pour renforcer la sécurité nous recommandons d'activer HSTS comme décrit dans nos <a href=\"{docUrl}\" rel=\"noreferrer\">conseils de sécurisation</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos <a href=\"{docUrl}\">conseils de sécurisation</a>.", "Shared" : "Partagé", + "Shared with" : "Partagé avec", + "Shared by" : "Partagé par", "Error setting expiration date" : "Erreur lors de la configuration de la date d'expiration", "The public link will expire no later than {days} days after it is created" : "Ce lien public expirera dans {days} jours après sa création.", "Set expiration date" : "Spécifier une date d'expiration", diff --git a/core/l10n/fr.json b/core/l10n/fr.json index b4da3c2da5b..afb07298f79 100644 --- a/core/l10n/fr.json +++ b/core/l10n/fr.json @@ -72,7 +72,7 @@ "Cancel" : "Annuler", "Confirm" : "Confirmer", "Failed to authenticate, try again" : "Échec d'authentification, essayez à nouveau", - "seconds ago" : "à l'instant", + "seconds ago" : "À l'instant", "Logging in …" : "Connexion…", "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "Un lien permettant de réinitialiser votre mot de passe vient de vous être envoyé par courriel.<br>Si vous ne le recevez pas dans un délai raisonnable, contactez votre administrateur.<br>N'oubliez pas de vérifier dans votre dossier pourriel / spam!", "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "Vos fichiers sont chiffrés. Il n'y aura aucun moyen de récupérer vos données une fois le mot de passe réinitialisé.<br />Si vous n'êtes pas sûr de ce que vous faites, veuillez contacter votre administrateur avant de continuer. <br />Voulez-vous vraiment continuer ?", @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "L'en-tête HTTP \"Strict-Transport-Security\" n'est pas configurée à au moins \"{seconds}\" secondes. Pour renforcer la sécurité nous recommandons d'activer HSTS comme décrit dans nos <a href=\"{docUrl}\" rel=\"noreferrer\">conseils de sécurisation</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Vous accédez à ce site via HTTP. Nous vous recommandons fortement de configurer votre serveur pour forcer l'utilisation de HTTPS, comme expliqué dans nos <a href=\"{docUrl}\">conseils de sécurisation</a>.", "Shared" : "Partagé", + "Shared with" : "Partagé avec", + "Shared by" : "Partagé par", "Error setting expiration date" : "Erreur lors de la configuration de la date d'expiration", "The public link will expire no later than {days} days after it is created" : "Ce lien public expirera dans {days} jours après sa création.", "Set expiration date" : "Spécifier une date d'expiration", diff --git a/core/l10n/is.js b/core/l10n/is.js index 61ca6b02bd4..3669032c78f 100644 --- a/core/l10n/is.js +++ b/core/l10n/is.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP-hausinn er ekki stilltur á að minnsa kosti \"{seconds}\" sekúndur. Fyrir aukið öryggi mælum við með því að virkja HSTS eins og lýst er í <a href=\"{docUrl}\" rel=\"noreferrer\">öryggisleiðbeiningum</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : " Þú ert að tengjast þessu vefsvæði með HTTP. Við mælum eindregið með að þú stillir þjóninn á að krefjast HTTPS í staðinn eins og lýst er í <a href=\"{docUrl}\">öryggisleiðbeiningunum</a> okkar.", "Shared" : "Deilt", + "Shared with" : "Deilt með", + "Shared by" : "Deilt af", "Error setting expiration date" : "Villa við að setja gildistíma", "The public link will expire no later than {days} days after it is created" : "Almenningstengillinn rennur út eigi síðar en {days} dögum eftir að hann er útbúinn", "Set expiration date" : "Setja gildistíma", @@ -275,6 +277,7 @@ OC.L10N.register( "Alternative Logins" : "Aðrar innskráningar", "Account access" : "Aðgangur að notandaaðgangi", "You are about to grant %s access to your %s account." : "Þú ert að fara að leyfa %s aðgang að %s notandaaðgangnum þínum.", + "Grant access" : "Veita aðgengi", "App token" : "Teikn forrits", "Alternative login using app token" : "Önnur innskráning með forritsteikni", "Redirecting …" : "Endurbeini ...", diff --git a/core/l10n/is.json b/core/l10n/is.json index 7ef385728ad..1c560332b8f 100644 --- a/core/l10n/is.json +++ b/core/l10n/is.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP-hausinn er ekki stilltur á að minnsa kosti \"{seconds}\" sekúndur. Fyrir aukið öryggi mælum við með því að virkja HSTS eins og lýst er í <a href=\"{docUrl}\" rel=\"noreferrer\">öryggisleiðbeiningum</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : " Þú ert að tengjast þessu vefsvæði með HTTP. Við mælum eindregið með að þú stillir þjóninn á að krefjast HTTPS í staðinn eins og lýst er í <a href=\"{docUrl}\">öryggisleiðbeiningunum</a> okkar.", "Shared" : "Deilt", + "Shared with" : "Deilt með", + "Shared by" : "Deilt af", "Error setting expiration date" : "Villa við að setja gildistíma", "The public link will expire no later than {days} days after it is created" : "Almenningstengillinn rennur út eigi síðar en {days} dögum eftir að hann er útbúinn", "Set expiration date" : "Setja gildistíma", @@ -273,6 +275,7 @@ "Alternative Logins" : "Aðrar innskráningar", "Account access" : "Aðgangur að notandaaðgangi", "You are about to grant %s access to your %s account." : "Þú ert að fara að leyfa %s aðgang að %s notandaaðgangnum þínum.", + "Grant access" : "Veita aðgengi", "App token" : "Teikn forrits", "Alternative login using app token" : "Önnur innskráning með forritsteikni", "Redirecting …" : "Endurbeini ...", diff --git a/core/l10n/it.js b/core/l10n/it.js index 638c0415369..e269447c17c 100644 --- a/core/l10n/it.js +++ b/core/l10n/it.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "L'intestazione HTTP \"Strict-Transport-Security\" non è configurata con un valore di almeno \"{seconds}\" secondi. Per migliorare la sicurezza, consigliamo di abilitare HSTS come descritto nei nostri <a href=\"{docUrl}\" rel=\"noreferrer\">consigli sulla sicurezza</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Sei connesso a questo sito tramite HTTP. Ti suggeriamo vivamente di configurare il tuo server per richiedere invece l'utilizzo del protocollo HTTPS, come descritto nei nostri <a href=\"{docUrl}\">consigli sulla sicurezza</a>.", "Shared" : "Condiviso", + "Shared with" : "Condiviso con", + "Shared by" : "Condiviso da", "Error setting expiration date" : "Errore durante l'impostazione della data di scadenza", "The public link will expire no later than {days} days after it is created" : "Il collegamento pubblico scadrà non più tardi di {days} giorni dopo la sua creazione", "Set expiration date" : "Imposta data di scadenza", diff --git a/core/l10n/it.json b/core/l10n/it.json index d9e13359da0..e768770df5a 100644 --- a/core/l10n/it.json +++ b/core/l10n/it.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "L'intestazione HTTP \"Strict-Transport-Security\" non è configurata con un valore di almeno \"{seconds}\" secondi. Per migliorare la sicurezza, consigliamo di abilitare HSTS come descritto nei nostri <a href=\"{docUrl}\" rel=\"noreferrer\">consigli sulla sicurezza</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Sei connesso a questo sito tramite HTTP. Ti suggeriamo vivamente di configurare il tuo server per richiedere invece l'utilizzo del protocollo HTTPS, come descritto nei nostri <a href=\"{docUrl}\">consigli sulla sicurezza</a>.", "Shared" : "Condiviso", + "Shared with" : "Condiviso con", + "Shared by" : "Condiviso da", "Error setting expiration date" : "Errore durante l'impostazione della data di scadenza", "The public link will expire no later than {days} days after it is created" : "Il collegamento pubblico scadrà non più tardi di {days} giorni dopo la sua creazione", "Set expiration date" : "Imposta data di scadenza", diff --git a/core/l10n/ka_GE.js b/core/l10n/ka_GE.js new file mode 100644 index 00000000000..41df3ddfdc2 --- /dev/null +++ b/core/l10n/ka_GE.js @@ -0,0 +1,359 @@ +OC.L10N.register( + "core", + { + "Please select a file." : "გთხოვთ აირჩიოთ ფაილი.", + "File is too big" : "ფაილი ზედმეტად დიდია", + "The selected file is not an image." : "არცეული ფაილი არაა სურათი.", + "The selected file cannot be read." : "არჩეული ფაილი არ იკითხება.", + "Invalid file provided" : "არასწორი ფაილი", + "No image or file provided" : "არ არის სურათი ან ფაილი", + "Unknown filetype" : "ამოუცნობი ფაილის ტიპი", + "Invalid image" : "არასწორი სურათი", + "An error occurred. Please contact your admin." : "წარმოიშვა შეცდომა. გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", + "No temporary profile picture available, try again" : "დროებითი პროფილის სურათი არაა ხელმისაწვდომი, სცადეთ ახლიდან", + "No crop data provided" : "ამოჭრის მონაცემები არაა უზრუნველყოფილი", + "No valid crop data provided" : "სწორი ამოჭრის მონაცემები არაა უზრუნველყოფილი", + "Crop is not square" : "ამონაჭერი არაა კვადრატი", + "State token does not match" : "მდგომარეობის ტოკენი არ ემთხვევა", + "Password reset is disabled" : "პაროლის განახლება გამორთულია", + "Couldn't reset password because the token is invalid" : "არასწორი ტოკენის გამო პაროლის აღდგენა ვერ მოხერხდა", + "Couldn't reset password because the token is expired" : "ვადა-გასული ტოკენის გამო პაროლის აღდგენა ვერ მოხერხდა", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "ამ მომხმარებლისთვის ელ-ფოსტის მისამართი არაა დაყენებული, შესაბამისად აღდგენის ელ-წერილი ვერ გაიგზავნა. გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", + "%s password reset" : "%s პაროლის აღდგენა", + "Password reset" : "პაროლის აღდგენა", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "პაროლის აღსადგენად დააჭირეთ შემდეგ ღილაკს. იმ შემთხვავაში თუ არ მოგითხოვიათ პაროლის აღდგენა, არ მიაქციოთ ყურადღება ამ წერილს.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "პაროლის აღსადგენად დააჭირეთ შემდეგ ღილაკს. იმ შემთხვავაში თუ არ მოგითხოვიათ პაროლის აღდგენა, არ მიაქციოთ ყურადღება ამ წერილს.", + "Reset your password" : "აღადგნიეთ თქვენი პაროლი", + "Couldn't send reset email. Please contact your administrator." : "აღდგენის ელ-წერილი ვერ გაიგზავნა. გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", + "Couldn't send reset email. Please make sure your username is correct." : "აღდგენის ელ-წერილი ვერ გაიგზავნა. დარწმუნდით, რომ მომხმარებლის სახელი სწორია.", + "Preparing update" : "განახლების მომზადება", + "[%d / %d]: %s" : "[%d / %d]: %s", + "Repair warning: " : "გაფრთხილება შეკეთების შესახებ:", + "Repair error: " : "შეცდომა შეკეთების შესახებ:", + "Please use the command line updater because automatic updating is disabled in the config.php." : "ავტომატური განახლება config.php-ში გათიშულია, გთხოვთ ისარგებლოთ command-line განახლებით.", + "[%d / %d]: Checking table %s" : "[%d / %d]: მოწმდება ცხრილი %s", + "Turned on maintenance mode" : "სარემონტო რეჟიმი ჩაირთო", + "Turned off maintenance mode" : "სარემონტო რეჟიმი გაითისა", + "Maintenance mode is kept active" : "სარემონტო რეჟიმი დარჩა აქტიური", + "Updating database schema" : "მონაცემთა ბაზის სქემის განახლება", + "Updated database" : "მონაცემთა ბაზის განახლება", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "მოწმდება შესაძლებელია თუ არა მონაცემთა ბაზის სქემის განახლება (მონაცემთა ბაზის ზომასთან დამოკიდებულებით, ამ პროცესმა შეიძლება გასტანოს გარკვეული პერიოდი)m", + "Checked database schema update" : "შემოწმდა მონაცემთა ბაზის სქემის განახლება", + "Checking updates of apps" : "მოწმდება აპლიკაციის განახლებები", + "Checking for update of app \"%s\" in appstore" : "Appstore-ში მოწდება აპლიკაციის \"%s\" განახლება", + "Update app \"%s\" from appstore" : "Appstore-იდან ნახლდება აპლიკაცია \"%s\"", + "Checked for update of app \"%s\" in appstore" : "Appstore-ში დამოწმდა აპლიკაციის \"%s\" განახლება", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "მოწმდება შესაძლებელია თუ არა %s-ისთვის მონაცემთა ბაზის სქემის განახლება (მონაცემთა ბაზის ზომასთან დამოკიდებულებით, ამ პროცესმა შეიძლება გასტანოს გარკვეული პერიოდი)", + "Checked database schema update for apps" : "დამოწმდა აპლიკაციებისთვის მონაცემთა ბაზის სქემის განახლება", + "Updated \"%s\" to %s" : "\"%s\" განახლდა %s-ზე", + "Set log level to debug" : "ლოგ დონის დაყენება დებაგზე", + "Reset log level" : "ლოგის დონის დაყენება საწყის პარამეტრზე", + "Starting code integrity check" : "კოდის ერთიანობის შემოწმების დაწყება", + "Finished code integrity check" : "დასრულდა კოდის ერთიანობის შემოწმება", + "%s (3rdparty)" : "%s (მესამე მხარე)", + "%s (incompatible)" : "%s (არაა თავსებადი)", + "Following apps have been disabled: %s" : "შემდეგი აპლიკაციები გაითიშა: %s", + "Already up to date" : "უკვე განახლებულია", + "Search contacts …" : "მოძებნეთ კონტაქტები ...", + "No contacts found" : "კომენტარები ვერ იქნა ნაპოვნი.", + "Show all contacts …" : "ყველა კონტაქტის ჩვენება ...", + "There was an error loading your contacts" : "კონტაქტების ჩატვირთვისას წარმოიშვა შეცდომა", + "Loading your contacts …" : "იტვირთება კონტაქტები ...", + "Looking for {term} …" : "ვეძებთ {term}-ს …", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">კოდის მთლიანობის შემოწმებასთან წარმოიქმა შეცდომები. მეტი ინფორმაცია…</a>", + "No action available" : "ქმედაბა არაა ხელმისაწვდომი", + "Error fetching contact actions" : "კონტაქტის ქმედებების მოხვეწისას წარმოიქმნა შეცდომა", + "Settings" : "პარამეტრები", + "Connection to server lost" : "სერვერთან კავშირი დაიკარგა", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში"], + "Saving..." : "შენახვა...", + "Dismiss" : "დათხოვნა", + "This action requires you to confirm your password" : "ეს ქმედება საჭიროებს პაროლის დადასტურებას", + "Authentication required" : "საჭიროა აუტენტიფიკაცია", + "Password" : "პაროლი", + "Cancel" : "უარყოფა", + "Confirm" : "დადასტურება", + "Failed to authenticate, try again" : "აუტენტიფიკაცია ვერ შესრლდა, სცადეთ ახლიდან", + "seconds ago" : "წამის წინ", + "Logging in …" : "შესვლა ...", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "ბმული პაროლის აღდგენით ბმული თქვენს ელ-ფოსტაზე გაგზავნილია. თუ გავიდა გარკვეული დრო და მაინც არ მოგსვლიათ, შეამოწმეთ სპამის დირექტორიაც.<br>თუ მაინც ვერ მიაგენით მიმართეთ ლოკალურ ადმინისტრატორს.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ფაილები კოდირებულია. პაროლის აღდგენის შემდეგ ვერანაირად ვერ დაიბრუნებთ მონაცემებს.<br />თუ ხართ დარწმუნებული რა გააკეთოთ, გაგრძელებამდე მიმართეთ თქვენს ადმინისტრატორს.<br />დარწმუნებული ხართ რომ გსურთ გაგრძელება?", + "I know what I'm doing" : "ვიცი რასაც ვაკეთებ", + "Password can not be changed. Please contact your administrator." : "პაროლი ვერ იცვლება. დაუკავშირდით თქვენს ადმინისტრატორს.", + "No" : "არა", + "Yes" : "კი", + "No files in here" : "აქ ფაილები არაა", + "Choose" : "არჩევა", + "Copy" : "კოპირება", + "Move" : "გადატანა", + "Error loading file picker template: {error}" : "შეცდომა ფაილის შაბლონის ჩატვირთვისას: {error}", + "OK" : "კარგი", + "Error loading message template: {error}" : "შეცდომა წერილის შაბლონის ჩატვირთვისას: {error}", + "read-only" : "მხოლოდ-კითხვადი", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} ფაილის კონფლიქი"], + "One file conflict" : "კონფლიქტი ერთ ფაილთან", + "New Files" : "ახალი ფაილები", + "Already existing files" : "უკვე არსებული ფაილები", + "Which files do you want to keep?" : "რომელი ფაილების დატოვება გსურთ?", + "If you select both versions, the copied file will have a number added to its name." : "თუ აირჩევთ ორივე ვერსიას, კოპირებულ ფაილს სახელის წინ დაერთვება ციფრი.", + "Continue" : "გაგრძელება", + "(all selected)" : "(ყველა არჩეული)", + "({count} selected)" : "({count} არჩეული)", + "Error loading file exists template" : "ფაილის ჩატვირთვისას წარმოიშვა შეცდომა", + "Pending" : "მოლოდინში", + "Copy to {folder}" : "კოპრება {folder}-ში", + "Move to {folder}" : "გადატანა {folder}-ში", + "Very weak password" : "ძალიან სუსტი პაროლი", + "Weak password" : "სუსტი პაროლი", + "So-so password" : "არცთუ ისეთი ძლიერი პაროლი", + "Good password" : "კარგი პაროლი", + "Strong password" : "ძლიერი პაროლი", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "ფაილის სინქრონიზაციის დასაშვებათ თქვენი ვებ-სერვერი ჯერ არაა სწორად კოფინგირურებული, როგორც ჩანს WebDAV ინტერფეისი გაფუჭებულია.", + "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "\"{url}\"-ის გასახსნელად თქვენი ვებ-სერვერი არაა სწორად კონფიგურირებული. შეგიძლიათ იხილოთ მეტი ინფორმაცია ჩვენს <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">დოკუმენტაციაში</a>.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "ამ სერვერს არ გააჩნია მოქმედი ინტერნეტ კავშირი: მიუწვდომელია მრავალი წერტილი. ეს ნიშნავს, რომ ფუნქციები როგორებიცაა ექსტერნალური საცავის დაყენება, შეტყობინებები განახლებებზე ან მესამე მხარის აპლიკაციების ინსტალაცია არ იმუშავებს. შესაძლოა ფაილებთან დისტანციური წვდომა და საფოსტო შეტყობინებების გაგზავნაც არ მუშაობდეს. ყველა ფიუნქციის მუშაობისთვის, გირჩევდით ამ სერვერზე ჩართოთ ინტერნეტ კავშირი.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "მეხსიერების კეში არაა კონფიგურირებული. მოქმედების მახასიათებლების გაუმჯობესებისთვის გთოხვთ გაუწიოთ კონფიგურაცია memcache-ს. შეგიძლიათ იხილოთ მეტი ინფორმაცია ჩვენს <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">დოკუმენტაციაში</a>.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "/dev/urandom PHP-ს მიერ ვერ იკითხება, რაც უსაფრთოხების მიზნებიდან გამომდინარე უკიდურესად არა-რეკომენდირებულია. შეგიძლიათ მეტი ინფორმაცია მიიღოთ ჩვენი <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">დოკუემენტაციით</a>.", + "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "ამჟამად თქვენთან მოქმედია PHP {version}. ჩვენ მოგიწოდებთ რაც შეიძლება მალე განაახლოთ თქვენი PHP ვერსია, რათა ისარგებლოთ <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">PHP Group-ის მიერ უზრუნველყოფილი გაუმჯობესებული ქმედებითა და უსაფრთხოებებისის განახლებებით</a>.", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Nextcloud-ს უკავშირდებით სანდრო პქოქსით ან საწინააღმეგო პროქსის დასათაურებებების კონფიგურაცია არასწორია. იმ შემთხვევაში თუ არ უკავშირდებით Nextcloud-ს სანდო პროქსით, ეს უსაფრთხოების პრობლემაა და თავდამსხმელმა შეიძლება მოიტყუოს IP მისამართით. იხილეთ მეტი ინფორმაცია ჩვენს <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">დოკუმენტაციაში</a>.", + "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached კონფიგურირებულია როგორც განაწილებული ქეში, თუმცა დაყენებულია არასწორი PHP მოდული \"memcache\" . \\OC\\Memcache\\Memcached მხარს უჭერს მხოლოდ \"memcached\"-ს და არა \"memcache\"-s. მეტი ინფორმაციისთვის იხილეთ <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached ვიკი ორივე მოდულზე</a>.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "გარკვეულმა ფაილება ვერ გაიარეს ერთიანობის შემოწმება. ინფორმაცია თუ როგორც აღმოფხრათ ეს პრობლემა შეგიძლიათ მოიძიოთ ჩვენს <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">დოკუმენტაციაში</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">არასწორი ფაილების სია...</a> / <a href=\"{rescanEndpoint}\">ხელახალი სკანირება...</a>)", + "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "PHP OPcache არაა სწორად კონფიგურირებული. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">უკეთესი მოქმედებისთვის ჩვენ რეკომენდაციას გიწევთ</a> <code>php.ini</code>-ში გამოიყენოთ შემდეგი პარამეტრები:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "PHP-ს ფუნქცია \"set_time_limit\" არაა ხელმისაწვდომი. ამან შეიძლება ქმედებისას გამოიწვიოს სკრიპტების შეჩერება, ინსტალაციის შეწყვეტა. გირჩევთ ჩართოთ ეს ფუნქცია.", + "Error occurred while checking server setup" : "შეცდომა სერვერის მოწყობის შემოწმებისას", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "თქვენი data დირექტორია და ფაილები ალბათ წვდომადია ინტერნეტიდან. .htaccess ფაილი არ მუშაობს. მკაცრად რეკომენდირებულია ისე გაუწიოთ თქვენს ვებ-სერვერს კონფიგურაცია, რომ data დირექტორია აღარ იყოს წვდომადი, ან გაიტანოთ ის ვებ-სერვერის root დირექტორიიდან.", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP დასათაურება \"{header}\" არაა კონფიგურირებული რომ უტოლდებოდეს \"{expected\"}-ს. ეს პოტენციური უსაფრთხოების და კონფიდენციალურობის რისკია, გირჩევთ ამ პარამეტრის გამოსწორებას.", + "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP დასათაურება არაა კონფიგურირებული \"{seconds}\" წამამდე მაინც. გაუმჯობესებული თავდაცვის მიზნებისთვის რეკომენდაციას გიწევთ ჩართოთ HSTS როგორც აღწერილია ჩვენს <a href=\"{docUrl}\" rel=\"noreferrer\">თავდაცვის რეკომენდაციებში</a>.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "ამ საიტს უკავშირდებით HTTP-თი. მტკიცედ გირჩევთ გაუწიოთ სერვერს კონფიგურაცია, ისე რომ გამოიყენოთ HTTPS, როგორც აღწერილია ჩვენს <a href=\"{docUrl}\">თავდაცვის რეკომენდაციებში</a>.", + "Shared" : "გაზიარებული", + "Shared with" : "გაზიარებულია", + "Shared by" : "გამზიარებელი", + "Error setting expiration date" : "ვადის გასვლის მითითებისას წარმოიშვა შეცდომა", + "The public link will expire no later than {days} days after it is created" : "საზოგადო ბმული გაუქმედება შექმნის მომენტიდან {days} დღის შემდეგ", + "Set expiration date" : "მიუთითეთ ვადის გასვლის დრო", + "Expiration" : "ვადის გასვლა", + "Expiration date" : "ვადის გასვლის დრო", + "Choose a password for the public link" : "აირჩიეთ პაროლი საზოგადო ბმულისთვის", + "Choose a password for the public link or press the \"Enter\" key" : "აირჩიეთ პაროლი საზოგადო ბმულისთვის ან დააჭირეთ \"Enter\"-ს", + "Copied!" : "კოპირებულია!", + "Not supported!" : "არაა მხარდაჭერილი!", + "Press ⌘-C to copy." : "ასლის შესაქმნელად დააჭირეთ ⌘-C-ს", + "Press Ctrl-C to copy." : "ასლის შესაქმნელად დააჭირეთ Ctrl-C-ს", + "Resharing is not allowed" : "ხელახალი გაზიარება არაა დაშვებული", + "Share to {name}" : "გაუზიარეთ {name}-ს", + "Share link" : "გააზიარეთ ბმული", + "Link" : "ბმული", + "Password protect" : "პაროლით დაცვა", + "Allow editing" : "ცვლილების უფლების მინიჭება", + "Email link to person" : "ბმულის პიროვნების ელ-მისამართზე გაგზავნა", + "Send" : "გაგზავნა", + "Allow upload and editing" : "ატვირთვისა და ცვლილების უფლებების მინიჭება", + "Read only" : "მხოლოდ-კითხვადი", + "File drop (upload only)" : "ფაილის ჩაგდება (მხოლოდ ატვირთვა)", + "Shared with you and the group {group} by {owner}" : "{owner}-ის მიერ გაზიარდა თქვენთვის და ჯგუფისთვის {group}", + "Shared with you by {owner}" : "{owner}-ის მიერ გაზიარდა თქვენთვის", + "Choose a password for the mail share" : "აირჩიეთ პაროლი ელ-ფოსტით გაზიარებისთვის", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}}-მა გააზიარა ბმულით", + "group" : "ჯგუფი", + "remote" : "დისტანციური", + "email" : "ელ-ფოსტა", + "shared by {sharer}" : "გააზიარა {sharer}-ma", + "Unshare" : "გაზიარების მოშორება", + "Can reshare" : "შეუძლია ხელახალი გაზიარება", + "Can edit" : "Can edit", + "Can create" : "შეუძლია შექმნა", + "Can change" : "შეუძლია ცვლილება", + "Can delete" : "შეუძლია გაუქმება", + "Access control" : "დაშვების კონტროლი", + "Could not unshare" : "არ შეუძლია ხელახალი გაზაიარება", + "Error while sharing" : "შეცდომა გაზიარების დროს", + "Share details could not be loaded for this item." : "ამ ობიექტისთვის გაზიარების დეტალები ვერ ჩაიტვირთა.", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["ავტო-დასრულებისთვის საჭიროა მინიმუმ {count} სიბმოლო"], + "This list is maybe truncated - please refine your search term to see more results." : "ეს სია შეიძლება იყოს წაკვეთილი - მეტი შედეგისთვის, გთხოვთ გაწმინდოთ თქვენი საძიებო სიტყვა.", + "No users or groups found for {search}" : "მომხმარებლები და ჯგუფები {search}-ისთვის არ იქნა ნაპოვნი", + "No users found for {search}" : "მომხმარებლები {search}-ისთვის არ იქნა ნაპოვნი", + "An error occurred. Please try again" : "წარმოიშვა შეცდომა. გთხოვთ სცადოთ ახლიდან.", + "{sharee} (group)" : "{sharee} (ჯგუფი)", + "{sharee} (remote)" : "{sharee} (დისტანციური)", + "{sharee} (email)" : "{sharee} (ელ-ფოსტა)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "Share" : "გაზიარება", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "გაუზიარეთ სხვა ადამიანებს მოხმარებლის, ჯგუფის, ფედერალიზირებული ქლაუდ ID-ის ან ელ-ფოსტის მისამართის შეყვანით.", + "Share with other people by entering a user or group or a federated cloud ID." : "გაუზიარეთ სხვა ადამიანებს, მომხმარებლის, ჯგუფის ან ფერალიზირებული ქლაუდ ID-ის შეყვანით.", + "Share with other people by entering a user or group or an email address." : "გაუზიარეთ სხვა ადამიანებს მომხმარებლის, ჯგუფის ან ელ-ფოსტის მისამართის შეყვანით.", + "Name or email address..." : "სახელი ან ელ-ფოსტის მისამართი...", + "Name or federated cloud ID..." : "სახელი ან ფედერალიზირებული ქლაუდ ID", + "Name, federated cloud ID or email address..." : "სახელი, ფედერალიზირებული ქლაუდ ID ან ელ-ფოსტის მისამართი", + "Name..." : "სახელი...", + "Error" : "შეცდომა", + "Error removing share" : "გაზიარების მოშორებისას წარმოიშვა შეცდომა", + "Non-existing tag #{tag}" : "ტეგი #{tag} არ არსებობს", + "restricted" : "აკრძალული", + "invisible" : "უჩინარი", + "({scope})" : "({scope})", + "Delete" : "წაშლა", + "Rename" : "სახელის შეცვლა", + "Collaborative tags" : "ერთობლივი ტეგები", + "No tags found" : "ტეგები ვერ იქნა ნაპოვნი", + "unknown text" : "ამოუცნობი ტეგი", + "Hello world!" : "გამარჯობა სამყარო!", + "sunny" : "მზიანი", + "Hello {name}, the weather is {weather}" : "გამარჯობა {name}, ამინდია {weather}", + "Hello {name}" : "გამარჯობა {name}", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>ეს ძიების შედეგებია<script>alert(1)</script></strong>", + "new" : "ახალი", + "_download %n file_::_download %n files_" : ["გადმოწერეთ %n ფაილი"], + "The update is in progress, leaving this page might interrupt the process in some environments." : "განახლება პროცესშია, გარკვეულ გარემოებებში ამ გვერდის დატოვებამ შეიძლება შეწყვიტოს პროცესი.", + "Update to {version}" : "განაახლეთ ვერსიაზე {version}", + "An error occurred." : "წარმოიშვა შეცდომა.", + "Please reload the page." : "გთხოვთ გადატვირთოთ გვერდი.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "განახლებისას წარმოიშვა შეცდომა. მეტი ინფორმაციისთვის იხილეთ <a href=\"{url}\">ჩვენი ფორუმის პოსტი</a>, სადაც საუბარია ამ პრობლემაზე.", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "განახლებისას წარმოიშვა შეცდომა. გთხოვთ განაცხადოთ ამ პრობლემის შესახებ <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud საზოგადოებაში</a>.", + "Continue to Nextcloud" : "გაგრძლება Nextcloud-ისკენ", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["განახლება წარმატებით დასრულდა. Nextcloud-ისკენ გადაგამისამართებთ %n წამში."], + "Searching other places" : "ვეძებთ დანარჩენ ადგილებში", + "No search results in other folders for {tag}{filter}{endtag}" : "ძიების შედეგები სხვა დირექტორიებში {tag}{filter}{endtag}-სთვის არაა", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} ძიების შედეგები სხვა დირექტორიებში"], + "Personal" : "პირადი", + "Users" : "მომხმარებელი", + "Apps" : "აპლიკაციები", + "Admin" : "ადმინისტრატორი", + "Help" : "დახმარება", + "Access forbidden" : "წვდომა აკრძალულია", + "File not found" : "ფაილი ვერ იქნა ნაპოვნი", + "The specified document has not been found on the server." : "მითითებული დოკუმენტი სერვერზე ვერ იქნა ნაპოვნი.", + "You can click here to return to %s." : "%s-ზე დასაბრუნებლად შეგიძლიათ დააწკაპუნოთ აქ.", + "Internal Server Error" : "შიდა სერვერის შეცდომა", + "The server was unable to complete your request." : "სერვერმა ვერ დაასრულა თქვენი მოთოვნა.", + "If this happens again, please send the technical details below to the server administrator." : "თუ ეს განმეორდება, გთხოვთ გაუგზავნოთ ქვემოთ აღწერილი ტექნიკური დეტალები თქვენი სერვერის ადმინისრატორს.", + "More details can be found in the server log." : "მეტი დეტალები შეგიძლიათ იხილოთ სერვერის ლოგში.", + "Technical details" : "ტექნიკური დეტალები", + "Remote Address: %s" : "დისტანციური მისამართი: %s", + "Request ID: %s" : "მოთხოვნის ID: %s", + "Type: %s" : "ტიპი: %s", + "Code: %s" : "კოდი: %s", + "Message: %s" : "წერილი: %s", + "File: %s" : "ფაილი: %s", + "Line: %s" : "ხაზი: %s", + "Trace" : "კვალი", + "Security warning" : "გაფრთხილება უსაფრთხოების შესახებ", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "თქვენი ფაილები და მონაცემების დირექტორია ინტერნეტით წვდომადია, რადგან .htaccess ფაილი არ მუშაობს.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "ინფორმაციისთვის თუ როგორ გაუწიოთ სერვერს სწორი კონფიგურაცია იხილეთ <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">დოკუემტაცია</a>.", + "Create an <strong>admin account</strong>" : "შექმენით <strong>ადმინისტრატორის ანგარიში</strong>", + "Username" : "მომხმარებლის სახელი", + "Storage & database" : "საცავი და მონაცემთა ბაზა", + "Data folder" : "მონაცემთა დირექტორია", + "Configure the database" : "მონაცემთა ბაზის კონფიგურაცია", + "Only %s is available." : "მხოლოდ %s-ია ხელმისაწვდომი.", + "Install and activate additional PHP modules to choose other database types." : "სხვა მონაცემთა ბაზის სახეობებისთვის დააყენეთ და გაააქტიურეთ დამატებითი PHP მოდულები.", + "For more details check out the documentation." : "მეტი დეტალებისთვის იხილეთ დოკუმენტაცია.", + "Database user" : "მონაცემთა ბაზის მომხმარებელი", + "Database password" : "მონაცემთა ბაზის პაროლი", + "Database name" : "მონაცემთა ბაზის სახელი", + "Database tablespace" : "ბაზის ცხრილის ზომა", + "Database host" : "მონაცემთა ბაზის ჰოსტი", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "ჰოსტის სახელთან ერთად გთხოვთ მიუთითოთ პორტის ნომერიც (მაგ.: localhost:5432).", + "Performance warning" : "გაფრთხილება მოქმედების შესახებ", + "SQLite will be used as database." : "მონაცემთა ბაზად მოხმარებულ იქნება SQLite.", + "For larger installations we recommend to choose a different database backend." : "უფრო დიდი ინსტალაციებისთვის რეკომენდაციას გიწევთ აირჩიოთ სხვა მონაცემთა ბაზა.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "SQLite-ის გამოყენება არაა რეკომედირებული განსაკუთრებით მაშინ, როდესაც ფაილების სინქრონიზაციისთვის იყენებთ დესკტოპ-კლიენტს.", + "Finish setup" : "კონფიგურაციის დასრულება", + "Finishing …" : "სრულდება ...", + "Need help?" : "გესაჭიროებათ დახმარება?", + "See the documentation" : "იხილეთ დოკუმენტაცია", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "ეს აპლიკაცია სწორი ოპერაციისთვის საჭიროებს JavaScript-ს. გთხოვთ {linkstart}ჩართოთ JavaScript-ი{linkend} და გადატვირთოთ გვერდი.", + "More apps" : "მეტი აპლიკაციები", + "Search" : "ძებნა", + "Reset search" : "ძიების შედეგები", + "Confirm your password" : "დაადასტურეთ თქვენი პაროლი", + "Server side authentication failed!" : "სერვერის მხარეს აუტენტიფიკაცია ვერ მოხერხდა!", + "Please contact your administrator." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", + "An internal error occurred." : "გამოჩნდა შიდა შეცდომა.", + "Please try again or contact your administrator." : "გთხოვთ სცადოთ ახლიდან ან დაუკავშირდეთ თქვენს ადმინისტრატორს.", + "Username or email" : "მომხმარებლის სახელი ან ელ-ფოსტა", + "Wrong password. Reset it?" : "არასწორი პაროლი. აღვადგინოთ ის?", + "Wrong password." : "არასწორი პაროლი.", + "Log in" : "შესვლა", + "Stay logged in" : "ავტორიზებულად დარჩენა", + "Alternative Logins" : "ალტერნატიული ლოგინი", + "Account access" : "წვდომა ანგარიშზე", + "You are about to grant %s access to your %s account." : "თქვენ აპირებთ წვდომის უფლებები მიანიჭოთ %s-ს თქვენს %s ანგარიშზე.", + "Grant access" : "უფლებების მინიჭება", + "App token" : "აპლიკაციის ტოკენი", + "Alternative login using app token" : "ალტერნატული ლოგინი აპლიკაციის ტოკენით", + "Redirecting …" : "გადამისამართება ...", + "New password" : "ახალი პაროლი", + "New Password" : "ახლი პაროლი", + "Reset password" : "პაროლის შეცვლა", + "Two-factor authentication" : "ორ-ფაქტრიანი აუტენტიფიკაცია", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "თქვენს ანგარიშზე გაუმჯობესებული თავდაცვა ჩართულია. გთხოვთ გაიაროთ აუტენტიფიკაცია მეორე ფაქტორით.", + "Cancel log in" : "ავტორიზაციის შეჩერება", + "Use backup code" : "დაზღვევის კოდის გამოყენება", + "Error while validating your second factor" : "მეორე ფაქტორის ვალიდაციისას წარმოიშვა შეცდომა", + "Access through untrusted domain" : "წვდომა არა-სანდო დომენიდან", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს. იმ შემთხვევაში თუ ბრძანდებით ადმინისტრატორი, config/config.php-ში შეცვალეთ \"trusted_domains\" პარამეტრი, ისე როგორც ნაჩვენებია მაგალითში config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "თქვენი კონფიგურაციიდან გამომდინარე, ეს ღილაკი დომენის ნდობისთვის შეიძლება ასევე მუშაობდეს.", + "Add \"%s\" as trusted domain" : "დაამატეთ \"%s\" როგორც სანდო დომენი", + "App update required" : "აპლიკაციას ესაჭიროება განახლება", + "%s will be updated to version %s" : "%s განახლდება ვერსიაზე %s", + "These apps will be updated:" : "ეს აპლიკაციები განახლდება:", + "These incompatible apps will be disabled:" : "ეს არათავსებადი აპლიკაციები წაიშლება:", + "The theme %s has been disabled." : "ვიზუალური თემა %s გაითიშა.", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "გთხოვთ დარწმუნდეთ რომ მონაცემთა ბაზა, კონფიგურაციის დირექტორია და მონაცემთა დირექტორია გაგრძელებამდე დააზღვიეთ.", + "Start update" : "განახლების დაწყება", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "დიდ ინსტალაციებთან მუშაობისას დროის ამოწურვის შეცდომების თავიდან აცილებისთვის, შეგიძლიათ გაუშვათ შემდეგი ბრძანება ინსტალაციის დირექტორიაში:", + "Detailed logs" : "დეტალური ლოგები", + "Update needed" : "საჭიროა განახლება", + "Please use the command line updater because you have a big instance with more than 50 users." : "გთხოვთ მოიხმაროთ \"command-line\" განმანახლებელი რადგანაც ეს დიდი ნიმუშია, მასზე 50-ზე მეტი მომხმარებელია.", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "დახმარებისთვის იხილეთ <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">დოკუმენტაცია</a>.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "ვიცი რომ თუ გავაგრძელებ განახლებას ვებ-ინტერფეისით არის რისკი, რომ მოთხოვნას დრო ამოეწურება და შეიძლება მოხდეს მონაცემების დაკარგვა, თუმცა მაქვს დაზღვევა და ვიცი თუ როგორ აღვადგინო ნიმუში იმ შემთხვევაში თუ მოხდება შეცდომა.", + "Upgrade via web on my own risk" : "განაახლეთ ვებით თქვენი პასუხისმგებლობით", + "This %s instance is currently in maintenance mode, which may take a while." : "ეს %s ნიმუში ამჟამად სარემონტო რეჟიმშია, ამან შეიძლება გასტანოს გარკვეული დრო.", + "This page will refresh itself when the %s instance is available again." : "გვერდი ავტომატურად განახლდება, როდესაც %s ნიუში იქნება ხელმისაწვდომელი.", + "Contact your system administrator if this message persists or appeared unexpectedly." : "თუ ეს წერილი გამოჩნდა მოულოდნელად ან მისი გამოჩენა გრძელდება, დაუკავშირდით სისტემის ადმინისტრატორს.", + "Thank you for your patience." : "მადლობთ მოთმინებისთვის.", + "Problem loading page, reloading in 5 seconds" : "პრობლემა გვერდის ჩატვირთვისას, ახლიდან ჩაიტვირთება 5 წამში", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ფაილები კოდირებულია. თუ არ ჩაგირთავთ აღდგენის გასაღები, არ იქნება არანაირი გზა აღადგინოთ თვენი მონაცემები პაროლის ცვლილების შემდეგ.<br />თუ არ იცით რა გააკეთოთ, გაგრძელებამდე მიმართეთ თქვენს ადმინისტრატორს.<br />დარწმუნებული ხართ რომ გსურთ გაგრძელება?", + "Ok" : "დიახ", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "თქვენი data დირექტორია და ფაილები ალბათ წვდომადია ინტერნეტიდან. .htaccess ფაილი არ მუშაობს. მკაცრად რეკომენდირებულია ისე გაუწიოთ თქვენს ვებ-სერვერს კონფიგურაცია, რომ data დირექტორია აღარ იყოს წვდომადი, ან გაიტანოთ ის ვებ-სერვერის root დირექტორიიდან.", + "Shared with {recipients}" : "გაზიარებულია {recipients}-ებთან", + "Error while unsharing" : "შეცდომა გაზიარების გაუქმების დროს", + "can reshare" : "შეუძლია ხელახალი გაზიარება", + "can edit" : "შეუძლია შეცვლა", + "can create" : "შეუძლია შექმნა", + "can change" : "შეუძლია ცვლილება", + "can delete" : "შეუძლია გაუქმება", + "access control" : "დაშვების კონტროლი", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "გააზიარეთ სხვა ადამიანებთან სხვა სერვერებზე მათი ფედერალიზირებული ქლაუდ ID-ების მეშვეობით username@example.com/nextcloud", + "Share with users or by mail..." : "გაუზიარეთ მომხმარებლებს ელ-ფოსტით...", + "Share with users or remote users..." : "გაუზიარეთ დისტანციურ მომხმარებლებს...", + "Share with users, remote users or by mail..." : "გაუზიარეთ მოხმარებლებს, დისნტანციურ მოხმარებლებს, ან გააზიარეთ ელ-ფოსტით...", + "Share with users or groups..." : "გაუზიარეთ მომხმარებლებს ან ჯგუფებს...", + "Share with users, groups or by mail..." : "გაუზიარეთ მომხმარებლებს, ჯგუფებს ან გააზიარეთ ელ-ფოსტით...", + "Share with users, groups or remote users..." : "გაუზიარეთ მომხმარებლებს, ჯგუფებს ან დისტანციურ მომხმარებლებს...", + "Share with users, groups, remote users or by mail..." : "გაუზიარეთ მომხმარებლებს, ჯგუფებს, დისტანციურ მომხმარებლებს ან გააზიარეთ ელ-ფოსტით...", + "Share with users..." : "გაუზიარეთ მომხმარებლებს...", + "The object type is not specified." : "ობიექტის ტიპი არ არის მითითებული.", + "Enter new" : "შეიყვანეთ ახალი", + "Add" : "დამატება", + "Edit tags" : "შეცვალეთ ტეგები", + "Error loading dialog template: {error}" : "დიალოგის შაბლონის ჩატვირთვისას წარმოიშვა შეცდომა: {error}", + "No tags selected for deletion." : "ტეგები გაუქმებისთვის არაა არჩეული", + "The update was successful. Redirecting you to Nextcloud now." : "წარმატებით განახლდა. ახლავე გადაგამისამართებთ Nextcloud-ზე.", + "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "გამარჯობა,\n\nმინდა შეგატყობინო, რომ %s-მა შენთან %s გააზიარა.\nიხილე: %s\n\n", + "The share will expire on %s." : "გაზიარება გაუქმდება %s-ში.", + "Cheers!" : "წარმატებები!", + "The server encountered an internal error and was unable to complete your request." : "სერვერს შეექმნა შიცა შეცდომა და ვერ დაასრულა თქვენი მოთხოვნა.", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "გთხოვთ დაუკავშირდეთ სერვერის ადმინისტრატორს, თუ ეს შეცდომა განმეორდება, გთხოვთ რეპორტში შეიტანოთ ქვემოთ მოცემული ტექნიკური დეტალებიც.", + "Log out" : "გასვლა", + "This action requires you to confirm your password:" : "ეს ქმედება საჭიროებს პაროლის დადასტურებას:", + "Use the following link to reset your password: {link}" : "პაროლის შესაცვლელად გამოიყენეთ შემდეგი მული: {link}", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "გამარჯობა,<br><br>მინდა შეგატყობინო, რომ %s-მა შენთან გააზიარა <strong>%s</strong>.<br><a href=\"%s\">იხილე!</a><br><br>", + "This Nextcloud instance is currently in single user mode." : "ეს Nextcloud ნიმუში ამჟამად მხოლოდ ერთ მომხმარებელზეა გათვლილი.", + "This means only administrators can use the instance." : "ეს ნიშნავს რომ მხოლოდ ადმინისტრატორებს შეუძლიათ მისი მოხმარება.", + "You are accessing the server from an untrusted domain." : "სერვერს უკავშირდებით არა-სანდო დომენიდან.", + "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს. იმ შემთხვევაში თუ ბრძანდებით ადმინისტრატორი, config/config.php-ში შეცვალეთ \"trusted_domains\" პარამეტრი. მაგალითი მოყვანილია config.sample.php.", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "თქვენი კონფიგურაციიდან გამომდინარე, როგორც ადმინისტრატორმა დომენის ნდობისთვის ასევე შეგიძლიათ ისარგებლოთ ქვემოთ არსებული ღილაკითაც.", + "Please use the command line updater because you have a big instance." : "გთხოვთ მოიხმაროთ \"command-line\" განმანახლებელი რადგანაც ეს დიდი ნიმუშია.", + "You are about to grant \"%s\" access to your %s account." : "თქვენ აპირებთ წვდომის უფლებები მიანიჭოთ %s-ს თქვენს %s ანგარიშზე." +}, +"nplurals=1; plural=0;"); diff --git a/core/l10n/ka_GE.json b/core/l10n/ka_GE.json new file mode 100644 index 00000000000..66431d9ca45 --- /dev/null +++ b/core/l10n/ka_GE.json @@ -0,0 +1,357 @@ +{ "translations": { + "Please select a file." : "გთხოვთ აირჩიოთ ფაილი.", + "File is too big" : "ფაილი ზედმეტად დიდია", + "The selected file is not an image." : "არცეული ფაილი არაა სურათი.", + "The selected file cannot be read." : "არჩეული ფაილი არ იკითხება.", + "Invalid file provided" : "არასწორი ფაილი", + "No image or file provided" : "არ არის სურათი ან ფაილი", + "Unknown filetype" : "ამოუცნობი ფაილის ტიპი", + "Invalid image" : "არასწორი სურათი", + "An error occurred. Please contact your admin." : "წარმოიშვა შეცდომა. გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", + "No temporary profile picture available, try again" : "დროებითი პროფილის სურათი არაა ხელმისაწვდომი, სცადეთ ახლიდან", + "No crop data provided" : "ამოჭრის მონაცემები არაა უზრუნველყოფილი", + "No valid crop data provided" : "სწორი ამოჭრის მონაცემები არაა უზრუნველყოფილი", + "Crop is not square" : "ამონაჭერი არაა კვადრატი", + "State token does not match" : "მდგომარეობის ტოკენი არ ემთხვევა", + "Password reset is disabled" : "პაროლის განახლება გამორთულია", + "Couldn't reset password because the token is invalid" : "არასწორი ტოკენის გამო პაროლის აღდგენა ვერ მოხერხდა", + "Couldn't reset password because the token is expired" : "ვადა-გასული ტოკენის გამო პაროლის აღდგენა ვერ მოხერხდა", + "Could not send reset email because there is no email address for this username. Please contact your administrator." : "ამ მომხმარებლისთვის ელ-ფოსტის მისამართი არაა დაყენებული, შესაბამისად აღდგენის ელ-წერილი ვერ გაიგზავნა. გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", + "%s password reset" : "%s პაროლის აღდგენა", + "Password reset" : "პაროლის აღდგენა", + "Click the following button to reset your password. If you have not requested the password reset, then ignore this email." : "პაროლის აღსადგენად დააჭირეთ შემდეგ ღილაკს. იმ შემთხვავაში თუ არ მოგითხოვიათ პაროლის აღდგენა, არ მიაქციოთ ყურადღება ამ წერილს.", + "Click the following link to reset your password. If you have not requested the password reset, then ignore this email." : "პაროლის აღსადგენად დააჭირეთ შემდეგ ღილაკს. იმ შემთხვავაში თუ არ მოგითხოვიათ პაროლის აღდგენა, არ მიაქციოთ ყურადღება ამ წერილს.", + "Reset your password" : "აღადგნიეთ თქვენი პაროლი", + "Couldn't send reset email. Please contact your administrator." : "აღდგენის ელ-წერილი ვერ გაიგზავნა. გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", + "Couldn't send reset email. Please make sure your username is correct." : "აღდგენის ელ-წერილი ვერ გაიგზავნა. დარწმუნდით, რომ მომხმარებლის სახელი სწორია.", + "Preparing update" : "განახლების მომზადება", + "[%d / %d]: %s" : "[%d / %d]: %s", + "Repair warning: " : "გაფრთხილება შეკეთების შესახებ:", + "Repair error: " : "შეცდომა შეკეთების შესახებ:", + "Please use the command line updater because automatic updating is disabled in the config.php." : "ავტომატური განახლება config.php-ში გათიშულია, გთხოვთ ისარგებლოთ command-line განახლებით.", + "[%d / %d]: Checking table %s" : "[%d / %d]: მოწმდება ცხრილი %s", + "Turned on maintenance mode" : "სარემონტო რეჟიმი ჩაირთო", + "Turned off maintenance mode" : "სარემონტო რეჟიმი გაითისა", + "Maintenance mode is kept active" : "სარემონტო რეჟიმი დარჩა აქტიური", + "Updating database schema" : "მონაცემთა ბაზის სქემის განახლება", + "Updated database" : "მონაცემთა ბაზის განახლება", + "Checking whether the database schema can be updated (this can take a long time depending on the database size)" : "მოწმდება შესაძლებელია თუ არა მონაცემთა ბაზის სქემის განახლება (მონაცემთა ბაზის ზომასთან დამოკიდებულებით, ამ პროცესმა შეიძლება გასტანოს გარკვეული პერიოდი)m", + "Checked database schema update" : "შემოწმდა მონაცემთა ბაზის სქემის განახლება", + "Checking updates of apps" : "მოწმდება აპლიკაციის განახლებები", + "Checking for update of app \"%s\" in appstore" : "Appstore-ში მოწდება აპლიკაციის \"%s\" განახლება", + "Update app \"%s\" from appstore" : "Appstore-იდან ნახლდება აპლიკაცია \"%s\"", + "Checked for update of app \"%s\" in appstore" : "Appstore-ში დამოწმდა აპლიკაციის \"%s\" განახლება", + "Checking whether the database schema for %s can be updated (this can take a long time depending on the database size)" : "მოწმდება შესაძლებელია თუ არა %s-ისთვის მონაცემთა ბაზის სქემის განახლება (მონაცემთა ბაზის ზომასთან დამოკიდებულებით, ამ პროცესმა შეიძლება გასტანოს გარკვეული პერიოდი)", + "Checked database schema update for apps" : "დამოწმდა აპლიკაციებისთვის მონაცემთა ბაზის სქემის განახლება", + "Updated \"%s\" to %s" : "\"%s\" განახლდა %s-ზე", + "Set log level to debug" : "ლოგ დონის დაყენება დებაგზე", + "Reset log level" : "ლოგის დონის დაყენება საწყის პარამეტრზე", + "Starting code integrity check" : "კოდის ერთიანობის შემოწმების დაწყება", + "Finished code integrity check" : "დასრულდა კოდის ერთიანობის შემოწმება", + "%s (3rdparty)" : "%s (მესამე მხარე)", + "%s (incompatible)" : "%s (არაა თავსებადი)", + "Following apps have been disabled: %s" : "შემდეგი აპლიკაციები გაითიშა: %s", + "Already up to date" : "უკვე განახლებულია", + "Search contacts …" : "მოძებნეთ კონტაქტები ...", + "No contacts found" : "კომენტარები ვერ იქნა ნაპოვნი.", + "Show all contacts …" : "ყველა კონტაქტის ჩვენება ...", + "There was an error loading your contacts" : "კონტაქტების ჩატვირთვისას წარმოიშვა შეცდომა", + "Loading your contacts …" : "იტვირთება კონტაქტები ...", + "Looking for {term} …" : "ვეძებთ {term}-ს …", + "<a href=\"{docUrl}\">There were problems with the code integrity check. More information…</a>" : "<a href=\"{docUrl}\">კოდის მთლიანობის შემოწმებასთან წარმოიქმა შეცდომები. მეტი ინფორმაცია…</a>", + "No action available" : "ქმედაბა არაა ხელმისაწვდომი", + "Error fetching contact actions" : "კონტაქტის ქმედებების მოხვეწისას წარმოიქმნა შეცდომა", + "Settings" : "პარამეტრები", + "Connection to server lost" : "სერვერთან კავშირი დაიკარგა", + "_Problem loading page, reloading in %n second_::_Problem loading page, reloading in %n seconds_" : ["გვერდის ჩატვირთვის პროლბემა, ხელახალი ჩატვირთვა მოხდება %n წამში"], + "Saving..." : "შენახვა...", + "Dismiss" : "დათხოვნა", + "This action requires you to confirm your password" : "ეს ქმედება საჭიროებს პაროლის დადასტურებას", + "Authentication required" : "საჭიროა აუტენტიფიკაცია", + "Password" : "პაროლი", + "Cancel" : "უარყოფა", + "Confirm" : "დადასტურება", + "Failed to authenticate, try again" : "აუტენტიფიკაცია ვერ შესრლდა, სცადეთ ახლიდან", + "seconds ago" : "წამის წინ", + "Logging in …" : "შესვლა ...", + "The link to reset your password has been sent to your email. If you do not receive it within a reasonable amount of time, check your spam/junk folders.<br>If it is not there ask your local administrator." : "ბმული პაროლის აღდგენით ბმული თქვენს ელ-ფოსტაზე გაგზავნილია. თუ გავიდა გარკვეული დრო და მაინც არ მოგსვლიათ, შეამოწმეთ სპამის დირექტორიაც.<br>თუ მაინც ვერ მიაგენით მიმართეთ ლოკალურ ადმინისტრატორს.", + "Your files are encrypted. There will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ფაილები კოდირებულია. პაროლის აღდგენის შემდეგ ვერანაირად ვერ დაიბრუნებთ მონაცემებს.<br />თუ ხართ დარწმუნებული რა გააკეთოთ, გაგრძელებამდე მიმართეთ თქვენს ადმინისტრატორს.<br />დარწმუნებული ხართ რომ გსურთ გაგრძელება?", + "I know what I'm doing" : "ვიცი რასაც ვაკეთებ", + "Password can not be changed. Please contact your administrator." : "პაროლი ვერ იცვლება. დაუკავშირდით თქვენს ადმინისტრატორს.", + "No" : "არა", + "Yes" : "კი", + "No files in here" : "აქ ფაილები არაა", + "Choose" : "არჩევა", + "Copy" : "კოპირება", + "Move" : "გადატანა", + "Error loading file picker template: {error}" : "შეცდომა ფაილის შაბლონის ჩატვირთვისას: {error}", + "OK" : "კარგი", + "Error loading message template: {error}" : "შეცდომა წერილის შაბლონის ჩატვირთვისას: {error}", + "read-only" : "მხოლოდ-კითხვადი", + "_{count} file conflict_::_{count} file conflicts_" : ["{count} ფაილის კონფლიქი"], + "One file conflict" : "კონფლიქტი ერთ ფაილთან", + "New Files" : "ახალი ფაილები", + "Already existing files" : "უკვე არსებული ფაილები", + "Which files do you want to keep?" : "რომელი ფაილების დატოვება გსურთ?", + "If you select both versions, the copied file will have a number added to its name." : "თუ აირჩევთ ორივე ვერსიას, კოპირებულ ფაილს სახელის წინ დაერთვება ციფრი.", + "Continue" : "გაგრძელება", + "(all selected)" : "(ყველა არჩეული)", + "({count} selected)" : "({count} არჩეული)", + "Error loading file exists template" : "ფაილის ჩატვირთვისას წარმოიშვა შეცდომა", + "Pending" : "მოლოდინში", + "Copy to {folder}" : "კოპრება {folder}-ში", + "Move to {folder}" : "გადატანა {folder}-ში", + "Very weak password" : "ძალიან სუსტი პაროლი", + "Weak password" : "სუსტი პაროლი", + "So-so password" : "არცთუ ისეთი ძლიერი პაროლი", + "Good password" : "კარგი პაროლი", + "Strong password" : "ძლიერი პაროლი", + "Your web server is not yet set up properly to allow file synchronization because the WebDAV interface seems to be broken." : "ფაილის სინქრონიზაციის დასაშვებათ თქვენი ვებ-სერვერი ჯერ არაა სწორად კოფინგირურებული, როგორც ჩანს WebDAV ინტერფეისი გაფუჭებულია.", + "Your web server is not set up properly to resolve \"{url}\". Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "\"{url}\"-ის გასახსნელად თქვენი ვებ-სერვერი არაა სწორად კონფიგურირებული. შეგიძლიათ იხილოთ მეტი ინფორმაცია ჩვენს <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">დოკუმენტაციაში</a>.", + "This server has no working Internet connection: Multiple endpoints could not be reached. This means that some of the features like mounting external storage, notifications about updates or installation of third-party apps will not work. Accessing files remotely and sending of notification emails might not work, either. We suggest to enable Internet connection for this server if you want to have all features." : "ამ სერვერს არ გააჩნია მოქმედი ინტერნეტ კავშირი: მიუწვდომელია მრავალი წერტილი. ეს ნიშნავს, რომ ფუნქციები როგორებიცაა ექსტერნალური საცავის დაყენება, შეტყობინებები განახლებებზე ან მესამე მხარის აპლიკაციების ინსტალაცია არ იმუშავებს. შესაძლოა ფაილებთან დისტანციური წვდომა და საფოსტო შეტყობინებების გაგზავნაც არ მუშაობდეს. ყველა ფიუნქციის მუშაობისთვის, გირჩევდით ამ სერვერზე ჩართოთ ინტერნეტ კავშირი.", + "No memory cache has been configured. To enhance your performance please configure a memcache if available. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "მეხსიერების კეში არაა კონფიგურირებული. მოქმედების მახასიათებლების გაუმჯობესებისთვის გთოხვთ გაუწიოთ კონფიგურაცია memcache-ს. შეგიძლიათ იხილოთ მეტი ინფორმაცია ჩვენს <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">დოკუმენტაციაში</a>.", + "/dev/urandom is not readable by PHP which is highly discouraged for security reasons. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "/dev/urandom PHP-ს მიერ ვერ იკითხება, რაც უსაფრთოხების მიზნებიდან გამომდინარე უკიდურესად არა-რეკომენდირებულია. შეგიძლიათ მეტი ინფორმაცია მიიღოთ ჩვენი <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">დოკუემენტაციით</a>.", + "You are currently running PHP {version}. We encourage you to upgrade your PHP version to take advantage of <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">performance and security updates provided by the PHP Group</a> as soon as your distribution supports it." : "ამჟამად თქვენთან მოქმედია PHP {version}. ჩვენ მოგიწოდებთ რაც შეიძლება მალე განაახლოთ თქვენი PHP ვერსია, რათა ისარგებლოთ <a target=\"_blank\" rel=\"noreferrer\" href=\"{phpLink}\">PHP Group-ის მიერ უზრუნველყოფილი გაუმჯობესებული ქმედებითა და უსაფრთხოებებისის განახლებებით</a>.", + "The reverse proxy headers configuration is incorrect, or you are accessing Nextcloud from a trusted proxy. If you are not accessing Nextcloud from a trusted proxy, this is a security issue and can allow an attacker to spoof their IP address as visible to Nextcloud. Further information can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>." : "Nextcloud-ს უკავშირდებით სანდრო პქოქსით ან საწინააღმეგო პროქსის დასათაურებებების კონფიგურაცია არასწორია. იმ შემთხვევაში თუ არ უკავშირდებით Nextcloud-ს სანდო პროქსით, ეს უსაფრთხოების პრობლემაა და თავდამსხმელმა შეიძლება მოიტყუოს IP მისამართით. იხილეთ მეტი ინფორმაცია ჩვენს <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">დოკუმენტაციაში</a>.", + "Memcached is configured as distributed cache, but the wrong PHP module \"memcache\" is installed. \\OC\\Memcache\\Memcached only supports \"memcached\" and not \"memcache\". See the <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached wiki about both modules</a>." : "Memcached კონფიგურირებულია როგორც განაწილებული ქეში, თუმცა დაყენებულია არასწორი PHP მოდული \"memcache\" . \\OC\\Memcache\\Memcached მხარს უჭერს მხოლოდ \"memcached\"-ს და არა \"memcache\"-s. მეტი ინფორმაციისთვის იხილეთ <a target=\"_blank\" rel=\"noreferrer\" href=\"{wikiLink}\">memcached ვიკი ორივე მოდულზე</a>.", + "Some files have not passed the integrity check. Further information on how to resolve this issue can be found in our <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">documentation</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">List of invalid files…</a> / <a href=\"{rescanEndpoint}\">Rescan…</a>)" : "გარკვეულმა ფაილება ვერ გაიარეს ერთიანობის შემოწმება. ინფორმაცია თუ როგორც აღმოფხრათ ეს პრობლემა შეგიძლიათ მოიძიოთ ჩვენს <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">დოკუმენტაციაში</a>. (<a href=\"{codeIntegrityDownloadEndpoint}\">არასწორი ფაილების სია...</a> / <a href=\"{rescanEndpoint}\">ხელახალი სკანირება...</a>)", + "The PHP OPcache is not properly configured. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">For better performance we recommend</a> to use following settings in the <code>php.ini</code>:" : "PHP OPcache არაა სწორად კონფიგურირებული. <a target=\"_blank\" rel=\"noreferrer\" href=\"{docLink}\">უკეთესი მოქმედებისთვის ჩვენ რეკომენდაციას გიწევთ</a> <code>php.ini</code>-ში გამოიყენოთ შემდეგი პარამეტრები:", + "The PHP function \"set_time_limit\" is not available. This could result in scripts being halted mid-execution, breaking your installation. We strongly recommend enabling this function." : "PHP-ს ფუნქცია \"set_time_limit\" არაა ხელმისაწვდომი. ამან შეიძლება ქმედებისას გამოიწვიოს სკრიპტების შეჩერება, ინსტალაციის შეწყვეტა. გირჩევთ ჩართოთ ეს ფუნქცია.", + "Error occurred while checking server setup" : "შეცდომა სერვერის მოწყობის შემოწმებისას", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. It is strongly recommended that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "თქვენი data დირექტორია და ფაილები ალბათ წვდომადია ინტერნეტიდან. .htaccess ფაილი არ მუშაობს. მკაცრად რეკომენდირებულია ისე გაუწიოთ თქვენს ვებ-სერვერს კონფიგურაცია, რომ data დირექტორია აღარ იყოს წვდომადი, ან გაიტანოთ ის ვებ-სერვერის root დირექტორიიდან.", + "The \"{header}\" HTTP header is not configured to equal to \"{expected}\". This is a potential security or privacy risk and we recommend adjusting this setting." : "HTTP დასათაურება \"{header}\" არაა კონფიგურირებული რომ უტოლდებოდეს \"{expected\"}-ს. ეს პოტენციური უსაფრთხოების და კონფიდენციალურობის რისკია, გირჩევთ ამ პარამეტრის გამოსწორებას.", + "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP დასათაურება არაა კონფიგურირებული \"{seconds}\" წამამდე მაინც. გაუმჯობესებული თავდაცვის მიზნებისთვის რეკომენდაციას გიწევთ ჩართოთ HSTS როგორც აღწერილია ჩვენს <a href=\"{docUrl}\" rel=\"noreferrer\">თავდაცვის რეკომენდაციებში</a>.", + "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "ამ საიტს უკავშირდებით HTTP-თი. მტკიცედ გირჩევთ გაუწიოთ სერვერს კონფიგურაცია, ისე რომ გამოიყენოთ HTTPS, როგორც აღწერილია ჩვენს <a href=\"{docUrl}\">თავდაცვის რეკომენდაციებში</a>.", + "Shared" : "გაზიარებული", + "Shared with" : "გაზიარებულია", + "Shared by" : "გამზიარებელი", + "Error setting expiration date" : "ვადის გასვლის მითითებისას წარმოიშვა შეცდომა", + "The public link will expire no later than {days} days after it is created" : "საზოგადო ბმული გაუქმედება შექმნის მომენტიდან {days} დღის შემდეგ", + "Set expiration date" : "მიუთითეთ ვადის გასვლის დრო", + "Expiration" : "ვადის გასვლა", + "Expiration date" : "ვადის გასვლის დრო", + "Choose a password for the public link" : "აირჩიეთ პაროლი საზოგადო ბმულისთვის", + "Choose a password for the public link or press the \"Enter\" key" : "აირჩიეთ პაროლი საზოგადო ბმულისთვის ან დააჭირეთ \"Enter\"-ს", + "Copied!" : "კოპირებულია!", + "Not supported!" : "არაა მხარდაჭერილი!", + "Press ⌘-C to copy." : "ასლის შესაქმნელად დააჭირეთ ⌘-C-ს", + "Press Ctrl-C to copy." : "ასლის შესაქმნელად დააჭირეთ Ctrl-C-ს", + "Resharing is not allowed" : "ხელახალი გაზიარება არაა დაშვებული", + "Share to {name}" : "გაუზიარეთ {name}-ს", + "Share link" : "გააზიარეთ ბმული", + "Link" : "ბმული", + "Password protect" : "პაროლით დაცვა", + "Allow editing" : "ცვლილების უფლების მინიჭება", + "Email link to person" : "ბმულის პიროვნების ელ-მისამართზე გაგზავნა", + "Send" : "გაგზავნა", + "Allow upload and editing" : "ატვირთვისა და ცვლილების უფლებების მინიჭება", + "Read only" : "მხოლოდ-კითხვადი", + "File drop (upload only)" : "ფაილის ჩაგდება (მხოლოდ ატვირთვა)", + "Shared with you and the group {group} by {owner}" : "{owner}-ის მიერ გაზიარდა თქვენთვის და ჯგუფისთვის {group}", + "Shared with you by {owner}" : "{owner}-ის მიერ გაზიარდა თქვენთვის", + "Choose a password for the mail share" : "აირჩიეთ პაროლი ელ-ფოსტით გაზიარებისთვის", + "{{shareInitiatorDisplayName}} shared via link" : "{{shareInitiatorDisplayName}}-მა გააზიარა ბმულით", + "group" : "ჯგუფი", + "remote" : "დისტანციური", + "email" : "ელ-ფოსტა", + "shared by {sharer}" : "გააზიარა {sharer}-ma", + "Unshare" : "გაზიარების მოშორება", + "Can reshare" : "შეუძლია ხელახალი გაზიარება", + "Can edit" : "Can edit", + "Can create" : "შეუძლია შექმნა", + "Can change" : "შეუძლია ცვლილება", + "Can delete" : "შეუძლია გაუქმება", + "Access control" : "დაშვების კონტროლი", + "Could not unshare" : "არ შეუძლია ხელახალი გაზაიარება", + "Error while sharing" : "შეცდომა გაზიარების დროს", + "Share details could not be loaded for this item." : "ამ ობიექტისთვის გაზიარების დეტალები ვერ ჩაიტვირთა.", + "_At least {count} character is needed for autocompletion_::_At least {count} characters are needed for autocompletion_" : ["ავტო-დასრულებისთვის საჭიროა მინიმუმ {count} სიბმოლო"], + "This list is maybe truncated - please refine your search term to see more results." : "ეს სია შეიძლება იყოს წაკვეთილი - მეტი შედეგისთვის, გთხოვთ გაწმინდოთ თქვენი საძიებო სიტყვა.", + "No users or groups found for {search}" : "მომხმარებლები და ჯგუფები {search}-ისთვის არ იქნა ნაპოვნი", + "No users found for {search}" : "მომხმარებლები {search}-ისთვის არ იქნა ნაპოვნი", + "An error occurred. Please try again" : "წარმოიშვა შეცდომა. გთხოვთ სცადოთ ახლიდან.", + "{sharee} (group)" : "{sharee} (ჯგუფი)", + "{sharee} (remote)" : "{sharee} (დისტანციური)", + "{sharee} (email)" : "{sharee} (ელ-ფოსტა)", + "{sharee} ({type}, {owner})" : "{sharee} ({type}, {owner})", + "Share" : "გაზიარება", + "Share with other people by entering a user or group, a federated cloud ID or an email address." : "გაუზიარეთ სხვა ადამიანებს მოხმარებლის, ჯგუფის, ფედერალიზირებული ქლაუდ ID-ის ან ელ-ფოსტის მისამართის შეყვანით.", + "Share with other people by entering a user or group or a federated cloud ID." : "გაუზიარეთ სხვა ადამიანებს, მომხმარებლის, ჯგუფის ან ფერალიზირებული ქლაუდ ID-ის შეყვანით.", + "Share with other people by entering a user or group or an email address." : "გაუზიარეთ სხვა ადამიანებს მომხმარებლის, ჯგუფის ან ელ-ფოსტის მისამართის შეყვანით.", + "Name or email address..." : "სახელი ან ელ-ფოსტის მისამართი...", + "Name or federated cloud ID..." : "სახელი ან ფედერალიზირებული ქლაუდ ID", + "Name, federated cloud ID or email address..." : "სახელი, ფედერალიზირებული ქლაუდ ID ან ელ-ფოსტის მისამართი", + "Name..." : "სახელი...", + "Error" : "შეცდომა", + "Error removing share" : "გაზიარების მოშორებისას წარმოიშვა შეცდომა", + "Non-existing tag #{tag}" : "ტეგი #{tag} არ არსებობს", + "restricted" : "აკრძალული", + "invisible" : "უჩინარი", + "({scope})" : "({scope})", + "Delete" : "წაშლა", + "Rename" : "სახელის შეცვლა", + "Collaborative tags" : "ერთობლივი ტეგები", + "No tags found" : "ტეგები ვერ იქნა ნაპოვნი", + "unknown text" : "ამოუცნობი ტეგი", + "Hello world!" : "გამარჯობა სამყარო!", + "sunny" : "მზიანი", + "Hello {name}, the weather is {weather}" : "გამარჯობა {name}, ამინდია {weather}", + "Hello {name}" : "გამარჯობა {name}", + "<strong>These are your search results<script>alert(1)</script></strong>" : "<strong>ეს ძიების შედეგებია<script>alert(1)</script></strong>", + "new" : "ახალი", + "_download %n file_::_download %n files_" : ["გადმოწერეთ %n ფაილი"], + "The update is in progress, leaving this page might interrupt the process in some environments." : "განახლება პროცესშია, გარკვეულ გარემოებებში ამ გვერდის დატოვებამ შეიძლება შეწყვიტოს პროცესი.", + "Update to {version}" : "განაახლეთ ვერსიაზე {version}", + "An error occurred." : "წარმოიშვა შეცდომა.", + "Please reload the page." : "გთხოვთ გადატვირთოთ გვერდი.", + "The update was unsuccessful. For more information <a href=\"{url}\">check our forum post</a> covering this issue." : "განახლებისას წარმოიშვა შეცდომა. მეტი ინფორმაციისთვის იხილეთ <a href=\"{url}\">ჩვენი ფორუმის პოსტი</a>, სადაც საუბარია ამ პრობლემაზე.", + "The update was unsuccessful. Please report this issue to the <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud community</a>." : "განახლებისას წარმოიშვა შეცდომა. გთხოვთ განაცხადოთ ამ პრობლემის შესახებ <a href=\"https://github.com/nextcloud/server/issues\" target=\"_blank\">Nextcloud საზოგადოებაში</a>.", + "Continue to Nextcloud" : "გაგრძლება Nextcloud-ისკენ", + "_The update was successful. Redirecting you to Nextcloud in %n second._::_The update was successful. Redirecting you to Nextcloud in %n seconds._" : ["განახლება წარმატებით დასრულდა. Nextcloud-ისკენ გადაგამისამართებთ %n წამში."], + "Searching other places" : "ვეძებთ დანარჩენ ადგილებში", + "No search results in other folders for {tag}{filter}{endtag}" : "ძიების შედეგები სხვა დირექტორიებში {tag}{filter}{endtag}-სთვის არაა", + "_{count} search result in another folder_::_{count} search results in other folders_" : ["{count} ძიების შედეგები სხვა დირექტორიებში"], + "Personal" : "პირადი", + "Users" : "მომხმარებელი", + "Apps" : "აპლიკაციები", + "Admin" : "ადმინისტრატორი", + "Help" : "დახმარება", + "Access forbidden" : "წვდომა აკრძალულია", + "File not found" : "ფაილი ვერ იქნა ნაპოვნი", + "The specified document has not been found on the server." : "მითითებული დოკუმენტი სერვერზე ვერ იქნა ნაპოვნი.", + "You can click here to return to %s." : "%s-ზე დასაბრუნებლად შეგიძლიათ დააწკაპუნოთ აქ.", + "Internal Server Error" : "შიდა სერვერის შეცდომა", + "The server was unable to complete your request." : "სერვერმა ვერ დაასრულა თქვენი მოთოვნა.", + "If this happens again, please send the technical details below to the server administrator." : "თუ ეს განმეორდება, გთხოვთ გაუგზავნოთ ქვემოთ აღწერილი ტექნიკური დეტალები თქვენი სერვერის ადმინისრატორს.", + "More details can be found in the server log." : "მეტი დეტალები შეგიძლიათ იხილოთ სერვერის ლოგში.", + "Technical details" : "ტექნიკური დეტალები", + "Remote Address: %s" : "დისტანციური მისამართი: %s", + "Request ID: %s" : "მოთხოვნის ID: %s", + "Type: %s" : "ტიპი: %s", + "Code: %s" : "კოდი: %s", + "Message: %s" : "წერილი: %s", + "File: %s" : "ფაილი: %s", + "Line: %s" : "ხაზი: %s", + "Trace" : "კვალი", + "Security warning" : "გაფრთხილება უსაფრთხოების შესახებ", + "Your data directory and files are probably accessible from the internet because the .htaccess file does not work." : "თქვენი ფაილები და მონაცემების დირექტორია ინტერნეტით წვდომადია, რადგან .htaccess ფაილი არ მუშაობს.", + "For information how to properly configure your server, please see the <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">documentation</a>." : "ინფორმაციისთვის თუ როგორ გაუწიოთ სერვერს სწორი კონფიგურაცია იხილეთ <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">დოკუემტაცია</a>.", + "Create an <strong>admin account</strong>" : "შექმენით <strong>ადმინისტრატორის ანგარიში</strong>", + "Username" : "მომხმარებლის სახელი", + "Storage & database" : "საცავი და მონაცემთა ბაზა", + "Data folder" : "მონაცემთა დირექტორია", + "Configure the database" : "მონაცემთა ბაზის კონფიგურაცია", + "Only %s is available." : "მხოლოდ %s-ია ხელმისაწვდომი.", + "Install and activate additional PHP modules to choose other database types." : "სხვა მონაცემთა ბაზის სახეობებისთვის დააყენეთ და გაააქტიურეთ დამატებითი PHP მოდულები.", + "For more details check out the documentation." : "მეტი დეტალებისთვის იხილეთ დოკუმენტაცია.", + "Database user" : "მონაცემთა ბაზის მომხმარებელი", + "Database password" : "მონაცემთა ბაზის პაროლი", + "Database name" : "მონაცემთა ბაზის სახელი", + "Database tablespace" : "ბაზის ცხრილის ზომა", + "Database host" : "მონაცემთა ბაზის ჰოსტი", + "Please specify the port number along with the host name (e.g., localhost:5432)." : "ჰოსტის სახელთან ერთად გთხოვთ მიუთითოთ პორტის ნომერიც (მაგ.: localhost:5432).", + "Performance warning" : "გაფრთხილება მოქმედების შესახებ", + "SQLite will be used as database." : "მონაცემთა ბაზად მოხმარებულ იქნება SQLite.", + "For larger installations we recommend to choose a different database backend." : "უფრო დიდი ინსტალაციებისთვის რეკომენდაციას გიწევთ აირჩიოთ სხვა მონაცემთა ბაზა.", + "Especially when using the desktop client for file syncing the use of SQLite is discouraged." : "SQLite-ის გამოყენება არაა რეკომედირებული განსაკუთრებით მაშინ, როდესაც ფაილების სინქრონიზაციისთვის იყენებთ დესკტოპ-კლიენტს.", + "Finish setup" : "კონფიგურაციის დასრულება", + "Finishing …" : "სრულდება ...", + "Need help?" : "გესაჭიროებათ დახმარება?", + "See the documentation" : "იხილეთ დოკუმენტაცია", + "This application requires JavaScript for correct operation. Please {linkstart}enable JavaScript{linkend} and reload the page." : "ეს აპლიკაცია სწორი ოპერაციისთვის საჭიროებს JavaScript-ს. გთხოვთ {linkstart}ჩართოთ JavaScript-ი{linkend} და გადატვირთოთ გვერდი.", + "More apps" : "მეტი აპლიკაციები", + "Search" : "ძებნა", + "Reset search" : "ძიების შედეგები", + "Confirm your password" : "დაადასტურეთ თქვენი პაროლი", + "Server side authentication failed!" : "სერვერის მხარეს აუტენტიფიკაცია ვერ მოხერხდა!", + "Please contact your administrator." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს.", + "An internal error occurred." : "გამოჩნდა შიდა შეცდომა.", + "Please try again or contact your administrator." : "გთხოვთ სცადოთ ახლიდან ან დაუკავშირდეთ თქვენს ადმინისტრატორს.", + "Username or email" : "მომხმარებლის სახელი ან ელ-ფოსტა", + "Wrong password. Reset it?" : "არასწორი პაროლი. აღვადგინოთ ის?", + "Wrong password." : "არასწორი პაროლი.", + "Log in" : "შესვლა", + "Stay logged in" : "ავტორიზებულად დარჩენა", + "Alternative Logins" : "ალტერნატიული ლოგინი", + "Account access" : "წვდომა ანგარიშზე", + "You are about to grant %s access to your %s account." : "თქვენ აპირებთ წვდომის უფლებები მიანიჭოთ %s-ს თქვენს %s ანგარიშზე.", + "Grant access" : "უფლებების მინიჭება", + "App token" : "აპლიკაციის ტოკენი", + "Alternative login using app token" : "ალტერნატული ლოგინი აპლიკაციის ტოკენით", + "Redirecting …" : "გადამისამართება ...", + "New password" : "ახალი პაროლი", + "New Password" : "ახლი პაროლი", + "Reset password" : "პაროლის შეცვლა", + "Two-factor authentication" : "ორ-ფაქტრიანი აუტენტიფიკაცია", + "Enhanced security is enabled for your account. Please authenticate using a second factor." : "თქვენს ანგარიშზე გაუმჯობესებული თავდაცვა ჩართულია. გთხოვთ გაიაროთ აუტენტიფიკაცია მეორე ფაქტორით.", + "Cancel log in" : "ავტორიზაციის შეჩერება", + "Use backup code" : "დაზღვევის კოდის გამოყენება", + "Error while validating your second factor" : "მეორე ფაქტორის ვალიდაციისას წარმოიშვა შეცდომა", + "Access through untrusted domain" : "წვდომა არა-სანდო დომენიდან", + "Please contact your administrator. If you are an administrator, edit the \"trusted_domains\" setting in config/config.php like the example in config.sample.php." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს. იმ შემთხვევაში თუ ბრძანდებით ადმინისტრატორი, config/config.php-ში შეცვალეთ \"trusted_domains\" პარამეტრი, ისე როგორც ნაჩვენებია მაგალითში config.sample.php.", + "Depending on your configuration, this button could also work to trust the domain:" : "თქვენი კონფიგურაციიდან გამომდინარე, ეს ღილაკი დომენის ნდობისთვის შეიძლება ასევე მუშაობდეს.", + "Add \"%s\" as trusted domain" : "დაამატეთ \"%s\" როგორც სანდო დომენი", + "App update required" : "აპლიკაციას ესაჭიროება განახლება", + "%s will be updated to version %s" : "%s განახლდება ვერსიაზე %s", + "These apps will be updated:" : "ეს აპლიკაციები განახლდება:", + "These incompatible apps will be disabled:" : "ეს არათავსებადი აპლიკაციები წაიშლება:", + "The theme %s has been disabled." : "ვიზუალური თემა %s გაითიშა.", + "Please make sure that the database, the config folder and the data folder have been backed up before proceeding." : "გთხოვთ დარწმუნდეთ რომ მონაცემთა ბაზა, კონფიგურაციის დირექტორია და მონაცემთა დირექტორია გაგრძელებამდე დააზღვიეთ.", + "Start update" : "განახლების დაწყება", + "To avoid timeouts with larger installations, you can instead run the following command from your installation directory:" : "დიდ ინსტალაციებთან მუშაობისას დროის ამოწურვის შეცდომების თავიდან აცილებისთვის, შეგიძლიათ გაუშვათ შემდეგი ბრძანება ინსტალაციის დირექტორიაში:", + "Detailed logs" : "დეტალური ლოგები", + "Update needed" : "საჭიროა განახლება", + "Please use the command line updater because you have a big instance with more than 50 users." : "გთხოვთ მოიხმაროთ \"command-line\" განმანახლებელი რადგანაც ეს დიდი ნიმუშია, მასზე 50-ზე მეტი მომხმარებელია.", + "For help, see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation</a>." : "დახმარებისთვის იხილეთ <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">დოკუმენტაცია</a>.", + "I know that if I continue doing the update via web UI has the risk, that the request runs into a timeout and could cause data loss, but I have a backup and know how to restore my instance in case of a failure." : "ვიცი რომ თუ გავაგრძელებ განახლებას ვებ-ინტერფეისით არის რისკი, რომ მოთხოვნას დრო ამოეწურება და შეიძლება მოხდეს მონაცემების დაკარგვა, თუმცა მაქვს დაზღვევა და ვიცი თუ როგორ აღვადგინო ნიმუში იმ შემთხვევაში თუ მოხდება შეცდომა.", + "Upgrade via web on my own risk" : "განაახლეთ ვებით თქვენი პასუხისმგებლობით", + "This %s instance is currently in maintenance mode, which may take a while." : "ეს %s ნიმუში ამჟამად სარემონტო რეჟიმშია, ამან შეიძლება გასტანოს გარკვეული დრო.", + "This page will refresh itself when the %s instance is available again." : "გვერდი ავტომატურად განახლდება, როდესაც %s ნიუში იქნება ხელმისაწვდომელი.", + "Contact your system administrator if this message persists or appeared unexpectedly." : "თუ ეს წერილი გამოჩნდა მოულოდნელად ან მისი გამოჩენა გრძელდება, დაუკავშირდით სისტემის ადმინისტრატორს.", + "Thank you for your patience." : "მადლობთ მოთმინებისთვის.", + "Problem loading page, reloading in 5 seconds" : "პრობლემა გვერდის ჩატვირთვისას, ახლიდან ჩაიტვირთება 5 წამში", + "Your files are encrypted. If you haven't enabled the recovery key, there will be no way to get your data back after your password is reset.<br />If you are not sure what to do, please contact your administrator before you continue. <br />Do you really want to continue?" : "ფაილები კოდირებულია. თუ არ ჩაგირთავთ აღდგენის გასაღები, არ იქნება არანაირი გზა აღადგინოთ თვენი მონაცემები პაროლის ცვლილების შემდეგ.<br />თუ არ იცით რა გააკეთოთ, გაგრძელებამდე მიმართეთ თქვენს ადმინისტრატორს.<br />დარწმუნებული ხართ რომ გსურთ გაგრძელება?", + "Ok" : "დიახ", + "Your data directory and your files are probably accessible from the Internet. The .htaccess file is not working. We strongly suggest that you configure your web server in a way that the data directory is no longer accessible or you move the data directory outside the web server document root." : "თქვენი data დირექტორია და ფაილები ალბათ წვდომადია ინტერნეტიდან. .htaccess ფაილი არ მუშაობს. მკაცრად რეკომენდირებულია ისე გაუწიოთ თქვენს ვებ-სერვერს კონფიგურაცია, რომ data დირექტორია აღარ იყოს წვდომადი, ან გაიტანოთ ის ვებ-სერვერის root დირექტორიიდან.", + "Shared with {recipients}" : "გაზიარებულია {recipients}-ებთან", + "Error while unsharing" : "შეცდომა გაზიარების გაუქმების დროს", + "can reshare" : "შეუძლია ხელახალი გაზიარება", + "can edit" : "შეუძლია შეცვლა", + "can create" : "შეუძლია შექმნა", + "can change" : "შეუძლია ცვლილება", + "can delete" : "შეუძლია გაუქმება", + "access control" : "დაშვების კონტროლი", + "Share with people on other servers using their Federated Cloud ID username@example.com/nextcloud" : "გააზიარეთ სხვა ადამიანებთან სხვა სერვერებზე მათი ფედერალიზირებული ქლაუდ ID-ების მეშვეობით username@example.com/nextcloud", + "Share with users or by mail..." : "გაუზიარეთ მომხმარებლებს ელ-ფოსტით...", + "Share with users or remote users..." : "გაუზიარეთ დისტანციურ მომხმარებლებს...", + "Share with users, remote users or by mail..." : "გაუზიარეთ მოხმარებლებს, დისნტანციურ მოხმარებლებს, ან გააზიარეთ ელ-ფოსტით...", + "Share with users or groups..." : "გაუზიარეთ მომხმარებლებს ან ჯგუფებს...", + "Share with users, groups or by mail..." : "გაუზიარეთ მომხმარებლებს, ჯგუფებს ან გააზიარეთ ელ-ფოსტით...", + "Share with users, groups or remote users..." : "გაუზიარეთ მომხმარებლებს, ჯგუფებს ან დისტანციურ მომხმარებლებს...", + "Share with users, groups, remote users or by mail..." : "გაუზიარეთ მომხმარებლებს, ჯგუფებს, დისტანციურ მომხმარებლებს ან გააზიარეთ ელ-ფოსტით...", + "Share with users..." : "გაუზიარეთ მომხმარებლებს...", + "The object type is not specified." : "ობიექტის ტიპი არ არის მითითებული.", + "Enter new" : "შეიყვანეთ ახალი", + "Add" : "დამატება", + "Edit tags" : "შეცვალეთ ტეგები", + "Error loading dialog template: {error}" : "დიალოგის შაბლონის ჩატვირთვისას წარმოიშვა შეცდომა: {error}", + "No tags selected for deletion." : "ტეგები გაუქმებისთვის არაა არჩეული", + "The update was successful. Redirecting you to Nextcloud now." : "წარმატებით განახლდა. ახლავე გადაგამისამართებთ Nextcloud-ზე.", + "Hey there,\n\njust letting you know that %s shared %s with you.\nView it: %s\n\n" : "გამარჯობა,\n\nმინდა შეგატყობინო, რომ %s-მა შენთან %s გააზიარა.\nიხილე: %s\n\n", + "The share will expire on %s." : "გაზიარება გაუქმდება %s-ში.", + "Cheers!" : "წარმატებები!", + "The server encountered an internal error and was unable to complete your request." : "სერვერს შეექმნა შიცა შეცდომა და ვერ დაასრულა თქვენი მოთხოვნა.", + "Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report." : "გთხოვთ დაუკავშირდეთ სერვერის ადმინისტრატორს, თუ ეს შეცდომა განმეორდება, გთხოვთ რეპორტში შეიტანოთ ქვემოთ მოცემული ტექნიკური დეტალებიც.", + "Log out" : "გასვლა", + "This action requires you to confirm your password:" : "ეს ქმედება საჭიროებს პაროლის დადასტურებას:", + "Use the following link to reset your password: {link}" : "პაროლის შესაცვლელად გამოიყენეთ შემდეგი მული: {link}", + "Hey there,<br><br>just letting you know that %s shared <strong>%s</strong> with you.<br><a href=\"%s\">View it!</a><br><br>" : "გამარჯობა,<br><br>მინდა შეგატყობინო, რომ %s-მა შენთან გააზიარა <strong>%s</strong>.<br><a href=\"%s\">იხილე!</a><br><br>", + "This Nextcloud instance is currently in single user mode." : "ეს Nextcloud ნიმუში ამჟამად მხოლოდ ერთ მომხმარებელზეა გათვლილი.", + "This means only administrators can use the instance." : "ეს ნიშნავს რომ მხოლოდ ადმინისტრატორებს შეუძლიათ მისი მოხმარება.", + "You are accessing the server from an untrusted domain." : "სერვერს უკავშირდებით არა-სანდო დომენიდან.", + "Please contact your administrator. If you are an administrator of this instance, configure the \"trusted_domains\" setting in config/config.php. An example configuration is provided in config/config.sample.php." : "გთხოვთ დაუკავშირდეთ თქვენს ადმინისტრატორს. იმ შემთხვევაში თუ ბრძანდებით ადმინისტრატორი, config/config.php-ში შეცვალეთ \"trusted_domains\" პარამეტრი. მაგალითი მოყვანილია config.sample.php.", + "Depending on your configuration, as an administrator you might also be able to use the button below to trust this domain." : "თქვენი კონფიგურაციიდან გამომდინარე, როგორც ადმინისტრატორმა დომენის ნდობისთვის ასევე შეგიძლიათ ისარგებლოთ ქვემოთ არსებული ღილაკითაც.", + "Please use the command line updater because you have a big instance." : "გთხოვთ მოიხმაროთ \"command-line\" განმანახლებელი რადგანაც ეს დიდი ნიმუშია.", + "You are about to grant \"%s\" access to your %s account." : "თქვენ აპირებთ წვდომის უფლებები მიანიჭოთ %s-ს თქვენს %s ანგარიშზე." +},"pluralForm" :"nplurals=1; plural=0;" +}
\ No newline at end of file diff --git a/core/l10n/nb.js b/core/l10n/nb.js index 7943237aa15..3bb1ecc7fb3 100644 --- a/core/l10n/nb.js +++ b/core/l10n/nb.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\"- (Streng transportsikkerhet) HTTP-hodet er ikke satt opp til minst \"{seconds}\" sekunder. For forbedret sikkerhet anbefales det å skru på HSTS som beskrevet i våre <a href=\"{docUrl}\" rel=\"noreferrer\">sikkerhetstips</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du besøker denne nettsiden via HTTP. Vi anbefaler på det sterkeste at du konfigurerer tjeneren til å kreve HTTPS i stedet, som beskrevet i <a href=\"{docUrl}\">sikkerhetstips</a>.", "Shared" : "Delt", + "Shared with" : "Delt med", + "Shared by" : "Delt av", "Error setting expiration date" : "Kan ikke sette utløpsdato", "The public link will expire no later than {days} days after it is created" : "Den offentlige lenken vil utløpe senest {days} dager etter at den lages", "Set expiration date" : "Sett utløpsdato", diff --git a/core/l10n/nb.json b/core/l10n/nb.json index 3843d57b607..13a7a1c16ee 100644 --- a/core/l10n/nb.json +++ b/core/l10n/nb.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\"- (Streng transportsikkerhet) HTTP-hodet er ikke satt opp til minst \"{seconds}\" sekunder. For forbedret sikkerhet anbefales det å skru på HSTS som beskrevet i våre <a href=\"{docUrl}\" rel=\"noreferrer\">sikkerhetstips</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Du besøker denne nettsiden via HTTP. Vi anbefaler på det sterkeste at du konfigurerer tjeneren til å kreve HTTPS i stedet, som beskrevet i <a href=\"{docUrl}\">sikkerhetstips</a>.", "Shared" : "Delt", + "Shared with" : "Delt med", + "Shared by" : "Delt av", "Error setting expiration date" : "Kan ikke sette utløpsdato", "The public link will expire no later than {days} days after it is created" : "Den offentlige lenken vil utløpe senest {days} dager etter at den lages", "Set expiration date" : "Sett utløpsdato", diff --git a/core/l10n/nl.js b/core/l10n/nl.js index e2a084664ee..1eb7149701d 100644 --- a/core/l10n/nl.js +++ b/core/l10n/nl.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "De \"Strict-Transport-Security\" HTTP header is niet geconfigureerd met minimaal \"{seconds}\" seconden. Voor verbeterde beveiliging adviseren we HSTS in te schakelen zoals beschreven in onze<a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Je bent met deze site verbonden over HTTP. We adviseren je dringend om je server zo te configureren dat HTTPS wordt vereist, zoals beschreven in onze <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Gedeeld", + "Shared with" : "Gedeeld met", + "Shared by" : "Gedeeld door", "Error setting expiration date" : "Fout tijdens het instellen van de vervaldatum", "The public link will expire no later than {days} days after it is created" : "De openbare link vervalt niet eerder dan {days} dagen na het aanmaken", "Set expiration date" : "Stel vervaldatum in", @@ -275,6 +277,7 @@ OC.L10N.register( "Alternative Logins" : "Alternatieve inlogs", "Account access" : "Account toegang", "You are about to grant %s access to your %s account." : "Je staat op het punt om %s toegang te verlenen to je %s account.", + "Grant access" : "Verleen toegang", "App token" : "App token", "Alternative login using app token" : "Alternatieve login doormiddel van app token", "Redirecting …" : "Omleiding ...", diff --git a/core/l10n/nl.json b/core/l10n/nl.json index fc1be0e1de9..7f494b23ecd 100644 --- a/core/l10n/nl.json +++ b/core/l10n/nl.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "De \"Strict-Transport-Security\" HTTP header is niet geconfigureerd met minimaal \"{seconds}\" seconden. Voor verbeterde beveiliging adviseren we HSTS in te schakelen zoals beschreven in onze<a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Je bent met deze site verbonden over HTTP. We adviseren je dringend om je server zo te configureren dat HTTPS wordt vereist, zoals beschreven in onze <a href=\"{docUrl}\">security tips</a>.", "Shared" : "Gedeeld", + "Shared with" : "Gedeeld met", + "Shared by" : "Gedeeld door", "Error setting expiration date" : "Fout tijdens het instellen van de vervaldatum", "The public link will expire no later than {days} days after it is created" : "De openbare link vervalt niet eerder dan {days} dagen na het aanmaken", "Set expiration date" : "Stel vervaldatum in", @@ -273,6 +275,7 @@ "Alternative Logins" : "Alternatieve inlogs", "Account access" : "Account toegang", "You are about to grant %s access to your %s account." : "Je staat op het punt om %s toegang te verlenen to je %s account.", + "Grant access" : "Verleen toegang", "App token" : "App token", "Alternative login using app token" : "Alternatieve login doormiddel van app token", "Redirecting …" : "Omleiding ...", diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js index f5869233b7f..a65779148f4 100644 --- a/core/l10n/pt_BR.js +++ b/core/l10n/pt_BR.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "O cabeçalho HTTP \"Strict-Transport-Security\" não está configurado para pelo menos \"{segundos}\" segundos. Para maior segurança recomendamos a ativação HSTS como descrito em nossas <a href=\"{docUrl}\" rel=\"noreferrer\">dicas de segurança</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Você está acessando este site via HTTP. Sugerimos fortemente que você configure o servidor para exigir o uso de HTTPS como descrito em nossas <a href=\"{docUrl}\">dicas de segurança</a>.", "Shared" : "Compartilhado", + "Shared with" : "Compartilhado com", + "Shared by" : "Compartilhado por", "Error setting expiration date" : "Erro ao definir data de expiração", "The public link will expire no later than {days} days after it is created" : "O link público irá expirar não antes de {days} depois de criado", "Set expiration date" : "Definir data de expiração", diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json index 74ddcf617a9..99aab4785c5 100644 --- a/core/l10n/pt_BR.json +++ b/core/l10n/pt_BR.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "O cabeçalho HTTP \"Strict-Transport-Security\" não está configurado para pelo menos \"{segundos}\" segundos. Para maior segurança recomendamos a ativação HSTS como descrito em nossas <a href=\"{docUrl}\" rel=\"noreferrer\">dicas de segurança</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Você está acessando este site via HTTP. Sugerimos fortemente que você configure o servidor para exigir o uso de HTTPS como descrito em nossas <a href=\"{docUrl}\">dicas de segurança</a>.", "Shared" : "Compartilhado", + "Shared with" : "Compartilhado com", + "Shared by" : "Compartilhado por", "Error setting expiration date" : "Erro ao definir data de expiração", "The public link will expire no later than {days} days after it is created" : "O link público irá expirar não antes de {days} depois de criado", "Set expiration date" : "Definir data de expiração", diff --git a/core/l10n/sr.js b/core/l10n/sr.js index 8025d76179b..26ebd7156ee 100644 --- a/core/l10n/sr.js +++ b/core/l10n/sr.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP заглавље није подешено да буде бар \"{seconds}\" секунди. За додатну сигурност, предлажемо да омогућите HSTS као што је описано у нашим <a href=\"{docUrl}\" rel=\"noreferrer\">сигурносним саветима</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Приступате овом сајту преко HTTP-а. Препоручујемо да подесите Ваш сервер да захтева HTTPS као што је описано у нашим <a href=\"{docUrl}\">безбедоносним саветима</a>.", "Shared" : "Дељено", + "Shared with" : "Дељено са", + "Shared by" : "Поделио", "Error setting expiration date" : "Грешка при постављању датума истека", "The public link will expire no later than {days} days after it is created" : "Јавна веза ће престати да важи {days} дана након стварања", "Set expiration date" : "Постави датум истека", @@ -275,6 +277,7 @@ OC.L10N.register( "Alternative Logins" : "Алтернативне пријаве", "Account access" : "Приступ налогу", "You are about to grant %s access to your %s account." : "Управо ћете одобрити %s приступ Вашем %s налогу.", + "Grant access" : "Одобри приступ", "App token" : "Апликативни жетон", "Alternative login using app token" : "Алтернативна пријава коришћењем апликативног жетона", "Redirecting …" : "Преусмеравање ...", diff --git a/core/l10n/sr.json b/core/l10n/sr.json index 4bcf9ace0b3..fe1912ac9ed 100644 --- a/core/l10n/sr.json +++ b/core/l10n/sr.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP заглавље није подешено да буде бар \"{seconds}\" секунди. За додатну сигурност, предлажемо да омогућите HSTS као што је описано у нашим <a href=\"{docUrl}\" rel=\"noreferrer\">сигурносним саветима</a>.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Приступате овом сајту преко HTTP-а. Препоручујемо да подесите Ваш сервер да захтева HTTPS као што је описано у нашим <a href=\"{docUrl}\">безбедоносним саветима</a>.", "Shared" : "Дељено", + "Shared with" : "Дељено са", + "Shared by" : "Поделио", "Error setting expiration date" : "Грешка при постављању датума истека", "The public link will expire no later than {days} days after it is created" : "Јавна веза ће престати да важи {days} дана након стварања", "Set expiration date" : "Постави датум истека", @@ -273,6 +275,7 @@ "Alternative Logins" : "Алтернативне пријаве", "Account access" : "Приступ налогу", "You are about to grant %s access to your %s account." : "Управо ћете одобрити %s приступ Вашем %s налогу.", + "Grant access" : "Одобри приступ", "App token" : "Апликативни жетон", "Alternative login using app token" : "Алтернативна пријава коришћењем апликативног жетона", "Redirecting …" : "Преусмеравање ...", diff --git a/core/l10n/tr.js b/core/l10n/tr.js index 400d1a1a472..735157af374 100644 --- a/core/l10n/tr.js +++ b/core/l10n/tr.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP üst bilgisi en azından\"{seconds}\" saniyedir yapılandırılmamış. Gelişmiş güvenlik sağlamak için <a href=\"{docUrl}\" rel=\"noreferrer\">güvenlik ipuçlarında</a> anlatıldığı şekilde HSTS özelliğinin etkinleştirilmesi önerilir.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Bu siteye HTTP üzerinde erişiyorsunuz. Sunucunuzu <a href=\"{docUrl}\">güvenlik ipuçlarında</a> anlatıldığı şekilde HTTPS kullanımını zorlayacak şekilde yapılandırmanız önemle önerilir.", "Shared" : "Paylaşılmış", + "Shared with" : "Paylaşılanlar", + "Shared by" : "Paylaşan", "Error setting expiration date" : "Son kullanma tarihi ayarlanırken sorun çıktı", "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan {days} gün sonra kullanımdan kaldırılacak", "Set expiration date" : "Son kullanma tarihini ayarla", diff --git a/core/l10n/tr.json b/core/l10n/tr.json index 59e4de92e62..6f8d59c11ec 100644 --- a/core/l10n/tr.json +++ b/core/l10n/tr.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "\"Strict-Transport-Security\" HTTP üst bilgisi en azından\"{seconds}\" saniyedir yapılandırılmamış. Gelişmiş güvenlik sağlamak için <a href=\"{docUrl}\" rel=\"noreferrer\">güvenlik ipuçlarında</a> anlatıldığı şekilde HSTS özelliğinin etkinleştirilmesi önerilir.", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "Bu siteye HTTP üzerinde erişiyorsunuz. Sunucunuzu <a href=\"{docUrl}\">güvenlik ipuçlarında</a> anlatıldığı şekilde HTTPS kullanımını zorlayacak şekilde yapılandırmanız önemle önerilir.", "Shared" : "Paylaşılmış", + "Shared with" : "Paylaşılanlar", + "Shared by" : "Paylaşan", "Error setting expiration date" : "Son kullanma tarihi ayarlanırken sorun çıktı", "The public link will expire no later than {days} days after it is created" : "Herkese açık bağlantı, oluşturulduktan {days} gün sonra kullanımdan kaldırılacak", "Set expiration date" : "Son kullanma tarihini ayarla", diff --git a/core/l10n/zh_TW.js b/core/l10n/zh_TW.js index 9bdccb67665..c2c8bda9d21 100644 --- a/core/l10n/zh_TW.js +++ b/core/l10n/zh_TW.js @@ -125,6 +125,8 @@ OC.L10N.register( "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "此 HTTP \"Strict-Transport-Security\" 標頭並未設定持續至少 {seconds} 秒。為了提高安全性,我們在<a href=\"{docUrl}\" rel=\"noreferrer\">安全提示</a>中有詳述並建議啟用 HSTS。", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "您正在藉由 HTTP 訪問此網站,如我們的<a href=\"{docUrl}\">安全性提示</a>所述,我們強烈建議設定您的伺服器須要求使用 HTTPS", "Shared" : "已分享", + "Shared with" : "分享給", + "Shared by" : "分享自", "Error setting expiration date" : "設定到期日發生錯誤", "The public link will expire no later than {days} days after it is created" : "這個公開連結會在 {days} 天內失效", "Set expiration date" : "指定到期日", @@ -275,6 +277,7 @@ OC.L10N.register( "Alternative Logins" : "其他登入方法", "Account access" : "帳戶存取", "You are about to grant %s access to your %s account." : "你已批准%s存取你的%s帳戶。", + "Grant access" : "允許存取", "App token" : "App token", "Alternative login using app token" : "透過應用程式憑證的方式登入", "Redirecting …" : "重新導向…", diff --git a/core/l10n/zh_TW.json b/core/l10n/zh_TW.json index 38505bb766e..956f675092b 100644 --- a/core/l10n/zh_TW.json +++ b/core/l10n/zh_TW.json @@ -123,6 +123,8 @@ "The \"Strict-Transport-Security\" HTTP header is not configured to at least \"{seconds}\" seconds. For enhanced security we recommend enabling HSTS as described in our <a href=\"{docUrl}\" rel=\"noreferrer\">security tips</a>." : "此 HTTP \"Strict-Transport-Security\" 標頭並未設定持續至少 {seconds} 秒。為了提高安全性,我們在<a href=\"{docUrl}\" rel=\"noreferrer\">安全提示</a>中有詳述並建議啟用 HSTS。", "You are accessing this site via HTTP. We strongly suggest you configure your server to require using HTTPS instead as described in our <a href=\"{docUrl}\">security tips</a>." : "您正在藉由 HTTP 訪問此網站,如我們的<a href=\"{docUrl}\">安全性提示</a>所述,我們強烈建議設定您的伺服器須要求使用 HTTPS", "Shared" : "已分享", + "Shared with" : "分享給", + "Shared by" : "分享自", "Error setting expiration date" : "設定到期日發生錯誤", "The public link will expire no later than {days} days after it is created" : "這個公開連結會在 {days} 天內失效", "Set expiration date" : "指定到期日", @@ -273,6 +275,7 @@ "Alternative Logins" : "其他登入方法", "Account access" : "帳戶存取", "You are about to grant %s access to your %s account." : "你已批准%s存取你的%s帳戶。", + "Grant access" : "允許存取", "App token" : "App token", "Alternative login using app token" : "透過應用程式憑證的方式登入", "Redirecting …" : "重新導向…", diff --git a/core/register_command.php b/core/register_command.php index 1b91d2005b9..3f7fbf508e5 100644 --- a/core/register_command.php +++ b/core/register_command.php @@ -7,12 +7,16 @@ * @author Christian Kampka <christian@kampka.net> * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author sualko <klaus@jsxc.org> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Thomas Pulzer <t.pulzer@kniel.de> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/core/routes.php b/core/routes.php index bca62098b94..1cb44e47d9d 100644 --- a/core/routes.php +++ b/core/routes.php @@ -4,14 +4,15 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Bernhard Posselt <dev@bernhard-posselt.com> - * @author Christopher Schäpers <kondou@ts.unde.re> * @author Christoph Wurst <christoph@owncloud.com> - * @author Georg Ehrke <georg@owncloud.com> + * @author Christopher Schäpers <kondou@ts.unde.re> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Thomas Tanghus <thomas@tanghus.net> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> * @@ -2,14 +2,18 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Artem Sidorenko <artem@posteo.de> * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Christopher Schäpers <kondou@ts.unde.re> + * @author Damjan Georgievski <gdamjan@gmail.com> * @author Jakob Sack <mail@jakobsack.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Ko- <k.stoffelen@cs.ru.nl> * @author Morris Jobke <hey@morrisjobke.de> * @author Oliver Kohl D.Sc. <oliver@kohl.bz> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Steffen Lindner <mail@steffen-lindner.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/index.php b/index.php index f45b67811f2..abe30d48aba 100644 --- a/index.php +++ b/index.php @@ -2,10 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Sergio Bertolín <sbertolin@solidgear.es> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * @@ -67,7 +70,29 @@ try { OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR); OC_Template::printExceptionErrorPage($ex); } catch (Error $ex) { - \OC::$server->getLogger()->logException($ex, array('app' => 'index')); + try { + \OC::$server->getLogger()->logException($ex, array('app' => 'index')); + } catch (Error $e) { + + $claimedProtocol = strtoupper($_SERVER['SERVER_PROTOCOL']); + $validProtocols = [ + 'HTTP/1.0', + 'HTTP/1.1', + 'HTTP/2', + ]; + $protocol = 'HTTP/1.1'; + if(in_array($claimedProtocol, $validProtocols, true)) { + $protocol = $claimedProtocol; + } + header($protocol . ' 500 Internal Server Error'); + header('Content-Type: text/plain; charset=utf-8'); + print("Internal Server Error\n\n"); + print("The server encountered an internal error and was unable to complete your request.\n"); + print("Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report.\n"); + print("More details can be found in the webserver log.\n"); + + throw $e; + } OC_Response::setStatus(OC_Response::STATUS_INTERNAL_SERVER_ERROR); OC_Template::printExceptionErrorPage($ex); } diff --git a/lib/autoloader.php b/lib/autoloader.php index 08188ef8e59..efab84b44f9 100644 --- a/lib/autoloader.php +++ b/lib/autoloader.php @@ -3,7 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Andreas Fischer <bantu@owncloud.com> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Markus Goetz <markus@woboq.com> diff --git a/lib/base.php b/lib/base.php index b9862e73194..dc09d0f533d 100644 --- a/lib/base.php +++ b/lib/base.php @@ -7,18 +7,21 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Christoph Wurst <christoph@owncloud.com> + * @author Damjan Georgievski <gdamjan@gmail.com> * @author davidgumberg <davidnoizgumberg@gmail.com> * @author Florin Peter <github@florin-peter.de> - * @author Georg Ehrke <georg@owncloud.com> - * @author Hugo Gonzalez Labrador <hglavra@gmail.com> * @author Individual IT Services <info@individual-it.net> * @author Jakob Sack <mail@jakobsack.de> - * @author Joachim Bauch <bauch@struktur.de> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joachim Sokolowski <github@sokolowski.org> * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Ko- <k.stoffelen@cs.ru.nl> * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> @@ -28,9 +31,9 @@ * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sebastian Wessalowski <sebastian@wessalowski.org> * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Thomas Pulzer <t.pulzer@kniel.de> * @author Thomas Tanghus <thomas@tanghus.net> * @author Vincent Petry <pvince81@owncloud.com> * @author Volkan Gezer <volkangezer@gmail.com> diff --git a/lib/l10n/es.js b/lib/l10n/es.js index 5a50a527131..3854b8d0090 100644 --- a/lib/l10n/es.js +++ b/lib/l10n/es.js @@ -2,11 +2,11 @@ OC.L10N.register( "lib", { "Cannot write into \"config\" directory!" : "No se puede escribir en la carpeta \"config\"", - "This can usually be fixed by giving the webserver write access to the config directory" : "Esto podría ser solucionado dándole al servidor permisos de escritura del directorio de configuración", + "This can usually be fixed by giving the webserver write access to the config directory" : "Se podría solucionar esto dándole al servidor permisos de escritura del directorio de configuración", "See %s" : "Ver %s", - "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Esto podría ser solucionado dándole al servidor permisos de escritura del directorio de configuración. Ver %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Se podría solucionar esto dándole al servidor permisos de escritura del directorio de configuración. Ver %s", "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Los archivos de la aplicación %$1s no fueron reemplazados correctamente. Asegúrese que es una versión compatible con el servidor.", - "Sample configuration detected" : "Ejemplo de configuración detectado", + "Sample configuration detected" : "Configuración de ejemplo detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que el ejemplo de configuración ha sido copiado. Esto podría afectar a su instalación, por lo que no tiene soporte. Lea la documentación antes de hacer cambios en config.php", "%1$s and %2$s" : "%1$s y %2$s", "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", @@ -55,8 +55,8 @@ OC.L10N.register( "File name is too long" : "El nombre del archivo es demasiado largo", "Dot files are not allowed" : "Los archivos Dot no están permitidos", "Empty filename is not allowed" : "No se puede dejar el nombre en blanco.", - "App \"%s\" cannot be installed because appinfo file cannot be read." : "La app \"%s\" no puede ser instalada debido a que no se puede leer la información de la app.", - "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "La aplicación \"%s\" no se puede instalar porque no es compatible con esta versión del servidor.", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "No se puede instalar la app \"%s\" debido a que no se puede leer la información de la app.", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "No se puede instalar la aplicación \"%s\" porque no es compatible con esta versión del servidor.", "This is an automatically sent email, please do not reply." : "Este es un correo enviado automáticamente, por favor no responda.", "Help" : "Ayuda", "Apps" : "Aplicaciones", @@ -65,7 +65,7 @@ OC.L10N.register( "Users" : "Usuarios", "APCu" : "APCu", "Redis" : "Redis", - "Basic settings" : "Ajustes Basicos", + "Basic settings" : "Ajustes básicos", "Sharing" : "Compartir", "Security" : "Seguridad", "Encryption" : "Cifrado", @@ -87,14 +87,14 @@ OC.L10N.register( "PostgreSQL username and/or password not valid" : "Usuario y/o contraseña de PostgreSQL no válidos", "You need to enter details of an existing account." : "Necesita ingresar detalles de una cuenta existente.", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X no está soportado y %s no funcionará bien en esta plataforma. ¡Úsela bajo su propio riesgo! ", - "For the best results, please consider using a GNU/Linux server instead." : "Para resultados óptimos, considere utilizar un servidor GNU/Linux.", + "For the best results, please consider using a GNU/Linux server instead." : "Para obtener los mejores resultados, considera utilizar un servidor GNU/Linux.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Parece que esta instancia %s está funcionando en un entorno PHP de 32-bits y el open_basedir se ha configurado en php.ini. Esto acarreará problemas con arhivos de tamaño superior a 4GB y resulta totalmente desaconsejado.", "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor, quite el ajuste de open_basedir —dentro de su php.ini— o pásese a PHP de 64 bits.", "Set an admin username." : "Configurar un nombre de usuario del administrador", "Set an admin password." : "Configurar la contraseña del administrador.", "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", "Given database host is invalid and must not contain the port: %s" : "El servidor de la base de datos dado es inválido y no debe contener el puerto: %s", - "Invalid Federated Cloud ID" : "ID Nube federada inválida", + "Invalid Federated Cloud ID" : "ID de Nube federada inválida", "Sharing %s failed, because the backend does not allow shares from type %i" : "No se pudo compartir %s porque el repositorio no permite recursos compartidos del tipo %i", "Sharing %s failed, because the file does not exist" : "No se pudo compartir %s porque el archivo no existe", "You are not allowed to share %s" : "Usted no está autorizado para compartir %s", @@ -108,8 +108,8 @@ OC.L10N.register( "You need to provide a password to create a public link, only protected links are allowed" : "Es necesario definir una contraseña para crear un enlace publico. Solo los enlaces protegidos están permitidos", "Sharing %s failed, because sharing with links is not allowed" : "Se falló al compartir %s, ya que no está permitida la compartición con enlaces", "Not allowed to create a federated share with the same user" : "No se permite crear un recurso compartido federado con el mismo usuario", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Se falló al compartir %s. No se pudo hallar %s, quizás haya un problema de conexión con el servidor.", - "Share type %s is not valid for %s" : "Compartir tipo %s no es válido para %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Fallo al compartir %s. No se ha podido encontrar %s, quizás haya un problema de conexión con el servidor.", + "Share type %s is not valid for %s" : "El tipo de recurso compartido %s no es válido para %s", "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No se puede fijar fecha de caducidad. Los archivos compartidos no pueden caducar más tarde de %s de ser compartidos", "Cannot set expiration date. Expiration date is in the past" : "No se puede fijar la fecha de caducidad. La fecha de caducidad está en el pasado.", "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El motor compartido %s debe implementar la interfaz OCP\\Share_Backend", @@ -153,18 +153,18 @@ OC.L10N.register( "Th" : "Ju", "Fr" : "Vi", "Sa" : "Sa", - "January" : "Enero", - "February" : "Febrero", - "March" : "Marzo", - "April" : "Abril", - "May" : "Mayo", - "June" : "Junio", - "July" : "Julio", - "August" : "Agosto", - "September" : "Septiembre", - "October" : "Octubre", - "November" : "Noviembre", - "December" : "Diciembre", + "January" : "enero", + "February" : "febrero", + "March" : "marzo", + "April" : "abril", + "May" : "mayo", + "June" : "junio", + "July" : "julio", + "August" : "agosto", + "September" : "septiembre", + "October" : "octubre", + "November" : "noviembre", + "December" : "diciembre", "Jan." : "Ene.", "Feb." : "Feb.", "Mar." : "Mar.", @@ -186,11 +186,11 @@ OC.L10N.register( "Could not create user" : "No se ha podido crear el usuario", "User disabled" : "Usuario deshabilitado", "Login canceled by app" : "Login cancelado por la app", - "No app name specified" : "No se ha especificado nombre de la aplicación", - "App '%s' could not be installed!" : "¡No se pudo instalar la app '%s'!", + "No app name specified" : "No se ha especificado el nombre de la app", + "App '%s' could not be installed!" : "¡No se ha podido instalar la app '%s'!", "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "La app \"%s\" no puede instalarse porque las siguientes dependencias no están cumplimentadas: %s", "a safe home for all your data" : "un hogar seguro para todos tus datos", - "File is currently busy, please try again later" : "Archivo se encuentra actualmente ocupado, por favor inténtelo de nuevo más tarde", + "File is currently busy, please try again later" : "El archivo se encuentra actualmente ocupado, por favor inténtelo de nuevo más tarde", "Can't read file" : "No se puede leer archivo", "Application is not enabled" : "La aplicación no está habilitada", "Authentication error" : "Error de autenticación", @@ -200,7 +200,7 @@ OC.L10N.register( "Cannot write into \"config\" directory" : "No se puede escribir el el directorio de configuración", "Cannot write into \"apps\" directory" : "No se puede escribir en el directorio de \"apps\"", "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Habitualmente, esto puede arreglarse dando al servidor web acceso de escritura al directorio de apps o desactivando la tienda de apps en el archivo de configuración. Véase %s", - "Cannot create \"data\" directory" : "No es posible crear el directorio \"data\"", + "Cannot create \"data\" directory" : "No se puede crear el directorio \"data\"", "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Habitualmente, esto puede arreglarse dando al servidor web acceso de escritura al directorio raíz. Véase %s", "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Habitualmente, los permisos pueden arreglarse dando al servidor web acceso de escritura al directorio raíz. Véase %s", "Setting locale to %s failed" : "Falló la activación del idioma %s ", @@ -219,11 +219,11 @@ OC.L10N.register( "Please ask your server administrator to restart the web server." : "Consulte al administrador de su servidor para reiniciar el servidor web.", "PostgreSQL >= 9 required" : "PostgreSQL 9 o superior requerido.", "Please upgrade your database version" : "Actualice su versión de base de datos.", - "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambie los permisos a 0770 para que el directorio no se pueda mostrar para otros usuarios.", - "Your data directory is readable by other users" : "Su directorio data es leible por otros usuarios", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor, cambia los permisos a 0770 para que el directorio no se pueda mostrar a otros usuarios.", + "Your data directory is readable by other users" : "Tu directorio de datos puede ser leído por otros usuarios", "Your data directory must be an absolute path" : "Su directorio data debe ser una ruta absoluta", "Check the value of \"datadirectory\" in your configuration" : "Compruebe el valor de \"datadirectory\" en su configuración.", - "Your data directory is invalid" : "Su directorio de datos es inválido", + "Your data directory is invalid" : "Tu directorio de datos es inválido", "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Asegúrate de que existe un archivo llamado \".ocdata\" en la raíz del directorio de datos.", "Could not obtain lock type %d on \"%s\"." : "No se pudo realizar el bloqueo %d en \"%s\".", "Storage unauthorized. %s" : "Almacenamiento no autorizado. %s", @@ -232,7 +232,7 @@ OC.L10N.register( "Storage is temporarily not available" : "El almacenamiento no esta disponible temporalmente", "Storage connection timeout. %s" : "Tiempo de conexión de almacenamiento agotado. %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto puede solucionarse fácilmente %sotorgándole permisos de escritura al directorio de configuración%s.", - "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Módulo con id: %s no existe. Por favor habilítelo en los ajustes de sus aplicaciones o contáctese con su administrador.", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con id: %s no existe. Por favor habilítelo en los ajustes de sus aplicaciones o contáctese con su administrador.", "Server settings" : "Configuración del servidor", "DB Error: \"%s\"" : "Error BD: \"%s\"", "Offending command was: \"%s\"" : "Comando infractor: \"%s\"", @@ -248,9 +248,9 @@ OC.L10N.register( "Personal" : "Personal", "Admin" : "Administración", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto puede solucionarse fácilmente %sdándole permisos de escritura al servidor en el directorio%s de apps o deshabilitando la tienda de apps en el archivo de configuración.", - "Cannot create \"data\" directory (%s)" : "No puedo crear del directorio \"data\" (%s)", + "Cannot create \"data\" directory (%s)" : "No se puede crear el directorio \"data\" (%s)", "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "Normalmente esto se puede solucionar <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dándole al servidor web permisos de escritura en todo el directorio o el directorio 'root'</a>", - "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos normalmente puede solucionarse %sdándole al servidor permisos de escritura del directorio raíz%s.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos normalmente pueden arreglarse %sdándole al servidor permisos de escritura del directorio raíz%s.", "Data directory (%s) is readable by other users" : "El directorio de datos (%s) se puede leer por otros usuarios.", "Data directory (%s) must be an absolute path" : "El directorio de datos (%s) debe ser una ruta absoluta", "Data directory (%s) is invalid" : "El directorio de datos (%s) no es válido", diff --git a/lib/l10n/es.json b/lib/l10n/es.json index c8ec965fcfe..bf00e20c329 100644 --- a/lib/l10n/es.json +++ b/lib/l10n/es.json @@ -1,10 +1,10 @@ { "translations": { "Cannot write into \"config\" directory!" : "No se puede escribir en la carpeta \"config\"", - "This can usually be fixed by giving the webserver write access to the config directory" : "Esto podría ser solucionado dándole al servidor permisos de escritura del directorio de configuración", + "This can usually be fixed by giving the webserver write access to the config directory" : "Se podría solucionar esto dándole al servidor permisos de escritura del directorio de configuración", "See %s" : "Ver %s", - "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Esto podría ser solucionado dándole al servidor permisos de escritura del directorio de configuración. Ver %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Se podría solucionar esto dándole al servidor permisos de escritura del directorio de configuración. Ver %s", "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Los archivos de la aplicación %$1s no fueron reemplazados correctamente. Asegúrese que es una versión compatible con el servidor.", - "Sample configuration detected" : "Ejemplo de configuración detectado", + "Sample configuration detected" : "Configuración de ejemplo detectada", "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que el ejemplo de configuración ha sido copiado. Esto podría afectar a su instalación, por lo que no tiene soporte. Lea la documentación antes de hacer cambios en config.php", "%1$s and %2$s" : "%1$s y %2$s", "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", @@ -53,8 +53,8 @@ "File name is too long" : "El nombre del archivo es demasiado largo", "Dot files are not allowed" : "Los archivos Dot no están permitidos", "Empty filename is not allowed" : "No se puede dejar el nombre en blanco.", - "App \"%s\" cannot be installed because appinfo file cannot be read." : "La app \"%s\" no puede ser instalada debido a que no se puede leer la información de la app.", - "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "La aplicación \"%s\" no se puede instalar porque no es compatible con esta versión del servidor.", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "No se puede instalar la app \"%s\" debido a que no se puede leer la información de la app.", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "No se puede instalar la aplicación \"%s\" porque no es compatible con esta versión del servidor.", "This is an automatically sent email, please do not reply." : "Este es un correo enviado automáticamente, por favor no responda.", "Help" : "Ayuda", "Apps" : "Aplicaciones", @@ -63,7 +63,7 @@ "Users" : "Usuarios", "APCu" : "APCu", "Redis" : "Redis", - "Basic settings" : "Ajustes Basicos", + "Basic settings" : "Ajustes básicos", "Sharing" : "Compartir", "Security" : "Seguridad", "Encryption" : "Cifrado", @@ -85,14 +85,14 @@ "PostgreSQL username and/or password not valid" : "Usuario y/o contraseña de PostgreSQL no válidos", "You need to enter details of an existing account." : "Necesita ingresar detalles de una cuenta existente.", "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X no está soportado y %s no funcionará bien en esta plataforma. ¡Úsela bajo su propio riesgo! ", - "For the best results, please consider using a GNU/Linux server instead." : "Para resultados óptimos, considere utilizar un servidor GNU/Linux.", + "For the best results, please consider using a GNU/Linux server instead." : "Para obtener los mejores resultados, considera utilizar un servidor GNU/Linux.", "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Parece que esta instancia %s está funcionando en un entorno PHP de 32-bits y el open_basedir se ha configurado en php.ini. Esto acarreará problemas con arhivos de tamaño superior a 4GB y resulta totalmente desaconsejado.", "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor, quite el ajuste de open_basedir —dentro de su php.ini— o pásese a PHP de 64 bits.", "Set an admin username." : "Configurar un nombre de usuario del administrador", "Set an admin password." : "Configurar la contraseña del administrador.", "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", "Given database host is invalid and must not contain the port: %s" : "El servidor de la base de datos dado es inválido y no debe contener el puerto: %s", - "Invalid Federated Cloud ID" : "ID Nube federada inválida", + "Invalid Federated Cloud ID" : "ID de Nube federada inválida", "Sharing %s failed, because the backend does not allow shares from type %i" : "No se pudo compartir %s porque el repositorio no permite recursos compartidos del tipo %i", "Sharing %s failed, because the file does not exist" : "No se pudo compartir %s porque el archivo no existe", "You are not allowed to share %s" : "Usted no está autorizado para compartir %s", @@ -106,8 +106,8 @@ "You need to provide a password to create a public link, only protected links are allowed" : "Es necesario definir una contraseña para crear un enlace publico. Solo los enlaces protegidos están permitidos", "Sharing %s failed, because sharing with links is not allowed" : "Se falló al compartir %s, ya que no está permitida la compartición con enlaces", "Not allowed to create a federated share with the same user" : "No se permite crear un recurso compartido federado con el mismo usuario", - "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Se falló al compartir %s. No se pudo hallar %s, quizás haya un problema de conexión con el servidor.", - "Share type %s is not valid for %s" : "Compartir tipo %s no es válido para %s", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Fallo al compartir %s. No se ha podido encontrar %s, quizás haya un problema de conexión con el servidor.", + "Share type %s is not valid for %s" : "El tipo de recurso compartido %s no es válido para %s", "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No se puede fijar fecha de caducidad. Los archivos compartidos no pueden caducar más tarde de %s de ser compartidos", "Cannot set expiration date. Expiration date is in the past" : "No se puede fijar la fecha de caducidad. La fecha de caducidad está en el pasado.", "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El motor compartido %s debe implementar la interfaz OCP\\Share_Backend", @@ -151,18 +151,18 @@ "Th" : "Ju", "Fr" : "Vi", "Sa" : "Sa", - "January" : "Enero", - "February" : "Febrero", - "March" : "Marzo", - "April" : "Abril", - "May" : "Mayo", - "June" : "Junio", - "July" : "Julio", - "August" : "Agosto", - "September" : "Septiembre", - "October" : "Octubre", - "November" : "Noviembre", - "December" : "Diciembre", + "January" : "enero", + "February" : "febrero", + "March" : "marzo", + "April" : "abril", + "May" : "mayo", + "June" : "junio", + "July" : "julio", + "August" : "agosto", + "September" : "septiembre", + "October" : "octubre", + "November" : "noviembre", + "December" : "diciembre", "Jan." : "Ene.", "Feb." : "Feb.", "Mar." : "Mar.", @@ -184,11 +184,11 @@ "Could not create user" : "No se ha podido crear el usuario", "User disabled" : "Usuario deshabilitado", "Login canceled by app" : "Login cancelado por la app", - "No app name specified" : "No se ha especificado nombre de la aplicación", - "App '%s' could not be installed!" : "¡No se pudo instalar la app '%s'!", + "No app name specified" : "No se ha especificado el nombre de la app", + "App '%s' could not be installed!" : "¡No se ha podido instalar la app '%s'!", "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "La app \"%s\" no puede instalarse porque las siguientes dependencias no están cumplimentadas: %s", "a safe home for all your data" : "un hogar seguro para todos tus datos", - "File is currently busy, please try again later" : "Archivo se encuentra actualmente ocupado, por favor inténtelo de nuevo más tarde", + "File is currently busy, please try again later" : "El archivo se encuentra actualmente ocupado, por favor inténtelo de nuevo más tarde", "Can't read file" : "No se puede leer archivo", "Application is not enabled" : "La aplicación no está habilitada", "Authentication error" : "Error de autenticación", @@ -198,7 +198,7 @@ "Cannot write into \"config\" directory" : "No se puede escribir el el directorio de configuración", "Cannot write into \"apps\" directory" : "No se puede escribir en el directorio de \"apps\"", "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Habitualmente, esto puede arreglarse dando al servidor web acceso de escritura al directorio de apps o desactivando la tienda de apps en el archivo de configuración. Véase %s", - "Cannot create \"data\" directory" : "No es posible crear el directorio \"data\"", + "Cannot create \"data\" directory" : "No se puede crear el directorio \"data\"", "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Habitualmente, esto puede arreglarse dando al servidor web acceso de escritura al directorio raíz. Véase %s", "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Habitualmente, los permisos pueden arreglarse dando al servidor web acceso de escritura al directorio raíz. Véase %s", "Setting locale to %s failed" : "Falló la activación del idioma %s ", @@ -217,11 +217,11 @@ "Please ask your server administrator to restart the web server." : "Consulte al administrador de su servidor para reiniciar el servidor web.", "PostgreSQL >= 9 required" : "PostgreSQL 9 o superior requerido.", "Please upgrade your database version" : "Actualice su versión de base de datos.", - "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambie los permisos a 0770 para que el directorio no se pueda mostrar para otros usuarios.", - "Your data directory is readable by other users" : "Su directorio data es leible por otros usuarios", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor, cambia los permisos a 0770 para que el directorio no se pueda mostrar a otros usuarios.", + "Your data directory is readable by other users" : "Tu directorio de datos puede ser leído por otros usuarios", "Your data directory must be an absolute path" : "Su directorio data debe ser una ruta absoluta", "Check the value of \"datadirectory\" in your configuration" : "Compruebe el valor de \"datadirectory\" en su configuración.", - "Your data directory is invalid" : "Su directorio de datos es inválido", + "Your data directory is invalid" : "Tu directorio de datos es inválido", "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Asegúrate de que existe un archivo llamado \".ocdata\" en la raíz del directorio de datos.", "Could not obtain lock type %d on \"%s\"." : "No se pudo realizar el bloqueo %d en \"%s\".", "Storage unauthorized. %s" : "Almacenamiento no autorizado. %s", @@ -230,7 +230,7 @@ "Storage is temporarily not available" : "El almacenamiento no esta disponible temporalmente", "Storage connection timeout. %s" : "Tiempo de conexión de almacenamiento agotado. %s", "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto puede solucionarse fácilmente %sotorgándole permisos de escritura al directorio de configuración%s.", - "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Módulo con id: %s no existe. Por favor habilítelo en los ajustes de sus aplicaciones o contáctese con su administrador.", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con id: %s no existe. Por favor habilítelo en los ajustes de sus aplicaciones o contáctese con su administrador.", "Server settings" : "Configuración del servidor", "DB Error: \"%s\"" : "Error BD: \"%s\"", "Offending command was: \"%s\"" : "Comando infractor: \"%s\"", @@ -246,9 +246,9 @@ "Personal" : "Personal", "Admin" : "Administración", "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto puede solucionarse fácilmente %sdándole permisos de escritura al servidor en el directorio%s de apps o deshabilitando la tienda de apps en el archivo de configuración.", - "Cannot create \"data\" directory (%s)" : "No puedo crear del directorio \"data\" (%s)", + "Cannot create \"data\" directory (%s)" : "No se puede crear el directorio \"data\" (%s)", "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "Normalmente esto se puede solucionar <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">dándole al servidor web permisos de escritura en todo el directorio o el directorio 'root'</a>", - "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos normalmente puede solucionarse %sdándole al servidor permisos de escritura del directorio raíz%s.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos normalmente pueden arreglarse %sdándole al servidor permisos de escritura del directorio raíz%s.", "Data directory (%s) is readable by other users" : "El directorio de datos (%s) se puede leer por otros usuarios.", "Data directory (%s) must be an absolute path" : "El directorio de datos (%s) debe ser una ruta absoluta", "Data directory (%s) is invalid" : "El directorio de datos (%s) no es válido", diff --git a/lib/l10n/es_EC.js b/lib/l10n/es_EC.js new file mode 100644 index 00000000000..89acfdc93fe --- /dev/null +++ b/lib/l10n/es_EC.js @@ -0,0 +1,259 @@ +OC.L10N.register( + "lib", + { + "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Esto generalmente se resuelve dándole al servidor web acceso para escribir en el directorio config. ", + "See %s" : "Ver %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio config. Por favor ve %s", + "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Los archivos de la aplicación %$1s no fueron correctamente remplazados. Por favor asegúrarte de que la versión sea compatible con el servidor.", + "Sample configuration detected" : "Se ha detectado la configuración de muestra", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que la configuración de muestra ha sido copiada. Esto puede arruiniar tu instalacón y no está soportado. Por favor lee la documentación antes de hacer cambios en el archivo config.php", + "%1$s and %2$s" : "%1$s y %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s y %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s y %5$s", + "Education Edition" : "Edición Educativa", + "Enterprise bundle" : "Paquete empresarial", + "Groupware bundle" : "Paquete de Groupware", + "Social sharing bundle" : "Paquete para compartir en redes sociales", + "PHP %s or higher is required." : "Se requiere de PHP %s o superior.", + "PHP with a version lower than %s is required." : "PHP con una versión inferiror a la %s es requerido. ", + "%sbit or higher PHP required." : "se requiere PHP para %sbit o superior.", + "Following databases are supported: %s" : "Las siguientes bases de datos están soportadas: %s", + "The command line tool %s could not be found" : "No fue posible encontar la herramienta de línea de comando %s", + "The library %s is not available." : "La biblioteca %s no está disponible. ", + "Library %s with a version higher than %s is required - available version %s." : "La biblitoteca %s con una versión superiror a la %s es requerida - versión disponible %s.", + "Library %s with a version lower than %s is required - available version %s." : "Se requiere de la biblioteca %s con una versión inferiror a la %s - la versión %s está disponible. ", + "Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s", + "Server version %s or higher is required." : "Se requiere la versión del servidor %s o superior. ", + "Server version %s or lower is required." : "La versión del servidor %s o inferior es requerdia. ", + "Unknown filetype" : "Tipo de archivo desconocido", + "Invalid image" : "Imagen inválida", + "Avatar image is not square" : "La imagen del avatar no es un cuadrado", + "today" : "hoy", + "tomorrow" : "mañana", + "yesterday" : "ayer", + "_in %n day_::_in %n days_" : ["en %n día","en %n días"], + "_%n day ago_::_%n days ago_" : ["hace %n día","hace %n días"], + "next month" : "próximo mes", + "last month" : "mes pasado", + "_in %n month_::_in %n months_" : ["en %n mes","en %n meses"], + "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"], + "next year" : "próximo año", + "last year" : "año pasado", + "_in %n year_::_in %n years_" : ["en %n año","en %n años"], + "_%n year ago_::_%n years ago_" : ["hace %n año","hace %n años"], + "_in %n hour_::_in %n hours_" : ["en %n hora","en %n horas"], + "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], + "_in %n minute_::_in %n minutes_" : ["en %n minuto","en %n minutos"], + "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], + "in a few seconds" : "en algunos segundos", + "seconds ago" : "hace segundos", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID: %sno existe. Por favor hablíitalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "File name is a reserved word" : "Nombre de archivo es una palabra reservada", + "File name contains at least one invalid character" : "El nombre del archivo contiene al menos un caracter inválido", + "File name is too long" : "El nombre del archivo es demasiado largo", + "Dot files are not allowed" : "Los archivos Dot no están permitidos", + "Empty filename is not allowed" : "El uso de nombres de archivo vacíos no está permitido", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "La aplicación \"%s\" no puede ser instalada porque el archivo appinfo no se puede leer. ", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "La aplicación \"%s\" no puede ser instalada porque no es compatible con esta versión del servidor. ", + "This is an automatically sent email, please do not reply." : "Este es un correo enviado automáticamente, por favor no lo contestes. ", + "Help" : "Ayuda", + "Apps" : "Aplicaciones", + "Settings" : "Configuraciones", + "Log out" : "Salir", + "Users" : "Usuarios", + "APCu" : "APCu", + "Redis" : "Redis", + "Basic settings" : "Configuraciones básicas", + "Sharing" : "Compartiendo", + "Security" : "Seguridad", + "Encryption" : "Encripción", + "Additional settings" : "Configuraciones adicionales", + "Tips & tricks" : "Consejos & trucos", + "Personal info" : "Información personal", + "Sync clients" : "Sincronizar clientes", + "Unlimited" : "Ilimitado", + "__language_name__" : "Español (México)", + "Verifying" : "Verficando", + "Verifying …" : "Verficando ...", + "Verify" : "Verificar", + "%s enter the database username and name." : "%s ingresa el usuario y nombre de la base de datos", + "%s enter the database username." : "%s ingresa el nombre de usuario de la base de datos.", + "%s enter the database name." : "%s ingresar el nombre de la base de datos", + "%s you may not use dots in the database name" : "%s no puedes utilizar puntos en el nombre de la base de datos", + "Oracle connection could not be established" : "No fue posible establecer la conexión a Oracle", + "Oracle username and/or password not valid" : "Usuario y/o contraseña de Oracle inválidos", + "PostgreSQL username and/or password not valid" : "El Usuario y/o Contraseña de PostgreSQL inválido(s)", + "You need to enter details of an existing account." : "Necesitas ingresar los detalles de una cuenta existente.", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "OS X de Mac no está soportado y %s no funcionará correctamente en esta plataforma ¡Úsalo bajo tu propio riesgo!", + "For the best results, please consider using a GNU/Linux server instead." : "Para mejores resultados, por favor cosidera usar en su lugar un servidor GNU/Linux.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Al parecer esta instancia %s está corriendo en un ambiente PHP de 32-bits y el open_basedir ha sido configurado en el archivo php.ini. Esto generará problemas con archivos de más de 4GB de tamaño y es altamente desalentado. ", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor elimina el ajuste open_basedir de tu archivo php.ini o cambia a PHP de 64 bits. ", + "Set an admin username." : "Establecer un Usuario administrador", + "Set an admin password." : "Establecer la contraseña del administrador.", + "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", + "Given database host is invalid and must not contain the port: %s" : "El servidor de base de datos ingresado es inválido y no debe contener el puerto: %s", + "Invalid Federated Cloud ID" : "ID Inválido", + "Sharing %s failed, because the backend does not allow shares from type %i" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %i", + "Sharing %s failed, because the file does not exist" : "Se presentó una falla al compartir %s porque el archivo no existe", + "You are not allowed to share %s" : "No tienes permitido compartir %s", + "Sharing %s failed, because you can not share with yourself" : "Se presentó una falla al compartir %s, porque no puedes compartir contigo mismo", + "Sharing %s failed, because the user %s does not exist" : "Se presentó una falla al compartir %s porque el usuario %s no existe", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Se presentó una falla al compartir %s porque el usuario %s no es un miembro de ninguno de los grupos de los cuales %s es miembro", + "Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya había sido compartido con %s", + "Sharing %s failed, because this item is already shared with user %s" : "Se presento una falla al compartir %s, porque este elemento ya ha sido compartido con el usuario %s", + "Sharing %s failed, because the group %s does not exist" : "Se presentó una falla al compartir %s, porque el grupo %s no existe", + "Sharing %s failed, because %s is not a member of the group %s" : "Se presentó una falla al compartir %s debido a que %s no es un miembro del grupo %s", + "You need to provide a password to create a public link, only protected links are allowed" : "Necesitas proporcionar una contraseña para crear una liga pública, sólo se permiten ligas protegidas. ", + "Sharing %s failed, because sharing with links is not allowed" : "Se presentó una falla al compartir %s porque no está permitido compartir con ligas", + "Not allowed to create a federated share with the same user" : "No está permitido crear un elemento compartido con el mismo usuario", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Se presentó una falla al compartir %s, no fue posible encontrar %s, tal vez el servidor sea inalcanzable por el momento", + "Share type %s is not valid for %s" : "El tipo del elemento compartido %s no es válido para %s", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No ha sido posible establecer la fecha de expiración. Los recursos compartidos no pueden expirar después de %s tras haber sido compartidos", + "Cannot set expiration date. Expiration date is in the past" : "No ha sido posible establecer la fecha de expiración. La fecha de expiración ya ha pasado", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El backend %s que comparte debe implementar la interface OCP\\Share_Backend", + "Sharing backend %s not found" : "No fue encontrado el Backend que comparte %s ", + "Sharing backend for %s not found" : "No fue encontrado el Backend que comparte para %s", + "Sharing failed, because the user %s is the original sharer" : "Se presentó una falla al compartir, porque el usuario %s es quien compartió originalmente", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al compartir %s, porque los permisos exceden los permisos otorgados a %s", + "Sharing %s failed, because resharing is not allowed" : "Falla al compartir %s debído a que no se permite volver a compartir", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Se presentó una falla al compartir %s porque el backend que comparte %s no pudo encontrar su origen", + "Sharing %s failed, because the file could not be found in the file cache" : "Se presentó una falla al compartir %s porque el archivo no se encontró en el caché de archivos", + "Can’t increase permissions of %s" : "No es posible incrementar los privilegios de %s", + "Files can’t be shared with delete permissions" : "Los archivos no se pueden compartir con permisos de borrado", + "Files can’t be shared with create permissions" : "Los archivos no se pueden compartir con permisos de creación", + "Expiration date is in the past" : "La fecha de expiración se encuentra en el pasado", + "Can’t set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s compartió contigo »%s«.", + "Click the button below to open it." : "Haz click en el botón inferior para abrirlo. ", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s por %s", + "The requested share does not exist anymore" : "El recurso compartido solicitado ya no existe", + "Could not find category \"%s\"" : "No fue posible encontrar la categoria \"%s\"", + "Sunday" : "Domingo", + "Monday" : "Lunes", + "Tuesday" : "Martes", + "Wednesday" : "Miércoles", + "Thursday" : "Jueves", + "Friday" : "Viernes", + "Saturday" : "Sábado", + "Sun." : "Dom.", + "Mon." : "Lun.", + "Tue." : "Mar.", + "Wed." : "Mie.", + "Thu." : "Jue.", + "Fri." : "Vie.", + "Sat." : "Sab.", + "Su" : "Do", + "Mo" : "Lu", + "Tu" : "Ma", + "We" : "Mi", + "Th" : "Ju", + "Fr" : "Vi", + "Sa" : "Sa", + "January" : "Enero", + "February" : "Febrero", + "March" : "Marzo", + "April" : "Abril", + "May" : "Mayo", + "June" : "Junio", + "July" : "Julio", + "August" : "Agosto", + "September" : "Septiembre", + "October" : "Octubre", + "November" : "Noviembre", + "December" : "Diciembre", + "Jan." : "Ene.", + "Feb." : "Feb.", + "Mar." : "Mar.", + "Apr." : "Abr.", + "May." : "May.", + "Jun." : "Jun.", + "Jul." : "Jul.", + "Aug." : "Ago.", + "Sep." : "Sep.", + "Oct." : "Oct.", + "Nov." : "Nov.", + "Dec." : "Dic.", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Sólo se permiten los siguientes caracteres en el usuario: \"a-z\", \"A-Z\", \"0-9\" y \"_.@-'\"", + "A valid username must be provided" : "Debes proporcionar un nombre de usuario válido", + "Username contains whitespace at the beginning or at the end" : "El usuario contiene un espacio en blanco al inicio o al final", + "Username must not consist of dots only" : "El usuario no debe consistir de solo puntos. ", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "The username is already being used" : "Ese usuario ya está en uso", + "Could not create user" : "No fue posible crear el usuario", + "User disabled" : "Usuario deshabilitado", + "Login canceled by app" : "Inicio de sesión cancelado por la aplicación", + "No app name specified" : "No se ha especificado el nombre de la aplicación", + "App '%s' could not be installed!" : "¡La aplicación \"%s\" no pudo ser instalada!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "La aplicación \"%s\" no puede ser instalada porque las siguientes dependencias no están satisfechas: %s ", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "File is currently busy, please try again later" : "El archivo se encuentra actualmente en uso, por favor intentalo más tarde. ", + "Can't read file" : "No se puede leer el archivo", + "Application is not enabled" : "La aplicación está deshabilitada", + "Authentication error" : "Error de autenticación", + "Token expired. Please reload page." : "La ficha ha expirado. Por favor recarga la página.", + "Unknown user" : "Ususario desconocido", + "No database drivers (sqlite, mysql, or postgresql) installed." : "No cuentas con controladores de base de datos (sqlite, mysql o postgresql) instalados. ", + "Cannot write into \"config\" directory" : "No fue posible escribir en el directorio \"config\"", + "Cannot write into \"apps\" directory" : "No fue posible escribir en el directorio \"apps\"", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio de las aplicaciones o deshabilitando la appstore en el archivo config. Por favor ve %s", + "Cannot create \"data\" directory" : "No fue posible crear el directorio \"data\"", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Por lo general los permisos se pueden corregir al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s.", + "Setting locale to %s failed" : "Se presentó una falla al establecer la regionalización a %s", + "Please install one of these locales on your system and restart your webserver." : "Por favor instala uno de las siguientes configuraciones locales en tu sistema y reinicia tu servidor web", + "Please ask your server administrator to install the module." : "Por favor solicita a tu adminsitrador la instalación del módulo. ", + "PHP module %s not installed." : "El módulo de PHP %s no está instalado. ", + "PHP setting \"%s\" is not set to \"%s\"." : "El ajuste PHP \"%s\" no esta establecido a \"%s\".", + "Adjusting this setting in php.ini will make Nextcloud run again" : "El cambiar este ajuste del archivo php.ini hará que Nextcloud corra de nuevo.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload está establecido como \"%s\" en lugar del valor esperado de \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para corregir este tema, establece <code>mbstring.func_overload</code> a <code>0</code> en tu archivo php.ini", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Se requiere de por lo menos libxml2 2.7.0. Actualmente %s está instalado. ", + "To fix this issue update your libxml2 version and restart your web server." : "Para corregir este tema, por favor actualiza la versión de su libxml2 y reinicia tu servidor web. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto ha sido causado probablemente por un acelerador de caché como Zend OPcache o eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "¿Los módulos de PHP han sido instalados, pero se siguen enlistando como faltantes?", + "Please ask your server administrator to restart the web server." : "Por favor solicita al administrador reiniciar el servidor web. ", + "PostgreSQL >= 9 required" : "Se requiere PostgreSQL >= 9", + "Please upgrade your database version" : "Por favor actualiza tu versión de la base de datos", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambia los permisos a 0770 para que el directorio no pueda ser enlistado por otros usuarios. ", + "Your data directory is readable by other users" : "Tu direcctorio data puede ser leído por otros usuarios", + "Your data directory must be an absolute path" : "Tu directorio data debe ser una ruta absoluta", + "Check the value of \"datadirectory\" in your configuration" : "Verifica el valor de \"datadirectory\" en tu configuración", + "Your data directory is invalid" : "Tu directorio de datos es inválido", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Asegurate de que exista una archivo llamado \".ocdata\" en la raíz del directorio de datos. ", + "Could not obtain lock type %d on \"%s\"." : "No fue posible obtener el tipo de bloqueo %d en \"%s\". ", + "Storage unauthorized. %s" : "Almacenamiento no autorizado. %s", + "Storage incomplete configuration. %s" : "Configuración incompleta del almacenamiento. %s", + "Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s", + "Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible", + "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto generalmente se soluciona %s dándole al servidor web acceso para escribir en el directorio config %s.", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con id: %s no existe. Por favor habilítalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "Server settings" : "Configuraciones del servidor", + "DB Error: \"%s\"" : "Error de BD: \"%s\"", + "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"", + "You need to enter either an existing account or the administrator." : "Necesitas ingresar una cuenta ya existente o la del administrador.", + "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre: %s, contraseña: %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos para %s, porque los permisos exceden los permisos otorgados a %s", + "Setting permissions for %s failed, because the item was not found" : "Se persentó una falla al establecer los permisos para %s, porque no se encontró el elemento ", + "Cannot clear expiration date. Shares are required to have an expiration date." : "No ha sido posible borrar la fecha de expiración. Los elelentos compartidos deben tener una fecha de expiración.", + "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s", + "Files can't be shared with delete permissions" : "No es posible compartir archivos con permisos de borrado", + "Files can't be shared with create permissions" : "No es posible compartir archivos con permisos de creación", + "Cannot set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "Personal" : "Personal", + "Admin" : "Administración", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto se puede arreglar por %s al darle acceso de escritura al servidor web al directorio de las aplicaciones %s o al deshabilitar la tienda de aplicaciones en el archivo de configuración", + "Cannot create \"data\" directory (%s)" : "No fue posible crear el directorio de \"datos\" (%s)", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "Esto se puede arreglar generalmente al <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">darle al servidor web accesos al directorio raíz</a>.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos se pueden arreglar generalmente al %s darle al servidor web accesos al direcotiro raíz %s.", + "Data directory (%s) is readable by other users" : "El directorio de datos (%s) puede ser leído por otros usuarios", + "Data directory (%s) must be an absolute path" : "El directorio de datos (%s) debe ser una ruta absoluta", + "Data directory (%s) is invalid" : "El directorio de datos (%s) es inválido", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Por favor verifica que el directorio de datos tenga un archivo \".ocdata\" en su raíz. " +}, +"nplurals=2; plural=(n != 1);"); diff --git a/lib/l10n/es_EC.json b/lib/l10n/es_EC.json new file mode 100644 index 00000000000..0b6be27dfb5 --- /dev/null +++ b/lib/l10n/es_EC.json @@ -0,0 +1,257 @@ +{ "translations": { + "Cannot write into \"config\" directory!" : "¡No se puede escribir en el directorio \"config\"!", + "This can usually be fixed by giving the webserver write access to the config directory" : "Esto generalmente se resuelve dándole al servidor web acceso para escribir en el directorio config. ", + "See %s" : "Ver %s", + "This can usually be fixed by giving the webserver write access to the config directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio config. Por favor ve %s", + "The files of the app %$1s were not replaced correctly. Make sure it is a version compatible with the server." : "Los archivos de la aplicación %$1s no fueron correctamente remplazados. Por favor asegúrarte de que la versión sea compatible con el servidor.", + "Sample configuration detected" : "Se ha detectado la configuración de muestra", + "It has been detected that the sample configuration has been copied. This can break your installation and is unsupported. Please read the documentation before performing changes on config.php" : "Se ha detectado que la configuración de muestra ha sido copiada. Esto puede arruiniar tu instalacón y no está soportado. Por favor lee la documentación antes de hacer cambios en el archivo config.php", + "%1$s and %2$s" : "%1$s y %2$s", + "%1$s, %2$s and %3$s" : "%1$s, %2$s y %3$s", + "%1$s, %2$s, %3$s and %4$s" : "%1$s, %2$s, %3$s y %4$s", + "%1$s, %2$s, %3$s, %4$s and %5$s" : "%1$s, %2$s, %3$s, %4$s y %5$s", + "Education Edition" : "Edición Educativa", + "Enterprise bundle" : "Paquete empresarial", + "Groupware bundle" : "Paquete de Groupware", + "Social sharing bundle" : "Paquete para compartir en redes sociales", + "PHP %s or higher is required." : "Se requiere de PHP %s o superior.", + "PHP with a version lower than %s is required." : "PHP con una versión inferiror a la %s es requerido. ", + "%sbit or higher PHP required." : "se requiere PHP para %sbit o superior.", + "Following databases are supported: %s" : "Las siguientes bases de datos están soportadas: %s", + "The command line tool %s could not be found" : "No fue posible encontar la herramienta de línea de comando %s", + "The library %s is not available." : "La biblioteca %s no está disponible. ", + "Library %s with a version higher than %s is required - available version %s." : "La biblitoteca %s con una versión superiror a la %s es requerida - versión disponible %s.", + "Library %s with a version lower than %s is required - available version %s." : "Se requiere de la biblioteca %s con una versión inferiror a la %s - la versión %s está disponible. ", + "Following platforms are supported: %s" : "Las siguientes plataformas están soportadas: %s", + "Server version %s or higher is required." : "Se requiere la versión del servidor %s o superior. ", + "Server version %s or lower is required." : "La versión del servidor %s o inferior es requerdia. ", + "Unknown filetype" : "Tipo de archivo desconocido", + "Invalid image" : "Imagen inválida", + "Avatar image is not square" : "La imagen del avatar no es un cuadrado", + "today" : "hoy", + "tomorrow" : "mañana", + "yesterday" : "ayer", + "_in %n day_::_in %n days_" : ["en %n día","en %n días"], + "_%n day ago_::_%n days ago_" : ["hace %n día","hace %n días"], + "next month" : "próximo mes", + "last month" : "mes pasado", + "_in %n month_::_in %n months_" : ["en %n mes","en %n meses"], + "_%n month ago_::_%n months ago_" : ["Hace %n mes","Hace %n meses"], + "next year" : "próximo año", + "last year" : "año pasado", + "_in %n year_::_in %n years_" : ["en %n año","en %n años"], + "_%n year ago_::_%n years ago_" : ["hace %n año","hace %n años"], + "_in %n hour_::_in %n hours_" : ["en %n hora","en %n horas"], + "_%n hour ago_::_%n hours ago_" : ["Hace %n hora","Hace %n horas"], + "_in %n minute_::_in %n minutes_" : ["en %n minuto","en %n minutos"], + "_%n minute ago_::_%n minutes ago_" : ["Hace %n minuto","Hace %n minutos"], + "in a few seconds" : "en algunos segundos", + "seconds ago" : "hace segundos", + "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con ID: %sno existe. Por favor hablíitalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "File name is a reserved word" : "Nombre de archivo es una palabra reservada", + "File name contains at least one invalid character" : "El nombre del archivo contiene al menos un caracter inválido", + "File name is too long" : "El nombre del archivo es demasiado largo", + "Dot files are not allowed" : "Los archivos Dot no están permitidos", + "Empty filename is not allowed" : "El uso de nombres de archivo vacíos no está permitido", + "App \"%s\" cannot be installed because appinfo file cannot be read." : "La aplicación \"%s\" no puede ser instalada porque el archivo appinfo no se puede leer. ", + "App \"%s\" cannot be installed because it is not compatible with this version of the server." : "La aplicación \"%s\" no puede ser instalada porque no es compatible con esta versión del servidor. ", + "This is an automatically sent email, please do not reply." : "Este es un correo enviado automáticamente, por favor no lo contestes. ", + "Help" : "Ayuda", + "Apps" : "Aplicaciones", + "Settings" : "Configuraciones", + "Log out" : "Salir", + "Users" : "Usuarios", + "APCu" : "APCu", + "Redis" : "Redis", + "Basic settings" : "Configuraciones básicas", + "Sharing" : "Compartiendo", + "Security" : "Seguridad", + "Encryption" : "Encripción", + "Additional settings" : "Configuraciones adicionales", + "Tips & tricks" : "Consejos & trucos", + "Personal info" : "Información personal", + "Sync clients" : "Sincronizar clientes", + "Unlimited" : "Ilimitado", + "__language_name__" : "Español (México)", + "Verifying" : "Verficando", + "Verifying …" : "Verficando ...", + "Verify" : "Verificar", + "%s enter the database username and name." : "%s ingresa el usuario y nombre de la base de datos", + "%s enter the database username." : "%s ingresa el nombre de usuario de la base de datos.", + "%s enter the database name." : "%s ingresar el nombre de la base de datos", + "%s you may not use dots in the database name" : "%s no puedes utilizar puntos en el nombre de la base de datos", + "Oracle connection could not be established" : "No fue posible establecer la conexión a Oracle", + "Oracle username and/or password not valid" : "Usuario y/o contraseña de Oracle inválidos", + "PostgreSQL username and/or password not valid" : "El Usuario y/o Contraseña de PostgreSQL inválido(s)", + "You need to enter details of an existing account." : "Necesitas ingresar los detalles de una cuenta existente.", + "Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "OS X de Mac no está soportado y %s no funcionará correctamente en esta plataforma ¡Úsalo bajo tu propio riesgo!", + "For the best results, please consider using a GNU/Linux server instead." : "Para mejores resultados, por favor cosidera usar en su lugar un servidor GNU/Linux.", + "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4 GB and is highly discouraged." : "Al parecer esta instancia %s está corriendo en un ambiente PHP de 32-bits y el open_basedir ha sido configurado en el archivo php.ini. Esto generará problemas con archivos de más de 4GB de tamaño y es altamente desalentado. ", + "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor elimina el ajuste open_basedir de tu archivo php.ini o cambia a PHP de 64 bits. ", + "Set an admin username." : "Establecer un Usuario administrador", + "Set an admin password." : "Establecer la contraseña del administrador.", + "Can't create or write into the data directory %s" : "No es posible crear o escribir en el directorio de datos %s", + "Given database host is invalid and must not contain the port: %s" : "El servidor de base de datos ingresado es inválido y no debe contener el puerto: %s", + "Invalid Federated Cloud ID" : "ID Inválido", + "Sharing %s failed, because the backend does not allow shares from type %i" : "Se presentó una falla al compartir %s, porque el backend no permite elementos compartidos de tipo %i", + "Sharing %s failed, because the file does not exist" : "Se presentó una falla al compartir %s porque el archivo no existe", + "You are not allowed to share %s" : "No tienes permitido compartir %s", + "Sharing %s failed, because you can not share with yourself" : "Se presentó una falla al compartir %s, porque no puedes compartir contigo mismo", + "Sharing %s failed, because the user %s does not exist" : "Se presentó una falla al compartir %s porque el usuario %s no existe", + "Sharing %s failed, because the user %s is not a member of any groups that %s is a member of" : "Se presentó una falla al compartir %s porque el usuario %s no es un miembro de ninguno de los grupos de los cuales %s es miembro", + "Sharing %s failed, because this item is already shared with %s" : "Se presentó una falla al compartir %s, porque este elemento ya había sido compartido con %s", + "Sharing %s failed, because this item is already shared with user %s" : "Se presento una falla al compartir %s, porque este elemento ya ha sido compartido con el usuario %s", + "Sharing %s failed, because the group %s does not exist" : "Se presentó una falla al compartir %s, porque el grupo %s no existe", + "Sharing %s failed, because %s is not a member of the group %s" : "Se presentó una falla al compartir %s debido a que %s no es un miembro del grupo %s", + "You need to provide a password to create a public link, only protected links are allowed" : "Necesitas proporcionar una contraseña para crear una liga pública, sólo se permiten ligas protegidas. ", + "Sharing %s failed, because sharing with links is not allowed" : "Se presentó una falla al compartir %s porque no está permitido compartir con ligas", + "Not allowed to create a federated share with the same user" : "No está permitido crear un elemento compartido con el mismo usuario", + "Sharing %s failed, could not find %s, maybe the server is currently unreachable." : "Se presentó una falla al compartir %s, no fue posible encontrar %s, tal vez el servidor sea inalcanzable por el momento", + "Share type %s is not valid for %s" : "El tipo del elemento compartido %s no es válido para %s", + "Cannot set expiration date. Shares cannot expire later than %s after they have been shared" : "No ha sido posible establecer la fecha de expiración. Los recursos compartidos no pueden expirar después de %s tras haber sido compartidos", + "Cannot set expiration date. Expiration date is in the past" : "No ha sido posible establecer la fecha de expiración. La fecha de expiración ya ha pasado", + "Sharing backend %s must implement the interface OCP\\Share_Backend" : "El backend %s que comparte debe implementar la interface OCP\\Share_Backend", + "Sharing backend %s not found" : "No fue encontrado el Backend que comparte %s ", + "Sharing backend for %s not found" : "No fue encontrado el Backend que comparte para %s", + "Sharing failed, because the user %s is the original sharer" : "Se presentó una falla al compartir, porque el usuario %s es quien compartió originalmente", + "Sharing %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al compartir %s, porque los permisos exceden los permisos otorgados a %s", + "Sharing %s failed, because resharing is not allowed" : "Falla al compartir %s debído a que no se permite volver a compartir", + "Sharing %s failed, because the sharing backend for %s could not find its source" : "Se presentó una falla al compartir %s porque el backend que comparte %s no pudo encontrar su origen", + "Sharing %s failed, because the file could not be found in the file cache" : "Se presentó una falla al compartir %s porque el archivo no se encontró en el caché de archivos", + "Can’t increase permissions of %s" : "No es posible incrementar los privilegios de %s", + "Files can’t be shared with delete permissions" : "Los archivos no se pueden compartir con permisos de borrado", + "Files can’t be shared with create permissions" : "Los archivos no se pueden compartir con permisos de creación", + "Expiration date is in the past" : "La fecha de expiración se encuentra en el pasado", + "Can’t set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "%s shared »%s« with you" : "%s ha compartido »%s« contigo", + "%s shared »%s« with you." : "%s compartió contigo »%s«.", + "Click the button below to open it." : "Haz click en el botón inferior para abrirlo. ", + "Open »%s«" : "Abrir »%s«", + "%s via %s" : "%s por %s", + "The requested share does not exist anymore" : "El recurso compartido solicitado ya no existe", + "Could not find category \"%s\"" : "No fue posible encontrar la categoria \"%s\"", + "Sunday" : "Domingo", + "Monday" : "Lunes", + "Tuesday" : "Martes", + "Wednesday" : "Miércoles", + "Thursday" : "Jueves", + "Friday" : "Viernes", + "Saturday" : "Sábado", + "Sun." : "Dom.", + "Mon." : "Lun.", + "Tue." : "Mar.", + "Wed." : "Mie.", + "Thu." : "Jue.", + "Fri." : "Vie.", + "Sat." : "Sab.", + "Su" : "Do", + "Mo" : "Lu", + "Tu" : "Ma", + "We" : "Mi", + "Th" : "Ju", + "Fr" : "Vi", + "Sa" : "Sa", + "January" : "Enero", + "February" : "Febrero", + "March" : "Marzo", + "April" : "Abril", + "May" : "Mayo", + "June" : "Junio", + "July" : "Julio", + "August" : "Agosto", + "September" : "Septiembre", + "October" : "Octubre", + "November" : "Noviembre", + "December" : "Diciembre", + "Jan." : "Ene.", + "Feb." : "Feb.", + "Mar." : "Mar.", + "Apr." : "Abr.", + "May." : "May.", + "Jun." : "Jun.", + "Jul." : "Jul.", + "Aug." : "Ago.", + "Sep." : "Sep.", + "Oct." : "Oct.", + "Nov." : "Nov.", + "Dec." : "Dic.", + "Only the following characters are allowed in a username: \"a-z\", \"A-Z\", \"0-9\", and \"_.@-'\"" : "Sólo se permiten los siguientes caracteres en el usuario: \"a-z\", \"A-Z\", \"0-9\" y \"_.@-'\"", + "A valid username must be provided" : "Debes proporcionar un nombre de usuario válido", + "Username contains whitespace at the beginning or at the end" : "El usuario contiene un espacio en blanco al inicio o al final", + "Username must not consist of dots only" : "El usuario no debe consistir de solo puntos. ", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "The username is already being used" : "Ese usuario ya está en uso", + "Could not create user" : "No fue posible crear el usuario", + "User disabled" : "Usuario deshabilitado", + "Login canceled by app" : "Inicio de sesión cancelado por la aplicación", + "No app name specified" : "No se ha especificado el nombre de la aplicación", + "App '%s' could not be installed!" : "¡La aplicación \"%s\" no pudo ser instalada!", + "App \"%s\" cannot be installed because the following dependencies are not fulfilled: %s" : "La aplicación \"%s\" no puede ser instalada porque las siguientes dependencias no están satisfechas: %s ", + "a safe home for all your data" : "un lugar seguro para todos tus datos", + "File is currently busy, please try again later" : "El archivo se encuentra actualmente en uso, por favor intentalo más tarde. ", + "Can't read file" : "No se puede leer el archivo", + "Application is not enabled" : "La aplicación está deshabilitada", + "Authentication error" : "Error de autenticación", + "Token expired. Please reload page." : "La ficha ha expirado. Por favor recarga la página.", + "Unknown user" : "Ususario desconocido", + "No database drivers (sqlite, mysql, or postgresql) installed." : "No cuentas con controladores de base de datos (sqlite, mysql o postgresql) instalados. ", + "Cannot write into \"config\" directory" : "No fue posible escribir en el directorio \"config\"", + "Cannot write into \"apps\" directory" : "No fue posible escribir en el directorio \"apps\"", + "This can usually be fixed by giving the webserver write access to the apps directory or disabling the appstore in the config file. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio de las aplicaciones o deshabilitando la appstore en el archivo config. Por favor ve %s", + "Cannot create \"data\" directory" : "No fue posible crear el directorio \"data\"", + "This can usually be fixed by giving the webserver write access to the root directory. See %s" : "Por lo general esto se puede resolver al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s", + "Permissions can usually be fixed by giving the webserver write access to the root directory. See %s." : "Por lo general los permisos se pueden corregir al darle al servidor web acceso de escritura al directorio raíz. Por favor ve %s.", + "Setting locale to %s failed" : "Se presentó una falla al establecer la regionalización a %s", + "Please install one of these locales on your system and restart your webserver." : "Por favor instala uno de las siguientes configuraciones locales en tu sistema y reinicia tu servidor web", + "Please ask your server administrator to install the module." : "Por favor solicita a tu adminsitrador la instalación del módulo. ", + "PHP module %s not installed." : "El módulo de PHP %s no está instalado. ", + "PHP setting \"%s\" is not set to \"%s\"." : "El ajuste PHP \"%s\" no esta establecido a \"%s\".", + "Adjusting this setting in php.ini will make Nextcloud run again" : "El cambiar este ajuste del archivo php.ini hará que Nextcloud corra de nuevo.", + "mbstring.func_overload is set to \"%s\" instead of the expected value \"0\"" : "mbstring.func_overload está establecido como \"%s\" en lugar del valor esperado de \"0\"", + "To fix this issue set <code>mbstring.func_overload</code> to <code>0</code> in your php.ini" : "Para corregir este tema, establece <code>mbstring.func_overload</code> a <code>0</code> en tu archivo php.ini", + "libxml2 2.7.0 is at least required. Currently %s is installed." : "Se requiere de por lo menos libxml2 2.7.0. Actualmente %s está instalado. ", + "To fix this issue update your libxml2 version and restart your web server." : "Para corregir este tema, por favor actualiza la versión de su libxml2 y reinicia tu servidor web. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto ha sido causado probablemente por un acelerador de caché como Zend OPcache o eAccelerator.", + "PHP modules have been installed, but they are still listed as missing?" : "¿Los módulos de PHP han sido instalados, pero se siguen enlistando como faltantes?", + "Please ask your server administrator to restart the web server." : "Por favor solicita al administrador reiniciar el servidor web. ", + "PostgreSQL >= 9 required" : "Se requiere PostgreSQL >= 9", + "Please upgrade your database version" : "Por favor actualiza tu versión de la base de datos", + "Please change the permissions to 0770 so that the directory cannot be listed by other users." : "Por favor cambia los permisos a 0770 para que el directorio no pueda ser enlistado por otros usuarios. ", + "Your data directory is readable by other users" : "Tu direcctorio data puede ser leído por otros usuarios", + "Your data directory must be an absolute path" : "Tu directorio data debe ser una ruta absoluta", + "Check the value of \"datadirectory\" in your configuration" : "Verifica el valor de \"datadirectory\" en tu configuración", + "Your data directory is invalid" : "Tu directorio de datos es inválido", + "Ensure there is a file called \".ocdata\" in the root of the data directory." : "Asegurate de que exista una archivo llamado \".ocdata\" en la raíz del directorio de datos. ", + "Could not obtain lock type %d on \"%s\"." : "No fue posible obtener el tipo de bloqueo %d en \"%s\". ", + "Storage unauthorized. %s" : "Almacenamiento no autorizado. %s", + "Storage incomplete configuration. %s" : "Configuración incompleta del almacenamiento. %s", + "Storage connection error. %s" : "Se presentó un error con la conexión al almacenamiento. %s", + "Storage is temporarily not available" : "El almacenamieto se encuentra temporalmente no disponible", + "Storage connection timeout. %s" : "El tiempo de la conexión del almacenamiento se agotó. %s", + "This can usually be fixed by %sgiving the webserver write access to the config directory%s." : "Esto generalmente se soluciona %s dándole al servidor web acceso para escribir en el directorio config %s.", + "Module with id: %s does not exist. Please enable it in your apps settings or contact your administrator." : "El módulo con id: %s no existe. Por favor habilítalo en tus configuraciones de aplicación o contacta a tu administrador. ", + "Server settings" : "Configuraciones del servidor", + "DB Error: \"%s\"" : "Error de BD: \"%s\"", + "Offending command was: \"%s\"" : "El comando infractor fue: \"%s\"", + "You need to enter either an existing account or the administrator." : "Necesitas ingresar una cuenta ya existente o la del administrador.", + "Offending command was: \"%s\", name: %s, password: %s" : "El comando infractor fue: \"%s\", nombre: %s, contraseña: %s", + "Setting permissions for %s failed, because the permissions exceed permissions granted to %s" : "Se presentó una falla al establecer los permisos para %s, porque los permisos exceden los permisos otorgados a %s", + "Setting permissions for %s failed, because the item was not found" : "Se persentó una falla al establecer los permisos para %s, porque no se encontró el elemento ", + "Cannot clear expiration date. Shares are required to have an expiration date." : "No ha sido posible borrar la fecha de expiración. Los elelentos compartidos deben tener una fecha de expiración.", + "Cannot increase permissions of %s" : "No se pueden incrementar los permisos de %s", + "Files can't be shared with delete permissions" : "No es posible compartir archivos con permisos de borrado", + "Files can't be shared with create permissions" : "No es posible compartir archivos con permisos de creación", + "Cannot set expiration date more than %s days in the future" : "No es posible establecer la fecha de expiración más allá de %s días en el futuro", + "Personal" : "Personal", + "Admin" : "Administración", + "This can usually be fixed by %sgiving the webserver write access to the apps directory%s or disabling the appstore in the config file." : "Esto se puede arreglar por %s al darle acceso de escritura al servidor web al directorio de las aplicaciones %s o al deshabilitar la tienda de aplicaciones en el archivo de configuración", + "Cannot create \"data\" directory (%s)" : "No fue posible crear el directorio de \"datos\" (%s)", + "This can usually be fixed by <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">giving the webserver write access to the root directory</a>." : "Esto se puede arreglar generalmente al <a href=\"%s\" target=\"_blank\" rel=\"noreferrer\">darle al servidor web accesos al directorio raíz</a>.", + "Permissions can usually be fixed by %sgiving the webserver write access to the root directory%s." : "Los permisos se pueden arreglar generalmente al %s darle al servidor web accesos al direcotiro raíz %s.", + "Data directory (%s) is readable by other users" : "El directorio de datos (%s) puede ser leído por otros usuarios", + "Data directory (%s) must be an absolute path" : "El directorio de datos (%s) debe ser una ruta absoluta", + "Data directory (%s) is invalid" : "El directorio de datos (%s) es inválido", + "Please check that the data directory contains a file \".ocdata\" in its root." : "Por favor verifica que el directorio de datos tenga un archivo \".ocdata\" en su raíz. " +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/lib/l10n/nl.js b/lib/l10n/nl.js index fdb80d90c3c..6cac8d6837e 100644 --- a/lib/l10n/nl.js +++ b/lib/l10n/nl.js @@ -31,14 +31,23 @@ OC.L10N.register( "Invalid image" : "Ongeldige afbeelding", "Avatar image is not square" : "Avatar afbeelding is niet vierkant", "today" : "vandaag", + "tomorrow" : "morgen", "yesterday" : "gisteren", + "_in %n day_::_in %n days_" : ["over %n dag","over %n dagen"], "_%n day ago_::_%n days ago_" : ["%n dag geleden","%n dagen geleden"], + "next month" : "volgende maand", "last month" : "vorige maand", + "_in %n month_::_in %n months_" : ["over %n maand","over %n maanden"], "_%n month ago_::_%n months ago_" : ["%n maand geleden","%n maanden geleden"], + "next year" : "volgend jaar", "last year" : "vorig jaar", + "_in %n year_::_in %n years_" : ["over %n jaar","over %n jaar"], "_%n year ago_::_%n years ago_" : ["%n jaar geleden","%n jaren geleden"], + "_in %n hour_::_in %n hours_" : ["over %n uur","over %n uur"], "_%n hour ago_::_%n hours ago_" : ["%n uur geleden","%n uren geleden"], + "_in %n minute_::_in %n minutes_" : ["over %n minuut","over %n minuten"], "_%n minute ago_::_%n minutes ago_" : ["%n minuut geleden","%n minuten geleden"], + "in a few seconds" : "over een paar seconden", "seconds ago" : "seconden geleden", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Module met ID: %s bestaat niet. Schakel die in binnen de app-instellingen of neem contact op met je beheerder.", "File name is a reserved word" : "Bestandsnaam is een gereserveerd woord", @@ -84,6 +93,7 @@ OC.L10N.register( "Set an admin username." : "Stel de gebruikersnaam van de beheerder in.", "Set an admin password." : "Stel een beheerders wachtwoord in.", "Can't create or write into the data directory %s" : "Kan niets creëren of wegschrijven in de datadirectory %s", + "Given database host is invalid and must not contain the port: %s" : "Opgegeven database host is ongeldig en mag niet de volgende poort bevatten: %s", "Invalid Federated Cloud ID" : "Ongeldige gefedereerde Cloud ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Delen van %s is mislukt, omdat de share-backend het niet toestaat om type %i te delen", "Sharing %s failed, because the file does not exist" : "Delen van %s is mislukt, omdat het bestand niet bestaat", diff --git a/lib/l10n/nl.json b/lib/l10n/nl.json index a29b43d8596..a22366d8345 100644 --- a/lib/l10n/nl.json +++ b/lib/l10n/nl.json @@ -29,14 +29,23 @@ "Invalid image" : "Ongeldige afbeelding", "Avatar image is not square" : "Avatar afbeelding is niet vierkant", "today" : "vandaag", + "tomorrow" : "morgen", "yesterday" : "gisteren", + "_in %n day_::_in %n days_" : ["over %n dag","over %n dagen"], "_%n day ago_::_%n days ago_" : ["%n dag geleden","%n dagen geleden"], + "next month" : "volgende maand", "last month" : "vorige maand", + "_in %n month_::_in %n months_" : ["over %n maand","over %n maanden"], "_%n month ago_::_%n months ago_" : ["%n maand geleden","%n maanden geleden"], + "next year" : "volgend jaar", "last year" : "vorig jaar", + "_in %n year_::_in %n years_" : ["over %n jaar","over %n jaar"], "_%n year ago_::_%n years ago_" : ["%n jaar geleden","%n jaren geleden"], + "_in %n hour_::_in %n hours_" : ["over %n uur","over %n uur"], "_%n hour ago_::_%n hours ago_" : ["%n uur geleden","%n uren geleden"], + "_in %n minute_::_in %n minutes_" : ["over %n minuut","over %n minuten"], "_%n minute ago_::_%n minutes ago_" : ["%n minuut geleden","%n minuten geleden"], + "in a few seconds" : "over een paar seconden", "seconds ago" : "seconden geleden", "Module with ID: %s does not exist. Please enable it in your apps settings or contact your administrator." : "Module met ID: %s bestaat niet. Schakel die in binnen de app-instellingen of neem contact op met je beheerder.", "File name is a reserved word" : "Bestandsnaam is een gereserveerd woord", @@ -82,6 +91,7 @@ "Set an admin username." : "Stel de gebruikersnaam van de beheerder in.", "Set an admin password." : "Stel een beheerders wachtwoord in.", "Can't create or write into the data directory %s" : "Kan niets creëren of wegschrijven in de datadirectory %s", + "Given database host is invalid and must not contain the port: %s" : "Opgegeven database host is ongeldig en mag niet de volgende poort bevatten: %s", "Invalid Federated Cloud ID" : "Ongeldige gefedereerde Cloud ID", "Sharing %s failed, because the backend does not allow shares from type %i" : "Delen van %s is mislukt, omdat de share-backend het niet toestaat om type %i te delen", "Sharing %s failed, because the file does not exist" : "Delen van %s is mislukt, omdat het bestand niet bestaat", diff --git a/lib/private/Accounts/AccountManager.php b/lib/private/Accounts/AccountManager.php index 7db686c33a1..8c79de7f9e1 100644 --- a/lib/private/Accounts/AccountManager.php +++ b/lib/private/Accounts/AccountManager.php @@ -1,9 +1,12 @@ <?php /** - * @author Björn Schießle <bjoern@schiessle.org> - * * @copyright Copyright (c) 2016, ownCloud, Inc. * @copyright Copyright (c) 2016, Björn Schießle + * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/lib/private/Accounts/Hooks.php b/lib/private/Accounts/Hooks.php index eca56913fbd..df0b80e8229 100644 --- a/lib/private/Accounts/Hooks.php +++ b/lib/private/Accounts/Hooks.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Activity/EventMerger.php b/lib/private/Activity/EventMerger.php index 04aa41b2690..ed062d094e5 100644 --- a/lib/private/Activity/EventMerger.php +++ b/lib/private/Activity/EventMerger.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Activity/LegacyFilter.php b/lib/private/Activity/LegacyFilter.php index eadb5b1558f..9beffc1f3a7 100644 --- a/lib/private/Activity/LegacyFilter.php +++ b/lib/private/Activity/LegacyFilter.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Activity/LegacySetting.php b/lib/private/Activity/LegacySetting.php index 27495afddb0..7d08533aef5 100644 --- a/lib/private/Activity/LegacySetting.php +++ b/lib/private/Activity/LegacySetting.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Activity/Manager.php b/lib/private/Activity/Manager.php index 7640a367e74..792dea4cff5 100644 --- a/lib/private/Activity/Manager.php +++ b/lib/private/Activity/Manager.php @@ -5,6 +5,7 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/AllConfig.php b/lib/private/AllConfig.php index 52b0679bb20..f74a2f943d5 100644 --- a/lib/private/AllConfig.php +++ b/lib/private/AllConfig.php @@ -5,10 +5,12 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Loki3000 <github@labcms.ru> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/lib/private/App/AppManager.php b/lib/private/App/AppManager.php index 7c861597c77..6be892b7f49 100644 --- a/lib/private/App/AppManager.php +++ b/lib/private/App/AppManager.php @@ -4,9 +4,10 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bjoern Schiessle <bjoern@schiessle.org> - * @author Christoph Schaefer <christophł@wolkesicher.de> + * @author Christoph Schaefer "christophł@wolkesicher.de" * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Haertl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> diff --git a/lib/private/App/AppStore/Bundles/Bundle.php b/lib/private/App/AppStore/Bundles/Bundle.php index 47efc4e0cce..79557704351 100644 --- a/lib/private/App/AppStore/Bundles/Bundle.php +++ b/lib/private/App/AppStore/Bundles/Bundle.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Bundles/BundleFetcher.php b/lib/private/App/AppStore/Bundles/BundleFetcher.php index 3fbdf65cd4f..0dd6dabfff9 100644 --- a/lib/private/App/AppStore/Bundles/BundleFetcher.php +++ b/lib/private/App/AppStore/Bundles/BundleFetcher.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Bundles/CoreBundle.php b/lib/private/App/AppStore/Bundles/CoreBundle.php index a87292b9ec9..b76dddc8d07 100644 --- a/lib/private/App/AppStore/Bundles/CoreBundle.php +++ b/lib/private/App/AppStore/Bundles/CoreBundle.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Bundles/EducationBundle.php b/lib/private/App/AppStore/Bundles/EducationBundle.php index c3885f5e250..0d82de90966 100644 --- a/lib/private/App/AppStore/Bundles/EducationBundle.php +++ b/lib/private/App/AppStore/Bundles/EducationBundle.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Bundles/EnterpriseBundle.php b/lib/private/App/AppStore/Bundles/EnterpriseBundle.php index 6d43a6210fa..d32fd8c856e 100644 --- a/lib/private/App/AppStore/Bundles/EnterpriseBundle.php +++ b/lib/private/App/AppStore/Bundles/EnterpriseBundle.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Bundles/GroupwareBundle.php b/lib/private/App/AppStore/Bundles/GroupwareBundle.php index 7e7414f69c7..042d97c3efc 100644 --- a/lib/private/App/AppStore/Bundles/GroupwareBundle.php +++ b/lib/private/App/AppStore/Bundles/GroupwareBundle.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Bundles/SocialSharingBundle.php b/lib/private/App/AppStore/Bundles/SocialSharingBundle.php index 8da84e8d1ef..c882a8df557 100644 --- a/lib/private/App/AppStore/Bundles/SocialSharingBundle.php +++ b/lib/private/App/AppStore/Bundles/SocialSharingBundle.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Fetcher/AppFetcher.php b/lib/private/App/AppStore/Fetcher/AppFetcher.php index 63f63aaf695..63121c079bd 100644 --- a/lib/private/App/AppStore/Fetcher/AppFetcher.php +++ b/lib/private/App/AppStore/Fetcher/AppFetcher.php @@ -2,6 +2,11 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Fetcher/CategoryFetcher.php b/lib/private/App/AppStore/Fetcher/CategoryFetcher.php index 8c3c963462c..f2c523df908 100644 --- a/lib/private/App/AppStore/Fetcher/CategoryFetcher.php +++ b/lib/private/App/AppStore/Fetcher/CategoryFetcher.php @@ -2,6 +2,11 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Fetcher/Fetcher.php b/lib/private/App/AppStore/Fetcher/Fetcher.php index e559cf83e6d..3ac207ebf75 100644 --- a/lib/private/App/AppStore/Fetcher/Fetcher.php +++ b/lib/private/App/AppStore/Fetcher/Fetcher.php @@ -2,6 +2,12 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Steffen Lindner <mail@steffen-lindner.de> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Version/Version.php b/lib/private/App/AppStore/Version/Version.php index ca182ae078b..1efdf795e6f 100644 --- a/lib/private/App/AppStore/Version/Version.php +++ b/lib/private/App/AppStore/Version/Version.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/AppStore/Version/VersionParser.php b/lib/private/App/AppStore/Version/VersionParser.php index b548ef386d9..3924b8aea16 100644 --- a/lib/private/App/AppStore/Version/VersionParser.php +++ b/lib/private/App/AppStore/Version/VersionParser.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/App/CodeChecker/DeprecationCheck.php b/lib/private/App/CodeChecker/DeprecationCheck.php index e19e06dd8f2..037a2cee849 100644 --- a/lib/private/App/CodeChecker/DeprecationCheck.php +++ b/lib/private/App/CodeChecker/DeprecationCheck.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/lib/private/App/CodeChecker/MigrationSchemaChecker.php b/lib/private/App/CodeChecker/MigrationSchemaChecker.php index ea403ad7758..3d68c031fed 100644 --- a/lib/private/App/CodeChecker/MigrationSchemaChecker.php +++ b/lib/private/App/CodeChecker/MigrationSchemaChecker.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/App/DependencyAnalyzer.php b/lib/private/App/DependencyAnalyzer.php index 4e998c71f32..4193ee5083f 100644 --- a/lib/private/App/DependencyAnalyzer.php +++ b/lib/private/App/DependencyAnalyzer.php @@ -7,6 +7,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/lib/private/App/InfoParser.php b/lib/private/App/InfoParser.php index 40eaaf21bca..b811cfca31d 100644 --- a/lib/private/App/InfoParser.php +++ b/lib/private/App/InfoParser.php @@ -4,9 +4,12 @@ * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch> * * @author Andreas Fischer <bantu@owncloud.com> + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Christoph Wurst <christoph@owncloud.com> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/AppFramework/App.php b/lib/private/AppFramework/App.php index 75b2e983fea..653000ab726 100644 --- a/lib/private/AppFramework/App.php +++ b/lib/private/AppFramework/App.php @@ -2,10 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Andreas Fischer <bantu@owncloud.com> * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/AppFramework/DependencyInjection/DIContainer.php b/lib/private/AppFramework/DependencyInjection/DIContainer.php index 0ea7eed4ae2..0b6291d46de 100644 --- a/lib/private/AppFramework/DependencyInjection/DIContainer.php +++ b/lib/private/AppFramework/DependencyInjection/DIContainer.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> @@ -10,6 +12,7 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sebastian Wessalowski <sebastian@wessalowski.org> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * diff --git a/lib/private/AppFramework/Http.php b/lib/private/AppFramework/Http.php index be1e178a05f..e126c8a1cf0 100644 --- a/lib/private/AppFramework/Http.php +++ b/lib/private/AppFramework/Http.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Julius Härtl <jus@bitgrid.net> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/private/AppFramework/Http/Dispatcher.php b/lib/private/AppFramework/Http/Dispatcher.php index 28b88cf9eb1..ecf8462ebb6 100644 --- a/lib/private/AppFramework/Http/Dispatcher.php +++ b/lib/private/AppFramework/Http/Dispatcher.php @@ -3,9 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * diff --git a/lib/private/AppFramework/Http/Output.php b/lib/private/AppFramework/Http/Output.php index 1d77350b1a2..aed72fe5851 100644 --- a/lib/private/AppFramework/Http/Output.php +++ b/lib/private/AppFramework/Http/Output.php @@ -4,6 +4,7 @@ * * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> * @author Stefan Weil <sw@weilnetz.de> * * @license AGPL-3.0 diff --git a/lib/private/AppFramework/Http/Request.php b/lib/private/AppFramework/Http/Request.php index d2347ba4b28..072dd9f172f 100644 --- a/lib/private/AppFramework/Http/Request.php +++ b/lib/private/AppFramework/Http/Request.php @@ -4,7 +4,10 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Christoph Wurst <christoph@owncloud.com> + * @author coderkun <olli@coderkun.de> * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Mitar <mitar.git@tnode.com> diff --git a/lib/private/AppFramework/Middleware/OCSMiddleware.php b/lib/private/AppFramework/Middleware/OCSMiddleware.php index 46f2881b076..ad1d953f372 100644 --- a/lib/private/AppFramework/Middleware/OCSMiddleware.php +++ b/lib/private/AppFramework/Middleware/OCSMiddleware.php @@ -1,7 +1,8 @@ <?php /** - * + * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/AppFramework/Middleware/Security/BruteForceMiddleware.php b/lib/private/AppFramework/Middleware/Security/BruteForceMiddleware.php index e349960115d..79359b142ac 100644 --- a/lib/private/AppFramework/Middleware/Security/BruteForceMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/BruteForceMiddleware.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/AppFramework/Middleware/Security/Exceptions/NotAdminException.php b/lib/private/AppFramework/Middleware/Security/Exceptions/NotAdminException.php index 94191f7f5b5..ca8a2c89416 100644 --- a/lib/private/AppFramework/Middleware/Security/Exceptions/NotAdminException.php +++ b/lib/private/AppFramework/Middleware/Security/Exceptions/NotAdminException.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/lib/private/AppFramework/Middleware/Security/Exceptions/NotConfirmedException.php b/lib/private/AppFramework/Middleware/Security/Exceptions/NotConfirmedException.php index 1ecd463b004..8c1f082c177 100644 --- a/lib/private/AppFramework/Middleware/Security/Exceptions/NotConfirmedException.php +++ b/lib/private/AppFramework/Middleware/Security/Exceptions/NotConfirmedException.php @@ -1,8 +1,9 @@ <?php - /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/AppFramework/Middleware/Security/Exceptions/StrictCookieMissingException.php b/lib/private/AppFramework/Middleware/Security/Exceptions/StrictCookieMissingException.php index 5602e46fb46..a16b0cbd180 100644 --- a/lib/private/AppFramework/Middleware/Security/Exceptions/StrictCookieMissingException.php +++ b/lib/private/AppFramework/Middleware/Security/Exceptions/StrictCookieMissingException.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author Lukas Reschke <lukas@statuscode.ch> * diff --git a/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php b/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php index 28ef8b43ffc..c3b5a844ed5 100644 --- a/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/RateLimitingMiddleware.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php b/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php index 52004987909..ecd7b1bad5e 100644 --- a/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php +++ b/lib/private/AppFramework/Middleware/Security/SecurityMiddleware.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/lib/private/AppFramework/Middleware/SessionMiddleware.php b/lib/private/AppFramework/Middleware/SessionMiddleware.php index dd2029bf053..7b52cc1e319 100644 --- a/lib/private/AppFramework/Middleware/SessionMiddleware.php +++ b/lib/private/AppFramework/Middleware/SessionMiddleware.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/AppFramework/Utility/ControllerMethodReflector.php b/lib/private/AppFramework/Utility/ControllerMethodReflector.php index d6a9b596127..7c777c52c12 100644 --- a/lib/private/AppFramework/Utility/ControllerMethodReflector.php +++ b/lib/private/AppFramework/Utility/ControllerMethodReflector.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Olivier Paroz <github@oparoz.com> * @author Robin McCorkell <robin@mccorkell.me.uk> diff --git a/lib/private/AppFramework/Utility/SimpleContainer.php b/lib/private/AppFramework/Utility/SimpleContainer.php index 889f17cbc6a..b86d3339264 100644 --- a/lib/private/AppFramework/Utility/SimpleContainer.php +++ b/lib/private/AppFramework/Utility/SimpleContainer.php @@ -7,6 +7,7 @@ * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Archive/Archive.php b/lib/private/Archive/Archive.php index 15ec3e1fe56..da4dfeeec88 100644 --- a/lib/private/Archive/Archive.php +++ b/lib/private/Archive/Archive.php @@ -3,9 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Bart Visscher <bartv@thisnet.nl> * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Felix Moeller <mail@felixmoeller.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/lib/private/Archive/TAR.php b/lib/private/Archive/TAR.php index e6f7ad2b998..2c34125afe6 100644 --- a/lib/private/Archive/TAR.php +++ b/lib/private/Archive/TAR.php @@ -5,7 +5,6 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Christian Weiske <cweiske@cweiske.de> * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Felix Moeller <mail@felixmoeller.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/private/Archive/ZIP.php b/lib/private/Archive/ZIP.php index 8d616a7ef9a..fb3e2fdde97 100644 --- a/lib/private/Archive/ZIP.php +++ b/lib/private/Archive/ZIP.php @@ -4,7 +4,6 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Felix Moeller <mail@felixmoeller.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/private/Authentication/LoginCredentials/Credentials.php b/lib/private/Authentication/LoginCredentials/Credentials.php index 9314b7489db..c3af2aba007 100644 --- a/lib/private/Authentication/LoginCredentials/Credentials.php +++ b/lib/private/Authentication/LoginCredentials/Credentials.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Authentication/LoginCredentials/Store.php b/lib/private/Authentication/LoginCredentials/Store.php index e44c88c7aea..0ed19a2dd07 100644 --- a/lib/private/Authentication/LoginCredentials/Store.php +++ b/lib/private/Authentication/LoginCredentials/Store.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Authentication/Token/DefaultToken.php b/lib/private/Authentication/Token/DefaultToken.php index 127430ea6cb..e06803d0bfc 100644 --- a/lib/private/Authentication/Token/DefaultToken.php +++ b/lib/private/Authentication/Token/DefaultToken.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Authentication/Token/DefaultTokenMapper.php b/lib/private/Authentication/Token/DefaultTokenMapper.php index 35bb83b85f4..41d1b9f203d 100644 --- a/lib/private/Authentication/Token/DefaultTokenMapper.php +++ b/lib/private/Authentication/Token/DefaultTokenMapper.php @@ -2,7 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Christoph Wurst <christoph@owncloud.com> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Marcel Waldvogel <marcel.waldvogel@uni-konstanz.de> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Authentication/Token/DefaultTokenProvider.php b/lib/private/Authentication/Token/DefaultTokenProvider.php index 80bcc4aeac8..3fca122d287 100644 --- a/lib/private/Authentication/Token/DefaultTokenProvider.php +++ b/lib/private/Authentication/Token/DefaultTokenProvider.php @@ -4,6 +4,10 @@ * @copyright Copyright (c) 2016, Christoph Wurst <christoph@winzerhof-wurst.at> * * @author Christoph Wurst <christoph@owncloud.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Marcel Waldvogel <marcel.waldvogel@uni-konstanz.de> + * @author Martin <github@diemattels.at> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Authentication/Token/IProvider.php b/lib/private/Authentication/Token/IProvider.php index 8ec1d9b8d6c..e1cc8182ff0 100644 --- a/lib/private/Authentication/Token/IProvider.php +++ b/lib/private/Authentication/Token/IProvider.php @@ -3,6 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Marcel Waldvogel <marcel.waldvogel@uni-konstanz.de> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Authentication/Token/IToken.php b/lib/private/Authentication/Token/IToken.php index 49745b266c4..a24d31e2ed2 100644 --- a/lib/private/Authentication/Token/IToken.php +++ b/lib/private/Authentication/Token/IToken.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Authentication/TwoFactorAuth/Manager.php b/lib/private/Authentication/TwoFactorAuth/Manager.php index b825f45f739..d527359b2ff 100644 --- a/lib/private/Authentication/TwoFactorAuth/Manager.php +++ b/lib/private/Authentication/TwoFactorAuth/Manager.php @@ -1,9 +1,11 @@ <?php - /** * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Avatar.php b/lib/private/Avatar.php index efbebfd55cd..b2d1b2be318 100644 --- a/lib/private/Avatar.php +++ b/lib/private/Avatar.php @@ -6,6 +6,7 @@ * @author Christopher Schäpers <kondou@ts.unde.re> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Olivier Mehani <shtrom@ssji.net> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/lib/private/BackgroundJob/Job.php b/lib/private/BackgroundJob/Job.php index bf0195b0a1f..8ebb1e62a39 100644 --- a/lib/private/BackgroundJob/Job.php +++ b/lib/private/BackgroundJob/Job.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Noveen Sachdeva <noveen.sachdeva@research.iiit.ac.in> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/lib/private/BackgroundJob/JobList.php b/lib/private/BackgroundJob/JobList.php index 366fe8aac03..1399683dc9b 100644 --- a/lib/private/BackgroundJob/JobList.php +++ b/lib/private/BackgroundJob/JobList.php @@ -3,7 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Noveen Sachdeva <noveen.sachdeva@research.iiit.ac.in> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * diff --git a/lib/private/BackgroundJob/QueuedJob.php b/lib/private/BackgroundJob/QueuedJob.php index 2abfd257a4c..f6061a5cba1 100644 --- a/lib/private/BackgroundJob/QueuedJob.php +++ b/lib/private/BackgroundJob/QueuedJob.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * diff --git a/lib/private/BackgroundJob/TimedJob.php b/lib/private/BackgroundJob/TimedJob.php index 9179cf258e2..a09bbac3f0a 100644 --- a/lib/private/BackgroundJob/TimedJob.php +++ b/lib/private/BackgroundJob/TimedJob.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * diff --git a/lib/private/Cache/File.php b/lib/private/Cache/File.php index 513ef10f9d3..ab51b54b8c8 100644 --- a/lib/private/Cache/File.php +++ b/lib/private/Cache/File.php @@ -5,6 +5,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sebastian Wessalowski <sebastian@wessalowski.org> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/lib/private/CapabilitiesManager.php b/lib/private/CapabilitiesManager.php index baab63c213d..b3db9231972 100644 --- a/lib/private/CapabilitiesManager.php +++ b/lib/private/CapabilitiesManager.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Julius Härtl <jus@bitgrid.net> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/private/Collaboration/Collaborators/SearchResult.php b/lib/private/Collaboration/Collaborators/SearchResult.php index 184c1f69a1b..48efb14a859 100644 --- a/lib/private/Collaboration/Collaborators/SearchResult.php +++ b/lib/private/Collaboration/Collaborators/SearchResult.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Command/CronBus.php b/lib/private/Command/CronBus.php index 9bde4d88242..87244fcaa45 100644 --- a/lib/private/Command/CronBus.php +++ b/lib/private/Command/CronBus.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Command/QueueBus.php b/lib/private/Command/QueueBus.php index 30cdd7740a9..70f80acf1b5 100644 --- a/lib/private/Command/QueueBus.php +++ b/lib/private/Command/QueueBus.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Julius Härtl <jus@bitgrid.net> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/lib/private/Comments/Comment.php b/lib/private/Comments/Comment.php index b9a6103f67f..acfebd32028 100644 --- a/lib/private/Comments/Comment.php +++ b/lib/private/Comments/Comment.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Comments/Manager.php b/lib/private/Comments/Manager.php index 078e1eef4d3..4357a2eb437 100644 --- a/lib/private/Comments/Manager.php +++ b/lib/private/Comments/Manager.php @@ -4,6 +4,9 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Comments/ManagerFactory.php b/lib/private/Comments/ManagerFactory.php index c2cc81ab371..21926912b10 100644 --- a/lib/private/Comments/ManagerFactory.php +++ b/lib/private/Comments/ManagerFactory.php @@ -3,7 +3,6 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/lib/private/Config.php b/lib/private/Config.php index b4fe9e03d23..2abf00a718c 100644 --- a/lib/private/Config.php +++ b/lib/private/Config.php @@ -13,6 +13,7 @@ * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Philipp Schaffrath <github@philipp.schaffrath.email> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * diff --git a/lib/private/Console/Application.php b/lib/private/Console/Application.php index 20d59e6f4f3..0a05b2ac0f3 100644 --- a/lib/private/Console/Application.php +++ b/lib/private/Console/Application.php @@ -3,9 +3,12 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Miha Frangez <miha.frangez@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author noveens <noveen.sachdeva@research.iiit.ac.in> + * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * diff --git a/lib/private/Contacts/ContactsMenu/ActionFactory.php b/lib/private/Contacts/ContactsMenu/ActionFactory.php index 1d2a69c904d..6bc724bd439 100644 --- a/lib/private/Contacts/ContactsMenu/ActionFactory.php +++ b/lib/private/Contacts/ContactsMenu/ActionFactory.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Contacts/ContactsMenu/ActionProviderStore.php b/lib/private/Contacts/ContactsMenu/ActionProviderStore.php index ae6436095d8..a5e59557719 100644 --- a/lib/private/Contacts/ContactsMenu/ActionProviderStore.php +++ b/lib/private/Contacts/ContactsMenu/ActionProviderStore.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Contacts/ContactsMenu/Actions/LinkAction.php b/lib/private/Contacts/ContactsMenu/Actions/LinkAction.php index 5b8b0524a21..1ac2667bab8 100644 --- a/lib/private/Contacts/ContactsMenu/Actions/LinkAction.php +++ b/lib/private/Contacts/ContactsMenu/Actions/LinkAction.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Contacts/ContactsMenu/ContactsStore.php b/lib/private/Contacts/ContactsMenu/ContactsStore.php index 3eda58cacfb..108ff0d4989 100644 --- a/lib/private/Contacts/ContactsMenu/ContactsStore.php +++ b/lib/private/Contacts/ContactsMenu/ContactsStore.php @@ -3,8 +3,10 @@ * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * @copyright 2017 Lukas Reschke <lukas@statuscode.ch> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> - * @author 2017 Lukas Reschke <lukas@statuscode.ch> + * @author Christoph Wurst <christoph@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Tobia De Koninck <tobia@ledfan.be> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Contacts/ContactsMenu/Entry.php b/lib/private/Contacts/ContactsMenu/Entry.php index 9ea0511b9cc..1a708071890 100644 --- a/lib/private/Contacts/ContactsMenu/Entry.php +++ b/lib/private/Contacts/ContactsMenu/Entry.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Contacts/ContactsMenu/Manager.php b/lib/private/Contacts/ContactsMenu/Manager.php index 766b4623253..676ba602894 100644 --- a/lib/private/Contacts/ContactsMenu/Manager.php +++ b/lib/private/Contacts/ContactsMenu/Manager.php @@ -1,9 +1,9 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php b/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php index 242fbd06a22..89aea4d3208 100644 --- a/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php +++ b/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/DB/Connection.php b/lib/private/DB/Connection.php index 4f042e403f1..b9ef447b74b 100644 --- a/lib/private/DB/Connection.php +++ b/lib/private/DB/Connection.php @@ -4,7 +4,9 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Philipp Schaffrath <github@philipp.schaffrath.email> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/lib/private/DB/ConnectionFactory.php b/lib/private/DB/ConnectionFactory.php index 8848f6db3b4..082e81dfa74 100644 --- a/lib/private/DB/ConnectionFactory.php +++ b/lib/private/DB/ConnectionFactory.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Andreas Fischer <bantu@owncloud.com> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> diff --git a/lib/private/DB/MDB2SchemaManager.php b/lib/private/DB/MDB2SchemaManager.php index ad3f93a2643..d43255f0056 100644 --- a/lib/private/DB/MDB2SchemaManager.php +++ b/lib/private/DB/MDB2SchemaManager.php @@ -9,6 +9,7 @@ * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/private/DB/MDB2SchemaReader.php b/lib/private/DB/MDB2SchemaReader.php index 4092485d6a5..027d84db288 100644 --- a/lib/private/DB/MDB2SchemaReader.php +++ b/lib/private/DB/MDB2SchemaReader.php @@ -3,7 +3,6 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bart Visscher <bartv@thisnet.nl> - * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Oliver Gasser <oliver.gasser@gmail.com> diff --git a/lib/private/DB/MigrationService.php b/lib/private/DB/MigrationService.php index 45f6aee83f6..a021f00a922 100644 --- a/lib/private/DB/MigrationService.php +++ b/lib/private/DB/MigrationService.php @@ -1,12 +1,10 @@ <?php /** - * @author Joas Schilling <coding@schilljs.com> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Vincent Petry <pvince81@owncloud.com> - * * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * @copyright Copyright (c) 2017, ownCloud GmbH * + * @author Joas Schilling <coding@schilljs.com> + * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/lib/private/DB/Migrator.php b/lib/private/DB/Migrator.php index da381ba0284..603f9259d6e 100644 --- a/lib/private/DB/Migrator.php +++ b/lib/private/DB/Migrator.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author martin-rueegg <martin.rueegg@metaworx.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> diff --git a/lib/private/DB/MySqlTools.php b/lib/private/DB/MySqlTools.php index 32f1de887c3..7f0ba473268 100644 --- a/lib/private/DB/MySqlTools.php +++ b/lib/private/DB/MySqlTools.php @@ -1,8 +1,9 @@ <?php /** + * @copyright Copyright (c) 2017, ownCloud GmbH + * * @author Thomas Müller <thomas.mueller@tmit.eu> * - * @copyright Copyright (c) 2017, ownCloud GmbH * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/lib/private/DB/OCPostgreSqlPlatform.php b/lib/private/DB/OCPostgreSqlPlatform.php index 524a62c2beb..e66ab84252a 100644 --- a/lib/private/DB/OCPostgreSqlPlatform.php +++ b/lib/private/DB/OCPostgreSqlPlatform.php @@ -1,8 +1,9 @@ <?php /** - * @author Victor Dubiniuk <dubiniuk@owncloud.com> - * * @copyright Copyright (c) 2017, ownCloud GmbH + * + * @author Joas Schilling <coding@schilljs.com> + * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/lib/private/DB/OracleConnection.php b/lib/private/DB/OracleConnection.php index 51faf21970c..71ac6e8dc2a 100644 --- a/lib/private/DB/OracleConnection.php +++ b/lib/private/DB/OracleConnection.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bart Visscher <bartv@thisnet.nl> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> diff --git a/lib/private/DB/OracleMigrator.php b/lib/private/DB/OracleMigrator.php index f5e06b50d99..be90a4bb97f 100644 --- a/lib/private/DB/OracleMigrator.php +++ b/lib/private/DB/OracleMigrator.php @@ -2,9 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> + * @author Piotr Mrowczynski <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php b/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php index b165d8153f5..14d8ad33e40 100644 --- a/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php +++ b/lib/private/DB/QueryBuilder/ExpressionBuilder/SqliteExpressionBuilder.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php index 9ec8a9fd3c4..2789b8cb356 100644 --- a/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php +++ b/lib/private/DB/QueryBuilder/FunctionBuilder/FunctionBuilder.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php index 0f7a7dad236..dda3aba9c0b 100644 --- a/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php +++ b/lib/private/DB/QueryBuilder/FunctionBuilder/OCIFunctionBuilder.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php index 26aedb9a8bb..1a284515e24 100644 --- a/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php +++ b/lib/private/DB/QueryBuilder/FunctionBuilder/PgSqlFunctionBuilder.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php b/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php index f38445a6d36..21898cf3f93 100644 --- a/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php +++ b/lib/private/DB/QueryBuilder/FunctionBuilder/SqliteFunctionBuilder.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/DB/QueryBuilder/QueryBuilder.php b/lib/private/DB/QueryBuilder/QueryBuilder.php index 3fc827c9680..58be4b43255 100644 --- a/lib/private/DB/QueryBuilder/QueryBuilder.php +++ b/lib/private/DB/QueryBuilder/QueryBuilder.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/lib/private/DB/QueryBuilder/QuoteHelper.php b/lib/private/DB/QueryBuilder/QuoteHelper.php index 8821863ed07..5980310d31d 100644 --- a/lib/private/DB/QueryBuilder/QuoteHelper.php +++ b/lib/private/DB/QueryBuilder/QuoteHelper.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/lib/private/DB/SchemaWrapper.php b/lib/private/DB/SchemaWrapper.php index d686d7e63e5..2a0660b2a88 100644 --- a/lib/private/DB/SchemaWrapper.php +++ b/lib/private/DB/SchemaWrapper.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/DateTimeFormatter.php b/lib/private/DateTimeFormatter.php index 7fed5cf26a8..0e4ba7cb4be 100644 --- a/lib/private/DateTimeFormatter.php +++ b/lib/private/DateTimeFormatter.php @@ -2,9 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author dartcafe <github@dartcafe.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> - * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 * diff --git a/lib/private/Diagnostics/EventLogger.php b/lib/private/Diagnostics/EventLogger.php index 846be7efc5b..c49a464b4a7 100644 --- a/lib/private/Diagnostics/EventLogger.php +++ b/lib/private/Diagnostics/EventLogger.php @@ -3,9 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Morris Jobke <hey@morrisjobke.de> + * @author Piotr Mrówczyński <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Piotr Mrowczynski <piotr@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Diagnostics/Query.php b/lib/private/Diagnostics/Query.php index 7b083ed41b7..347695146c5 100644 --- a/lib/private/Diagnostics/Query.php +++ b/lib/private/Diagnostics/Query.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Morris Jobke <hey@morrisjobke.de> + * @author Piotr Mrówczyński <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/lib/private/Diagnostics/QueryLogger.php b/lib/private/Diagnostics/QueryLogger.php index 2b007b4f044..9ef966c0808 100644 --- a/lib/private/Diagnostics/QueryLogger.php +++ b/lib/private/Diagnostics/QueryLogger.php @@ -2,10 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Piotr Mrówczyński <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Piotr Mrowczynski <piotr@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Encryption/DecryptAll.php b/lib/private/Encryption/DecryptAll.php index caf4237ab9c..12bda54a52e 100644 --- a/lib/private/Encryption/DecryptAll.php +++ b/lib/private/Encryption/DecryptAll.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Christian Jürges <christian@eqipe.ch> * @author Joas Schilling <coding@schilljs.com> diff --git a/lib/private/Encryption/EncryptionWrapper.php b/lib/private/Encryption/EncryptionWrapper.php index 573fe0159ea..d0f3ae79d48 100644 --- a/lib/private/Encryption/EncryptionWrapper.php +++ b/lib/private/Encryption/EncryptionWrapper.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * * @license AGPL-3.0 * diff --git a/lib/private/Encryption/File.php b/lib/private/Encryption/File.php index 2bc0e014f0c..fbf7c1adaa8 100644 --- a/lib/private/Encryption/File.php +++ b/lib/private/Encryption/File.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/lib/private/Encryption/Keys/Storage.php b/lib/private/Encryption/Keys/Storage.php index a4c3a26d7be..223b959e661 100644 --- a/lib/private/Encryption/Keys/Storage.php +++ b/lib/private/Encryption/Keys/Storage.php @@ -2,9 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Encryption/Manager.php b/lib/private/Encryption/Manager.php index bfadebd0db0..fe34ef4555b 100644 --- a/lib/private/Encryption/Manager.php +++ b/lib/private/Encryption/Manager.php @@ -5,6 +5,7 @@ * @author Björn Schießle <bjoern@schiessle.org> * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Encryption/Update.php b/lib/private/Encryption/Update.php index 94d64b73504..9d9f5e4d954 100644 --- a/lib/private/Encryption/Update.php +++ b/lib/private/Encryption/Update.php @@ -2,8 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> - * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Encryption/Util.php b/lib/private/Encryption/Util.php index 4eefe4a4022..047ef1626df 100644 --- a/lib/private/Encryption/Util.php +++ b/lib/private/Encryption/Util.php @@ -2,9 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Federation/CloudId.php b/lib/private/Federation/CloudId.php index 6ba4ff9166b..f1d08f0687d 100644 --- a/lib/private/Federation/CloudId.php +++ b/lib/private/Federation/CloudId.php @@ -2,19 +2,22 @@ /** * @copyright Copyright (c) 2017, Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/private/Federation/CloudIdManager.php b/lib/private/Federation/CloudIdManager.php index 46d90f7ab92..3b7aaae5392 100644 --- a/lib/private/Federation/CloudIdManager.php +++ b/lib/private/Federation/CloudIdManager.php @@ -2,19 +2,23 @@ /** * @copyright Copyright (c) 2017, Robin Appelman <robin@icewind.nl> * + * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/private/Files/Cache/Cache.php b/lib/private/Files/Cache/Cache.php index e0a4d8da106..93af3fcf6b6 100644 --- a/lib/private/Files/Cache/Cache.php +++ b/lib/private/Files/Cache/Cache.php @@ -3,8 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Andreas Fischer <bantu@owncloud.com> + * @author Artem Kochnev <MrJeos@gmail.com> * @author Björn Schießle <bjoern@schiessle.org> * @author Florin Peter <github@florin-peter.de> + * @author Frédéric Fortier <frederic.fortier@oronospolytechnique.com> * @author Jens-Christian Fischer <jens-christian.fischer@switch.ch> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> @@ -14,10 +16,8 @@ * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author TheSFReader <TheSFReader@gmail.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> - * @author Xuanwo <xuanwo@yunify.com> * * @license AGPL-3.0 * diff --git a/lib/private/Files/Cache/Propagator.php b/lib/private/Files/Cache/Propagator.php index be69d174a0d..321fd7a66e8 100644 --- a/lib/private/Files/Cache/Propagator.php +++ b/lib/private/Files/Cache/Propagator.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/lib/private/Files/Cache/QuerySearchHelper.php b/lib/private/Files/Cache/QuerySearchHelper.php index 6812caabd24..51ecb12a06a 100644 --- a/lib/private/Files/Cache/QuerySearchHelper.php +++ b/lib/private/Files/Cache/QuerySearchHelper.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Files/Cache/Scanner.php b/lib/private/Files/Cache/Scanner.php index 3245af0c095..a6adccbb4e2 100644 --- a/lib/private/Files/Cache/Scanner.php +++ b/lib/private/Files/Cache/Scanner.php @@ -5,15 +5,14 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Björn Schießle <bjoern@schiessle.org> * @author Daniel Jagszent <daniel@jagszent.de> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Martin Mattel <martin.mattel@diemattels.at> - * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Owen Winkler <a_github@midnightcircus.com> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/lib/private/Files/Cache/StorageGlobal.php b/lib/private/Files/Cache/StorageGlobal.php index 81cd075cefe..65f689f1874 100644 --- a/lib/private/Files/Cache/StorageGlobal.php +++ b/lib/private/Files/Cache/StorageGlobal.php @@ -2,19 +2,22 @@ /** * @copyright Robin Appelman <robin@icewind.nl> * - * @license AGPL-3.0 + * @author Robin Appelman <robin@icewind.nl> * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/private/Files/Cache/Wrapper/CacheJail.php b/lib/private/Files/Cache/Wrapper/CacheJail.php index 8f12ca77ee6..f14166ae840 100644 --- a/lib/private/Files/Cache/Wrapper/CacheJail.php +++ b/lib/private/Files/Cache/Wrapper/CacheJail.php @@ -7,6 +7,7 @@ * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/private/Files/Cache/Wrapper/CacheWrapper.php b/lib/private/Files/Cache/Wrapper/CacheWrapper.php index 1463d1467b8..bf0d12ba2ea 100644 --- a/lib/private/Files/Cache/Wrapper/CacheWrapper.php +++ b/lib/private/Files/Cache/Wrapper/CacheWrapper.php @@ -7,7 +7,6 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Stefan Weil <sw@weilnetz.de> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/private/Files/Cache/Wrapper/JailPropagator.php b/lib/private/Files/Cache/Wrapper/JailPropagator.php index 297dfce6332..02c2111c4dd 100644 --- a/lib/private/Files/Cache/Wrapper/JailPropagator.php +++ b/lib/private/Files/Cache/Wrapper/JailPropagator.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Files/Config/CachedMountInfo.php b/lib/private/Files/Config/CachedMountInfo.php index c4132a34431..76b11a7033d 100644 --- a/lib/private/Files/Config/CachedMountInfo.php +++ b/lib/private/Files/Config/CachedMountInfo.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Robin Appelman <robin@icewind.nl> + * @author Semih Serhat Karakaya <karakayasemi@itu.edu.tr> * * @license AGPL-3.0 * diff --git a/lib/private/Files/Config/UserMountCache.php b/lib/private/Files/Config/UserMountCache.php index 9466aaf6c89..b8abd7e17de 100644 --- a/lib/private/Files/Config/UserMountCache.php +++ b/lib/private/Files/Config/UserMountCache.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * @author Vincent Petry <pvince81@owncloud.com> * @@ -194,7 +195,11 @@ class UserMountCache implements IUserMountCache { if (is_null($user)) { return null; } - return new CachedMountInfo($user, (int)$row['storage_id'], (int)$row['root_id'], $row['mount_point'], $row['mount_id'], isset($row['path']) ? $row['path'] : ''); + $mount_id = $row['mount_id']; + if (!is_null($mount_id)) { + $mount_id = (int) $mount_id; + } + return new CachedMountInfo($user, (int)$row['storage_id'], (int)$row['root_id'], $row['mount_point'], $mount_id, isset($row['path']) ? $row['path'] : ''); } /** diff --git a/lib/private/Files/FileInfo.php b/lib/private/Files/FileInfo.php index 7ac0c6e49d5..4c38ba769d3 100644 --- a/lib/private/Files/FileInfo.php +++ b/lib/private/Files/FileInfo.php @@ -2,9 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author 1 Man Projects <reed@1manprojects.de> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Piotr M <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/lib/private/Files/Mount/MountPoint.php b/lib/private/Files/Mount/MountPoint.php index e7a37e382ff..bff1f2e3f0c 100644 --- a/lib/private/Files/Mount/MountPoint.php +++ b/lib/private/Files/Mount/MountPoint.php @@ -3,7 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> diff --git a/lib/private/Files/Node/LazyRoot.php b/lib/private/Files/Node/LazyRoot.php index ae7623d0ed9..faa57ecb0b4 100644 --- a/lib/private/Files/Node/LazyRoot.php +++ b/lib/private/Files/Node/LazyRoot.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/private/Files/Node/Root.php b/lib/private/Files/Node/Root.php index 175cb4f914f..b8214576d7d 100644 --- a/lib/private/Files/Node/Root.php +++ b/lib/private/Files/Node/Root.php @@ -5,10 +5,12 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Files/ObjectStore/Mapper.php b/lib/private/Files/ObjectStore/Mapper.php index 81f8a9e3fa5..2b5cf6ea4ab 100644 --- a/lib/private/Files/ObjectStore/Mapper.php +++ b/lib/private/Files/ObjectStore/Mapper.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/private/Files/ObjectStore/S3.php b/lib/private/Files/ObjectStore/S3.php index e4a7b068b65..f8130074cd4 100644 --- a/lib/private/Files/ObjectStore/S3.php +++ b/lib/private/Files/ObjectStore/S3.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Files/ObjectStore/S3ConnectionTrait.php b/lib/private/Files/ObjectStore/S3ConnectionTrait.php index fdda19ff700..6556e7b169a 100644 --- a/lib/private/Files/ObjectStore/S3ConnectionTrait.php +++ b/lib/private/Files/ObjectStore/S3ConnectionTrait.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016 Robin Appelman <robin@icewind.nl> * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify @@ -90,8 +93,8 @@ trait S3ConnectionTrait { } $this->connection = new S3Client($options); - if (!S3Client::isBucketDnsCompatible($this->bucket)) { - throw new \Exception("The configured bucket name is invalid."); + if (!$this->connection->isBucketDnsCompatible($this->bucket)) { + throw new \Exception("The configured bucket name is invalid: " . $this->bucket); } if (!$this->connection->doesBucketExist($this->bucket)) { diff --git a/lib/private/Files/ObjectStore/S3ObjectTrait.php b/lib/private/Files/ObjectStore/S3ObjectTrait.php index 4bfa08a3e59..b418219c29b 100644 --- a/lib/private/Files/ObjectStore/S3ObjectTrait.php +++ b/lib/private/Files/ObjectStore/S3ObjectTrait.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Files/ObjectStore/StorageObjectStore.php b/lib/private/Files/ObjectStore/StorageObjectStore.php index 044243c1ee6..0d35ba2ed7a 100644 --- a/lib/private/Files/ObjectStore/StorageObjectStore.php +++ b/lib/private/Files/ObjectStore/StorageObjectStore.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Files/ObjectStore/Swift.php b/lib/private/Files/ObjectStore/Swift.php index 36a1a4a873f..2ee3a2d62d3 100644 --- a/lib/private/Files/ObjectStore/Swift.php +++ b/lib/private/Files/ObjectStore/Swift.php @@ -5,6 +5,7 @@ * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author William Pain <pain.william@gmail.com> * * @license AGPL-3.0 * diff --git a/lib/private/Files/Search/SearchBinaryOperator.php b/lib/private/Files/Search/SearchBinaryOperator.php index c9466d8b9ea..3115fea012f 100644 --- a/lib/private/Files/Search/SearchBinaryOperator.php +++ b/lib/private/Files/Search/SearchBinaryOperator.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Files/Search/SearchComparison.php b/lib/private/Files/Search/SearchComparison.php index 32c4ad0e5aa..93228fa6af0 100644 --- a/lib/private/Files/Search/SearchComparison.php +++ b/lib/private/Files/Search/SearchComparison.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Files/Search/SearchOrder.php b/lib/private/Files/Search/SearchOrder.php index c76d6f2e25e..3995dcae8bd 100644 --- a/lib/private/Files/Search/SearchOrder.php +++ b/lib/private/Files/Search/SearchOrder.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Files/Search/SearchQuery.php b/lib/private/Files/Search/SearchQuery.php index c1da5220516..a22db2f60b3 100644 --- a/lib/private/Files/Search/SearchQuery.php +++ b/lib/private/Files/Search/SearchQuery.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Files/Storage/Common.php b/lib/private/Files/Storage/Common.php index b842d86f6a7..715b7b18499 100644 --- a/lib/private/Files/Storage/Common.php +++ b/lib/private/Files/Storage/Common.php @@ -20,6 +20,7 @@ * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * diff --git a/lib/private/Files/Storage/DAV.php b/lib/private/Files/Storage/DAV.php index 223f270bc45..cd42b2d7073 100644 --- a/lib/private/Files/Storage/DAV.php +++ b/lib/private/Files/Storage/DAV.php @@ -5,7 +5,6 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> * @author Carlos Cerrillo <ccerrillo@gmail.com> - * @author Felix Moeller <mail@felixmoeller.de> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> @@ -14,6 +13,7 @@ * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> + * @author vkuimov "vkuimov@nextcloud" * * @license AGPL-3.0 * diff --git a/lib/private/Files/Storage/FailedStorage.php b/lib/private/Files/Storage/FailedStorage.php index d4046b62fee..9ed09e82e7d 100644 --- a/lib/private/Files/Storage/FailedStorage.php +++ b/lib/private/Files/Storage/FailedStorage.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/lib/private/Files/Storage/Local.php b/lib/private/Files/Storage/Local.php index c9cb6f246d7..731481d4f4f 100644 --- a/lib/private/Files/Storage/Local.php +++ b/lib/private/Files/Storage/Local.php @@ -3,14 +3,18 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bart Visscher <bartv@thisnet.nl> + * @author Boris Rybalkin <ribalkin@gmail.com> * @author Brice Maron <brice@bmaron.net> * @author Jakob Sack <mail@jakobsack.de> * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Klaas Freitag <freitag@owncloud.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Martin Mattel <martin.mattel@diemattels.at> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Sjors van der Pluijm <sjors@desjors.nl> * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/lib/private/Files/Storage/Wrapper/Availability.php b/lib/private/Files/Storage/Wrapper/Availability.php index 1fd38b5d6b7..5b957ae036b 100644 --- a/lib/private/Files/Storage/Wrapper/Availability.php +++ b/lib/private/Files/Storage/Wrapper/Availability.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * diff --git a/lib/private/Files/Storage/Wrapper/Encoding.php b/lib/private/Files/Storage/Wrapper/Encoding.php index 240a1f3e049..bc8519bf42c 100644 --- a/lib/private/Files/Storage/Wrapper/Encoding.php +++ b/lib/private/Files/Storage/Wrapper/Encoding.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/private/Files/Storage/Wrapper/Encryption.php b/lib/private/Files/Storage/Wrapper/Encryption.php index e359e86319c..1ca750f0024 100644 --- a/lib/private/Files/Storage/Wrapper/Encryption.php +++ b/lib/private/Files/Storage/Wrapper/Encryption.php @@ -2,9 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Piotr M <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/lib/private/Files/Storage/Wrapper/Jail.php b/lib/private/Files/Storage/Wrapper/Jail.php index d30563341cb..d477678c277 100644 --- a/lib/private/Files/Storage/Wrapper/Jail.php +++ b/lib/private/Files/Storage/Wrapper/Jail.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/lib/private/Files/Storage/Wrapper/PermissionsMask.php b/lib/private/Files/Storage/Wrapper/PermissionsMask.php index 16f0e420818..30c59b96abf 100644 --- a/lib/private/Files/Storage/Wrapper/PermissionsMask.php +++ b/lib/private/Files/Storage/Wrapper/PermissionsMask.php @@ -2,10 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> * * @license AGPL-3.0 diff --git a/lib/private/Files/Storage/Wrapper/Quota.php b/lib/private/Files/Storage/Wrapper/Quota.php index e89a8d08de7..22338f9c3cc 100644 --- a/lib/private/Files/Storage/Wrapper/Quota.php +++ b/lib/private/Files/Storage/Wrapper/Quota.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> diff --git a/lib/private/Files/Storage/Wrapper/Wrapper.php b/lib/private/Files/Storage/Wrapper/Wrapper.php index 847a714f7dd..060c596ad65 100644 --- a/lib/private/Files/Storage/Wrapper/Wrapper.php +++ b/lib/private/Files/Storage/Wrapper/Wrapper.php @@ -2,11 +2,14 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * diff --git a/lib/private/Files/Stream/Encryption.php b/lib/private/Files/Stream/Encryption.php index b68917ce76e..d76ba85aa62 100644 --- a/lib/private/Files/Stream/Encryption.php +++ b/lib/private/Files/Stream/Encryption.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author jknockaert <jasper@knockaert.nl> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/lib/private/Files/Type/Detection.php b/lib/private/Files/Type/Detection.php index 928c68251cf..32075627632 100644 --- a/lib/private/Files/Type/Detection.php +++ b/lib/private/Files/Type/Detection.php @@ -5,12 +5,15 @@ * @author Andreas Fischer <bantu@owncloud.com> * @author Hendrik Leppelsack <hendrik@leppelsack.de> * @author Jens-Christian Fischer <jens-christian.fischer@switch.ch> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Magnus Walbeck <mw@mwalbeck.org> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Tanghus <thomas@tanghus.net> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Files/Type/Loader.php b/lib/private/Files/Type/Loader.php index 710562d32b5..2b15c9b6e13 100644 --- a/lib/private/Files/Type/Loader.php +++ b/lib/private/Files/Type/Loader.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> + * @author Rello <Rello@users.noreply.github.com> + * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * * @license AGPL-3.0 diff --git a/lib/private/Files/Utils/Scanner.php b/lib/private/Files/Utils/Scanner.php index fac95462ce5..162e5759121 100644 --- a/lib/private/Files/Utils/Scanner.php +++ b/lib/private/Files/Utils/Scanner.php @@ -6,7 +6,9 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Olivier Paroz <github@oparoz.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Files/View.php b/lib/private/Files/View.php index d69f3b45fd2..d314d727bfa 100644 --- a/lib/private/Files/View.php +++ b/lib/private/Files/View.php @@ -5,7 +5,6 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> - * @author cmeh <cmeh@users.noreply.github.com> * @author Florin Peter <github@florin-peter.de> * @author Jesús Macias <jmacias@solidgear.es> * @author Joas Schilling <coding@schilljs.com> @@ -14,7 +13,6 @@ * @author Klaas Freitag <freitag@owncloud.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Luke Policinski <lpolicinski@gmail.com> - * @author Martin Mattel <martin.mattel@diemattels.at> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Petr Svoboda <weits666@gmail.com> diff --git a/lib/private/GlobalScale/Config.php b/lib/private/GlobalScale/Config.php index 3d718e5d04b..da7a459741b 100644 --- a/lib/private/GlobalScale/Config.php +++ b/lib/private/GlobalScale/Config.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Group/Backend.php b/lib/private/Group/Backend.php index 001d8d9da66..6df7f3ad8a6 100644 --- a/lib/private/Group/Backend.php +++ b/lib/private/Group/Backend.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Knut Ahlers <knut@ahlers.me> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Group/Database.php b/lib/private/Group/Database.php index 8be24fc50de..9e59505bdf7 100644 --- a/lib/private/Group/Database.php +++ b/lib/private/Group/Database.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Aaron Wood <aaronjwood@gmail.com> + * @author Loki3000 <github@labcms.ru> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/private/Group/Group.php b/lib/private/Group/Group.php index 32ab79adab3..6795f0e2f53 100644 --- a/lib/private/Group/Group.php +++ b/lib/private/Group/Group.php @@ -9,6 +9,7 @@ * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Group/Manager.php b/lib/private/Group/Manager.php index 15d83380acf..2d40b447996 100644 --- a/lib/private/Group/Manager.php +++ b/lib/private/Group/Manager.php @@ -7,6 +7,7 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Knut Ahlers <knut@ahlers.me> * @author Lukas Reschke <lukas@statuscode.ch> * @author macjohnny <estebanmarin@gmx.ch> * @author Morris Jobke <hey@morrisjobke.de> @@ -15,7 +16,9 @@ * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Roman Kreisel <mail@romankreisel.de> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author voxsim <Simon Vocella> + * @author Vincent Petry <pvince81@owncloud.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * @author voxsim "Simon Vocella" * * @license AGPL-3.0 * @@ -74,7 +77,7 @@ class Manager extends PublicEmitter implements IGroupManager { private $cachedGroups = array(); /** - * @var \OC\Group\Group[][] + * @var \OC\Group\Group[] */ private $cachedUserGroups = array(); @@ -144,7 +147,16 @@ class Manager extends PublicEmitter implements IGroupManager { $this->backends = array(); $this->clearCaches(); } - + + /** + * Get the active backends + * @return \OCP\GroupInterface[] + */ + public function getBackends() { + return $this->backends; + } + + protected function clearCaches() { $this->cachedGroups = array(); $this->cachedUserGroups = array(); diff --git a/lib/private/HintException.php b/lib/private/HintException.php index 1233fdca148..7fa26d68455 100644 --- a/lib/private/HintException.php +++ b/lib/private/HintException.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> diff --git a/lib/private/Hooks/LegacyEmitter.php b/lib/private/Hooks/LegacyEmitter.php index d18bb88eae6..1a4dde1e1fb 100644 --- a/lib/private/Hooks/LegacyEmitter.php +++ b/lib/private/Hooks/LegacyEmitter.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * diff --git a/lib/private/Hooks/PublicEmitter.php b/lib/private/Hooks/PublicEmitter.php index b34769d9b09..c7e0ea42815 100644 --- a/lib/private/Hooks/PublicEmitter.php +++ b/lib/private/Hooks/PublicEmitter.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * diff --git a/lib/private/Installer.php b/lib/private/Installer.php index d5082a7fad2..be029c2bfd7 100644 --- a/lib/private/Installer.php +++ b/lib/private/Installer.php @@ -4,22 +4,16 @@ * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Bart Visscher <bartv@thisnet.nl> * @author Brice Maron <brice@bmaron.net> - * @author Christian Weiske <cweiske@cweiske.de> - * @author Christopher Schäpers <kondou@ts.unde.re> + * @author Christoph Wurst <christoph@owncloud.com> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> - * @author Jakob Sack <mail@jakobsack.de> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Kamil Domanski <kdomanski@kdemail.net> * @author Lukas Reschke <lukas@statuscode.ch> - * @author michag86 <micha_g@arcor.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author root <root@oc.(none)> + * @author root "root@oc.(none)" * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * diff --git a/lib/private/IntegrityCheck/Checker.php b/lib/private/IntegrityCheck/Checker.php index d051dae11a7..ee7e35550a6 100644 --- a/lib/private/IntegrityCheck/Checker.php +++ b/lib/private/IntegrityCheck/Checker.php @@ -2,8 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/private/IntegrityCheck/Helpers/FileAccessHelper.php b/lib/private/IntegrityCheck/Helpers/FileAccessHelper.php index a7e378c165e..ef8e8b41b3f 100644 --- a/lib/private/IntegrityCheck/Helpers/FileAccessHelper.php +++ b/lib/private/IntegrityCheck/Helpers/FileAccessHelper.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/L10N/L10N.php b/lib/private/L10N/L10N.php index 620c99dd1ec..e9e720a3766 100644 --- a/lib/private/L10N/L10N.php +++ b/lib/private/L10N/L10N.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * @@ -169,6 +171,8 @@ class L10N implements IL10N { return (string) Calendar::formatDatetime($value, $width, $locale); case 'time': return (string) Calendar::formatTime($value, $width, $locale); + case 'weekdayName': + return (string) Calendar::getWeekdayName($value, $width, $locale); default: return false; } diff --git a/lib/private/L10N/L10NString.php b/lib/private/L10N/L10NString.php index 75fcd7f5e44..7b89c445b3f 100644 --- a/lib/private/L10N/L10NString.php +++ b/lib/private/L10N/L10NString.php @@ -7,7 +7,9 @@ * @author Jakob Sack <mail@jakobsack.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/L10N/LanguageNotFoundException.php b/lib/private/L10N/LanguageNotFoundException.php index 175f6ab3483..317e0629b60 100644 --- a/lib/private/L10N/LanguageNotFoundException.php +++ b/lib/private/L10N/LanguageNotFoundException.php @@ -1,6 +1,7 @@ <?php /** * + * * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/Lock/DBLockingProvider.php b/lib/private/Lock/DBLockingProvider.php index f4778a35fa8..9de1098a466 100644 --- a/lib/private/Lock/DBLockingProvider.php +++ b/lib/private/Lock/DBLockingProvider.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Individual IT Services <info@individual-it.net> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/lib/private/Lockdown/Filesystem/NullCache.php b/lib/private/Lockdown/Filesystem/NullCache.php index 670a2fadef3..d45d1781abe 100644 --- a/lib/private/Lockdown/Filesystem/NullCache.php +++ b/lib/private/Lockdown/Filesystem/NullCache.php @@ -1,19 +1,23 @@ <?php - /** * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl> * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * @author Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/private/Lockdown/Filesystem/NullStorage.php b/lib/private/Lockdown/Filesystem/NullStorage.php index 3f3aad3df03..1a6ae77ca07 100644 --- a/lib/private/Lockdown/Filesystem/NullStorage.php +++ b/lib/private/Lockdown/Filesystem/NullStorage.php @@ -1,19 +1,24 @@ <?php - /** * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl> * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/private/Lockdown/LockdownManager.php b/lib/private/Lockdown/LockdownManager.php index 93752dc922f..91d0ece4f54 100644 --- a/lib/private/Lockdown/LockdownManager.php +++ b/lib/private/Lockdown/LockdownManager.php @@ -1,19 +1,23 @@ <?php - /** * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl> * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * @author Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/private/Log.php b/lib/private/Log.php index 25ff26daffa..0d1f7a01265 100644 --- a/lib/private/Log.php +++ b/lib/private/Log.php @@ -2,15 +2,18 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Joas Schilling <coding@schilljs.com> + * @author Johannes Schlichenmaier <johannes@schlichenmaier.info> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Olivier Paroz <github@oparoz.com> * @author Robin Appelman <robin@icewind.nl> - * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Thomas Pulzer <t.pulzer@kniel.de> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/private/Log/File.php b/lib/private/Log/File.php index c6677dd528d..b6a208ad68a 100644 --- a/lib/private/Log/File.php +++ b/lib/private/Log/File.php @@ -4,17 +4,20 @@ * * @author Andreas Fischer <bantu@owncloud.com> * @author Bart Visscher <bartv@thisnet.nl> - * @author Georg Ehrke <georg@owncloud.com> + * @author duritong <peter.meier+github@immerda.ch> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> + * @author Juan Pablo Villafáñez <jvillafanez@solidgear.es> * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Phiber2000 <phiber2000@gmx.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Pulzer <t.pulzer@kniel.de> * @author Vincent Petry <pvince81@owncloud.com> - * @author Roger Szabo <roger.szabo@web.de> * * @license AGPL-3.0 * diff --git a/lib/private/Log/Rotate.php b/lib/private/Log/Rotate.php index 866068433ff..1788cbfa6e1 100644 --- a/lib/private/Log/Rotate.php +++ b/lib/private/Log/Rotate.php @@ -4,6 +4,7 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Mail/Attachment.php b/lib/private/Mail/Attachment.php index 7b85ad1dbb9..822fca5a24e 100644 --- a/lib/private/Mail/Attachment.php +++ b/lib/private/Mail/Attachment.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Mail/EMailTemplate.php b/lib/private/Mail/EMailTemplate.php index e4e28a9294e..1d905635d55 100644 --- a/lib/private/Mail/EMailTemplate.php +++ b/lib/private/Mail/EMailTemplate.php @@ -3,8 +3,10 @@ * @copyright 2017, Morris Jobke <hey@morrisjobke.de> * @copyright 2017, Lukas Reschke <lukas@statuscode.ch> * - * @author Morris Jobke <hey@morrisjobke.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Mail/Mailer.php b/lib/private/Mail/Mailer.php index ad59d640b3e..3637bb1e27d 100644 --- a/lib/private/Mail/Mailer.php +++ b/lib/private/Mail/Mailer.php @@ -2,7 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Mail/Message.php b/lib/private/Mail/Message.php index dcd4a66e996..c695f0f4fb1 100644 --- a/lib/private/Mail/Message.php +++ b/lib/private/Mail/Message.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Memcache/Factory.php b/lib/private/Memcache/Factory.php index 8e62e020faa..ff539e55420 100644 --- a/lib/private/Memcache/Factory.php +++ b/lib/private/Memcache/Factory.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Andreas Fischer <bantu@owncloud.com> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Markus Goetz <markus@woboq.com> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/private/Memcache/Memcached.php b/lib/private/Memcache/Memcached.php index 4347fc99e54..48b6794d516 100644 --- a/lib/private/Memcache/Memcached.php +++ b/lib/private/Memcache/Memcached.php @@ -9,7 +9,9 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Memcache/Redis.php b/lib/private/Memcache/Redis.php index dd7e929a828..9cc61114b00 100644 --- a/lib/private/Memcache/Redis.php +++ b/lib/private/Memcache/Redis.php @@ -6,6 +6,8 @@ * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> * * @license AGPL-3.0 diff --git a/lib/private/Memcache/XCache.php b/lib/private/Memcache/XCache.php index 549896e6c6b..17dd972128f 100644 --- a/lib/private/Memcache/XCache.php +++ b/lib/private/Memcache/XCache.php @@ -8,6 +8,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Migration/BackgroundRepair.php b/lib/private/Migration/BackgroundRepair.php index cf4abbce15e..62ba3a9554c 100644 --- a/lib/private/Migration/BackgroundRepair.php +++ b/lib/private/Migration/BackgroundRepair.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Migration/ConsoleOutput.php b/lib/private/Migration/ConsoleOutput.php index 892a2f43419..74c8c7340cc 100644 --- a/lib/private/Migration/ConsoleOutput.php +++ b/lib/private/Migration/ConsoleOutput.php @@ -1,8 +1,9 @@ <?php /** - * @author Thomas Müller <thomas.mueller@tmit.eu> - * * @copyright Copyright (c) 2017, ownCloud GmbH + * + * @author Morris Jobke <hey@morrisjobke.de> + * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/lib/private/Migration/SimpleOutput.php b/lib/private/Migration/SimpleOutput.php index b28fcbd7628..ea61c44fcac 100644 --- a/lib/private/Migration/SimpleOutput.php +++ b/lib/private/Migration/SimpleOutput.php @@ -1,8 +1,9 @@ <?php /** - * @author Thomas Müller <thomas.mueller@tmit.eu> - * * @copyright Copyright (c) 2017, ownCloud GmbH + * + * @author Joas Schilling <coding@schilljs.com> + * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/lib/private/NavigationManager.php b/lib/private/NavigationManager.php index 3cf4459ddfc..31d147a3b80 100644 --- a/lib/private/NavigationManager.php +++ b/lib/private/NavigationManager.php @@ -2,8 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud GmbH * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/lib/private/Notification/Manager.php b/lib/private/Notification/Manager.php index 1d139167552..bf0e8abadbb 100644 --- a/lib/private/Notification/Manager.php +++ b/lib/private/Notification/Manager.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Notification/Notification.php b/lib/private/Notification/Notification.php index e5a8976f54d..ef7cdb5d444 100644 --- a/lib/private/Notification/Notification.php +++ b/lib/private/Notification/Notification.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/OCS/DiscoveryService.php b/lib/private/OCS/DiscoveryService.php index 5534fb24ef5..35230b4cfd3 100644 --- a/lib/private/OCS/DiscoveryService.php +++ b/lib/private/OCS/DiscoveryService.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/OCS/Provider.php b/lib/private/OCS/Provider.php index 2e9ed85b67b..737dd1d6f2c 100644 --- a/lib/private/OCS/Provider.php +++ b/lib/private/OCS/Provider.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * diff --git a/lib/private/Preview/Bitmap.php b/lib/private/Preview/Bitmap.php index e9fd6cc7c03..a375717480a 100644 --- a/lib/private/Preview/Bitmap.php +++ b/lib/private/Preview/Bitmap.php @@ -5,7 +5,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Olivier Paroz <github@oparoz.com> - * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Preview/Generator.php b/lib/private/Preview/Generator.php index 71e9fdb1a20..402732ecda9 100644 --- a/lib/private/Preview/Generator.php +++ b/lib/private/Preview/Generator.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/Preview/Image.php b/lib/private/Preview/Image.php index 7fdf1bbd500..86ce3bcd071 100644 --- a/lib/private/Preview/Image.php +++ b/lib/private/Preview/Image.php @@ -2,7 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author josh4trunks <joshruehlig@gmail.com> * @author Olivier Paroz <github@oparoz.com> diff --git a/lib/private/Preview/MP3.php b/lib/private/Preview/MP3.php index 05cd7c0edb1..11a512286ec 100644 --- a/lib/private/Preview/MP3.php +++ b/lib/private/Preview/MP3.php @@ -2,11 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> - * @author Hendrik Leppelsack <hendrik@leppelsack.de> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Olivier Paroz <github@oparoz.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Tanghus <thomas@tanghus.net> * * @license AGPL-3.0 diff --git a/lib/private/Preview/Movie.php b/lib/private/Preview/Movie.php index d6a589dfaea..3576a889e56 100644 --- a/lib/private/Preview/Movie.php +++ b/lib/private/Preview/Movie.php @@ -2,7 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Olivier Paroz <github@oparoz.com> diff --git a/lib/private/Preview/Office.php b/lib/private/Preview/Office.php index 322b254e38e..2ec677c04fe 100644 --- a/lib/private/Preview/Office.php +++ b/lib/private/Preview/Office.php @@ -6,7 +6,7 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Olivier Paroz <github@oparoz.com> * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Preview/Provider.php b/lib/private/Preview/Provider.php index 5c9234fcf78..d0dd259891f 100644 --- a/lib/private/Preview/Provider.php +++ b/lib/private/Preview/Provider.php @@ -2,7 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Olivier Paroz <github@oparoz.com> diff --git a/lib/private/Preview/SVG.php b/lib/private/Preview/SVG.php index fb06faf9c23..0695c251c8b 100644 --- a/lib/private/Preview/SVG.php +++ b/lib/private/Preview/SVG.php @@ -2,10 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Olivier Paroz <github@oparoz.com> - * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Preview/TXT.php b/lib/private/Preview/TXT.php index 8448991be23..6fd7a5516e0 100644 --- a/lib/private/Preview/TXT.php +++ b/lib/private/Preview/TXT.php @@ -2,7 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Nmz <nemesiz@nmz.lt> diff --git a/lib/private/PreviewManager.php b/lib/private/PreviewManager.php index 12fcc292c63..db575a8cbe0 100644 --- a/lib/private/PreviewManager.php +++ b/lib/private/PreviewManager.php @@ -6,6 +6,7 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Olivier Paroz <github@oparoz.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/RedisFactory.php b/lib/private/RedisFactory.php index 701e15325c3..754437c06c7 100644 --- a/lib/private/RedisFactory.php +++ b/lib/private/RedisFactory.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Robin Appelman <robin@icewind.nl> + * @author Robin McCorkell <robin@mccorkell.me.uk> * * @license AGPL-3.0 * diff --git a/lib/private/Repair.php b/lib/private/Repair.php index ac824095d53..8562465aad3 100644 --- a/lib/private/Repair.php +++ b/lib/private/Repair.php @@ -2,8 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/private/Repair/CleanTags.php b/lib/private/Repair/CleanTags.php index de46d039229..ce049ec1cd8 100644 --- a/lib/private/Repair/CleanTags.php +++ b/lib/private/Repair/CleanTags.php @@ -3,7 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Repair/Collation.php b/lib/private/Repair/Collation.php index a01700e047e..2642985371b 100644 --- a/lib/private/Repair/Collation.php +++ b/lib/private/Repair/Collation.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/lib/private/Repair/NC11/MoveAvatars.php b/lib/private/Repair/NC11/MoveAvatars.php index f98068eaa45..cff591904f1 100644 --- a/lib/private/Repair/NC11/MoveAvatars.php +++ b/lib/private/Repair/NC11/MoveAvatars.php @@ -2,6 +2,7 @@ /** * @copyright 2016 Roeland Jago Douma <roeland@famdouma.nl> * + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/Repair/NC11/MoveAvatarsBackgroundJob.php b/lib/private/Repair/NC11/MoveAvatarsBackgroundJob.php index d46b6fec8fc..81f375e1b41 100644 --- a/lib/private/Repair/NC11/MoveAvatarsBackgroundJob.php +++ b/lib/private/Repair/NC11/MoveAvatarsBackgroundJob.php @@ -2,6 +2,8 @@ /** * @copyright 2016 Roeland Jago Douma <roeland@famdouma.nl> * + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/Repair/NC12/InstallCoreBundle.php b/lib/private/Repair/NC12/InstallCoreBundle.php index 38583b09a89..f7a2b07dec0 100644 --- a/lib/private/Repair/NC12/InstallCoreBundle.php +++ b/lib/private/Repair/NC12/InstallCoreBundle.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Repair/NC12/RepairIdentityProofKeyFolders.php b/lib/private/Repair/NC12/RepairIdentityProofKeyFolders.php index e02104ddf70..f8b8b8bdc28 100644 --- a/lib/private/Repair/NC12/RepairIdentityProofKeyFolders.php +++ b/lib/private/Repair/NC12/RepairIdentityProofKeyFolders.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Repair/NC12/UpdateLanguageCodes.php b/lib/private/Repair/NC12/UpdateLanguageCodes.php index f4a1204543b..a8522449d56 100644 --- a/lib/private/Repair/NC12/UpdateLanguageCodes.php +++ b/lib/private/Repair/NC12/UpdateLanguageCodes.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de> * + * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/Repair/NC13/RepairInvalidPaths.php b/lib/private/Repair/NC13/RepairInvalidPaths.php index a8ccb9a579f..941224012a1 100644 --- a/lib/private/Repair/NC13/RepairInvalidPaths.php +++ b/lib/private/Repair/NC13/RepairInvalidPaths.php @@ -2,6 +2,11 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Repair/OldGroupMembershipShares.php b/lib/private/Repair/OldGroupMembershipShares.php index 5b941d1fcbd..6d372c6cde7 100644 --- a/lib/private/Repair/OldGroupMembershipShares.php +++ b/lib/private/Repair/OldGroupMembershipShares.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Repair/RemoveRootShares.php b/lib/private/Repair/RemoveRootShares.php index 69fcb1b4492..a06105384fb 100644 --- a/lib/private/Repair/RemoveRootShares.php +++ b/lib/private/Repair/RemoveRootShares.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/private/Repair/RepairInvalidShares.php b/lib/private/Repair/RepairInvalidShares.php index 92423165541..5b3f9dcd37b 100644 --- a/lib/private/Repair/RepairInvalidShares.php +++ b/lib/private/Repair/RepairInvalidShares.php @@ -3,7 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> - * @author Morris Jobke <hey@morrisjobke.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> * diff --git a/lib/private/Repair/RepairMimeTypes.php b/lib/private/Repair/RepairMimeTypes.php index 74d81be9834..e98a7f52366 100644 --- a/lib/private/Repair/RepairMimeTypes.php +++ b/lib/private/Repair/RepairMimeTypes.php @@ -2,12 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Faruk Uzun <farukuzun@collabora.com> + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> - * @author Normal Ra <normalraw@gmail.com> * @author Olivier Paroz <github@oparoz.com> - * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Stefan Weil <sw@weilnetz.de> + * @author Thomas Ebert <thomas.ebert@usability.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/lib/private/RichObjectStrings/Validator.php b/lib/private/RichObjectStrings/Validator.php index d90a6780ea8..55a50fc2a48 100644 --- a/lib/private/RichObjectStrings/Validator.php +++ b/lib/private/RichObjectStrings/Validator.php @@ -2,6 +2,10 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Route/Route.php b/lib/private/Route/Route.php index 7fa630a89fa..22d91c2e502 100644 --- a/lib/private/Route/Route.php +++ b/lib/private/Route/Route.php @@ -4,10 +4,10 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author David Prévot <taffit@debian.org> - * @author Felix Moeller <mail@felixmoeller.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Tanghus <thomas@tanghus.net> * * @license AGPL-3.0 diff --git a/lib/private/Route/Router.php b/lib/private/Route/Router.php index 34ffd244eb7..b44b3f7c2ce 100644 --- a/lib/private/Route/Router.php +++ b/lib/private/Route/Router.php @@ -4,7 +4,7 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Bernhard Posselt <dev@bernhard-posselt.com> - * @author Felix Anand Epp <work@felixepp.de> + * @author Felix Epp <work@felixepp.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/lib/private/Search/Provider/File.php b/lib/private/Search/Provider/File.php index 787725ab87b..ec1754ef623 100644 --- a/lib/private/Search/Provider/File.php +++ b/lib/private/Search/Provider/File.php @@ -7,6 +7,7 @@ * @author Jakob Sack <mail@jakobsack.de> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Security/Bruteforce/Capabilities.php b/lib/private/Security/Bruteforce/Capabilities.php index f366dbc2bb6..3df0458c694 100644 --- a/lib/private/Security/Bruteforce/Capabilities.php +++ b/lib/private/Security/Bruteforce/Capabilities.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Roeland Jago Douma <roeland@famdouma.nl> * + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Security/Bruteforce/Throttler.php b/lib/private/Security/Bruteforce/Throttler.php index f495baf1924..1626cee8cb3 100644 --- a/lib/private/Security/Bruteforce/Throttler.php +++ b/lib/private/Security/Bruteforce/Throttler.php @@ -2,7 +2,10 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Security/CSP/ContentSecurityPolicy.php b/lib/private/Security/CSP/ContentSecurityPolicy.php index a6892505520..2adc3d3d12c 100644 --- a/lib/private/Security/CSP/ContentSecurityPolicy.php +++ b/lib/private/Security/CSP/ContentSecurityPolicy.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Thomas Citharel <tcit@tcit.fr> * * @license AGPL-3.0 * diff --git a/lib/private/Security/CSP/ContentSecurityPolicyNonceManager.php b/lib/private/Security/CSP/ContentSecurityPolicyNonceManager.php index 85ae127f5f1..266e5809c24 100644 --- a/lib/private/Security/CSP/ContentSecurityPolicyNonceManager.php +++ b/lib/private/Security/CSP/ContentSecurityPolicyNonceManager.php @@ -2,6 +2,10 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Security/CSRF/CsrfToken.php b/lib/private/Security/CSRF/CsrfToken.php index 09195fcc3b7..d9e27ff80e3 100644 --- a/lib/private/Security/CSRF/CsrfToken.php +++ b/lib/private/Security/CSRF/CsrfToken.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Leon Klingele <git@leonklingele.de> * @author Lukas Reschke <lukas@statuscode.ch> * * @license AGPL-3.0 diff --git a/lib/private/Security/CSRF/TokenStorage/SessionStorage.php b/lib/private/Security/CSRF/TokenStorage/SessionStorage.php index 9d2e723a6d3..946330b0c8c 100644 --- a/lib/private/Security/CSRF/TokenStorage/SessionStorage.php +++ b/lib/private/Security/CSRF/TokenStorage/SessionStorage.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * * @license AGPL-3.0 diff --git a/lib/private/Security/CertificateManager.php b/lib/private/Security/CertificateManager.php index ea7b045c205..90ad7de9b59 100644 --- a/lib/private/Security/CertificateManager.php +++ b/lib/private/Security/CertificateManager.php @@ -8,6 +8,7 @@ * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Security/Hasher.php b/lib/private/Security/Hasher.php index ddba82fec43..1ba6d7059eb 100644 --- a/lib/private/Security/Hasher.php +++ b/lib/private/Security/Hasher.php @@ -4,6 +4,7 @@ * * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Security/IdentityProof/Key.php b/lib/private/Security/IdentityProof/Key.php index 9739a9571bb..b01a5c66bb8 100644 --- a/lib/private/Security/IdentityProof/Key.php +++ b/lib/private/Security/IdentityProof/Key.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Security/IdentityProof/Manager.php b/lib/private/Security/IdentityProof/Manager.php index c5134e12b8d..7bfc139b94c 100644 --- a/lib/private/Security/IdentityProof/Manager.php +++ b/lib/private/Security/IdentityProof/Manager.php @@ -2,6 +2,10 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Security/IdentityProof/Signer.php b/lib/private/Security/IdentityProof/Signer.php index 169f284fe9d..ed2a38f99b8 100644 --- a/lib/private/Security/IdentityProof/Signer.php +++ b/lib/private/Security/IdentityProof/Signer.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Security/Normalizer/IpAddress.php b/lib/private/Security/Normalizer/IpAddress.php index c44a5556678..e9bb0be34cc 100644 --- a/lib/private/Security/Normalizer/IpAddress.php +++ b/lib/private/Security/Normalizer/IpAddress.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Security/RateLimiting/Backend/IBackend.php b/lib/private/Security/RateLimiting/Backend/IBackend.php index 9753eb4997c..b20d27af42b 100644 --- a/lib/private/Security/RateLimiting/Backend/IBackend.php +++ b/lib/private/Security/RateLimiting/Backend/IBackend.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Security/RateLimiting/Backend/MemoryCache.php b/lib/private/Security/RateLimiting/Backend/MemoryCache.php index 25595cda4a5..212df664c17 100644 --- a/lib/private/Security/RateLimiting/Backend/MemoryCache.php +++ b/lib/private/Security/RateLimiting/Backend/MemoryCache.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Security/RateLimiting/Exception/RateLimitExceededException.php b/lib/private/Security/RateLimiting/Exception/RateLimitExceededException.php index 34cbec31c73..ffe9b534fed 100644 --- a/lib/private/Security/RateLimiting/Exception/RateLimitExceededException.php +++ b/lib/private/Security/RateLimiting/Exception/RateLimitExceededException.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Security/RateLimiting/Limiter.php b/lib/private/Security/RateLimiting/Limiter.php index 5c084eb934b..6a4176a0d50 100644 --- a/lib/private/Security/RateLimiting/Limiter.php +++ b/lib/private/Security/RateLimiting/Limiter.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Lukas Reschke <lukas@statuscode.ch> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/Security/TrustedDomainHelper.php b/lib/private/Security/TrustedDomainHelper.php index 221d21fb6a4..5237767d8ea 100644 --- a/lib/private/Security/TrustedDomainHelper.php +++ b/lib/private/Security/TrustedDomainHelper.php @@ -5,6 +5,7 @@ * @author Johannes Ernst <jernst@indiecomputing.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/private/Server.php b/lib/private/Server.php index c461d3842cd..af18b1a3a11 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -9,20 +9,25 @@ * @author Bernhard Reiter <ockham@raz.or.at> * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> - * @author Christopher Schäpers <kondou@ts.unde.re> * @author Christoph Wurst <christoph@owncloud.com> + * @author Christopher Schäpers <kondou@ts.unde.re> + * @author Damjan Georgievski <gdamjan@gmail.com> * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Piotr Mrówczyński <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author root <root@localhost.localdomain> * @author Sander <brantje@gmail.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * @author Vincent Petry <pvince81@owncloud.com> - * @author Roger Szabo <roger.szabo@web.de> * * @license AGPL-3.0 * diff --git a/lib/private/Session/CryptoSessionData.php b/lib/private/Session/CryptoSessionData.php index 31fcea4a7a6..272e82ef496 100644 --- a/lib/private/Session/CryptoSessionData.php +++ b/lib/private/Session/CryptoSessionData.php @@ -5,6 +5,8 @@ * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Session/Internal.php b/lib/private/Session/Internal.php index 09b33f79d29..d137d72a048 100644 --- a/lib/private/Session/Internal.php +++ b/lib/private/Session/Internal.php @@ -2,13 +2,14 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author cetra3 <peter@parashift.com.au> * @author Christoph Wurst <christoph@owncloud.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> - * @author Phil Davis <phil.davis@inf.org> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Settings/Admin/Additional.php b/lib/private/Settings/Admin/Additional.php index 57bb382c1fa..36258573047 100644 --- a/lib/private/Settings/Admin/Additional.php +++ b/lib/private/Settings/Admin/Additional.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Settings/Admin/Encryption.php b/lib/private/Settings/Admin/Encryption.php index 7ee4bafbfeb..012f5791610 100644 --- a/lib/private/Settings/Admin/Encryption.php +++ b/lib/private/Settings/Admin/Encryption.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Settings/Admin/Server.php b/lib/private/Settings/Admin/Server.php index f9512928e5e..0b9c042e4f2 100644 --- a/lib/private/Settings/Admin/Server.php +++ b/lib/private/Settings/Admin/Server.php @@ -3,6 +3,9 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Settings/Admin/ServerDevNotice.php b/lib/private/Settings/Admin/ServerDevNotice.php index 017113fd9ca..22637729b0f 100644 --- a/lib/private/Settings/Admin/ServerDevNotice.php +++ b/lib/private/Settings/Admin/ServerDevNotice.php @@ -2,6 +2,7 @@ /** * @copyright 2016, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/Settings/Admin/Sharing.php b/lib/private/Settings/Admin/Sharing.php index 997a4d66581..a99ba453d67 100644 --- a/lib/private/Settings/Admin/Sharing.php +++ b/lib/private/Settings/Admin/Sharing.php @@ -3,6 +3,9 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Settings/Admin/TipsTricks.php b/lib/private/Settings/Admin/TipsTricks.php index 0df690dbbeb..9b295bb9890 100644 --- a/lib/private/Settings/Admin/TipsTricks.php +++ b/lib/private/Settings/Admin/TipsTricks.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Settings/Manager.php b/lib/private/Settings/Manager.php index 8de72ce314e..6da499c31c4 100644 --- a/lib/private/Settings/Manager.php +++ b/lib/private/Settings/Manager.php @@ -3,6 +3,12 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Marius Blüm <marius@lineone.io> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Settings/Mapper.php b/lib/private/Settings/Mapper.php index ceb68c9eebf..1c05ea9fe30 100644 --- a/lib/private/Settings/Mapper.php +++ b/lib/private/Settings/Mapper.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Robin Appelman <robin@icewind.nl> * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/Settings/Personal/PersonalInfo.php b/lib/private/Settings/Personal/PersonalInfo.php index 389257cf892..dbc05cbda2f 100644 --- a/lib/private/Settings/Personal/PersonalInfo.php +++ b/lib/private/Settings/Personal/PersonalInfo.php @@ -1,9 +1,9 @@ <?php - /** * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Settings/RemoveOrphaned.php b/lib/private/Settings/RemoveOrphaned.php index 29c7cf212b5..790ca060022 100644 --- a/lib/private/Settings/RemoveOrphaned.php +++ b/lib/private/Settings/RemoveOrphaned.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Settings/Section.php b/lib/private/Settings/Section.php index c89a3999c4e..48736e269b3 100644 --- a/lib/private/Settings/Section.php +++ b/lib/private/Settings/Section.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/private/Setup.php b/lib/private/Setup.php index 4e1e4ece62d..e1863a5814c 100644 --- a/lib/private/Setup.php +++ b/lib/private/Setup.php @@ -2,18 +2,20 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Administrator <Administrator@WINDOWS-2012> + * @author Administrator "Administrator@WINDOWS-2012" * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Brice Maron <brice@bmaron.net> * @author Christoph Wurst <christoph@owncloud.com> + * @author Frank Isemann <frank@isemann.name> * @author François Kubler <francois@kubler.org> * @author Jakob Sack <mail@jakobsack.de> * @author Joas Schilling <coding@schilljs.com> + * @author KB7777 <k.burkowski@gmail.com> * @author Lukas Reschke <lukas@statuscode.ch> - * @author Martin Mattel <martin.mattel@diemattels.at> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robert Scheck <robert@fedoraproject.org> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Sean Comeau <sean@ftlnetworks.ca> diff --git a/lib/private/Setup/AbstractDatabase.php b/lib/private/Setup/AbstractDatabase.php index 0e0981e0771..903f8b6e386 100644 --- a/lib/private/Setup/AbstractDatabase.php +++ b/lib/private/Setup/AbstractDatabase.php @@ -5,7 +5,9 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> * @author Manish Bisht <manish.bisht490@gmail.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Pulzer <t.pulzer@kniel.de> * diff --git a/lib/private/Setup/MySQL.php b/lib/private/Setup/MySQL.php index d03e4858b61..30163f03659 100644 --- a/lib/private/Setup/MySQL.php +++ b/lib/private/Setup/MySQL.php @@ -2,13 +2,15 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> + * @author Hemanth Kumar Veeranki <hems.india1997@gmail.com> * @author Joas Schilling <coding@schilljs.com> * @author Michael Göhler <somebody.here@gmx.de> - * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Setup/OCI.php b/lib/private/Setup/OCI.php index 9fd85b7247d..6362c024786 100644 --- a/lib/private/Setup/OCI.php +++ b/lib/private/Setup/OCI.php @@ -8,9 +8,8 @@ * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Manish Bisht <manish.bisht490@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Thomas Pulzer <t.pulzer@kniel.de> * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/private/Setup/PostgreSQL.php b/lib/private/Setup/PostgreSQL.php index dbcb94d6d7f..9a2e76ae541 100644 --- a/lib/private/Setup/PostgreSQL.php +++ b/lib/private/Setup/PostgreSQL.php @@ -5,10 +5,9 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author eduardo <eduardo@vnexu.net> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 * diff --git a/lib/private/Share/Constants.php b/lib/private/Share/Constants.php index 95480975da5..f351f8d7fda 100644 --- a/lib/private/Share/Constants.php +++ b/lib/private/Share/Constants.php @@ -2,8 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Christopher Schäpers <kondou@ts.unde.re> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Maxence Lange <maxence@nextcloud.com> * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 diff --git a/lib/private/Share/Share.php b/lib/private/Share/Share.php index 7f2abb8b6a2..4a4f9289f2f 100644 --- a/lib/private/Share/Share.php +++ b/lib/private/Share/Share.php @@ -2,17 +2,14 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Bernhard Reiter <ockham@raz.or.at> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Christoph Wurst <christoph@owncloud.com> - * @author Daniel Hansson <enoch85@gmail.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> - * @author Michael Kuhn <suraia@ikkoku.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> diff --git a/lib/private/Share20/DefaultShareProvider.php b/lib/private/Share20/DefaultShareProvider.php index 6503e67a8f9..a440c36406b 100644 --- a/lib/private/Share20/DefaultShareProvider.php +++ b/lib/private/Share20/DefaultShareProvider.php @@ -2,9 +2,15 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Andrius <andrius.kulbis@ktu.lt> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Jan-Philipp Litza <jplitza@users.noreply.github.com> * @author Joas Schilling <coding@schilljs.com> + * @author phisch <git@philippschaffrath.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/Share20/LegacyHooks.php b/lib/private/Share20/LegacyHooks.php index 906c8e53054..77db4c5d0e0 100644 --- a/lib/private/Share20/LegacyHooks.php +++ b/lib/private/Share20/LegacyHooks.php @@ -2,6 +2,7 @@ /** * @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Pauli Järvinen <pauli.jarvinen@gmail.com> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/Share20/Manager.php b/lib/private/Share20/Manager.php index 379d87633ab..4a31266bbe8 100644 --- a/lib/private/Share20/Manager.php +++ b/lib/private/Share20/Manager.php @@ -5,8 +5,18 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Daniel Calviño Sánchez <danxuliu@gmail.com> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Maxence Lange <maxence@artificial-owl.com> + * @author Maxence Lange <maxence@nextcloud.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Pauli Järvinen <pauli.jarvinen@gmail.com> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Stephan Müller <mail@stephanmueller.eu> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/private/Share20/ProviderFactory.php b/lib/private/Share20/ProviderFactory.php index 2b7d0e78c52..3716189445f 100644 --- a/lib/private/Share20/ProviderFactory.php +++ b/lib/private/Share20/ProviderFactory.php @@ -2,8 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Maxence Lange <maxence@nextcloud.com> + * @author Maxence Lange <maxence@pontapreta.net> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/private/Share20/Share.php b/lib/private/Share20/Share.php index 2e7e6d0ca2e..1836d6708c5 100644 --- a/lib/private/Share20/Share.php +++ b/lib/private/Share20/Share.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/private/Share20/ShareHelper.php b/lib/private/Share20/ShareHelper.php index 358b4e8026a..5f692c6a62b 100644 --- a/lib/private/Share20/ShareHelper.php +++ b/lib/private/Share20/ShareHelper.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Joas Schilling <coding@schilljs.com> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/SubAdmin.php b/lib/private/SubAdmin.php index 0650c7c6c01..d92c8d01605 100644 --- a/lib/private/SubAdmin.php +++ b/lib/private/SubAdmin.php @@ -4,7 +4,8 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/lib/private/SystemConfig.php b/lib/private/SystemConfig.php index 91afbeb8967..444e5842437 100644 --- a/lib/private/SystemConfig.php +++ b/lib/private/SystemConfig.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Johannes Schlichenmaier <johannes@schlichenmaier.info> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> @@ -38,9 +39,7 @@ class SystemConfig { /** @var array */ protected $sensitiveValues = [ 'instanceid' => true, - 'trusted_domains' => true, 'datadirectory' => true, - 'overwrite.cli.url' => true, 'dbname' => true, 'dbhost' => true, 'dbpassword' => true, diff --git a/lib/private/SystemTag/SystemTagManager.php b/lib/private/SystemTag/SystemTagManager.php index 08f9b6bc4af..642ce515801 100644 --- a/lib/private/SystemTag/SystemTagManager.php +++ b/lib/private/SystemTag/SystemTagManager.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/private/SystemTag/SystemTagObjectMapper.php b/lib/private/SystemTag/SystemTagObjectMapper.php index 4a6ffdeddfb..75bf37c652c 100644 --- a/lib/private/SystemTag/SystemTagObjectMapper.php +++ b/lib/private/SystemTag/SystemTagObjectMapper.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/private/Tags.php b/lib/private/Tags.php index 1947f0c07e6..2ac70484843 100644 --- a/lib/private/Tags.php +++ b/lib/private/Tags.php @@ -5,10 +5,12 @@ * @author Bernhard Reiter <ockham@raz.or.at> * @author derkostka <sebastian.kostka@gmail.com> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/lib/private/TempManager.php b/lib/private/TempManager.php index dc6dad15d3c..6e8683d2f7c 100644 --- a/lib/private/TempManager.php +++ b/lib/private/TempManager.php @@ -9,6 +9,7 @@ * @author Olivier Paroz <github@oparoz.com> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> * * @license AGPL-3.0 diff --git a/lib/private/Template/CSSResourceLocator.php b/lib/private/Template/CSSResourceLocator.php index 1028f31a5ea..087ddec38ef 100644 --- a/lib/private/Template/CSSResourceLocator.php +++ b/lib/private/Template/CSSResourceLocator.php @@ -2,10 +2,15 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Axel Helmert <axel.helmert@luka.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author tux-rampage <tux-rampage@users.noreply.github.com> * * @license AGPL-3.0 * diff --git a/lib/private/Template/JSCombiner.php b/lib/private/Template/JSCombiner.php index 8a9e7e747e0..57a8f7686fd 100644 --- a/lib/private/Template/JSCombiner.php +++ b/lib/private/Template/JSCombiner.php @@ -2,6 +2,8 @@ /** * @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/Template/JSConfigHelper.php b/lib/private/Template/JSConfigHelper.php index ae17d556892..60ac4bfecb0 100644 --- a/lib/private/Template/JSConfigHelper.php +++ b/lib/private/Template/JSConfigHelper.php @@ -2,6 +2,11 @@ /** * @copyright Copyright (c) 2016, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Felix Heidecke <felix@heidecke.me> + * @author Joas Schilling <coding@schilljs.com> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/private/Template/JSResourceLocator.php b/lib/private/Template/JSResourceLocator.php index 97a9eacedf5..9a2e0848214 100644 --- a/lib/private/Template/JSResourceLocator.php +++ b/lib/private/Template/JSResourceLocator.php @@ -5,6 +5,7 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/Template/ResourceLocator.php b/lib/private/Template/ResourceLocator.php index 468fe7e60a6..b866ffb6cc0 100755 --- a/lib/private/Template/ResourceLocator.php +++ b/lib/private/Template/ResourceLocator.php @@ -4,9 +4,12 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author tux-rampage <tux-rampage@users.noreply.github.com> * * @license AGPL-3.0 * diff --git a/lib/private/Template/SCSSCacher.php b/lib/private/Template/SCSSCacher.php index 664e4d69f73..cd69b8b63c3 100644 --- a/lib/private/Template/SCSSCacher.php +++ b/lib/private/Template/SCSSCacher.php @@ -2,6 +2,13 @@ /** * @copyright Copyright (c) 2016, John Molakvoæ (skjnldsv@protonmail.com) * + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/private/TemplateLayout.php b/lib/private/TemplateLayout.php index 9e9ec709cf5..4d49522be78 100644 --- a/lib/private/TemplateLayout.php +++ b/lib/private/TemplateLayout.php @@ -7,16 +7,19 @@ * @author Clark Tomlinson <fallen013@gmail.com> * @author Hendrik Leppelsack <hendrik@leppelsack.de> * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> + * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Nils <git@to.nilsschnabel.de> * @author Remco Brenninkmeijer <requist1@starmail.nl> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/URLGenerator.php b/lib/private/URLGenerator.php index ee75f8b21bb..6fd22b99a6b 100644 --- a/lib/private/URLGenerator.php +++ b/lib/private/URLGenerator.php @@ -3,8 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bart Visscher <bartv@thisnet.nl> - * @author Felix Anand Epp <work@felixepp.de> + * @author Felix Epp <work@felixepp.de> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author mmccarn <mmccarn-github@mmsionline.us> diff --git a/lib/private/Updater.php b/lib/private/Updater.php index 91ac5c665b3..4f5bb45ae15 100644 --- a/lib/private/Updater.php +++ b/lib/private/Updater.php @@ -4,11 +4,13 @@ * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Frank Karlitschek <frank@karlitschek.de> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Steffen Lindner <mail@steffen-lindner.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Victor Dubiniuk <dubiniuk@owncloud.com> diff --git a/lib/private/Updater/VersionCheck.php b/lib/private/Updater/VersionCheck.php index 7b8b7073d6d..6774ef307b5 100644 --- a/lib/private/Updater/VersionCheck.php +++ b/lib/private/Updater/VersionCheck.php @@ -2,7 +2,9 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/User/Backend.php b/lib/private/User/Backend.php index 374ec5876e1..30ed962555d 100644 --- a/lib/private/User/Backend.php +++ b/lib/private/User/Backend.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/private/User/Database.php b/lib/private/User/Database.php index 79032cfd405..a835ca3384e 100644 --- a/lib/private/User/Database.php +++ b/lib/private/User/Database.php @@ -9,18 +9,21 @@ * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author fabian <fabian@web2.0-apps.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Jakob Sack <mail@jakobsack.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Loki3000 <github@labcms.ru> * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> + * @author michag86 <micha_g@arcor.de> * @author Morris Jobke <hey@morrisjobke.de> * @author nishiki <nishiki@yaegashi.fr> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/User/Manager.php b/lib/private/User/Manager.php index 6b6c10ab295..c77e0ac89e1 100644 --- a/lib/private/User/Manager.php +++ b/lib/private/User/Manager.php @@ -9,11 +9,9 @@ * @author Michael U <mdusher@users.noreply.github.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> - * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Chan <plus.vincchan@gmail.com> - * @author Volkan Gezer <volkangezer@gmail.com> * * @license AGPL-3.0 * diff --git a/lib/private/User/Session.php b/lib/private/User/Session.php index 10a98b22bef..19b303e46ea 100644 --- a/lib/private/User/Session.php +++ b/lib/private/User/Session.php @@ -3,18 +3,21 @@ * @copyright Copyright (c) 2017, Sandro Lutz <sandro.lutz@temparus.ch> * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Sandro Lutz <sandro.lutz@temparus.ch> * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Christoph Wurst <christoph@owncloud.com> + * @author Felix Rupp <github@felixrupp.com> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sandro Lutz <sandro.lutz@temparus.ch> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> - * @author Felix Rupp <kontakt@felixrupp.com> * * @license AGPL-3.0 * diff --git a/lib/private/User/User.php b/lib/private/User/User.php index 645f7b8e59c..d352101ba40 100644 --- a/lib/private/User/User.php +++ b/lib/private/User/User.php @@ -5,12 +5,13 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> - * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php index 49fac2f4d96..d2b0f96d593 100644 --- a/lib/private/legacy/app.php +++ b/lib/private/legacy/app.php @@ -12,10 +12,11 @@ * @author Christopher Schäpers <kondou@ts.unde.re> * @author Felix Moeller <mail@felixmoeller.de> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Jakob Sack <mail@jakobsack.de> - * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Kamil Domanski <kdomanski@kdemail.net> * @author Klaas Freitag <freitag@owncloud.com> @@ -27,6 +28,7 @@ * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Sam Tuke <mail@samtuke.com> + * @author Sebastian Wessalowski <sebastian@wessalowski.org> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * @author Tom Needham <tom@owncloud.com> diff --git a/lib/private/legacy/db.php b/lib/private/legacy/db.php index 843970d7d53..da21729f123 100644 --- a/lib/private/legacy/db.php +++ b/lib/private/legacy/db.php @@ -6,6 +6,7 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/lib/private/legacy/db/statementwrapper.php b/lib/private/legacy/db/statementwrapper.php index cac4598e650..7c3c4776aa7 100644 --- a/lib/private/legacy/db/statementwrapper.php +++ b/lib/private/legacy/db/statementwrapper.php @@ -5,9 +5,10 @@ * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Piotr Mrówczyński <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> - * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/private/legacy/defaults.php b/lib/private/legacy/defaults.php index adfbe71377d..184c820e7c5 100644 --- a/lib/private/legacy/defaults.php +++ b/lib/private/legacy/defaults.php @@ -3,13 +3,17 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Felix A. Epp <work@felixepp.de> * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Julius Haertl <jus@bitgrid.net> + * @author Julius Härtl <jus@bitgrid.net> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Pascal de Bruijn <pmjdebruijn@pcode.nl> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author scolebrook <scolebrook@mac.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Volkan Gezer <volkangezer@gmail.com> diff --git a/lib/private/legacy/files.php b/lib/private/legacy/files.php index 017691805c9..ba635d57627 100644 --- a/lib/private/legacy/files.php +++ b/lib/private/legacy/files.php @@ -10,9 +10,11 @@ * @author Jakob Sack <mail@jakobsack.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Ko- <k.stoffelen@cs.ru.nl> * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Nicolai Ehemann <en@enlightened.de> + * @author noveens <noveen.sachdeva@research.iiit.ac.in> * @author Piotr Filiciak <piotr@filiciak.pl> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> @@ -338,7 +340,7 @@ class OC_Files { * * @param int $size file size in bytes * @param array $files override '.htaccess' and '.user.ini' locations - * @return bool false on failure, size on success + * @return bool|int false on failure, size on success */ public static function setUploadLimit($size, $files = []) { //don't allow user to break his config diff --git a/lib/private/legacy/helper.php b/lib/private/legacy/helper.php index dd4f13f7d77..e611b4d0732 100644 --- a/lib/private/legacy/helper.php +++ b/lib/private/legacy/helper.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Ardinis <Ardinis@users.noreply.github.com> * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> @@ -9,7 +10,6 @@ * @author Clark Tomlinson <fallen013@gmail.com> * @author Fabian Henze <flyser42@gmx.de> * @author Felix Moeller <mail@felixmoeller.de> - * @author Georg Ehrke <georg@owncloud.com> * @author Jakob Sack <mail@jakobsack.de> * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> @@ -19,6 +19,7 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Olivier Paroz <github@oparoz.com> * @author Pellaeon Lin <nfsmwlin@gmail.com> + * @author RealRancor <fisch.666@gmx.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/lib/private/legacy/image.php b/lib/private/legacy/image.php index cd5ca7bb5ce..fe9f054f5d4 100644 --- a/lib/private/legacy/image.php +++ b/lib/private/legacy/image.php @@ -3,22 +3,25 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Andreas Fischer <bantu@owncloud.com> - * @author Bartek Przybylski <bart.p.pl@gmail.com> * @author Bart Visscher <bartv@thisnet.nl> + * @author Bartek Przybylski <bart.p.pl@gmail.com> * @author Björn Schießle <bjoern@schiessle.org> * @author Byron Marohn <combustible@live.com> * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author j-ed <juergen@eisfair.org> * @author Joas Schilling <coding@schilljs.com> * @author Johannes Willnecker <johannes@willnecker.com> + * @author Julius Härtl <jus@bitgrid.net> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Olivier Paroz <github@oparoz.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> + * @author Victor Dubiniuk <dubiniuk@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/legacy/json.php b/lib/private/legacy/json.php index 221a0047eb4..7b3a1b6d9cd 100644 --- a/lib/private/legacy/json.php +++ b/lib/private/legacy/json.php @@ -6,10 +6,12 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Christoph Wurst <christoph@owncloud.com> * @author Felix Moeller <mail@felixmoeller.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sebastian Wessalowski <sebastian@wessalowski.org> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/lib/private/legacy/response.php b/lib/private/legacy/response.php index e45fe616e49..975ff570485 100644 --- a/lib/private/legacy/response.php +++ b/lib/private/legacy/response.php @@ -4,10 +4,12 @@ * * @author Andreas Fischer <bantu@owncloud.com> * @author Bart Visscher <bartv@thisnet.nl> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Sergio Bertolín <sbertolin@solidgear.es> * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/lib/private/legacy/template.php b/lib/private/legacy/template.php index 55df2dece11..e3365ca455f 100644 --- a/lib/private/legacy/template.php +++ b/lib/private/legacy/template.php @@ -4,17 +4,18 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Brice Maron <brice@bmaron.net> + * @author Christoph Wurst <christoph@owncloud.com> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Hendrik Leppelsack <hendrik@leppelsack.de> * @author Individual IT Services <info@individual-it.net> * @author Jakob Sack <mail@jakobsack.de> * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> + * @author John Molakvoæ <skjnldsv@users.noreply.github.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> - * @author Michael Letzgus <develope@michael-letzgus.de> + * @author Marin Treselj <marin@pixelipo.com> + * @author Michael Letzgus <www@chronos.michael-letzgus.de> * @author Morris Jobke <hey@morrisjobke.de> - * @author Raghu Nayyar <hey@raghunayyar.com> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/lib/private/legacy/template/functions.php b/lib/private/legacy/template/functions.php index 1ef3541e880..2cd439e9e6e 100644 --- a/lib/private/legacy/template/functions.php +++ b/lib/private/legacy/template/functions.php @@ -5,9 +5,10 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> - * @author Michael Letzgus <develope@michael-letzgus.de> + * @author Michael Letzgus <www@chronos.michael-letzgus.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/lib/private/legacy/user.php b/lib/private/legacy/user.php index 9e0ca4b9fee..52ed1369c47 100644 --- a/lib/private/legacy/user.php +++ b/lib/private/legacy/user.php @@ -5,11 +5,11 @@ * @author Aldo "xoen" Giambelluca <xoen@xoen.org> * @author Andreas Fischer <bantu@owncloud.com> * @author Arthur Schiwon <blizzz@arthur-schiwon.de> - * @author Bartek Przybylski <bart.p.pl@gmail.com> * @author Bart Visscher <bartv@thisnet.nl> + * @author Bartek Przybylski <bart.p.pl@gmail.com> * @author Björn Schießle <bjoern@schiessle.org> * @author Christoph Wurst <christoph@owncloud.com> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Jakob Sack <mail@jakobsack.de> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> @@ -20,6 +20,7 @@ * @author shkdee <louis.traynard@m4x.org> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Tom Needham <tom@owncloud.com> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/private/legacy/util.php b/lib/private/legacy/util.php index f0fef027ec2..2610ec3a7b6 100644 --- a/lib/private/legacy/util.php +++ b/lib/private/legacy/util.php @@ -10,28 +10,32 @@ * @author Birk Borkason <daniel.niccoli@gmail.com> * @author Björn Schießle <bjoern@schiessle.org> * @author Brice Maron <brice@bmaron.net> - * @author Christopher Schäpers <kondou@ts.unde.re> * @author Christoph Wurst <christoph@owncloud.com> + * @author Christopher Schäpers <kondou@ts.unde.re> * @author Clark Tomlinson <fallen013@gmail.com> * @author cmeh <cmeh@users.noreply.github.com> - * @author Felix Anand Epp <work@felixepp.de> + * @author Felix Epp <work@felixepp.de> * @author Florin Peter <github@florin-peter.de> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author helix84 <helix84@centrum.sk> + * @author Ilja Neumann <ineumann@owncloud.com> * @author Individual IT Services <info@individual-it.net> * @author Jakob Sack <mail@jakobsack.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Kawohl <john@owncloud.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Markus Goetz <markus@woboq.com> * @author Martin Mattel <martin.mattel@diemattels.at> * @author Marvin Thomas Rabe <mrabe@marvinrabe.de> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author rakekniven <mark.ziegler@rakekniven.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Sebastian Wessalowski <sebastian@wessalowski.org> * @author Stefan Rado <owncloud@sradonia.net> * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/lib/public/Activity/IEventMerger.php b/lib/public/Activity/IEventMerger.php index 8bd8e540770..22bf79732e2 100644 --- a/lib/public/Activity/IEventMerger.php +++ b/lib/public/Activity/IEventMerger.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Activity/IExtension.php b/lib/public/Activity/IExtension.php index 3f605a47e4b..321c2f03bc3 100644 --- a/lib/public/Activity/IExtension.php +++ b/lib/public/Activity/IExtension.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/public/Activity/IFilter.php b/lib/public/Activity/IFilter.php index bfe8ea9e472..b6e2025d2cd 100644 --- a/lib/public/Activity/IFilter.php +++ b/lib/public/Activity/IFilter.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Activity/IManager.php b/lib/public/Activity/IManager.php index 4cdea0e2f74..2ccb4c6592f 100644 --- a/lib/public/Activity/IManager.php +++ b/lib/public/Activity/IManager.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/public/Activity/IProvider.php b/lib/public/Activity/IProvider.php index 83096c4efac..a84f61eb4f1 100644 --- a/lib/public/Activity/IProvider.php +++ b/lib/public/Activity/IProvider.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Activity/ISetting.php b/lib/public/Activity/ISetting.php index 786581bcae6..f3b953e95e0 100644 --- a/lib/public/Activity/ISetting.php +++ b/lib/public/Activity/ISetting.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/App.php b/lib/public/App.php index 250d33bf01f..3afd36f2c96 100644 --- a/lib/public/App.php +++ b/lib/public/App.php @@ -4,7 +4,7 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/public/App/AppPathNotFoundException.php b/lib/public/App/AppPathNotFoundException.php index 071eb2f8377..db5a1803c83 100644 --- a/lib/public/App/AppPathNotFoundException.php +++ b/lib/public/App/AppPathNotFoundException.php @@ -2,21 +2,22 @@ /** * @copyright Copyright (c) 2016 Julius Härtl <jus@bitgrid.net> * - * @author Julius Härtl <jus@bitgrid.net> + * @author Julius Haertl <jus@bitgrid.net> * - * @license AGPL-3.0 + * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/public/App/IAppManager.php b/lib/public/App/IAppManager.php index 107297bc890..f602a6de81e 100644 --- a/lib/public/App/IAppManager.php +++ b/lib/public/App/IAppManager.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> + * @author Julius Haertl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> diff --git a/lib/public/App/ManagerEvent.php b/lib/public/App/ManagerEvent.php index c983114fe75..f46318c2621 100644 --- a/lib/public/App/ManagerEvent.php +++ b/lib/public/App/ManagerEvent.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license AGPL-3.0 * diff --git a/lib/public/AppFramework/ApiController.php b/lib/public/AppFramework/ApiController.php index 243ab1846ba..5c99e170e00 100644 --- a/lib/public/AppFramework/ApiController.php +++ b/lib/public/AppFramework/ApiController.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Stefan Weil <sw@weilnetz.de> * diff --git a/lib/public/AppFramework/App.php b/lib/public/AppFramework/App.php index e5cd832563d..d5a9075fa3e 100644 --- a/lib/public/AppFramework/App.php +++ b/lib/public/AppFramework/App.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> diff --git a/lib/public/AppFramework/Controller.php b/lib/public/AppFramework/Controller.php index bec8296490e..64be033d1d9 100644 --- a/lib/public/AppFramework/Controller.php +++ b/lib/public/AppFramework/Controller.php @@ -3,8 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Donquixote <marjunebatac@gmail.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/lib/public/AppFramework/Db/Mapper.php b/lib/public/AppFramework/Db/Mapper.php index 611791a4364..b008702ba54 100644 --- a/lib/public/AppFramework/Db/Mapper.php +++ b/lib/public/AppFramework/Db/Mapper.php @@ -244,7 +244,7 @@ abstract class Mapper { } } - $result = $query->execute(); + $query->execute(); return $query; } diff --git a/lib/public/AppFramework/Http/ContentSecurityPolicy.php b/lib/public/AppFramework/Http/ContentSecurityPolicy.php index b17dc070fe1..9438c6ead61 100644 --- a/lib/public/AppFramework/Http/ContentSecurityPolicy.php +++ b/lib/public/AppFramework/Http/ContentSecurityPolicy.php @@ -5,6 +5,7 @@ * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author sualko <klaus@jsxc.org> + * @author Thomas Citharel <tcit@tcit.fr> * * @license AGPL-3.0 * diff --git a/lib/public/AppFramework/Http/DataDisplayResponse.php b/lib/public/AppFramework/Http/DataDisplayResponse.php index cfc4bd494f2..4932b9db668 100644 --- a/lib/public/AppFramework/Http/DataDisplayResponse.php +++ b/lib/public/AppFramework/Http/DataDisplayResponse.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Julius Härtl <jus@bitgrid.net> * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * diff --git a/lib/public/AppFramework/Http/DataDownloadResponse.php b/lib/public/AppFramework/Http/DataDownloadResponse.php index 1107c9941e1..e9fcba8148d 100644 --- a/lib/public/AppFramework/Http/DataDownloadResponse.php +++ b/lib/public/AppFramework/Http/DataDownloadResponse.php @@ -2,7 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 diff --git a/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php b/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php index 5902d4ddbeb..6397d32cb9c 100644 --- a/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php +++ b/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php @@ -3,6 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Lukas Reschke <lukas@statuscode.ch> + * @author Pierre Rudloff <contact@rudloff.pro> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Thomas Citharel <tcit@tcit.fr> * * @license AGPL-3.0 * diff --git a/lib/public/AppFramework/Http/ICallbackResponse.php b/lib/public/AppFramework/Http/ICallbackResponse.php index 2e23946112e..62c4724651d 100644 --- a/lib/public/AppFramework/Http/ICallbackResponse.php +++ b/lib/public/AppFramework/Http/ICallbackResponse.php @@ -5,6 +5,7 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/public/AppFramework/Http/IOutput.php b/lib/public/AppFramework/Http/IOutput.php index 642bcf4170f..a705cefceaf 100644 --- a/lib/public/AppFramework/Http/IOutput.php +++ b/lib/public/AppFramework/Http/IOutput.php @@ -5,6 +5,7 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * @author Stefan Weil <sw@weilnetz.de> * * @license AGPL-3.0 diff --git a/lib/public/AppFramework/Http/OCSResponse.php b/lib/public/AppFramework/Http/OCSResponse.php index ee1207f1217..3480aa172ff 100644 --- a/lib/public/AppFramework/Http/OCSResponse.php +++ b/lib/public/AppFramework/Http/OCSResponse.php @@ -3,7 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/public/AppFramework/Http/Response.php b/lib/public/AppFramework/Http/Response.php index 94f09a55737..e47e01349e7 100644 --- a/lib/public/AppFramework/Http/Response.php +++ b/lib/public/AppFramework/Http/Response.php @@ -3,9 +3,11 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Christoph Wurst <christoph@owncloud.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * diff --git a/lib/public/AppFramework/Http/StreamResponse.php b/lib/public/AppFramework/Http/StreamResponse.php index b3ec5577e29..8ffc94dc8f1 100644 --- a/lib/public/AppFramework/Http/StreamResponse.php +++ b/lib/public/AppFramework/Http/StreamResponse.php @@ -5,6 +5,7 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/lib/public/AppFramework/IApi.php b/lib/public/AppFramework/IApi.php index 1c3f9419ccd..7e2cf905f84 100644 --- a/lib/public/AppFramework/IApi.php +++ b/lib/public/AppFramework/IApi.php @@ -5,6 +5,7 @@ * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/public/AppFramework/Middleware.php b/lib/public/AppFramework/Middleware.php index 677e5c2e7ee..4c9051a0b34 100644 --- a/lib/public/AppFramework/Middleware.php +++ b/lib/public/AppFramework/Middleware.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> diff --git a/lib/public/AppFramework/OCS/OCSBadRequestException.php b/lib/public/AppFramework/OCS/OCSBadRequestException.php index 1b374376a75..843f8a5e0a4 100644 --- a/lib/public/AppFramework/OCS/OCSBadRequestException.php +++ b/lib/public/AppFramework/OCS/OCSBadRequestException.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author Roeland Jago Douma <roeland@famdouma.nl> * diff --git a/lib/public/AppFramework/OCS/OCSException.php b/lib/public/AppFramework/OCS/OCSException.php index 428fcff8e1e..3ef6f3393ab 100644 --- a/lib/public/AppFramework/OCS/OCSException.php +++ b/lib/public/AppFramework/OCS/OCSException.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author Roeland Jago Douma <roeland@famdouma.nl> * diff --git a/lib/public/AppFramework/OCS/OCSForbiddenException.php b/lib/public/AppFramework/OCS/OCSForbiddenException.php index 7eef56facf1..7545d87c0bf 100644 --- a/lib/public/AppFramework/OCS/OCSForbiddenException.php +++ b/lib/public/AppFramework/OCS/OCSForbiddenException.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author Roeland Jago Douma <roeland@famdouma.nl> * diff --git a/lib/public/AppFramework/OCS/OCSNotFoundException.php b/lib/public/AppFramework/OCS/OCSNotFoundException.php index 18951b37035..87a5ce20098 100644 --- a/lib/public/AppFramework/OCS/OCSNotFoundException.php +++ b/lib/public/AppFramework/OCS/OCSNotFoundException.php @@ -1,6 +1,6 @@ <?php /** - + * * * @author Roeland Jago Douma <roeland@famdouma.nl> * diff --git a/lib/public/AppFramework/OCSController.php b/lib/public/AppFramework/OCSController.php index 06d0d90f3e1..29f26bf7e71 100644 --- a/lib/public/AppFramework/OCSController.php +++ b/lib/public/AppFramework/OCSController.php @@ -3,7 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Donquixote <marjunebatac@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php b/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php index 9f9e38103f7..2c4467bc52e 100644 --- a/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php +++ b/lib/public/Authentication/Exceptions/CredentialsUnavailableException.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Authentication/Exceptions/PasswordUnavailableException.php b/lib/public/Authentication/Exceptions/PasswordUnavailableException.php index f69b690266d..6c6a129b796 100644 --- a/lib/public/Authentication/Exceptions/PasswordUnavailableException.php +++ b/lib/public/Authentication/Exceptions/PasswordUnavailableException.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2017 Morris Jobke <hey@morrisjobke.de> * - * @author 2017 Morris Jobke <hey@morrisjobke.de> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Authentication/IApacheBackend.php b/lib/public/Authentication/IApacheBackend.php index 7d43d438cbb..fcc1c1a9b87 100644 --- a/lib/public/Authentication/IApacheBackend.php +++ b/lib/public/Authentication/IApacheBackend.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/lib/public/Authentication/LoginCredentials/ICredentials.php b/lib/public/Authentication/LoginCredentials/ICredentials.php index 1734e3e0715..3b91df68b14 100644 --- a/lib/public/Authentication/LoginCredentials/ICredentials.php +++ b/lib/public/Authentication/LoginCredentials/ICredentials.php @@ -1,9 +1,9 @@ <?php - /** * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> + * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Authentication/LoginCredentials/IStore.php b/lib/public/Authentication/LoginCredentials/IStore.php index 4787b16d982..5306eb6d6e9 100644 --- a/lib/public/Authentication/LoginCredentials/IStore.php +++ b/lib/public/Authentication/LoginCredentials/IStore.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2016 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2016 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Authentication/TwoFactorAuth/IProvidesCustomCSP.php b/lib/public/Authentication/TwoFactorAuth/IProvidesCustomCSP.php index 2c1dc001c1a..2a498adc0b8 100644 --- a/lib/public/Authentication/TwoFactorAuth/IProvidesCustomCSP.php +++ b/lib/public/Authentication/TwoFactorAuth/IProvidesCustomCSP.php @@ -1,7 +1,8 @@ <?php - /** - * @author Christoph Wurst <christoph@winzerhof-wurst.at> + * + * + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Authentication/TwoFactorAuth/TwoFactorException.php b/lib/public/Authentication/TwoFactorAuth/TwoFactorException.php index 76e728b6ab0..a18b9e8c4a8 100644 --- a/lib/public/Authentication/TwoFactorAuth/TwoFactorException.php +++ b/lib/public/Authentication/TwoFactorAuth/TwoFactorException.php @@ -1,9 +1,10 @@ <?php - /** - * @author Cornelius Kölbel <cornelius.koelbel@netknights.it> * @copyright Copyright (c) 2016, ownCloud GmbH. * + * @author Christoph Wurst <christoph@owncloud.com> + * @author Cornelius Kölbel <cornelius.koelbel@netknights.it> + * * @license AGPL-3.0 * * This code is free software: you can redistribute it and/or modify diff --git a/lib/public/BackgroundJob.php b/lib/public/BackgroundJob.php index 43f445362dc..d343ae2531c 100644 --- a/lib/public/BackgroundJob.php +++ b/lib/public/BackgroundJob.php @@ -5,11 +5,9 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Felix Moeller <mail@felixmoeller.de> * @author Jakob Sack <mail@jakobsack.de> - * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> - * @author Robin McCorkell <robin@mccorkell.me.uk> * * @license AGPL-3.0 * diff --git a/lib/public/BackgroundJob/IJob.php b/lib/public/BackgroundJob/IJob.php index 0b14257075a..d46ea7bd4b3 100644 --- a/lib/public/BackgroundJob/IJob.php +++ b/lib/public/BackgroundJob/IJob.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * diff --git a/lib/public/BackgroundJob/IJobList.php b/lib/public/BackgroundJob/IJobList.php index d7c2642712c..c074e5c9d59 100644 --- a/lib/public/BackgroundJob/IJobList.php +++ b/lib/public/BackgroundJob/IJobList.php @@ -4,6 +4,7 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> + * @author Noveen Sachdeva <noveen.sachdeva@research.iiit.ac.in> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * diff --git a/lib/public/Capabilities/IPublicCapability.php b/lib/public/Capabilities/IPublicCapability.php index ded58f1208b..c882a24d56f 100644 --- a/lib/public/Capabilities/IPublicCapability.php +++ b/lib/public/Capabilities/IPublicCapability.php @@ -6,18 +6,18 @@ * * @license GNU AGPL version 3 or any later version * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see <http://www.gnu.org/licenses/>. + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/public/Comments/CommentsEvent.php b/lib/public/Comments/CommentsEvent.php index 0d8a783c107..eba4cebb3bf 100644 --- a/lib/public/Comments/CommentsEvent.php +++ b/lib/public/Comments/CommentsEvent.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> * * @license AGPL-3.0 diff --git a/lib/public/Comments/IComment.php b/lib/public/Comments/IComment.php index f93bed13ea0..e364d42fe87 100644 --- a/lib/public/Comments/IComment.php +++ b/lib/public/Comments/IComment.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/public/Comments/ICommentsEventHandler.php b/lib/public/Comments/ICommentsEventHandler.php index 79b0d0d883c..30b07159771 100644 --- a/lib/public/Comments/ICommentsEventHandler.php +++ b/lib/public/Comments/ICommentsEventHandler.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Comments/ICommentsManager.php b/lib/public/Comments/ICommentsManager.php index 61633af95cd..bd9c4ff5ba6 100644 --- a/lib/public/Comments/ICommentsManager.php +++ b/lib/public/Comments/ICommentsManager.php @@ -4,6 +4,9 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/public/Config.php b/lib/public/Config.php index b8f25b93026..136b7578f40 100644 --- a/lib/public/Config.php +++ b/lib/public/Config.php @@ -4,7 +4,7 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/public/Contacts/ContactsMenu/IAction.php b/lib/public/Contacts/ContactsMenu/IAction.php index 44ad1af5ae8..0cbedf4e9ea 100644 --- a/lib/public/Contacts/ContactsMenu/IAction.php +++ b/lib/public/Contacts/ContactsMenu/IAction.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Contacts/ContactsMenu/IActionFactory.php b/lib/public/Contacts/ContactsMenu/IActionFactory.php index 8778a729a56..af968ba8490 100644 --- a/lib/public/Contacts/ContactsMenu/IActionFactory.php +++ b/lib/public/Contacts/ContactsMenu/IActionFactory.php @@ -1,8 +1,8 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Contacts/ContactsMenu/IEntry.php b/lib/public/Contacts/ContactsMenu/IEntry.php index eb04147a1bc..9025ed91716 100644 --- a/lib/public/Contacts/ContactsMenu/IEntry.php +++ b/lib/public/Contacts/ContactsMenu/IEntry.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Contacts/ContactsMenu/ILinkAction.php b/lib/public/Contacts/ContactsMenu/ILinkAction.php index 4e29f757c26..71d163b2f60 100644 --- a/lib/public/Contacts/ContactsMenu/ILinkAction.php +++ b/lib/public/Contacts/ContactsMenu/ILinkAction.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Contacts/ContactsMenu/IProvider.php b/lib/public/Contacts/ContactsMenu/IProvider.php index e41b1c7c639..cc819c8c684 100644 --- a/lib/public/Contacts/ContactsMenu/IProvider.php +++ b/lib/public/Contacts/ContactsMenu/IProvider.php @@ -1,9 +1,8 @@ <?php - /** * @copyright 2017 Christoph Wurst <christoph@winzerhof-wurst.at> * - * @author 2017 Christoph Wurst <christoph@winzerhof-wurst.at> + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Contacts/IManager.php b/lib/public/Contacts/IManager.php index 117d28525fb..ec399c37eb4 100644 --- a/lib/public/Contacts/IManager.php +++ b/lib/public/Contacts/IManager.php @@ -2,10 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Bart Visscher <bartv@thisnet.nl> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/public/DB.php b/lib/public/DB.php index 645f77076db..e132c5ff2ec 100644 --- a/lib/public/DB.php +++ b/lib/public/DB.php @@ -4,12 +4,13 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Dan Bartram <daneybartram@gmail.com> - * @author Felix Moeller <mail@felixmoeller.de> * @author Frank Karlitschek <frank@karlitschek.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * diff --git a/lib/public/DB/QueryBuilder/IFunctionBuilder.php b/lib/public/DB/QueryBuilder/IFunctionBuilder.php index 38d3a67da9b..478fd879404 100644 --- a/lib/public/DB/QueryBuilder/IFunctionBuilder.php +++ b/lib/public/DB/QueryBuilder/IFunctionBuilder.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/DB/QueryBuilder/IQueryBuilder.php b/lib/public/DB/QueryBuilder/IQueryBuilder.php index 59ec4fd3ba5..7f179dd7e26 100644 --- a/lib/public/DB/QueryBuilder/IQueryBuilder.php +++ b/lib/public/DB/QueryBuilder/IQueryBuilder.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 * diff --git a/lib/public/Diagnostics/IEventLogger.php b/lib/public/Diagnostics/IEventLogger.php index c76e96c5674..def3beae38d 100644 --- a/lib/public/Diagnostics/IEventLogger.php +++ b/lib/public/Diagnostics/IEventLogger.php @@ -3,8 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Morris Jobke <hey@morrisjobke.de> + * @author Piotr Mrówczyński <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> - * @author Piotr Mrowczynski <piotr@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/public/Diagnostics/IQuery.php b/lib/public/Diagnostics/IQuery.php index ceaee191b39..d053a6648ee 100644 --- a/lib/public/Diagnostics/IQuery.php +++ b/lib/public/Diagnostics/IQuery.php @@ -3,7 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Morris Jobke <hey@morrisjobke.de> + * @author Piotr Mrówczyński <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/public/Diagnostics/IQueryLogger.php b/lib/public/Diagnostics/IQueryLogger.php index 4e45fa33d9d..1fe8bb8c238 100644 --- a/lib/public/Diagnostics/IQueryLogger.php +++ b/lib/public/Diagnostics/IQueryLogger.php @@ -2,9 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Piotr Mrówczyński <mrow4a@yahoo.com> * @author Robin Appelman <robin@icewind.nl> - * @author Piotr Mrowczynski <piotr@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/public/Encryption/IEncryptionModule.php b/lib/public/Encryption/IEncryptionModule.php index d96c6c8ba06..45e369b20f7 100644 --- a/lib/public/Encryption/IEncryptionModule.php +++ b/lib/public/Encryption/IEncryptionModule.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/public/Encryption/Keys/IStorage.php b/lib/public/Encryption/Keys/IStorage.php index c96d1573b38..ac2414450ee 100644 --- a/lib/public/Encryption/Keys/IStorage.php +++ b/lib/public/Encryption/Keys/IStorage.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/public/Federation/ICloudId.php b/lib/public/Federation/ICloudId.php index f9c84a2fd07..b03acb4f5f2 100644 --- a/lib/public/Federation/ICloudId.php +++ b/lib/public/Federation/ICloudId.php @@ -2,19 +2,22 @@ /** * @copyright Copyright (c) 2017, Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/public/Federation/ICloudIdManager.php b/lib/public/Federation/ICloudIdManager.php index 5251c2b95db..b5b3436e6fc 100644 --- a/lib/public/Federation/ICloudIdManager.php +++ b/lib/public/Federation/ICloudIdManager.php @@ -2,19 +2,23 @@ /** * @copyright Copyright (c) 2017, Robin Appelman <robin@icewind.nl> * + * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/public/Files.php b/lib/public/Files.php index 3b924ea6a29..d66e0f1b645 100644 --- a/lib/public/Files.php +++ b/lib/public/Files.php @@ -5,11 +5,12 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/lib/public/Files/Config/ICachedMountInfo.php b/lib/public/Files/Config/ICachedMountInfo.php index 2df79a7d642..6baced39d96 100644 --- a/lib/public/Files/Config/ICachedMountInfo.php +++ b/lib/public/Files/Config/ICachedMountInfo.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/public/Files/Config/IUserMountCache.php b/lib/public/Files/Config/IUserMountCache.php index fca797d3b69..4c573350f95 100644 --- a/lib/public/Files/Config/IUserMountCache.php +++ b/lib/public/Files/Config/IUserMountCache.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/lib/public/Files/EmptyFileNameException.php b/lib/public/Files/EmptyFileNameException.php index 22cdd5e805d..f3d5c5f6468 100644 --- a/lib/public/Files/EmptyFileNameException.php +++ b/lib/public/Files/EmptyFileNameException.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Files/FileInfo.php b/lib/public/Files/FileInfo.php index 0b90fb8fbf2..1fe71b356c5 100644 --- a/lib/public/Files/FileInfo.php +++ b/lib/public/Files/FileInfo.php @@ -2,10 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Felix Heidecke <felix@heidecke.me> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> - * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/lib/public/Files/ForbiddenException.php b/lib/public/Files/ForbiddenException.php index 7a7c011691b..4432c0d4934 100644 --- a/lib/public/Files/ForbiddenException.php +++ b/lib/public/Files/ForbiddenException.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license AGPL-3.0 * diff --git a/lib/public/Files/InvalidDirectoryException.php b/lib/public/Files/InvalidDirectoryException.php index a82dc0829e2..23058065f67 100644 --- a/lib/public/Files/InvalidDirectoryException.php +++ b/lib/public/Files/InvalidDirectoryException.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Files/ObjectStore/IObjectStore.php b/lib/public/Files/ObjectStore/IObjectStore.php index 3126791d873..8e9df5a55a3 100644 --- a/lib/public/Files/ObjectStore/IObjectStore.php +++ b/lib/public/Files/ObjectStore/IObjectStore.php @@ -4,6 +4,7 @@ * * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/public/Files/Search/ISearchBinaryOperator.php b/lib/public/Files/Search/ISearchBinaryOperator.php index d5a2d5dc02d..8a17b1a07fb 100644 --- a/lib/public/Files/Search/ISearchBinaryOperator.php +++ b/lib/public/Files/Search/ISearchBinaryOperator.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Files/Search/ISearchComparison.php b/lib/public/Files/Search/ISearchComparison.php index 5468260f001..467ea211ff4 100644 --- a/lib/public/Files/Search/ISearchComparison.php +++ b/lib/public/Files/Search/ISearchComparison.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Files/Search/ISearchOperator.php b/lib/public/Files/Search/ISearchOperator.php index 047792bc782..1f0df157f7c 100644 --- a/lib/public/Files/Search/ISearchOperator.php +++ b/lib/public/Files/Search/ISearchOperator.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Files/Search/ISearchOrder.php b/lib/public/Files/Search/ISearchOrder.php index 1abfd7506d5..b0fd3e04844 100644 --- a/lib/public/Files/Search/ISearchOrder.php +++ b/lib/public/Files/Search/ISearchOrder.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Files/Search/ISearchQuery.php b/lib/public/Files/Search/ISearchQuery.php index 531e285a593..0929a190489 100644 --- a/lib/public/Files/Search/ISearchQuery.php +++ b/lib/public/Files/Search/ISearchQuery.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Robin Appelman <robin@icewind.nl> * + * @author Robin Appelman <robin@icewind.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Files/SimpleFS/ISimpleRoot.php b/lib/public/Files/SimpleFS/ISimpleRoot.php index 35b97f665a7..9b4b8d76947 100644 --- a/lib/public/Files/SimpleFS/ISimpleRoot.php +++ b/lib/public/Files/SimpleFS/ISimpleRoot.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016 Roeland Jago Douma <roeland@famdouma.nl> * + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/public/Files/Storage.php b/lib/public/Files/Storage.php index ee89b9fd205..1cbba104dee 100644 --- a/lib/public/Files/Storage.php +++ b/lib/public/Files/Storage.php @@ -3,12 +3,14 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Roth <michael.roth@rz.uni-augsburg.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Vincent Petry <pvince81@owncloud.com> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * diff --git a/lib/public/Files/Storage/ILockingStorage.php b/lib/public/Files/Storage/ILockingStorage.php index ac61e9a062e..dc6e6cb56ac 100644 --- a/lib/public/Files/Storage/ILockingStorage.php +++ b/lib/public/Files/Storage/ILockingStorage.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/lib/public/Files/Storage/IStorage.php b/lib/public/Files/Storage/IStorage.php index d5176aab463..1fc45c041c3 100644 --- a/lib/public/Files/Storage/IStorage.php +++ b/lib/public/Files/Storage/IStorage.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/lib/public/Files/StorageAuthException.php b/lib/public/Files/StorageAuthException.php index 8a04a2c70f4..4e216b0f01f 100644 --- a/lib/public/Files/StorageAuthException.php +++ b/lib/public/Files/StorageAuthException.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Jesús Macias <jmacias@solidgear.es> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license AGPL-3.0 * diff --git a/lib/public/Files/StorageBadConfigException.php b/lib/public/Files/StorageBadConfigException.php index d6ee6a267e7..ea525b91f45 100644 --- a/lib/public/Files/StorageBadConfigException.php +++ b/lib/public/Files/StorageBadConfigException.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Jesús Macias <jmacias@solidgear.es> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license AGPL-3.0 * diff --git a/lib/public/Files/StorageConnectionException.php b/lib/public/Files/StorageConnectionException.php index f12c84653b7..7702460a2f8 100644 --- a/lib/public/Files/StorageConnectionException.php +++ b/lib/public/Files/StorageConnectionException.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Jesús Macias <jmacias@solidgear.es> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license AGPL-3.0 * diff --git a/lib/public/Files/StorageNotAvailableException.php b/lib/public/Files/StorageNotAvailableException.php index b3f6e1a6b76..7a060417acb 100644 --- a/lib/public/Files/StorageNotAvailableException.php +++ b/lib/public/Files/StorageNotAvailableException.php @@ -4,9 +4,11 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Jesús Macias <jmacias@solidgear.es> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/public/Files/StorageTimeoutException.php b/lib/public/Files/StorageTimeoutException.php index b5566ada9b5..90b56095074 100644 --- a/lib/public/Files/StorageTimeoutException.php +++ b/lib/public/Files/StorageTimeoutException.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Jesús Macias <jmacias@solidgear.es> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license AGPL-3.0 * diff --git a/lib/public/GlobalScale/IConfig.php b/lib/public/GlobalScale/IConfig.php index 92c19be3af5..e67470f2e1a 100644 --- a/lib/public/GlobalScale/IConfig.php +++ b/lib/public/GlobalScale/IConfig.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/GroupInterface.php b/lib/public/GroupInterface.php index f6ef237a333..35d11755fac 100644 --- a/lib/public/GroupInterface.php +++ b/lib/public/GroupInterface.php @@ -4,7 +4,9 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Knut Ahlers <knut@ahlers.me> * @author Morris Jobke <hey@morrisjobke.de> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/public/IDBConnection.php b/lib/public/IDBConnection.php index 56cf50c5fb3..f0783d5231a 100644 --- a/lib/public/IDBConnection.php +++ b/lib/public/IDBConnection.php @@ -7,6 +7,7 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/public/IDateTimeFormatter.php b/lib/public/IDateTimeFormatter.php index a97eca2860e..2da7aa4098d 100644 --- a/lib/public/IDateTimeFormatter.php +++ b/lib/public/IDateTimeFormatter.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 diff --git a/lib/public/IGroup.php b/lib/public/IGroup.php index 788287b4f86..da1a4f5dd1e 100644 --- a/lib/public/IGroup.php +++ b/lib/public/IGroup.php @@ -2,9 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Julius Härtl <jus@bitgrid.net> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> - * @author Vincent Petry <PVince81@owncloud.com> + * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 * diff --git a/lib/public/IGroupManager.php b/lib/public/IGroupManager.php index be322b64325..f7a63dfefb7 100644 --- a/lib/public/IGroupManager.php +++ b/lib/public/IGroupManager.php @@ -9,6 +9,7 @@ * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> * * @license AGPL-3.0 * @@ -66,6 +67,13 @@ interface IGroupManager { public function clearBackends(); /** + * Get the active backends + * @return \OCP\GroupInterface[] + * @since 13.0.0 + */ + public function getBackends(); + + /** * @param string $gid * @return \OCP\IGroup * @since 8.0.0 diff --git a/lib/public/IL10N.php b/lib/public/IL10N.php index 7856a74219d..7af5008b814 100644 --- a/lib/public/IL10N.php +++ b/lib/public/IL10N.php @@ -5,10 +5,8 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Joas Schilling <coding@schilljs.com> - * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Morris Jobke <hey@morrisjobke.de> - * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/public/ILogger.php b/lib/public/ILogger.php index 28cc3b1433f..6ee850ee8ae 100644 --- a/lib/public/ILogger.php +++ b/lib/public/ILogger.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bernhard Posselt <dev@bernhard-posselt.com> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/lib/public/IPreview.php b/lib/public/IPreview.php index 7705df61a17..ba32300a284 100644 --- a/lib/public/IPreview.php +++ b/lib/public/IPreview.php @@ -5,6 +5,7 @@ * @author Joas Schilling <coding@schilljs.com> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/public/IRequest.php b/lib/public/IRequest.php index 262b595acc7..c4f59f85d4a 100644 --- a/lib/public/IRequest.php +++ b/lib/public/IRequest.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bart Visscher <bartv@thisnet.nl> + * @author Christoph Wurst <christoph@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> diff --git a/lib/public/IServerContainer.php b/lib/public/IServerContainer.php index 8c74c05d801..13abd0ff43b 100644 --- a/lib/public/IServerContainer.php +++ b/lib/public/IServerContainer.php @@ -6,6 +6,7 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Bernhard Posselt <dev@bernhard-posselt.com> * @author Björn Schießle <bjoern@schiessle.org> + * @author Christoph Wurst <christoph@owncloud.com> * @author Christopher Schäpers <kondou@ts.unde.re> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> diff --git a/lib/public/IURLGenerator.php b/lib/public/IURLGenerator.php index 3869d2f86f8..944029914e8 100644 --- a/lib/public/IURLGenerator.php +++ b/lib/public/IURLGenerator.php @@ -4,6 +4,7 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> * @author Morris Jobke <hey@morrisjobke.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * diff --git a/lib/public/IUserManager.php b/lib/public/IUserManager.php index 6c6724487de..163e8b5e73f 100644 --- a/lib/public/IUserManager.php +++ b/lib/public/IUserManager.php @@ -2,9 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/public/JSON.php b/lib/public/JSON.php index b289c2038a1..c56c3b645a9 100644 --- a/lib/public/JSON.php +++ b/lib/public/JSON.php @@ -6,6 +6,7 @@ * @author Frank Karlitschek <frank@karlitschek.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * @author Thomas Tanghus <thomas@tanghus.net> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/lib/public/LDAP/IDeletionFlagSupport.php b/lib/public/LDAP/IDeletionFlagSupport.php index 26b90a3493d..accb2f6369a 100644 --- a/lib/public/LDAP/IDeletionFlagSupport.php +++ b/lib/public/LDAP/IDeletionFlagSupport.php @@ -1,8 +1,11 @@ <?php /** - * * @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de) * + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/LDAP/ILDAPProvider.php b/lib/public/LDAP/ILDAPProvider.php index 3c07dfcbe8e..9e13fb7e796 100644 --- a/lib/public/LDAP/ILDAPProvider.php +++ b/lib/public/LDAP/ILDAPProvider.php @@ -1,8 +1,12 @@ <?php /** - * * @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de) * + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> + * @author Vinicius Cubas Brand <vinicius@eita.org.br> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify @@ -36,7 +40,15 @@ interface ILDAPProvider { * @since 11.0.0 */ public function getUserDN($uid); - + + /** + * Translate a group id to LDAP DN. + * @param string $gid group id + * @return string + * @since 13.0.0 + */ + public function getGroupDN($gid); + /** * Translate a LDAP DN to an internal user name. * @param string $dn LDAP DN @@ -69,6 +81,14 @@ interface ILDAPProvider { * @since 11.0.0 */ public function getLDAPConnection($uid); + + /** + * Return a new LDAP connection resource for the specified group. + * @param string $gid group id + * @return resource of the LDAP connection + * @since 13.0.0 + */ + public function getGroupLDAPConnection($gid); /** * Get the LDAP base for users. @@ -102,4 +122,39 @@ interface ILDAPProvider { * @since 11.0.0 */ public function clearCache($uid); + + /** + * Clear the cache if a cache is used, otherwise do nothing. + * @param string $gid group id + * @since 13.0.0 + */ + public function clearGroupCache($gid); + + /** + * Get the LDAP attribute name for the user's display name + * @param string $uid user id + * @return string the display name field + * @throws \Exception if user id was not found in LDAP + * @since 12.0.0 + */ + public function getLDAPDisplayNameField($uid); + + /** + * Get the LDAP attribute name for the email + * @param string $uid user id + * @return string the email field + * @throws \Exception if user id was not found in LDAP + * @since 12.0.0 + */ + public function getLDAPEmailField($uid); + + /** + * Get the LDAP attribute name for the type of association betweeen users and groups + * @param string $gid group id + * @return string the configuration, one of: 'memberUid', 'uniqueMember', 'member', 'gidNumber' + * @throws \Exception if group id was not found in LDAP + * @since 13.0.0 + */ + public function getLDAPGroupMemberAssoc($gid); + } diff --git a/lib/public/LDAP/ILDAPProviderFactory.php b/lib/public/LDAP/ILDAPProviderFactory.php index 74f84bff503..14f674d1fcc 100644 --- a/lib/public/LDAP/ILDAPProviderFactory.php +++ b/lib/public/LDAP/ILDAPProviderFactory.php @@ -1,8 +1,11 @@ <?php /** - * * @copyright Copyright (c) 2016, Roger Szabo (roger.szabo@web.de) * + * @author Roeland Jago Douma <roeland@famdouma.nl> + * @author Roger Szabo <roger.szabo@web.de> + * @author root <root@localhost.localdomain> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Lock/LockedException.php b/lib/public/Lock/LockedException.php index c371c6c56b0..5b5d88c18ca 100644 --- a/lib/public/Lock/LockedException.php +++ b/lib/public/Lock/LockedException.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Vincent Petry <pvince81@owncloud.com> diff --git a/lib/public/Lockdown/ILockdownManager.php b/lib/public/Lockdown/ILockdownManager.php index d4d05b37ff8..a34e3d610c1 100644 --- a/lib/public/Lockdown/ILockdownManager.php +++ b/lib/public/Lockdown/ILockdownManager.php @@ -1,19 +1,23 @@ <?php - /** * @copyright Copyright (c) 2016, Robin Appelman <robin@icewind.nl> * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * @author Robin Appelman <robin@icewind.nl> + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/lib/public/Mail/IAttachment.php b/lib/public/Mail/IAttachment.php index 32348e7a309..4b617d67f5e 100644 --- a/lib/public/Mail/IAttachment.php +++ b/lib/public/Mail/IAttachment.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Mail/IEMailTemplate.php b/lib/public/Mail/IEMailTemplate.php index c1766076c44..ed727444647 100644 --- a/lib/public/Mail/IEMailTemplate.php +++ b/lib/public/Mail/IEMailTemplate.php @@ -2,6 +2,9 @@ /** * @copyright 2017, Morris Jobke <hey@morrisjobke.de> * + * @author Joas Schilling <coding@schilljs.com> + * @author Leon Klingele <leon@struktur.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * * @license GNU AGPL version 3 or any later version diff --git a/lib/public/Mail/IMessage.php b/lib/public/Mail/IMessage.php index e82b4ff93a9..cec47adc19d 100644 --- a/lib/public/Mail/IMessage.php +++ b/lib/public/Mail/IMessage.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Migration/BigIntMigration.php b/lib/public/Migration/BigIntMigration.php index 91722671860..9e6003714e5 100644 --- a/lib/public/Migration/BigIntMigration.php +++ b/lib/public/Migration/BigIntMigration.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Migration/IMigrationStep.php b/lib/public/Migration/IMigrationStep.php index 49bb236ab7b..11b92ecf0cf 100644 --- a/lib/public/Migration/IMigrationStep.php +++ b/lib/public/Migration/IMigrationStep.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Migration/SimpleMigrationStep.php b/lib/public/Migration/SimpleMigrationStep.php index df4ae4e2eb6..58c68064484 100644 --- a/lib/public/Migration/SimpleMigrationStep.php +++ b/lib/public/Migration/SimpleMigrationStep.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Notification/INotification.php b/lib/public/Notification/INotification.php index 8d3f15c2380..58f05883450 100644 --- a/lib/public/Notification/INotification.php +++ b/lib/public/Notification/INotification.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/public/OCS/IDiscoveryService.php b/lib/public/OCS/IDiscoveryService.php index eee5bf97f93..c9e67c3acab 100644 --- a/lib/public/OCS/IDiscoveryService.php +++ b/lib/public/OCS/IDiscoveryService.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/RichObjectStrings/Definitions.php b/lib/public/RichObjectStrings/Definitions.php index b938fa5e6cb..d1d636fe36b 100644 --- a/lib/public/RichObjectStrings/Definitions.php +++ b/lib/public/RichObjectStrings/Definitions.php @@ -2,6 +2,10 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * @author Maxence Lange <maxence@nextcloud.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify @@ -252,6 +256,31 @@ class Definitions { ], ], ], + 'highlight' => [ + 'author' => 'Nextcloud', + 'app' => 'core', + 'since' => '13.0.0', + 'parameters' => [ + 'id' => [ + 'since' => '13.0.0', + 'required' => true, + 'description' => 'The id used to identify the highlighted object on the instance', + 'example' => '42', + ], + 'name' => [ + 'since' => '13.0.0', + 'required' => true, + 'description' => 'The string that should be highlighted.', + 'example' => 'Hello World', + ], + 'link' => [ + 'since' => '13.0.0', + 'required' => false, + 'description' => 'The full URL that should be opened when clicking the highlighted text.', + 'example' => 'http://localhost/index.php/f/42', + ], + ], + ], 'open-graph' => [ 'author' => 'Maxence Lange', 'app' => 'mood', diff --git a/lib/public/RichObjectStrings/IValidator.php b/lib/public/RichObjectStrings/IValidator.php index 8d9b86cfba3..a9a874bd758 100644 --- a/lib/public/RichObjectStrings/IValidator.php +++ b/lib/public/RichObjectStrings/IValidator.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/RichObjectStrings/InvalidObjectExeption.php b/lib/public/RichObjectStrings/InvalidObjectExeption.php index 7d6ea6bc976..c57ca734e0e 100644 --- a/lib/public/RichObjectStrings/InvalidObjectExeption.php +++ b/lib/public/RichObjectStrings/InvalidObjectExeption.php @@ -2,6 +2,9 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/Search/PagedProvider.php b/lib/public/Search/PagedProvider.php index b1294fa6dc4..2f3f17726fb 100644 --- a/lib/public/Search/PagedProvider.php +++ b/lib/public/Search/PagedProvider.php @@ -4,7 +4,9 @@ * * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/public/Security/ISecureRandom.php b/lib/public/Security/ISecureRandom.php index 2f74a003f51..76e207fbbd8 100644 --- a/lib/public/Security/ISecureRandom.php +++ b/lib/public/Security/ISecureRandom.php @@ -2,8 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Fabrizio Steiner <fabrizio.steiner@gmail.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/public/Settings/IManager.php b/lib/public/Settings/IManager.php index 7a24eab3896..1a1a4b8e661 100644 --- a/lib/public/Settings/IManager.php +++ b/lib/public/Settings/IManager.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Settings/ISection.php b/lib/public/Settings/ISection.php index 3c08b74bdc9..fe5a216a02d 100644 --- a/lib/public/Settings/ISection.php +++ b/lib/public/Settings/ISection.php @@ -3,6 +3,8 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Settings/ISettings.php b/lib/public/Settings/ISettings.php index 611bb713b33..f6b91bc6c12 100644 --- a/lib/public/Settings/ISettings.php +++ b/lib/public/Settings/ISettings.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license GNU AGPL version 3 or any later version * diff --git a/lib/public/Share.php b/lib/public/Share.php index 8e73fb15f0f..b7fb7296e49 100644 --- a/lib/public/Share.php +++ b/lib/public/Share.php @@ -2,18 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Andreas Fischer <bantu@owncloud.com> * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> - * @author Michael Gapczynski <GapczynskiM@gmail.com> - * @author Michael Kuhn <suraia@ikkoku.de> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Sam Tuke <mail@samtuke.com> - * @author Stefan Weil <sw@weilnetz.de> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/public/Share/Exceptions/GenericShareException.php b/lib/public/Share/Exceptions/GenericShareException.php index 21a3b2caa5b..ef5586a362f 100644 --- a/lib/public/Share/Exceptions/GenericShareException.php +++ b/lib/public/Share/Exceptions/GenericShareException.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Lukas Reschke <lukas@statuscode.ch> * @author Roeland Jago Douma <roeland@famdouma.nl> * diff --git a/lib/public/Share/IManager.php b/lib/public/Share/IManager.php index 764e36b5d7e..493db5e5149 100644 --- a/lib/public/Share/IManager.php +++ b/lib/public/Share/IManager.php @@ -2,6 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/public/Share/IProviderFactory.php b/lib/public/Share/IProviderFactory.php index 7227fdea1f1..ad43b64229d 100644 --- a/lib/public/Share/IProviderFactory.php +++ b/lib/public/Share/IProviderFactory.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/public/Share/IShare.php b/lib/public/Share/IShare.php index 8deec573c1b..c19364c86c8 100644 --- a/lib/public/Share/IShare.php +++ b/lib/public/Share/IShare.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/public/Share/IShareHelper.php b/lib/public/Share/IShareHelper.php index 4ec62830c52..c957a815e89 100644 --- a/lib/public/Share/IShareHelper.php +++ b/lib/public/Share/IShareHelper.php @@ -2,6 +2,7 @@ /** * @copyright 2017, Roeland Jago Douma <roeland@famdouma.nl> * + * @author Joas Schilling <coding@schilljs.com> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/lib/public/Share/IShareProvider.php b/lib/public/Share/IShareProvider.php index 31808206cf6..4db43d953cf 100644 --- a/lib/public/Share/IShareProvider.php +++ b/lib/public/Share/IShareProvider.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> + * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 diff --git a/lib/public/SystemTag/ManagerEvent.php b/lib/public/SystemTag/ManagerEvent.php index f7a9b8d6da7..bb9fcc01f83 100644 --- a/lib/public/SystemTag/ManagerEvent.php +++ b/lib/public/SystemTag/ManagerEvent.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * * @license AGPL-3.0 * diff --git a/lib/public/SystemTag/TagNotFoundException.php b/lib/public/SystemTag/TagNotFoundException.php index 49008d1adde..9b06259807f 100644 --- a/lib/public/SystemTag/TagNotFoundException.php +++ b/lib/public/SystemTag/TagNotFoundException.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/lib/public/Template.php b/lib/public/Template.php index edea99f9ef3..b7f86889edb 100644 --- a/lib/public/Template.php +++ b/lib/public/Template.php @@ -4,14 +4,13 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> - * @author Jan-Christoph Borchardt <hey@jancborchardt.net> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> - * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Vincent Petry <pvince81@owncloud.com> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/lib/public/User.php b/lib/public/User.php index ef0096deab4..40be50dd19c 100644 --- a/lib/public/User.php +++ b/lib/public/User.php @@ -5,13 +5,13 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> - * @author Lorenzo M. Catucci <lorenzo@sancho.ccd.uniroma2.it> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> + * @author Sebastian Wessalowski <sebastian@wessalowski.org> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/lib/public/Util.php b/lib/public/Util.php index 04cdfe216d0..5127beaf505 100644 --- a/lib/public/Util.php +++ b/lib/public/Util.php @@ -6,10 +6,11 @@ * @author Bart Visscher <bartv@thisnet.nl> * @author Björn Schießle <bjoern@schiessle.org> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Individual IT Services <info@individual-it.net> * @author Jens-Christian Fischer <jens-christian.fischer@switch.ch> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> * @author Michael Gapczynski <GapczynskiM@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> diff --git a/lib/public/WorkflowEngine/ICheck.php b/lib/public/WorkflowEngine/ICheck.php index 7e3d86caad9..1d4fc966460 100644 --- a/lib/public/WorkflowEngine/ICheck.php +++ b/lib/public/WorkflowEngine/ICheck.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de> * + * @author Morris Jobke <hey@morrisjobke.de> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/WorkflowEngine/IManager.php b/lib/public/WorkflowEngine/IManager.php index e53a06ec929..cd323a816f3 100644 --- a/lib/public/WorkflowEngine/IManager.php +++ b/lib/public/WorkflowEngine/IManager.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Morris Jobke <hey@morrisjobke.de> * + * @author Morris Jobke <hey@morrisjobke.de> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/lib/public/WorkflowEngine/IOperation.php b/lib/public/WorkflowEngine/IOperation.php index c75e5d940c5..491a805909c 100644 --- a/lib/public/WorkflowEngine/IOperation.php +++ b/lib/public/WorkflowEngine/IOperation.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2016 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/ocs/providers.php b/ocs/providers.php index 1961a68ec2d..79fc747c067 100644 --- a/ocs/providers.php +++ b/ocs/providers.php @@ -3,9 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Frank Karlitschek <frank@karlitschek.de> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> - * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 * diff --git a/ocs/v2.php b/ocs/v2.php index dc57431e6c6..aa66ec92de4 100644 --- a/ocs/v2.php +++ b/ocs/v2.php @@ -2,6 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Joas Schilling <coding@schilljs.com> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/public.php b/public.php index efa59267125..567408217d3 100644 --- a/public.php +++ b/public.php @@ -4,12 +4,12 @@ * * @author Björn Schießle <bjoern@schiessle.org> * @author Christopher Schäpers <kondou@ts.unde.re> + * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> - * @author Victor Dubiniuk <dubiniuk@owncloud.com> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/settings/Activity/Provider.php b/settings/Activity/Provider.php index 575b7e9b569..e71a33e0d4f 100644 --- a/settings/Activity/Provider.php +++ b/settings/Activity/Provider.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/settings/Activity/SecurityFilter.php b/settings/Activity/SecurityFilter.php index 6bf36a9e488..5beb6c8c950 100644 --- a/settings/Activity/SecurityFilter.php +++ b/settings/Activity/SecurityFilter.php @@ -1,7 +1,8 @@ <?php - /** - * @author Christoph Wurst <christoph@winzerhof-wurst.at> + * + * + * @author Christoph Wurst <christoph@owncloud.com> * * @license GNU AGPL version 3 or any later version * diff --git a/settings/Activity/SecurityProvider.php b/settings/Activity/SecurityProvider.php index 7b27fde363f..f0789842e82 100644 --- a/settings/Activity/SecurityProvider.php +++ b/settings/Activity/SecurityProvider.php @@ -1,22 +1,24 @@ <?php - /** - * @author Christoph Wurst <christoph@winzerhof-wurst.at> * @copyright Copyright (c) 2016 Christoph Wurst <christoph@winzerhof-wurst.at> * - * Two-factor backup codes + * @author Christoph Wurst <christoph@owncloud.com> + * @author Joas Schilling <coding@schilljs.com> + * + * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/settings/Activity/SecuritySetting.php b/settings/Activity/SecuritySetting.php index fe1b0dd8f57..6a969f3eac4 100644 --- a/settings/Activity/SecuritySetting.php +++ b/settings/Activity/SecuritySetting.php @@ -1,22 +1,23 @@ <?php - /** - * @author Christoph Wurst <christoph@winzerhof-wurst.at> * @copyright Copyright (c) 2016 Christoph Wurst <christoph@winzerhof-wurst.at> * - * Two-factor backup codes + * @author Christoph Wurst <christoph@owncloud.com> + * + * @license GNU AGPL version 3 or any later version * - * This code is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License, version 3, - * as published by the Free Software Foundation. + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * - * You should have received a copy of the GNU Affero General Public License, version 3, - * along with this program. If not, see <http://www.gnu.org/licenses/> + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ diff --git a/settings/Activity/Setting.php b/settings/Activity/Setting.php index ec72f270b9f..07638632661 100644 --- a/settings/Activity/Setting.php +++ b/settings/Activity/Setting.php @@ -2,6 +2,8 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/settings/Application.php b/settings/Application.php index f79453e3d01..5b2b606353f 100644 --- a/settings/Application.php +++ b/settings/Application.php @@ -2,15 +2,13 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Björn Schießle <bjoern@schiessle.org> * @author Christoph Wurst <christoph@owncloud.com> - * @author Georg Ehrke <georg@owncloud.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> - * @author Roeland Jago Douma <roeland@famdouma.nl> - * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 * diff --git a/settings/BackgroundJobs/VerifyUserData.php b/settings/BackgroundJobs/VerifyUserData.php index 90f9e1fc678..8dc89830167 100644 --- a/settings/BackgroundJobs/VerifyUserData.php +++ b/settings/BackgroundJobs/VerifyUserData.php @@ -2,6 +2,10 @@ /** * @copyright Copyright (c) 2017 Bjoern Schiessle <bjoern@schiessle.org> * + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Patrik Kernstock <info@pkern.at> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/settings/Controller/AdminSettingsController.php b/settings/Controller/AdminSettingsController.php index 33d9cb2c2a3..0114ee73d96 100644 --- a/settings/Controller/AdminSettingsController.php +++ b/settings/Controller/AdminSettingsController.php @@ -4,6 +4,7 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Robin Appelman <robin@icewind.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/settings/Controller/AppSettingsController.php b/settings/Controller/AppSettingsController.php index da59461e5fa..26858eabcf3 100644 --- a/settings/Controller/AppSettingsController.php +++ b/settings/Controller/AppSettingsController.php @@ -4,9 +4,13 @@ * @copyright Copyright (c) 2016, Lukas Reschke <lukas@statuscode.ch> * * @author Christoph Wurst <christoph@owncloud.com> + * @author Felix A. Epp <work@felixepp.de> + * @author Jan-Christoph Borchardt <hey@jancborchardt.net> * @author Joas Schilling <coding@schilljs.com> + * @author Julius Härtl <jus@bitgrid.net> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/settings/Controller/AuthSettingsController.php b/settings/Controller/AuthSettingsController.php index 7b68fc4c289..2f3d78b4d83 100644 --- a/settings/Controller/AuthSettingsController.php +++ b/settings/Controller/AuthSettingsController.php @@ -3,6 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Christoph Wurst <christoph@owncloud.com> + * @author Fabrizio Steiner <fabrizio.steiner@gmail.com> + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Marcel Waldvogel <marcel.waldvogel@uni-konstanz.de> * @author Robin Appelman <robin@icewind.nl> * * @license AGPL-3.0 diff --git a/settings/Controller/CertificateController.php b/settings/Controller/CertificateController.php index c5f7e89f3fc..852f24bc28f 100644 --- a/settings/Controller/CertificateController.php +++ b/settings/Controller/CertificateController.php @@ -5,6 +5,7 @@ * @author Björn Schießle <bjoern@schiessle.org> * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/settings/Controller/ChangePasswordController.php b/settings/Controller/ChangePasswordController.php index a758180e858..31ff8904ce3 100644 --- a/settings/Controller/ChangePasswordController.php +++ b/settings/Controller/ChangePasswordController.php @@ -1,6 +1,11 @@ <?php /** * + * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Matthew Setter <matthew@matthewsetter.com> + * @author Morris Jobke <hey@morrisjobke.de> * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license GNU AGPL version 3 or any later version diff --git a/settings/Controller/CheckSetupController.php b/settings/Controller/CheckSetupController.php index 151e546e558..ccaaaeaf601 100644 --- a/settings/Controller/CheckSetupController.php +++ b/settings/Controller/CheckSetupController.php @@ -2,7 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Derek <derek.kelly27@gmail.com> * @author Joas Schilling <coding@schilljs.com> + * @author Ko- <k.stoffelen@cs.ru.nl> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin McCorkell <robin@mccorkell.me.uk> diff --git a/settings/Controller/CommonSettingsTrait.php b/settings/Controller/CommonSettingsTrait.php index ac316aa7f48..82d675531a8 100644 --- a/settings/Controller/CommonSettingsTrait.php +++ b/settings/Controller/CommonSettingsTrait.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Robin Appelman <robin@icewind.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/settings/Controller/EncryptionController.php b/settings/Controller/EncryptionController.php index 4ec6177f28f..93a51a558bf 100644 --- a/settings/Controller/EncryptionController.php +++ b/settings/Controller/EncryptionController.php @@ -3,7 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Björn Schießle <bjoern@schiessle.org> + * @author Joas Schilling <coding@schilljs.com> + * @author Ko- <k.stoffelen@cs.ru.nl> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> * * @license AGPL-3.0 * diff --git a/settings/Controller/LogSettingsController.php b/settings/Controller/LogSettingsController.php index e87d201a83b..ae9e7f4072f 100644 --- a/settings/Controller/LogSettingsController.php +++ b/settings/Controller/LogSettingsController.php @@ -2,12 +2,11 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> - * @author Joas Schilling <coding@schilljs.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> - * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Thomas Pulzer <t.pulzer@kniel.de> * * @license AGPL-3.0 * diff --git a/settings/Controller/PersonalSettingsController.php b/settings/Controller/PersonalSettingsController.php index 7e2d62961b7..ad4eb69c32d 100644 --- a/settings/Controller/PersonalSettingsController.php +++ b/settings/Controller/PersonalSettingsController.php @@ -3,6 +3,7 @@ * @copyright Copyright (c) 2017 Arthur Schiwon <blizzz@arthur-schiwon.de> * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Robin Appelman <robin@icewind.nl> * * @license GNU AGPL version 3 or any later version * diff --git a/settings/Controller/SecuritySettingsController.php b/settings/Controller/SecuritySettingsController.php index d0d57437799..bda86dff841 100644 --- a/settings/Controller/SecuritySettingsController.php +++ b/settings/Controller/SecuritySettingsController.php @@ -4,6 +4,7 @@ * * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/settings/Controller/UsersController.php b/settings/Controller/UsersController.php index a78c1b9466b..d583dc8690d 100644 --- a/settings/Controller/UsersController.php +++ b/settings/Controller/UsersController.php @@ -3,6 +3,9 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> + * @author Bjoern Schiessle <bjoern@schiessle.org> + * @author Björn Schießle <bjoern@schiessle.org> + * @author Christoph Wurst <christoph@owncloud.com> * @author Clark Tomlinson <fallen013@gmail.com> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> @@ -10,6 +13,9 @@ * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Thomas Pulzer <t.pulzer@kniel.de> + * @author Tobia De Koninck <tobia@ledfan.be> + * @author Tobias Kaminsky <tobias@kaminsky.me> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/settings/Hooks.php b/settings/Hooks.php index 59bd7bb905d..097d708a36a 100644 --- a/settings/Hooks.php +++ b/settings/Hooks.php @@ -2,6 +2,10 @@ /** * @copyright Copyright (c) 2017 Joas Schilling <coding@schilljs.com> * + * @author Joas Schilling <coding@schilljs.com> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/settings/Mailer/NewUserMailHelper.php b/settings/Mailer/NewUserMailHelper.php index 935b3f0e075..db0339c7367 100644 --- a/settings/Mailer/NewUserMailHelper.php +++ b/settings/Mailer/NewUserMailHelper.php @@ -2,6 +2,11 @@ /** * @copyright Copyright (c) 2017 Lukas Reschke <lukas@statuscode.ch> * + * @author Joas Schilling <coding@schilljs.com> + * @author Leon Klingele <leon@struktur.de> + * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * * @license GNU AGPL version 3 or any later version * * This program is free software: you can redistribute it and/or modify diff --git a/settings/ajax/disableapp.php b/settings/ajax/disableapp.php index 9b76236a15b..a2f9fa42693 100644 --- a/settings/ajax/disableapp.php +++ b/settings/ajax/disableapp.php @@ -2,7 +2,7 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Kamil Domanski <kdomanski@kdemail.net> * @author Lukas Reschke <lukas@statuscode.ch> * diff --git a/settings/ajax/enableapp.php b/settings/ajax/enableapp.php index 4c4fa0be666..3d2d7f95a5e 100644 --- a/settings/ajax/enableapp.php +++ b/settings/ajax/enableapp.php @@ -4,7 +4,6 @@ * * @author Bart Visscher <bartv@thisnet.nl> * @author Christopher Schäpers <kondou@ts.unde.re> - * @author Joas Schilling <coding@schilljs.com> * @author Kamil Domanski <kdomanski@kdemail.net> * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> diff --git a/settings/ajax/setquota.php b/settings/ajax/setquota.php index 0906102ec20..481f0853f96 100644 --- a/settings/ajax/setquota.php +++ b/settings/ajax/setquota.php @@ -7,7 +7,8 @@ * @author Björn Schießle <bjoern@schiessle.org> * @author Christopher Schäpers <kondou@ts.unde.re> * @author Felix Moeller <mail@felixmoeller.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> diff --git a/settings/ajax/togglesubadmins.php b/settings/ajax/togglesubadmins.php index c9cc078ed09..4fee0530dd1 100644 --- a/settings/ajax/togglesubadmins.php +++ b/settings/ajax/togglesubadmins.php @@ -3,8 +3,10 @@ * @copyright Copyright (c) 2016, ownCloud, Inc. * * @author Bart Visscher <bartv@thisnet.nl> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> + * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/settings/ajax/uninstallapp.php b/settings/ajax/uninstallapp.php index 79109600a39..b4a2468bd2a 100644 --- a/settings/ajax/uninstallapp.php +++ b/settings/ajax/uninstallapp.php @@ -2,9 +2,10 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * * @license AGPL-3.0 * diff --git a/settings/ajax/updateapp.php b/settings/ajax/updateapp.php index b398e41033b..7b615cb56bb 100644 --- a/settings/ajax/updateapp.php +++ b/settings/ajax/updateapp.php @@ -4,9 +4,10 @@ * * @author Christopher Schäpers <kondou@ts.unde.re> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Robin Appelman <robin@icewind.nl> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> * * @license AGPL-3.0 diff --git a/settings/l10n/es.js b/settings/l10n/es.js index d36e8e97335..ce240f72b1d 100644 --- a/settings/l10n/es.js +++ b/settings/l10n/es.js @@ -14,7 +14,7 @@ OC.L10N.register( "Your apps" : "Tus apps", "Updates" : "Actualizaciones", "Enabled apps" : "Apps habilitadas", - "Disabled apps" : "Apps inhabilitadas", + "Disabled apps" : "Apps deshabilitadas", "App bundles" : "Lotes de apps", "Wrong password" : "Contraseña incorrecta", "Saved" : "Guardado", @@ -34,10 +34,10 @@ OC.L10N.register( "Unable to delete group." : "No se pudo eliminar el grupo.", "Invalid SMTP password." : "Contraseña SMTP inválida", "Email setting test" : "Prueba de configuración de correo", - "Well done, %s!" : "Bien hecho, %s!", + "Well done, %s!" : "¡Bien hecho, %s!", "If you received this email, the email configuration seems to be correct." : "Si recibe este correo, la configuración de correo parece ser correcta.", "Email could not be sent. Check your mail server log" : "No se ha podido enviar el correo. Comprueba el registro del servidor de correo", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocurrió un problema al enviar el mensaje de correo electrónico. Revise su configuración. (Error: %s)", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ha ocurrido un problema al enviar el mensaje de correo electrónico. Revisa tu configuración. (Error: %s)", "You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.", "Invalid mail address" : "Dirección de correo inválida", "No valid group selected" : "No se ha seleccionado un grupo válido", @@ -60,7 +60,7 @@ OC.L10N.register( "%1$s changed your password on %2$s." : "%1$s cambió su contraseña en %2$s.", "Your password on %s was changed." : "Su contraseña en %s fue cambiada.", "Your password on %s was reset by an administrator." : "Su contraseña en %s fue restaurada por un administrador.", - "Password for %1$s changed on %2$s" : "Contrasñea para %1$s cambiada en %2$s", + "Password for %1$s changed on %2$s" : "Contraseña para %1$s cambiada en %2$s", "Password changed for %s" : "Contraseña cambiada por %s", "If you did not request this, please contact an administrator." : "Si usted no soliticitó esto, por favor contacte con el administrador.", "%1$s changed your email address on %2$s." : "%1$s cambió su dirección de correo electrónico en %2$s", @@ -78,8 +78,8 @@ OC.L10N.register( "Go to %s" : "Vaya a %s", "Install Client" : "Instalar cliente", "Password confirmation is required" : "Se requiere confirmar la contraseña", - "Couldn't remove app." : "No se pudo eliminar la aplicación.", - "Couldn't update app." : "No se pudo actualizar la aplicación.", + "Couldn't remove app." : "No se ha podido eliminar la aplicación.", + "Couldn't update app." : "No se ha podido actualizar la aplicación.", "Are you really sure you want add {domain} as trusted domain?" : "¿Está realmente seguro de que quiere añadir {domain} como dominio de confianza?", "Add trusted domain" : "Agregar dominio de confianza", "Migration in progress. Please wait until the migration is finished" : "Migración en curso. Por favor, espere hasta que la migración esté finalizada.", @@ -210,7 +210,7 @@ OC.L10N.register( "Online documentation" : "Documentación en línea", "Forum" : "Foro", "Getting help" : "Obtener ayuda", - "Commercial support" : "Soporte Comercial", + "Commercial support" : "Soporte comercial", "None" : "Ninguno", "Login" : "Iniciar sesión", "Plain" : "Plano", @@ -218,7 +218,7 @@ OC.L10N.register( "SSL/TLS" : "SSL/TLS", "STARTTLS" : "STARTTLS", "Email server" : "Servidor de correo electrónico", - "Open documentation" : "Abrir Documentación", + "Open documentation" : "Abrir documentación", "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Es importante configurar este servidor para que pueda enviar correos, por ejemplo para cambios de contraseñas y notificaciones.", "Send mode" : "Modo de envío", "Encryption" : "Cifrado", @@ -254,7 +254,7 @@ OC.L10N.register( "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP parece que no está configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") sólo devuelve una respuesta vacía.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor revisa la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para ver notas de configuración de PHP y comprobar la configuración PHP de tu servidor, especialmente cuando se está usando php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Se ha habilitado la configuración de sólo lectura. Esto evita tener que ajustar algunas configuraciones a través de la interfaz web. Además, el archivo debe hacerse modificable manualmente para cada actualización.", - "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para quitar bloques de documento ('strip inline doc blocks'). Esto hará que varias aplicaciones principales estén inaccesibles.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para quitar bloques de documento —'strip inline doc blocks'—. Esto hará que varias aplicaciones principales estén inaccesibles.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto venga a causa de la caché o un acelerador, tales como Zend OPcache o eAccelerator.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Su base de datos no se ejecuta con el nivel de aislamiento de transacción \"READ COMMITTED\" . Ésto puede causar problemas cuando múltiples acciones se ejecutan en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$sestá instalado por debajo de la versión %2$s, por motivos de estabilidad y rendimiento se recomienda actualizar a una versión más moderna de %1$s.", @@ -405,10 +405,10 @@ OC.L10N.register( "App passwords" : "Contraseñas de aplicaciones", "Sync clients" : "Clientes de sincronización", "This is used for sending out notifications." : "Esto se usa para enviar notificaciones.", - "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php parece que no está configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") sólo retorna una respuesta vacía.", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "arece que php no está configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") sólo devuelve una respuesta vacía.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor revisa la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para notas de configuración PHP y la configuración PHP de tu servidor, especialmente cuando se está usando php-fpm", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones principales no estén accesibles.", - "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s una versión inferior %2$s está instalada, por razones de estabilidad y rendimiento, se recomienda actualizar a la versión %1$s más reciente .", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s con una versión anterior a %2$s está instalada. Por razones de estabilidad y rendimiento, se recomienda actualizar a una versión de %1$s más reciente .", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "No se ha encontrado el modulo PHP 'fileinfo'. Le recomendamos encarecidamente que habilite este módulo para obtener mejores resultados con la detección de tipos MIME.", "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ", diff --git a/settings/l10n/es.json b/settings/l10n/es.json index 0a9ac45667c..015108fa715 100644 --- a/settings/l10n/es.json +++ b/settings/l10n/es.json @@ -12,7 +12,7 @@ "Your apps" : "Tus apps", "Updates" : "Actualizaciones", "Enabled apps" : "Apps habilitadas", - "Disabled apps" : "Apps inhabilitadas", + "Disabled apps" : "Apps deshabilitadas", "App bundles" : "Lotes de apps", "Wrong password" : "Contraseña incorrecta", "Saved" : "Guardado", @@ -32,10 +32,10 @@ "Unable to delete group." : "No se pudo eliminar el grupo.", "Invalid SMTP password." : "Contraseña SMTP inválida", "Email setting test" : "Prueba de configuración de correo", - "Well done, %s!" : "Bien hecho, %s!", + "Well done, %s!" : "¡Bien hecho, %s!", "If you received this email, the email configuration seems to be correct." : "Si recibe este correo, la configuración de correo parece ser correcta.", "Email could not be sent. Check your mail server log" : "No se ha podido enviar el correo. Comprueba el registro del servidor de correo", - "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ocurrió un problema al enviar el mensaje de correo electrónico. Revise su configuración. (Error: %s)", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Ha ocurrido un problema al enviar el mensaje de correo electrónico. Revisa tu configuración. (Error: %s)", "You need to set your user email before being able to send test emails." : "Tiene que configurar su dirección de correo electrónico antes de poder enviar mensajes de prueba.", "Invalid mail address" : "Dirección de correo inválida", "No valid group selected" : "No se ha seleccionado un grupo válido", @@ -58,7 +58,7 @@ "%1$s changed your password on %2$s." : "%1$s cambió su contraseña en %2$s.", "Your password on %s was changed." : "Su contraseña en %s fue cambiada.", "Your password on %s was reset by an administrator." : "Su contraseña en %s fue restaurada por un administrador.", - "Password for %1$s changed on %2$s" : "Contrasñea para %1$s cambiada en %2$s", + "Password for %1$s changed on %2$s" : "Contraseña para %1$s cambiada en %2$s", "Password changed for %s" : "Contraseña cambiada por %s", "If you did not request this, please contact an administrator." : "Si usted no soliticitó esto, por favor contacte con el administrador.", "%1$s changed your email address on %2$s." : "%1$s cambió su dirección de correo electrónico en %2$s", @@ -76,8 +76,8 @@ "Go to %s" : "Vaya a %s", "Install Client" : "Instalar cliente", "Password confirmation is required" : "Se requiere confirmar la contraseña", - "Couldn't remove app." : "No se pudo eliminar la aplicación.", - "Couldn't update app." : "No se pudo actualizar la aplicación.", + "Couldn't remove app." : "No se ha podido eliminar la aplicación.", + "Couldn't update app." : "No se ha podido actualizar la aplicación.", "Are you really sure you want add {domain} as trusted domain?" : "¿Está realmente seguro de que quiere añadir {domain} como dominio de confianza?", "Add trusted domain" : "Agregar dominio de confianza", "Migration in progress. Please wait until the migration is finished" : "Migración en curso. Por favor, espere hasta que la migración esté finalizada.", @@ -208,7 +208,7 @@ "Online documentation" : "Documentación en línea", "Forum" : "Foro", "Getting help" : "Obtener ayuda", - "Commercial support" : "Soporte Comercial", + "Commercial support" : "Soporte comercial", "None" : "Ninguno", "Login" : "Iniciar sesión", "Plain" : "Plano", @@ -216,7 +216,7 @@ "SSL/TLS" : "SSL/TLS", "STARTTLS" : "STARTTLS", "Email server" : "Servidor de correo electrónico", - "Open documentation" : "Abrir Documentación", + "Open documentation" : "Abrir documentación", "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Es importante configurar este servidor para que pueda enviar correos, por ejemplo para cambios de contraseñas y notificaciones.", "Send mode" : "Modo de envío", "Encryption" : "Cifrado", @@ -252,7 +252,7 @@ "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP parece que no está configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") sólo devuelve una respuesta vacía.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor revisa la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para ver notas de configuración de PHP y comprobar la configuración PHP de tu servidor, especialmente cuando se está usando php-fpm.", "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Se ha habilitado la configuración de sólo lectura. Esto evita tener que ajustar algunas configuraciones a través de la interfaz web. Además, el archivo debe hacerse modificable manualmente para cada actualización.", - "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para quitar bloques de documento ('strip inline doc blocks'). Esto hará que varias aplicaciones principales estén inaccesibles.", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para quitar bloques de documento —'strip inline doc blocks'—. Esto hará que varias aplicaciones principales estén inaccesibles.", "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Probablemente esto venga a causa de la caché o un acelerador, tales como Zend OPcache o eAccelerator.", "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Su base de datos no se ejecuta con el nivel de aislamiento de transacción \"READ COMMITTED\" . Ésto puede causar problemas cuando múltiples acciones se ejecutan en paralelo.", "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$sestá instalado por debajo de la versión %2$s, por motivos de estabilidad y rendimiento se recomienda actualizar a una versión más moderna de %1$s.", @@ -403,10 +403,10 @@ "App passwords" : "Contraseñas de aplicaciones", "Sync clients" : "Clientes de sincronización", "This is used for sending out notifications." : "Esto se usa para enviar notificaciones.", - "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "php parece que no está configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") sólo retorna una respuesta vacía.", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "arece que php no está configurado correctamente para solicitar las variables de entorno del sistema. La prueba con getenv(\"PATH\") sólo devuelve una respuesta vacía.", "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Por favor revisa la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para notas de configuración PHP y la configuración PHP de tu servidor, especialmente cuando se está usando php-fpm", "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "PHP está aparentemente configurado para eliminar bloques de documentos en línea. Esto hará que varias aplicaciones principales no estén accesibles.", - "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s una versión inferior %2$s está instalada, por razones de estabilidad y rendimiento, se recomienda actualizar a la versión %1$s más reciente .", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s con una versión anterior a %2$s está instalada. Por razones de estabilidad y rendimiento, se recomienda actualizar a una versión de %1$s más reciente .", "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "No se ha encontrado el modulo PHP 'fileinfo'. Le recomendamos encarecidamente que habilite este módulo para obtener mejores resultados con la detección de tipos MIME.", "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Es muy recomendable instalar los paquetes necesarios para poder soportar una de las siguientes configuraciones regionales: %s. ", diff --git a/settings/l10n/es_DO.js b/settings/l10n/es_DO.js new file mode 100644 index 00000000000..64396e1cfc8 --- /dev/null +++ b/settings/l10n/es_DO.js @@ -0,0 +1,457 @@ +OC.L10N.register( + "settings", + { + "{actor} changed your password" : "{actor} ha cambiado tu contraseña", + "You changed your password" : "Cambiaste tu contraseña", + "Your password was reset by an administrator" : "Tu contraseña ha sido restablecida por un adminsitrador", + "{actor} changed your email address" : "{actor} ha cambiado tu dirección de correo electrónico", + "You changed your email address" : "Cambiaste tu dirección de correo electrónico", + "Your email address was changed by an administrator" : "Tu dirección de correo electrónico ha sido cambiada por un administrador", + "Security" : "Seguridad", + "You successfully logged in using two-factor authentication (%1$s)" : "Has iniciado sesión exitosamente usando autenticación de dos-factores (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "Un intento de autenticación usando autenticación de dos-factores ha fallado (%1$s)", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Tu <strong>contraseña</strong> o <strong>correo electrónico</strong> ha sido modificado", + "Your apps" : "Tus aplicaciones", + "Updates" : "Actualizaciones", + "Enabled apps" : "Aplicaciones habilitadas", + "Disabled apps" : "Aplicaciones deshabilitadas", + "App bundles" : "Paquetes de aplicación", + "Wrong password" : "Contraseña incorrecta", + "Saved" : "Guardado", + "No user supplied" : "No se proporcionó usuario alguno", + "Unable to change password" : "No fue posible cambiar la contraseña", + "Authentication error" : "Error de autenticación", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor proporciona una contraseña de recuperación de administrador; de lo contrario toda la información del usuario se perderá. ", + "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor verificala e inténtalo de nuevo.", + "Backend doesn't support password change, but the user's encryption key was updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada.", + "installing and updating apps via the app store or Federated Cloud Sharing" : "Instalando y actualizando aplicaciones por la tienda de aplicaciones o Compartido la Nube Federada", + "Federated Cloud Sharing" : "Compartir en la Nube Federada", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión anticuada (%s) de %s. Por favor actualiza tu sistema operativo o funciones tales como %s no funcionarán de forma confiable.", + "A problem occurred, please check your log files (Error: %s)" : "Se presentó un problema, por favor verifica tus archivos de bitácoras (Error: %s)", + "Migration Completed" : "Migración completada", + "Group already exists." : "El grupo ya existe.", + "Unable to add group." : "No fue posible agregar el grupo.", + "Unable to delete group." : "No fue posible borrar el grupo.", + "Invalid SMTP password." : "Constraseña SMTP inválida. ", + "Email setting test" : "Prueba de ajustes de correo", + "Well done, %s!" : "¡Bien hecho, %s!", + "If you received this email, the email configuration seems to be correct." : "Si has recibido este correo electrónico, la configuración del correo electrónico parece estar correcta. ", + "Email could not be sent. Check your mail server log" : "No fue posible enviar el correo electrónico. Por favor verfica la bitácora de tu servidor de correo", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Se presentó un problema al enviar el correo electrónico. Por favor revisa tus configuraciones (Error: %s)", + "You need to set your user email before being able to send test emails." : "Requieres establecer tu correo electrónico antes de poder enviar correos electrónicos de prueba. ", + "Invalid mail address" : "Dirección de correo inválida", + "No valid group selected" : "No se ha seleccionado un grupo válido", + "A user with that name already exists." : "Un usuario con ese nombre ya existe. ", + "To send a password link to the user an email address is required." : "Para enviar la liga a una contraseña al usuario, se requiere de una dirección de correo electrónico.", + "Unable to create user." : "No fue posible crear el usuario. ", + "Unable to delete user." : "No fue posible eliminar el usuario.", + "Error while enabling user." : "Se presentó un error al habilitar el usuario. ", + "Error while disabling user." : "Se presentó un error al deshabilitar el usuario.", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Para poder verificar tu cuenta de Twitter, publica el siguiente tweet en Twitter (por favor asegúrarte de publicar sin ninguna línea en blanco):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Para poder verificar tu sitio Web, agrega el siguiente contendio a tu web-root en '.well-known/CloudIdVerificationCode.txt' (por favor asegurate de que el texto completo este en una sóla línea):", + "Settings saved" : "Se han guardado las configuraciones ", + "Unable to change full name" : "No fue posible cambiar el nombre completo", + "Unable to change email address" : "No fue posible cambiar la dirección de correo electrónico", + "Your full name has been changed." : "Tu nombre completo ha sido cambiado.", + "Forbidden" : "Prohibido", + "Invalid user" : "Usuario inválido", + "Unable to change mail address" : "No fue posible cambiar la dirección de correo", + "Email saved" : "Correo electrónico guardado", + "%1$s changed your password on %2$s." : "%1$s cambió tu contraseña el %2$s.", + "Your password on %s was changed." : "Tu contraseña de %s fue cambiada. ", + "Your password on %s was reset by an administrator." : "Tu contraseña de %s fue restablecida por un administrador.", + "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", + "Password changed for %s" : "La contraseña fue cambiada para %s", + "If you did not request this, please contact an administrator." : "Si no lo solicitaste, por favor contacta a un administrador. ", + "%1$s changed your email address on %2$s." : "%1$s cambió tu dirección de correo electrónico el %2$s.", + "Your email address on %s was changed." : "Tu dirección de correo electrónico en %s fue cambiada. ", + "Your email address on %s was changed by an administrator." : "Tu dirección de correo electrónico en %s fue cambiada por un adminsitrador. ", + "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", + "Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s", + "The new email address is %s" : "La nueva dirección de correo electrónico es %s", + "Your %s account was created" : "Tu cuenta %s ha sido creada", + "Welcome aboard" : "Bienvenido a bordo", + "Welcome aboard %s" : "Bienvenido a bordo %s", + "You now have an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos.", + "Your username is: %s" : "Tu Usuario es: %s", + "Set your password" : "Establece tu contraseña", + "Go to %s" : "Ir a %s", + "Install Client" : "Instalar el cliente", + "Password confirmation is required" : "Se requiere la confirmación de la contraseña", + "Couldn't remove app." : "No fue posible eliminar la aplicación. ", + "Couldn't update app." : "No fue posible actualizar la aplicación.", + "Are you really sure you want add {domain} as trusted domain?" : "¿Realmente estás seguro que quieres agregar a {domain} como un dominio de confianza?", + "Add trusted domain" : "Agregar un dominio de confianza", + "Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración", + "Migration started …" : "La migración ha comenzado ...", + "Not saved" : "No guardado", + "Sending…" : "Enviando...", + "Email sent" : "Correo electrónico enviado", + "Official" : "Oficial", + "All" : "Todos", + "Update to %s" : "Actualizar a %s", + "No apps found for your version" : "No se encontraron aplicaciones para tu versión", + "The app will be downloaded from the app store" : "La aplicación será descargada de la tienda de aplicaciones <app store>", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las aplicaciones oficiales son desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad centralizada y se encuentran listas para ser usadas en producción. ", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Las aplicaciones aprobadas son desarrolladas por desarrolladores de confianza y han pasado una verificación de seguridad. Se les brinda mantenimiento activamente en un repositorio de código abierto y los mantenedores las consideran estables para un uso casual a normal. ", + "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Esta aplicación no cuenta con una verificación contra temas de seguridad y es nueva o se sabe que es instable. Instalala bajo tu propio riesgo. ", + "Disabling app …" : "Deshabilitando la aplicación ...", + "Error while disabling app" : "Se presentó un error mientras se deshabilitaba la aplicación", + "Disable" : "Deshabilitar", + "Enable" : "Habilitar", + "Enabling app …" : "Habilitando aplicación ...", + "Error while enabling app" : "Se presentó un error al habilitar la aplicación", + "Error: This app can not be enabled because it makes the server unstable" : "Error: Esta aplicación no puede ser habilitada porque genera inestabilidad en el servidor", + "Error: Could not disable broken app" : "Error: No fue posible deshabilitar la aplicación rota", + "Error while disabling broken app" : "Se presentó un error al deshabilitar la aplicación rota", + "No app updates available" : "No hay actualizaciones disponibles de la aplicación ", + "Updating...." : "Actualizando....", + "Error while updating app" : "Se presentó un error al actualizar la aplicación", + "Updated" : "Actualizado", + "Removing …" : "Eliminando ...", + "Error while removing app" : "Se presentó un error al eliminar la aplicación", + "Remove" : "Eliminar", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ", + "App update" : "Actualización de la aplicación", + "Approved" : "Aprobado", + "Experimental" : "Experimental", + "No apps found for {query}" : "No se encontraron aplicaciones para {query}", + "Enable all" : "Habilitar todo", + "Allow filesystem access" : "Permitir acceso al sistema de archivos", + "Disconnect" : "Desconectar", + "Revoke" : "Revocar", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome para Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "Cliente iOS", + "Android Client" : "Cliente Android", + "Sync client - {os}" : "Sync client - {os}", + "This session" : "Esta sesión", + "Copy" : "Copiar", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar. ", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Error while loading browser sessions and device tokens" : "Se presentó un error al cargar las sesiones de tu navegador y las fichas de los dispositivos.", + "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo", + "Error while deleting the token" : "Se presentó un error al borrar la ficha", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Se presentó un error. Por favor carga un certificado PEM con codificación ASCII", + "Valid until {date}" : "Válido hasta {date}", + "Delete" : "Borrar", + "Local" : "Local", + "Private" : "Privado", + "Only visible to local users" : "Visible sólo para usuarios locales", + "Only visible to you" : "Sólo visible para ti", + "Contacts" : "Contactos", + "Visible to local users and to trusted servers" : "Visible para usuarios locales y para servidores de confianza", + "Public" : "Público", + "Will be synced to a global and public address book" : "Será sincronizado a una libreta de direcciones global y pública", + "Verify" : "Verificar", + "Verifying …" : "Verificando ...", + "An error occured while changing your language. Please reload the page and try again." : "Se presentó un error al cambiar tu idioma. Por favor vuelve a cargar la página y vuelva a intentarlo. ", + "Select a profile picture" : "Selecciona una imagen de perfil", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "Groups" : "Grupos", + "Unable to delete {objName}" : "No fue posible borrar {objName}", + "Error creating group: {message}" : "Se presentó un error al crear el grupo: {message}", + "A valid group name must be provided" : "Debes proporcionar un nombre de grupo válido", + "deleted {groupName}" : "borrado {groupName}", + "undo" : "deshacer", + "{size} used" : "{size} usado", + "never" : "nunca", + "deleted {userName}" : "borrado {userName}", + "No user found for <strong>{pattern}</strong>" : "No se encontraron usuarios para <strong>{pattern}</strong>", + "Unable to add user to group {group}" : "No fue posible agregar el usuario al grupo {group}", + "Unable to remove user from group {group}" : "No fue posible eliminar el usuario del grupo {group}", + "Add group" : "Agregar grupo", + "Invalid quota value \"{val}\"" : "Valor de cuota inválido \"{val}\"", + "no group" : "sin grupos", + "Password successfully changed" : "La contraseña se cambió exitosamente", + "Changing the password will result in data loss, because data recovery is not available for this user" : "El cambiar la contraseña puede generar pérdida de datos, porque la recuperación de datos no está disponible para este usuario", + "Could not change the users email" : "No fue posible cambiar el correo electrónico del usuario. ", + "Error while changing status of {user}" : "Se presentó un error al cambiar el estatus del usuario {user}", + "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", + "Error creating user: {message}" : "Se presentó un error al crear el usuario: {message}", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "A valid email must be provided" : "Se debe proporcionar un correo electrónico válido", + "Developer documentation" : "Documentación del desarrollador", + "View in store" : "Ver en la tienda", + "Limit to groups" : "Limitar a grupos", + "by %s" : "por %s", + "%s-licensed" : "%s-licensed", + "Documentation:" : "Documentación:", + "User documentation" : "Documentación del usuario", + "Admin documentation" : "Documentación del administrador", + "Visit website" : "Visita el sitio web", + "Report a bug" : "Reporta un detalle", + "Show description …" : "Mostrar descripción ...", + "Hide description …" : "Ocultar descripción ...", + "This app has an update available." : "Esta aplicación tiene una actualización disponible.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", + "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:", + "Enable only for specific groups" : "Habilitar sólo para grupos específicos", + "SSL Root Certificates" : "Certificado SSL Raíz", + "Common Name" : "Nombre común", + "Valid until" : "Válido hasta", + "Issued By" : "Levantado Por", + "Valid until %s" : "Válido hasta %s", + "Import root certificate" : "Importar certificado raíz", + "Administrator documentation" : "Documentación del adminsitrador", + "Online documentation" : "Documentación en línea", + "Forum" : "Foro", + "Getting help" : "Obtener ayuda", + "Commercial support" : "Soporte comercial", + "None" : "Ninguno", + "Login" : "Iniciar sesión", + "Plain" : "Plano", + "NT LAN Manager" : "Administrador de LAN NT", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", + "Email server" : "Servidor de correo electrónico", + "Open documentation" : "Abrir documentación", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Es importante preparar este servidor para poder enviar correos electrónicos, como para restablecer contraseñas y notificaciones. ", + "Send mode" : "Modo de envío", + "Encryption" : "Encripción", + "From address" : "De la dirección", + "mail" : "correo", + "Authentication method" : "Método de autenticación", + "Authentication required" : "Autenticación requerida", + "Server address" : "Dirección del servidor", + "Port" : "Puerto", + "Credentials" : "Credenciales", + "SMTP Username" : "Usuario SMTP", + "SMTP Password" : "Contraseña SMTP", + "Store credentials" : "Almacenar credenciales", + "Test email settings" : "Probar las configuraciones de correo electrónico", + "Send email" : "Enviar correo electrónico", + "Server-side encryption" : "Encripción del lado del servidor", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ", + "Enable server-side encryption" : "Habilitar encripción del lado del servidor", + "Please read carefully before activating server-side encryption: " : "Por favor lee detenidamente antes de activar la encripción del lado de servidor:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Una vez que la encripción se encuentre habilitada, todos lo archivos cargados al servidor desde ese momento en tiempo, se encriptarán en el servidor. Sólo será posible deshabilitar la encripción en una fecha posterior si el modulo de encripción activo soporta esa funcionalidad y si todas las preciondiciones están satisfechas (ejem. establecer una llave de recuperación).", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "La encripción por sí sola no garantiza la seguridad del sistema. Por favor consulta la documentación para mayores informes de cómo funciona la aplicación de encripción y de los casos de uso soportados. ", + "Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ", + "This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?", + "Enable encryption" : "Habilitar encripción", + "No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado un módulo de encripción, por favor habilita un módulo de encripción en el menú de la aplicación. ", + "Select default encryption module:" : "Selecciona el modulo de encripción predeterminado:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Necesitas migrar tus llaves de encripción de la encripción anterior (ownCloud <= 8.0) a la actual. Por favor habilita el \"Módulo de encripción predeterminado\" y ejecuta el comando 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Necesitas migar tus llaves de encripción de la encripción anterior (ownCloud <=8.0) a la actual. ", + "Start migration" : "Iniciar migración", + "Security & setup warnings" : "Advertencias de seguridad y configuración", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> en relación a las notas de configuración de PHP y la configuración de PHP en tu servidorr, especialmente cuando se usa php-fpm.", + "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", + "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "El bloqueo de archivos transaccional se encuentra deshabilitado, esto puede generar temas bajo ciertas condiciones. Habilita 'filelocking.enabled' en el archivo config.php para evitar problemas. Por favor consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentatcón ↗</a> para más información.", + "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", + "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", + "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", + "If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor vuelve a verificar las <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guías de instalación↗</a>, y comprueba que no haya errores o advertenicas en la <a href=\"%s\">bitácora</a>.", + "All checks passed." : "Pasaron todas las verificaciones. ", + "Background jobs" : "Trabajos en segundo plano", + "Last job ran %s." : "El último trabajo corrió %s.", + "Last job execution ran %s. Something seems wrong." : "La última ejecución del trabajo corrió %s. Algo parece estar mal. ", + "Background job didn’t run yet!" : "¡El trabajo de segundo plano aún no ha corrido!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Para un desempeño ideal, es importante configurar los trabajos de fondo correctamente. Para instancias más grandes 'Cron' es la configuración recomendada. Por favor consulta la documentación para más información. ", + "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php está registrado en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP. ", + "Use system cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos. ", + "The cron.php needs to be executed by the system user \"%s\"." : "El cron.php necesita ser ejecutado por el usuario de sistema \"%s\".", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Version" : "Versión", + "Sharing" : "Compartiendo", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ", + "Allow apps to use the Share API" : "Permitir que las aplicaciones usen el API para Compartir", + "Allow users to share via link" : "Permitir a los usuarios compartir mediante ligas", + "Allow public uploads" : "Permitir cargas públicas", + "Always ask for a password" : "Siempre pedir una contraseña", + "Enforce password protection" : "Forzar protección de contraseñas", + "Set default expiration date" : "Establecer la fecha de expiración predeterminada", + "Expire after " : "Expirar después de", + "days" : "días", + "Enforce expiration date" : "Forzar fecha de expiración", + "Allow resharing" : "Permitir volver a compartir", + "Allow sharing with groups" : "Permitir compartir con grupos", + "Restrict users to only share with users in their groups" : "Limitar a los usuarios a sólo compartir con otros usuarios en sus grupos", + "Exclude groups from sharing" : "Evitar que los grupos compartan", + "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir elementos compartidos, pero no los podrán iniciar.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Permitir el autocompletado de usuarios en la ventana de diálogo de compartir. Si esto está deshabilitado, se deberá ingresar el correo electrónico o nombre completo. ", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar el texto de exención de responsabilidad legal en la página de carga de ligas públicas. (Sólo se muestra cuando la lista de archivos está oculta.)", + "This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la página de carga de la liga pública cuando la lista de archivos esté oculta. ", + "Tips & tricks" : "Consejos & trucos", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar a otra base de datos, usa la herramienta de la línea de comando 'occ db:convert-type', o consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a>.", + "How to do backups" : "Cómo hacer respaldos", + "Advanced monitoring" : "Monitoreo avanzado", + "Performance tuning" : "Optimización de rendimiento", + "Improving the config.php" : "Mejorando la config.php", + "Theming" : "Tematizar", + "Check the security of your Nextcloud over our security scan" : "Verifica la seguridad de tu Nextcloud con nuestro escaneo de seguridad", + "Hardening and security guidance" : "Consejos de reforzamiento y seguridad", + "Personal" : "Personal", + "Administration" : "Administración", + "You are using <strong>%s</strong> of <strong>%s</strong>" : "Estás usando <strong>%s</strong> de <strong>%s</strong>", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Estás usando <strong>%s</strong> de <strong>%s</strong> (<strong> %s %%</strong>)", + "Profile picture" : "Foto de perfil", + "Upload new" : "Cargar nuevo", + "Select from Files" : "Seleccionar desde Archivos", + "Remove image" : "Eliminar imagen", + "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", + "Picture provided by original account" : "Imagen proporcionada por la cuenta original ", + "Cancel" : "Cancelar", + "Choose as profile picture" : "Seleccionar como foto del perfil", + "Full name" : "Nombre completo", + "No display name set" : "No se ha establecido el nombre a desplegar", + "Email" : "Correo electrónico", + "Your email address" : "Tu dirección de correo electrónico", + "No email address set" : "No se ha establecido la dirección de correo electrónico", + "For password reset and notifications" : "Para restablecer contraseña y notificaciones", + "Phone number" : "Número de teléfono", + "Your phone number" : "Su número telefónico", + "Address" : "Dirección", + "Your postal address" : "Tu dirección postal", + "Website" : "Sitio web", + "It can take up to 24 hours before the account is displayed as verified." : "Puede tomar hasta 24 horas antes de que la cuenta se muestre como verificada. ", + "Link https://…" : "Liga https:// ...", + "Twitter" : "Twitter", + "Twitter handle @…" : "Cuenta de twitter @...", + "You are member of the following groups:" : "Eres miembro de los siguientes grupos:", + "Language" : "Idioma", + "Help translate" : "Ayuda a traducir", + "Password" : "Contraseña", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Change password" : "Cambiar contraseña", + "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ", + "Device" : "Dispositivo", + "Last activity" : "Última actividad", + "App name" : "Nombre de la aplicación", + "Create new app password" : "Crear una nueva contraseña de aplicación", + "Use the credentials below to configure your app or device." : "Usa las siguientes credenciales para configurar tu aplicación o dispositivo. ", + "For security reasons this password will only be shown once." : "Por razones de seguridad esta contraseña sólo se mostrará una vez. ", + "Username" : "Usuario", + "Done" : "Terminado", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.", + "Follow us on Google+" : "Síguenos en Google+", + "Like our Facebook page" : "Da un Like a nuestra página de Facebook", + "Follow us on Twitter" : "Síguenos en Twitter", + "Check out our blog" : "Visita nuestro blog", + "Subscribe to our newsletter" : "Suscribete a nuestro boletín", + "Settings" : "Configuraciones ", + "Show storage location" : "Mostrar la ubicación del almacenamiento", + "Show user backend" : "Mostrar backend del usuario", + "Show last login" : "Mostrar último inicio de sesión", + "Show email address" : "Mostrar dirección de correo electrónico", + "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Cuando la contraseña de un usuario nuevo se deja en blanco, se envía un correo electrónico de activación con una liga para establecerla. ", + "E-Mail" : "Correo electrónico", + "Create" : "Crear", + "Admin Recovery Password" : "Recuperación de la contraseña del administrador", + "Enter the recovery password in order to recover the users files during password change" : "Ingresa la contraseña de recuperación con la finalidad de recuperar los archivos de los usuarios al cambiar la contraseña.", + "Everyone" : "Todos", + "Admins" : "Administradores", + "Disabled" : "Deshabilitado", + "Default quota" : "Cuota predeterminada", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indica la cuota de almacenamiento (ejem: \"512 MB\" ó \"12 GB\")", + "Unlimited" : "Ilimitado", + "Other" : "Otro", + "Group admin for" : "Administrador del grupo para", + "Quota" : "Cuota", + "Storage location" : "Úbicación del almacenamiento", + "User backend" : "Backend del usuario", + "Last login" : "Último inicio de sesión", + "change full name" : "cambiar el nombre completo", + "set new password" : "establecer nueva contraseña", + "change email address" : "cambiar la dirección de correo electrónico", + "Default" : "Predeterminado", + "Enabled" : "Habilitado", + "Not enabled" : "No habilitado", + "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor proporciona una contraseña de recuperación de administrador, de lo contrario se perderán todos los datos de usuario", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada exitosamente.", + "test email settings" : "probar las configuraciones del correo electrónico", + "Invalid request" : "Solicitud inválida", + "Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador", + "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s", + "Unable to remove user from group %s" : "No fue posible eliminar el usuario del grupo %s", + "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Tienes %n actualizaciones de la aplicación pendientes"], + "Uninstalling ...." : "Desinstalando ...", + "Error while uninstalling app" : "Se presentó un error al desinstalar la aplicación", + "Uninstall" : "Desinstalar", + "__language_name__" : "Español (México)", + "Personal info" : "Información personal", + "Sessions" : "Sesiones", + "App passwords" : "Contraseñas de aplicación", + "Sync clients" : "Sincronizar clientes", + "This is used for sending out notifications." : "Esto se usa para enviar notificaciones", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Al parecer php no está correctamente configurado para consultar las variables de ambiente. La prueba con getenv(\"PATH\") solo está regresando una respuesta vacía. ", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Favor de consultar la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para las notas de configuración de php en tu servidor, específicamente al usar php-fpm. ", + "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s mas reciente. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", + "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Te sugerimos ámpliamente instalar en tu sistema los paquetes requeridos para soportar alguno de los sigueintes locales: %s.", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalacion no fue hecha en la raíz del dominio y usa el cron del sistema, pueden presentarse temas con la generación de URLs. Para evitar estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere : \"%s\")", + "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "No fue posible ejecutar la tarea de cron con CLI. Se presentaron los siguientes errores técnicos:", + "Cron" : "Cron", + "Last cron job execution: %s." : "Última ejecución de tareas de cron: %s.", + "Last cron job execution: %s. Something seems wrong." : "Última ejecución de tareas de cron: %s. Algo parece estar mal. ", + "Cron was not executed yet!" : "¡Aún no han sido ejecutado el cron!", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", + "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio de cron del sistema para llamar el archivo cron.php cada 15 minutos.", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión posix de PHP. Por favor consulta la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Permitir auto-completar el nombre de usuario en la ventana de diálogo. Si esta opción está deshabilitada, el nombre de usuario completo debe ser ingresado.", + "Uninstall app" : "Desinstalar la aplicación", + "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "Hola,<br><br> sólo queremos informarte que ahora tienes una cuenta %s.<br><br> Tu usuario es: <strong>%s</strong> <br>Ingresa a ella: <strong><a href=\"%s\">%s</a></strong><br><br>", + "Cheers!" : "¡Saludos!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola,\n\nsólo queremos informarte que ahora tienes una cuenta %s.\n\nTu usuario es: %s\n\nIngresa a ella: %s\n", + "For password recovery and notifications" : "Para recuperación de contraseña y notificaciones", + "Your website" : "Tu sitio web", + "Your Twitter handle" : "Tu cuenta de Twitter", + "Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos", + "Desktop client" : "Cliente de escritorio", + "Android app" : "Aplicación android", + "iOS app" : "Aplicación iOS", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "¡Si deseas apoyar al proyecto {contributeopen} únete al desarrollo{linkclose} o {contributeopen} pasa la voz {linkclose}!", + "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de Ejecución Inicial", + "Passcodes that give an app or device permissions to access your account." : "Los códigos de seguridad que le dan permisos a la aplicación o dispositivo para accesar a tu cuenta. ", + "Name" : "Nombre", + "Follow us on Google Plus!" : "¡Sígueos en Google Plus!", + "Like our facebook page!" : "¡Dale un me gusta a nuestra página de facebook!", + "Subscribe to our twitter channel!" : "¡Suscríbete a nuestro canal de twitter!", + "Subscribe to our news feed!" : "¡Suscríbete a nuestra fuente de noticias!", + "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", + "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", + "You have now an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos. ", + "Verifying" : "Verificando", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de su instancia que todo esté configurado correctamente. Para ayudarlo con esto, estamos haciendo algunas verficaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "A continuación se presenta un listado de las sesiones, dispositivos y eventos que se han presentado en tu cuenta. ", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aquí puedes generar contraseñas individuales para las aplicaciones para que no tengas que dar tu contraseña. También puedes revocalras individualmente. ", + "Follow us on Google+!" : "¡Síguenos en Google+!", + "Follow us on Twitter!" : "¡Síguenos en Twitter!", + "Check out our blog!" : "¡Visita nuestro blog!" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/es_DO.json b/settings/l10n/es_DO.json new file mode 100644 index 00000000000..213f6bb1da2 --- /dev/null +++ b/settings/l10n/es_DO.json @@ -0,0 +1,455 @@ +{ "translations": { + "{actor} changed your password" : "{actor} ha cambiado tu contraseña", + "You changed your password" : "Cambiaste tu contraseña", + "Your password was reset by an administrator" : "Tu contraseña ha sido restablecida por un adminsitrador", + "{actor} changed your email address" : "{actor} ha cambiado tu dirección de correo electrónico", + "You changed your email address" : "Cambiaste tu dirección de correo electrónico", + "Your email address was changed by an administrator" : "Tu dirección de correo electrónico ha sido cambiada por un administrador", + "Security" : "Seguridad", + "You successfully logged in using two-factor authentication (%1$s)" : "Has iniciado sesión exitosamente usando autenticación de dos-factores (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "Un intento de autenticación usando autenticación de dos-factores ha fallado (%1$s)", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Tu <strong>contraseña</strong> o <strong>correo electrónico</strong> ha sido modificado", + "Your apps" : "Tus aplicaciones", + "Updates" : "Actualizaciones", + "Enabled apps" : "Aplicaciones habilitadas", + "Disabled apps" : "Aplicaciones deshabilitadas", + "App bundles" : "Paquetes de aplicación", + "Wrong password" : "Contraseña incorrecta", + "Saved" : "Guardado", + "No user supplied" : "No se proporcionó usuario alguno", + "Unable to change password" : "No fue posible cambiar la contraseña", + "Authentication error" : "Error de autenticación", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor proporciona una contraseña de recuperación de administrador; de lo contrario toda la información del usuario se perderá. ", + "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor verificala e inténtalo de nuevo.", + "Backend doesn't support password change, but the user's encryption key was updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada.", + "installing and updating apps via the app store or Federated Cloud Sharing" : "Instalando y actualizando aplicaciones por la tienda de aplicaciones o Compartido la Nube Federada", + "Federated Cloud Sharing" : "Compartir en la Nube Federada", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión anticuada (%s) de %s. Por favor actualiza tu sistema operativo o funciones tales como %s no funcionarán de forma confiable.", + "A problem occurred, please check your log files (Error: %s)" : "Se presentó un problema, por favor verifica tus archivos de bitácoras (Error: %s)", + "Migration Completed" : "Migración completada", + "Group already exists." : "El grupo ya existe.", + "Unable to add group." : "No fue posible agregar el grupo.", + "Unable to delete group." : "No fue posible borrar el grupo.", + "Invalid SMTP password." : "Constraseña SMTP inválida. ", + "Email setting test" : "Prueba de ajustes de correo", + "Well done, %s!" : "¡Bien hecho, %s!", + "If you received this email, the email configuration seems to be correct." : "Si has recibido este correo electrónico, la configuración del correo electrónico parece estar correcta. ", + "Email could not be sent. Check your mail server log" : "No fue posible enviar el correo electrónico. Por favor verfica la bitácora de tu servidor de correo", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Se presentó un problema al enviar el correo electrónico. Por favor revisa tus configuraciones (Error: %s)", + "You need to set your user email before being able to send test emails." : "Requieres establecer tu correo electrónico antes de poder enviar correos electrónicos de prueba. ", + "Invalid mail address" : "Dirección de correo inválida", + "No valid group selected" : "No se ha seleccionado un grupo válido", + "A user with that name already exists." : "Un usuario con ese nombre ya existe. ", + "To send a password link to the user an email address is required." : "Para enviar la liga a una contraseña al usuario, se requiere de una dirección de correo electrónico.", + "Unable to create user." : "No fue posible crear el usuario. ", + "Unable to delete user." : "No fue posible eliminar el usuario.", + "Error while enabling user." : "Se presentó un error al habilitar el usuario. ", + "Error while disabling user." : "Se presentó un error al deshabilitar el usuario.", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Para poder verificar tu cuenta de Twitter, publica el siguiente tweet en Twitter (por favor asegúrarte de publicar sin ninguna línea en blanco):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Para poder verificar tu sitio Web, agrega el siguiente contendio a tu web-root en '.well-known/CloudIdVerificationCode.txt' (por favor asegurate de que el texto completo este en una sóla línea):", + "Settings saved" : "Se han guardado las configuraciones ", + "Unable to change full name" : "No fue posible cambiar el nombre completo", + "Unable to change email address" : "No fue posible cambiar la dirección de correo electrónico", + "Your full name has been changed." : "Tu nombre completo ha sido cambiado.", + "Forbidden" : "Prohibido", + "Invalid user" : "Usuario inválido", + "Unable to change mail address" : "No fue posible cambiar la dirección de correo", + "Email saved" : "Correo electrónico guardado", + "%1$s changed your password on %2$s." : "%1$s cambió tu contraseña el %2$s.", + "Your password on %s was changed." : "Tu contraseña de %s fue cambiada. ", + "Your password on %s was reset by an administrator." : "Tu contraseña de %s fue restablecida por un administrador.", + "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", + "Password changed for %s" : "La contraseña fue cambiada para %s", + "If you did not request this, please contact an administrator." : "Si no lo solicitaste, por favor contacta a un administrador. ", + "%1$s changed your email address on %2$s." : "%1$s cambió tu dirección de correo electrónico el %2$s.", + "Your email address on %s was changed." : "Tu dirección de correo electrónico en %s fue cambiada. ", + "Your email address on %s was changed by an administrator." : "Tu dirección de correo electrónico en %s fue cambiada por un adminsitrador. ", + "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", + "Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s", + "The new email address is %s" : "La nueva dirección de correo electrónico es %s", + "Your %s account was created" : "Tu cuenta %s ha sido creada", + "Welcome aboard" : "Bienvenido a bordo", + "Welcome aboard %s" : "Bienvenido a bordo %s", + "You now have an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos.", + "Your username is: %s" : "Tu Usuario es: %s", + "Set your password" : "Establece tu contraseña", + "Go to %s" : "Ir a %s", + "Install Client" : "Instalar el cliente", + "Password confirmation is required" : "Se requiere la confirmación de la contraseña", + "Couldn't remove app." : "No fue posible eliminar la aplicación. ", + "Couldn't update app." : "No fue posible actualizar la aplicación.", + "Are you really sure you want add {domain} as trusted domain?" : "¿Realmente estás seguro que quieres agregar a {domain} como un dominio de confianza?", + "Add trusted domain" : "Agregar un dominio de confianza", + "Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración", + "Migration started …" : "La migración ha comenzado ...", + "Not saved" : "No guardado", + "Sending…" : "Enviando...", + "Email sent" : "Correo electrónico enviado", + "Official" : "Oficial", + "All" : "Todos", + "Update to %s" : "Actualizar a %s", + "No apps found for your version" : "No se encontraron aplicaciones para tu versión", + "The app will be downloaded from the app store" : "La aplicación será descargada de la tienda de aplicaciones <app store>", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las aplicaciones oficiales son desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad centralizada y se encuentran listas para ser usadas en producción. ", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Las aplicaciones aprobadas son desarrolladas por desarrolladores de confianza y han pasado una verificación de seguridad. Se les brinda mantenimiento activamente en un repositorio de código abierto y los mantenedores las consideran estables para un uso casual a normal. ", + "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Esta aplicación no cuenta con una verificación contra temas de seguridad y es nueva o se sabe que es instable. Instalala bajo tu propio riesgo. ", + "Disabling app …" : "Deshabilitando la aplicación ...", + "Error while disabling app" : "Se presentó un error mientras se deshabilitaba la aplicación", + "Disable" : "Deshabilitar", + "Enable" : "Habilitar", + "Enabling app …" : "Habilitando aplicación ...", + "Error while enabling app" : "Se presentó un error al habilitar la aplicación", + "Error: This app can not be enabled because it makes the server unstable" : "Error: Esta aplicación no puede ser habilitada porque genera inestabilidad en el servidor", + "Error: Could not disable broken app" : "Error: No fue posible deshabilitar la aplicación rota", + "Error while disabling broken app" : "Se presentó un error al deshabilitar la aplicación rota", + "No app updates available" : "No hay actualizaciones disponibles de la aplicación ", + "Updating...." : "Actualizando....", + "Error while updating app" : "Se presentó un error al actualizar la aplicación", + "Updated" : "Actualizado", + "Removing …" : "Eliminando ...", + "Error while removing app" : "Se presentó un error al eliminar la aplicación", + "Remove" : "Eliminar", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ", + "App update" : "Actualización de la aplicación", + "Approved" : "Aprobado", + "Experimental" : "Experimental", + "No apps found for {query}" : "No se encontraron aplicaciones para {query}", + "Enable all" : "Habilitar todo", + "Allow filesystem access" : "Permitir acceso al sistema de archivos", + "Disconnect" : "Desconectar", + "Revoke" : "Revocar", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome para Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "Cliente iOS", + "Android Client" : "Cliente Android", + "Sync client - {os}" : "Sync client - {os}", + "This session" : "Esta sesión", + "Copy" : "Copiar", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar. ", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Error while loading browser sessions and device tokens" : "Se presentó un error al cargar las sesiones de tu navegador y las fichas de los dispositivos.", + "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo", + "Error while deleting the token" : "Se presentó un error al borrar la ficha", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Se presentó un error. Por favor carga un certificado PEM con codificación ASCII", + "Valid until {date}" : "Válido hasta {date}", + "Delete" : "Borrar", + "Local" : "Local", + "Private" : "Privado", + "Only visible to local users" : "Visible sólo para usuarios locales", + "Only visible to you" : "Sólo visible para ti", + "Contacts" : "Contactos", + "Visible to local users and to trusted servers" : "Visible para usuarios locales y para servidores de confianza", + "Public" : "Público", + "Will be synced to a global and public address book" : "Será sincronizado a una libreta de direcciones global y pública", + "Verify" : "Verificar", + "Verifying …" : "Verificando ...", + "An error occured while changing your language. Please reload the page and try again." : "Se presentó un error al cambiar tu idioma. Por favor vuelve a cargar la página y vuelva a intentarlo. ", + "Select a profile picture" : "Selecciona una imagen de perfil", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "Groups" : "Grupos", + "Unable to delete {objName}" : "No fue posible borrar {objName}", + "Error creating group: {message}" : "Se presentó un error al crear el grupo: {message}", + "A valid group name must be provided" : "Debes proporcionar un nombre de grupo válido", + "deleted {groupName}" : "borrado {groupName}", + "undo" : "deshacer", + "{size} used" : "{size} usado", + "never" : "nunca", + "deleted {userName}" : "borrado {userName}", + "No user found for <strong>{pattern}</strong>" : "No se encontraron usuarios para <strong>{pattern}</strong>", + "Unable to add user to group {group}" : "No fue posible agregar el usuario al grupo {group}", + "Unable to remove user from group {group}" : "No fue posible eliminar el usuario del grupo {group}", + "Add group" : "Agregar grupo", + "Invalid quota value \"{val}\"" : "Valor de cuota inválido \"{val}\"", + "no group" : "sin grupos", + "Password successfully changed" : "La contraseña se cambió exitosamente", + "Changing the password will result in data loss, because data recovery is not available for this user" : "El cambiar la contraseña puede generar pérdida de datos, porque la recuperación de datos no está disponible para este usuario", + "Could not change the users email" : "No fue posible cambiar el correo electrónico del usuario. ", + "Error while changing status of {user}" : "Se presentó un error al cambiar el estatus del usuario {user}", + "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", + "Error creating user: {message}" : "Se presentó un error al crear el usuario: {message}", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "A valid email must be provided" : "Se debe proporcionar un correo electrónico válido", + "Developer documentation" : "Documentación del desarrollador", + "View in store" : "Ver en la tienda", + "Limit to groups" : "Limitar a grupos", + "by %s" : "por %s", + "%s-licensed" : "%s-licensed", + "Documentation:" : "Documentación:", + "User documentation" : "Documentación del usuario", + "Admin documentation" : "Documentación del administrador", + "Visit website" : "Visita el sitio web", + "Report a bug" : "Reporta un detalle", + "Show description …" : "Mostrar descripción ...", + "Hide description …" : "Ocultar descripción ...", + "This app has an update available." : "Esta aplicación tiene una actualización disponible.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", + "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:", + "Enable only for specific groups" : "Habilitar sólo para grupos específicos", + "SSL Root Certificates" : "Certificado SSL Raíz", + "Common Name" : "Nombre común", + "Valid until" : "Válido hasta", + "Issued By" : "Levantado Por", + "Valid until %s" : "Válido hasta %s", + "Import root certificate" : "Importar certificado raíz", + "Administrator documentation" : "Documentación del adminsitrador", + "Online documentation" : "Documentación en línea", + "Forum" : "Foro", + "Getting help" : "Obtener ayuda", + "Commercial support" : "Soporte comercial", + "None" : "Ninguno", + "Login" : "Iniciar sesión", + "Plain" : "Plano", + "NT LAN Manager" : "Administrador de LAN NT", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", + "Email server" : "Servidor de correo electrónico", + "Open documentation" : "Abrir documentación", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Es importante preparar este servidor para poder enviar correos electrónicos, como para restablecer contraseñas y notificaciones. ", + "Send mode" : "Modo de envío", + "Encryption" : "Encripción", + "From address" : "De la dirección", + "mail" : "correo", + "Authentication method" : "Método de autenticación", + "Authentication required" : "Autenticación requerida", + "Server address" : "Dirección del servidor", + "Port" : "Puerto", + "Credentials" : "Credenciales", + "SMTP Username" : "Usuario SMTP", + "SMTP Password" : "Contraseña SMTP", + "Store credentials" : "Almacenar credenciales", + "Test email settings" : "Probar las configuraciones de correo electrónico", + "Send email" : "Enviar correo electrónico", + "Server-side encryption" : "Encripción del lado del servidor", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ", + "Enable server-side encryption" : "Habilitar encripción del lado del servidor", + "Please read carefully before activating server-side encryption: " : "Por favor lee detenidamente antes de activar la encripción del lado de servidor:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Una vez que la encripción se encuentre habilitada, todos lo archivos cargados al servidor desde ese momento en tiempo, se encriptarán en el servidor. Sólo será posible deshabilitar la encripción en una fecha posterior si el modulo de encripción activo soporta esa funcionalidad y si todas las preciondiciones están satisfechas (ejem. establecer una llave de recuperación).", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "La encripción por sí sola no garantiza la seguridad del sistema. Por favor consulta la documentación para mayores informes de cómo funciona la aplicación de encripción y de los casos de uso soportados. ", + "Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ", + "This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?", + "Enable encryption" : "Habilitar encripción", + "No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado un módulo de encripción, por favor habilita un módulo de encripción en el menú de la aplicación. ", + "Select default encryption module:" : "Selecciona el modulo de encripción predeterminado:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Necesitas migrar tus llaves de encripción de la encripción anterior (ownCloud <= 8.0) a la actual. Por favor habilita el \"Módulo de encripción predeterminado\" y ejecuta el comando 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Necesitas migar tus llaves de encripción de la encripción anterior (ownCloud <=8.0) a la actual. ", + "Start migration" : "Iniciar migración", + "Security & setup warnings" : "Advertencias de seguridad y configuración", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> en relación a las notas de configuración de PHP y la configuración de PHP en tu servidorr, especialmente cuando se usa php-fpm.", + "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", + "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "El bloqueo de archivos transaccional se encuentra deshabilitado, esto puede generar temas bajo ciertas condiciones. Habilita 'filelocking.enabled' en el archivo config.php para evitar problemas. Por favor consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentatcón ↗</a> para más información.", + "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", + "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", + "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", + "If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor vuelve a verificar las <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guías de instalación↗</a>, y comprueba que no haya errores o advertenicas en la <a href=\"%s\">bitácora</a>.", + "All checks passed." : "Pasaron todas las verificaciones. ", + "Background jobs" : "Trabajos en segundo plano", + "Last job ran %s." : "El último trabajo corrió %s.", + "Last job execution ran %s. Something seems wrong." : "La última ejecución del trabajo corrió %s. Algo parece estar mal. ", + "Background job didn’t run yet!" : "¡El trabajo de segundo plano aún no ha corrido!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Para un desempeño ideal, es importante configurar los trabajos de fondo correctamente. Para instancias más grandes 'Cron' es la configuración recomendada. Por favor consulta la documentación para más información. ", + "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php está registrado en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP. ", + "Use system cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos. ", + "The cron.php needs to be executed by the system user \"%s\"." : "El cron.php necesita ser ejecutado por el usuario de sistema \"%s\".", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Version" : "Versión", + "Sharing" : "Compartiendo", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ", + "Allow apps to use the Share API" : "Permitir que las aplicaciones usen el API para Compartir", + "Allow users to share via link" : "Permitir a los usuarios compartir mediante ligas", + "Allow public uploads" : "Permitir cargas públicas", + "Always ask for a password" : "Siempre pedir una contraseña", + "Enforce password protection" : "Forzar protección de contraseñas", + "Set default expiration date" : "Establecer la fecha de expiración predeterminada", + "Expire after " : "Expirar después de", + "days" : "días", + "Enforce expiration date" : "Forzar fecha de expiración", + "Allow resharing" : "Permitir volver a compartir", + "Allow sharing with groups" : "Permitir compartir con grupos", + "Restrict users to only share with users in their groups" : "Limitar a los usuarios a sólo compartir con otros usuarios en sus grupos", + "Exclude groups from sharing" : "Evitar que los grupos compartan", + "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir elementos compartidos, pero no los podrán iniciar.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Permitir el autocompletado de usuarios en la ventana de diálogo de compartir. Si esto está deshabilitado, se deberá ingresar el correo electrónico o nombre completo. ", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar el texto de exención de responsabilidad legal en la página de carga de ligas públicas. (Sólo se muestra cuando la lista de archivos está oculta.)", + "This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la página de carga de la liga pública cuando la lista de archivos esté oculta. ", + "Tips & tricks" : "Consejos & trucos", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar a otra base de datos, usa la herramienta de la línea de comando 'occ db:convert-type', o consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a>.", + "How to do backups" : "Cómo hacer respaldos", + "Advanced monitoring" : "Monitoreo avanzado", + "Performance tuning" : "Optimización de rendimiento", + "Improving the config.php" : "Mejorando la config.php", + "Theming" : "Tematizar", + "Check the security of your Nextcloud over our security scan" : "Verifica la seguridad de tu Nextcloud con nuestro escaneo de seguridad", + "Hardening and security guidance" : "Consejos de reforzamiento y seguridad", + "Personal" : "Personal", + "Administration" : "Administración", + "You are using <strong>%s</strong> of <strong>%s</strong>" : "Estás usando <strong>%s</strong> de <strong>%s</strong>", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Estás usando <strong>%s</strong> de <strong>%s</strong> (<strong> %s %%</strong>)", + "Profile picture" : "Foto de perfil", + "Upload new" : "Cargar nuevo", + "Select from Files" : "Seleccionar desde Archivos", + "Remove image" : "Eliminar imagen", + "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", + "Picture provided by original account" : "Imagen proporcionada por la cuenta original ", + "Cancel" : "Cancelar", + "Choose as profile picture" : "Seleccionar como foto del perfil", + "Full name" : "Nombre completo", + "No display name set" : "No se ha establecido el nombre a desplegar", + "Email" : "Correo electrónico", + "Your email address" : "Tu dirección de correo electrónico", + "No email address set" : "No se ha establecido la dirección de correo electrónico", + "For password reset and notifications" : "Para restablecer contraseña y notificaciones", + "Phone number" : "Número de teléfono", + "Your phone number" : "Su número telefónico", + "Address" : "Dirección", + "Your postal address" : "Tu dirección postal", + "Website" : "Sitio web", + "It can take up to 24 hours before the account is displayed as verified." : "Puede tomar hasta 24 horas antes de que la cuenta se muestre como verificada. ", + "Link https://…" : "Liga https:// ...", + "Twitter" : "Twitter", + "Twitter handle @…" : "Cuenta de twitter @...", + "You are member of the following groups:" : "Eres miembro de los siguientes grupos:", + "Language" : "Idioma", + "Help translate" : "Ayuda a traducir", + "Password" : "Contraseña", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Change password" : "Cambiar contraseña", + "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ", + "Device" : "Dispositivo", + "Last activity" : "Última actividad", + "App name" : "Nombre de la aplicación", + "Create new app password" : "Crear una nueva contraseña de aplicación", + "Use the credentials below to configure your app or device." : "Usa las siguientes credenciales para configurar tu aplicación o dispositivo. ", + "For security reasons this password will only be shown once." : "Por razones de seguridad esta contraseña sólo se mostrará una vez. ", + "Username" : "Usuario", + "Done" : "Terminado", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.", + "Follow us on Google+" : "Síguenos en Google+", + "Like our Facebook page" : "Da un Like a nuestra página de Facebook", + "Follow us on Twitter" : "Síguenos en Twitter", + "Check out our blog" : "Visita nuestro blog", + "Subscribe to our newsletter" : "Suscribete a nuestro boletín", + "Settings" : "Configuraciones ", + "Show storage location" : "Mostrar la ubicación del almacenamiento", + "Show user backend" : "Mostrar backend del usuario", + "Show last login" : "Mostrar último inicio de sesión", + "Show email address" : "Mostrar dirección de correo electrónico", + "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Cuando la contraseña de un usuario nuevo se deja en blanco, se envía un correo electrónico de activación con una liga para establecerla. ", + "E-Mail" : "Correo electrónico", + "Create" : "Crear", + "Admin Recovery Password" : "Recuperación de la contraseña del administrador", + "Enter the recovery password in order to recover the users files during password change" : "Ingresa la contraseña de recuperación con la finalidad de recuperar los archivos de los usuarios al cambiar la contraseña.", + "Everyone" : "Todos", + "Admins" : "Administradores", + "Disabled" : "Deshabilitado", + "Default quota" : "Cuota predeterminada", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indica la cuota de almacenamiento (ejem: \"512 MB\" ó \"12 GB\")", + "Unlimited" : "Ilimitado", + "Other" : "Otro", + "Group admin for" : "Administrador del grupo para", + "Quota" : "Cuota", + "Storage location" : "Úbicación del almacenamiento", + "User backend" : "Backend del usuario", + "Last login" : "Último inicio de sesión", + "change full name" : "cambiar el nombre completo", + "set new password" : "establecer nueva contraseña", + "change email address" : "cambiar la dirección de correo electrónico", + "Default" : "Predeterminado", + "Enabled" : "Habilitado", + "Not enabled" : "No habilitado", + "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor proporciona una contraseña de recuperación de administrador, de lo contrario se perderán todos los datos de usuario", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada exitosamente.", + "test email settings" : "probar las configuraciones del correo electrónico", + "Invalid request" : "Solicitud inválida", + "Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador", + "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s", + "Unable to remove user from group %s" : "No fue posible eliminar el usuario del grupo %s", + "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Tienes %n actualizaciones de la aplicación pendientes"], + "Uninstalling ...." : "Desinstalando ...", + "Error while uninstalling app" : "Se presentó un error al desinstalar la aplicación", + "Uninstall" : "Desinstalar", + "__language_name__" : "Español (México)", + "Personal info" : "Información personal", + "Sessions" : "Sesiones", + "App passwords" : "Contraseñas de aplicación", + "Sync clients" : "Sincronizar clientes", + "This is used for sending out notifications." : "Esto se usa para enviar notificaciones", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Al parecer php no está correctamente configurado para consultar las variables de ambiente. La prueba con getenv(\"PATH\") solo está regresando una respuesta vacía. ", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Favor de consultar la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para las notas de configuración de php en tu servidor, específicamente al usar php-fpm. ", + "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s mas reciente. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", + "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Te sugerimos ámpliamente instalar en tu sistema los paquetes requeridos para soportar alguno de los sigueintes locales: %s.", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalacion no fue hecha en la raíz del dominio y usa el cron del sistema, pueden presentarse temas con la generación de URLs. Para evitar estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere : \"%s\")", + "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "No fue posible ejecutar la tarea de cron con CLI. Se presentaron los siguientes errores técnicos:", + "Cron" : "Cron", + "Last cron job execution: %s." : "Última ejecución de tareas de cron: %s.", + "Last cron job execution: %s. Something seems wrong." : "Última ejecución de tareas de cron: %s. Algo parece estar mal. ", + "Cron was not executed yet!" : "¡Aún no han sido ejecutado el cron!", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", + "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio de cron del sistema para llamar el archivo cron.php cada 15 minutos.", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión posix de PHP. Por favor consulta la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Permitir auto-completar el nombre de usuario en la ventana de diálogo. Si esta opción está deshabilitada, el nombre de usuario completo debe ser ingresado.", + "Uninstall app" : "Desinstalar la aplicación", + "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "Hola,<br><br> sólo queremos informarte que ahora tienes una cuenta %s.<br><br> Tu usuario es: <strong>%s</strong> <br>Ingresa a ella: <strong><a href=\"%s\">%s</a></strong><br><br>", + "Cheers!" : "¡Saludos!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola,\n\nsólo queremos informarte que ahora tienes una cuenta %s.\n\nTu usuario es: %s\n\nIngresa a ella: %s\n", + "For password recovery and notifications" : "Para recuperación de contraseña y notificaciones", + "Your website" : "Tu sitio web", + "Your Twitter handle" : "Tu cuenta de Twitter", + "Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos", + "Desktop client" : "Cliente de escritorio", + "Android app" : "Aplicación android", + "iOS app" : "Aplicación iOS", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "¡Si deseas apoyar al proyecto {contributeopen} únete al desarrollo{linkclose} o {contributeopen} pasa la voz {linkclose}!", + "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de Ejecución Inicial", + "Passcodes that give an app or device permissions to access your account." : "Los códigos de seguridad que le dan permisos a la aplicación o dispositivo para accesar a tu cuenta. ", + "Name" : "Nombre", + "Follow us on Google Plus!" : "¡Sígueos en Google Plus!", + "Like our facebook page!" : "¡Dale un me gusta a nuestra página de facebook!", + "Subscribe to our twitter channel!" : "¡Suscríbete a nuestro canal de twitter!", + "Subscribe to our news feed!" : "¡Suscríbete a nuestra fuente de noticias!", + "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", + "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", + "You have now an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos. ", + "Verifying" : "Verificando", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de su instancia que todo esté configurado correctamente. Para ayudarlo con esto, estamos haciendo algunas verficaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "A continuación se presenta un listado de las sesiones, dispositivos y eventos que se han presentado en tu cuenta. ", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aquí puedes generar contraseñas individuales para las aplicaciones para que no tengas que dar tu contraseña. También puedes revocalras individualmente. ", + "Follow us on Google+!" : "¡Síguenos en Google+!", + "Follow us on Twitter!" : "¡Síguenos en Twitter!", + "Check out our blog!" : "¡Visita nuestro blog!" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/settings/l10n/es_EC.js b/settings/l10n/es_EC.js new file mode 100644 index 00000000000..64396e1cfc8 --- /dev/null +++ b/settings/l10n/es_EC.js @@ -0,0 +1,457 @@ +OC.L10N.register( + "settings", + { + "{actor} changed your password" : "{actor} ha cambiado tu contraseña", + "You changed your password" : "Cambiaste tu contraseña", + "Your password was reset by an administrator" : "Tu contraseña ha sido restablecida por un adminsitrador", + "{actor} changed your email address" : "{actor} ha cambiado tu dirección de correo electrónico", + "You changed your email address" : "Cambiaste tu dirección de correo electrónico", + "Your email address was changed by an administrator" : "Tu dirección de correo electrónico ha sido cambiada por un administrador", + "Security" : "Seguridad", + "You successfully logged in using two-factor authentication (%1$s)" : "Has iniciado sesión exitosamente usando autenticación de dos-factores (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "Un intento de autenticación usando autenticación de dos-factores ha fallado (%1$s)", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Tu <strong>contraseña</strong> o <strong>correo electrónico</strong> ha sido modificado", + "Your apps" : "Tus aplicaciones", + "Updates" : "Actualizaciones", + "Enabled apps" : "Aplicaciones habilitadas", + "Disabled apps" : "Aplicaciones deshabilitadas", + "App bundles" : "Paquetes de aplicación", + "Wrong password" : "Contraseña incorrecta", + "Saved" : "Guardado", + "No user supplied" : "No se proporcionó usuario alguno", + "Unable to change password" : "No fue posible cambiar la contraseña", + "Authentication error" : "Error de autenticación", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor proporciona una contraseña de recuperación de administrador; de lo contrario toda la información del usuario se perderá. ", + "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor verificala e inténtalo de nuevo.", + "Backend doesn't support password change, but the user's encryption key was updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada.", + "installing and updating apps via the app store or Federated Cloud Sharing" : "Instalando y actualizando aplicaciones por la tienda de aplicaciones o Compartido la Nube Federada", + "Federated Cloud Sharing" : "Compartir en la Nube Federada", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión anticuada (%s) de %s. Por favor actualiza tu sistema operativo o funciones tales como %s no funcionarán de forma confiable.", + "A problem occurred, please check your log files (Error: %s)" : "Se presentó un problema, por favor verifica tus archivos de bitácoras (Error: %s)", + "Migration Completed" : "Migración completada", + "Group already exists." : "El grupo ya existe.", + "Unable to add group." : "No fue posible agregar el grupo.", + "Unable to delete group." : "No fue posible borrar el grupo.", + "Invalid SMTP password." : "Constraseña SMTP inválida. ", + "Email setting test" : "Prueba de ajustes de correo", + "Well done, %s!" : "¡Bien hecho, %s!", + "If you received this email, the email configuration seems to be correct." : "Si has recibido este correo electrónico, la configuración del correo electrónico parece estar correcta. ", + "Email could not be sent. Check your mail server log" : "No fue posible enviar el correo electrónico. Por favor verfica la bitácora de tu servidor de correo", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Se presentó un problema al enviar el correo electrónico. Por favor revisa tus configuraciones (Error: %s)", + "You need to set your user email before being able to send test emails." : "Requieres establecer tu correo electrónico antes de poder enviar correos electrónicos de prueba. ", + "Invalid mail address" : "Dirección de correo inválida", + "No valid group selected" : "No se ha seleccionado un grupo válido", + "A user with that name already exists." : "Un usuario con ese nombre ya existe. ", + "To send a password link to the user an email address is required." : "Para enviar la liga a una contraseña al usuario, se requiere de una dirección de correo electrónico.", + "Unable to create user." : "No fue posible crear el usuario. ", + "Unable to delete user." : "No fue posible eliminar el usuario.", + "Error while enabling user." : "Se presentó un error al habilitar el usuario. ", + "Error while disabling user." : "Se presentó un error al deshabilitar el usuario.", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Para poder verificar tu cuenta de Twitter, publica el siguiente tweet en Twitter (por favor asegúrarte de publicar sin ninguna línea en blanco):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Para poder verificar tu sitio Web, agrega el siguiente contendio a tu web-root en '.well-known/CloudIdVerificationCode.txt' (por favor asegurate de que el texto completo este en una sóla línea):", + "Settings saved" : "Se han guardado las configuraciones ", + "Unable to change full name" : "No fue posible cambiar el nombre completo", + "Unable to change email address" : "No fue posible cambiar la dirección de correo electrónico", + "Your full name has been changed." : "Tu nombre completo ha sido cambiado.", + "Forbidden" : "Prohibido", + "Invalid user" : "Usuario inválido", + "Unable to change mail address" : "No fue posible cambiar la dirección de correo", + "Email saved" : "Correo electrónico guardado", + "%1$s changed your password on %2$s." : "%1$s cambió tu contraseña el %2$s.", + "Your password on %s was changed." : "Tu contraseña de %s fue cambiada. ", + "Your password on %s was reset by an administrator." : "Tu contraseña de %s fue restablecida por un administrador.", + "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", + "Password changed for %s" : "La contraseña fue cambiada para %s", + "If you did not request this, please contact an administrator." : "Si no lo solicitaste, por favor contacta a un administrador. ", + "%1$s changed your email address on %2$s." : "%1$s cambió tu dirección de correo electrónico el %2$s.", + "Your email address on %s was changed." : "Tu dirección de correo electrónico en %s fue cambiada. ", + "Your email address on %s was changed by an administrator." : "Tu dirección de correo electrónico en %s fue cambiada por un adminsitrador. ", + "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", + "Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s", + "The new email address is %s" : "La nueva dirección de correo electrónico es %s", + "Your %s account was created" : "Tu cuenta %s ha sido creada", + "Welcome aboard" : "Bienvenido a bordo", + "Welcome aboard %s" : "Bienvenido a bordo %s", + "You now have an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos.", + "Your username is: %s" : "Tu Usuario es: %s", + "Set your password" : "Establece tu contraseña", + "Go to %s" : "Ir a %s", + "Install Client" : "Instalar el cliente", + "Password confirmation is required" : "Se requiere la confirmación de la contraseña", + "Couldn't remove app." : "No fue posible eliminar la aplicación. ", + "Couldn't update app." : "No fue posible actualizar la aplicación.", + "Are you really sure you want add {domain} as trusted domain?" : "¿Realmente estás seguro que quieres agregar a {domain} como un dominio de confianza?", + "Add trusted domain" : "Agregar un dominio de confianza", + "Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración", + "Migration started …" : "La migración ha comenzado ...", + "Not saved" : "No guardado", + "Sending…" : "Enviando...", + "Email sent" : "Correo electrónico enviado", + "Official" : "Oficial", + "All" : "Todos", + "Update to %s" : "Actualizar a %s", + "No apps found for your version" : "No se encontraron aplicaciones para tu versión", + "The app will be downloaded from the app store" : "La aplicación será descargada de la tienda de aplicaciones <app store>", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las aplicaciones oficiales son desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad centralizada y se encuentran listas para ser usadas en producción. ", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Las aplicaciones aprobadas son desarrolladas por desarrolladores de confianza y han pasado una verificación de seguridad. Se les brinda mantenimiento activamente en un repositorio de código abierto y los mantenedores las consideran estables para un uso casual a normal. ", + "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Esta aplicación no cuenta con una verificación contra temas de seguridad y es nueva o se sabe que es instable. Instalala bajo tu propio riesgo. ", + "Disabling app …" : "Deshabilitando la aplicación ...", + "Error while disabling app" : "Se presentó un error mientras se deshabilitaba la aplicación", + "Disable" : "Deshabilitar", + "Enable" : "Habilitar", + "Enabling app …" : "Habilitando aplicación ...", + "Error while enabling app" : "Se presentó un error al habilitar la aplicación", + "Error: This app can not be enabled because it makes the server unstable" : "Error: Esta aplicación no puede ser habilitada porque genera inestabilidad en el servidor", + "Error: Could not disable broken app" : "Error: No fue posible deshabilitar la aplicación rota", + "Error while disabling broken app" : "Se presentó un error al deshabilitar la aplicación rota", + "No app updates available" : "No hay actualizaciones disponibles de la aplicación ", + "Updating...." : "Actualizando....", + "Error while updating app" : "Se presentó un error al actualizar la aplicación", + "Updated" : "Actualizado", + "Removing …" : "Eliminando ...", + "Error while removing app" : "Se presentó un error al eliminar la aplicación", + "Remove" : "Eliminar", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ", + "App update" : "Actualización de la aplicación", + "Approved" : "Aprobado", + "Experimental" : "Experimental", + "No apps found for {query}" : "No se encontraron aplicaciones para {query}", + "Enable all" : "Habilitar todo", + "Allow filesystem access" : "Permitir acceso al sistema de archivos", + "Disconnect" : "Desconectar", + "Revoke" : "Revocar", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome para Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "Cliente iOS", + "Android Client" : "Cliente Android", + "Sync client - {os}" : "Sync client - {os}", + "This session" : "Esta sesión", + "Copy" : "Copiar", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar. ", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Error while loading browser sessions and device tokens" : "Se presentó un error al cargar las sesiones de tu navegador y las fichas de los dispositivos.", + "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo", + "Error while deleting the token" : "Se presentó un error al borrar la ficha", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Se presentó un error. Por favor carga un certificado PEM con codificación ASCII", + "Valid until {date}" : "Válido hasta {date}", + "Delete" : "Borrar", + "Local" : "Local", + "Private" : "Privado", + "Only visible to local users" : "Visible sólo para usuarios locales", + "Only visible to you" : "Sólo visible para ti", + "Contacts" : "Contactos", + "Visible to local users and to trusted servers" : "Visible para usuarios locales y para servidores de confianza", + "Public" : "Público", + "Will be synced to a global and public address book" : "Será sincronizado a una libreta de direcciones global y pública", + "Verify" : "Verificar", + "Verifying …" : "Verificando ...", + "An error occured while changing your language. Please reload the page and try again." : "Se presentó un error al cambiar tu idioma. Por favor vuelve a cargar la página y vuelva a intentarlo. ", + "Select a profile picture" : "Selecciona una imagen de perfil", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "Groups" : "Grupos", + "Unable to delete {objName}" : "No fue posible borrar {objName}", + "Error creating group: {message}" : "Se presentó un error al crear el grupo: {message}", + "A valid group name must be provided" : "Debes proporcionar un nombre de grupo válido", + "deleted {groupName}" : "borrado {groupName}", + "undo" : "deshacer", + "{size} used" : "{size} usado", + "never" : "nunca", + "deleted {userName}" : "borrado {userName}", + "No user found for <strong>{pattern}</strong>" : "No se encontraron usuarios para <strong>{pattern}</strong>", + "Unable to add user to group {group}" : "No fue posible agregar el usuario al grupo {group}", + "Unable to remove user from group {group}" : "No fue posible eliminar el usuario del grupo {group}", + "Add group" : "Agregar grupo", + "Invalid quota value \"{val}\"" : "Valor de cuota inválido \"{val}\"", + "no group" : "sin grupos", + "Password successfully changed" : "La contraseña se cambió exitosamente", + "Changing the password will result in data loss, because data recovery is not available for this user" : "El cambiar la contraseña puede generar pérdida de datos, porque la recuperación de datos no está disponible para este usuario", + "Could not change the users email" : "No fue posible cambiar el correo electrónico del usuario. ", + "Error while changing status of {user}" : "Se presentó un error al cambiar el estatus del usuario {user}", + "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", + "Error creating user: {message}" : "Se presentó un error al crear el usuario: {message}", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "A valid email must be provided" : "Se debe proporcionar un correo electrónico válido", + "Developer documentation" : "Documentación del desarrollador", + "View in store" : "Ver en la tienda", + "Limit to groups" : "Limitar a grupos", + "by %s" : "por %s", + "%s-licensed" : "%s-licensed", + "Documentation:" : "Documentación:", + "User documentation" : "Documentación del usuario", + "Admin documentation" : "Documentación del administrador", + "Visit website" : "Visita el sitio web", + "Report a bug" : "Reporta un detalle", + "Show description …" : "Mostrar descripción ...", + "Hide description …" : "Ocultar descripción ...", + "This app has an update available." : "Esta aplicación tiene una actualización disponible.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", + "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:", + "Enable only for specific groups" : "Habilitar sólo para grupos específicos", + "SSL Root Certificates" : "Certificado SSL Raíz", + "Common Name" : "Nombre común", + "Valid until" : "Válido hasta", + "Issued By" : "Levantado Por", + "Valid until %s" : "Válido hasta %s", + "Import root certificate" : "Importar certificado raíz", + "Administrator documentation" : "Documentación del adminsitrador", + "Online documentation" : "Documentación en línea", + "Forum" : "Foro", + "Getting help" : "Obtener ayuda", + "Commercial support" : "Soporte comercial", + "None" : "Ninguno", + "Login" : "Iniciar sesión", + "Plain" : "Plano", + "NT LAN Manager" : "Administrador de LAN NT", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", + "Email server" : "Servidor de correo electrónico", + "Open documentation" : "Abrir documentación", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Es importante preparar este servidor para poder enviar correos electrónicos, como para restablecer contraseñas y notificaciones. ", + "Send mode" : "Modo de envío", + "Encryption" : "Encripción", + "From address" : "De la dirección", + "mail" : "correo", + "Authentication method" : "Método de autenticación", + "Authentication required" : "Autenticación requerida", + "Server address" : "Dirección del servidor", + "Port" : "Puerto", + "Credentials" : "Credenciales", + "SMTP Username" : "Usuario SMTP", + "SMTP Password" : "Contraseña SMTP", + "Store credentials" : "Almacenar credenciales", + "Test email settings" : "Probar las configuraciones de correo electrónico", + "Send email" : "Enviar correo electrónico", + "Server-side encryption" : "Encripción del lado del servidor", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ", + "Enable server-side encryption" : "Habilitar encripción del lado del servidor", + "Please read carefully before activating server-side encryption: " : "Por favor lee detenidamente antes de activar la encripción del lado de servidor:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Una vez que la encripción se encuentre habilitada, todos lo archivos cargados al servidor desde ese momento en tiempo, se encriptarán en el servidor. Sólo será posible deshabilitar la encripción en una fecha posterior si el modulo de encripción activo soporta esa funcionalidad y si todas las preciondiciones están satisfechas (ejem. establecer una llave de recuperación).", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "La encripción por sí sola no garantiza la seguridad del sistema. Por favor consulta la documentación para mayores informes de cómo funciona la aplicación de encripción y de los casos de uso soportados. ", + "Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ", + "This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?", + "Enable encryption" : "Habilitar encripción", + "No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado un módulo de encripción, por favor habilita un módulo de encripción en el menú de la aplicación. ", + "Select default encryption module:" : "Selecciona el modulo de encripción predeterminado:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Necesitas migrar tus llaves de encripción de la encripción anterior (ownCloud <= 8.0) a la actual. Por favor habilita el \"Módulo de encripción predeterminado\" y ejecuta el comando 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Necesitas migar tus llaves de encripción de la encripción anterior (ownCloud <=8.0) a la actual. ", + "Start migration" : "Iniciar migración", + "Security & setup warnings" : "Advertencias de seguridad y configuración", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> en relación a las notas de configuración de PHP y la configuración de PHP en tu servidorr, especialmente cuando se usa php-fpm.", + "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", + "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "El bloqueo de archivos transaccional se encuentra deshabilitado, esto puede generar temas bajo ciertas condiciones. Habilita 'filelocking.enabled' en el archivo config.php para evitar problemas. Por favor consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentatcón ↗</a> para más información.", + "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", + "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", + "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", + "If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor vuelve a verificar las <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guías de instalación↗</a>, y comprueba que no haya errores o advertenicas en la <a href=\"%s\">bitácora</a>.", + "All checks passed." : "Pasaron todas las verificaciones. ", + "Background jobs" : "Trabajos en segundo plano", + "Last job ran %s." : "El último trabajo corrió %s.", + "Last job execution ran %s. Something seems wrong." : "La última ejecución del trabajo corrió %s. Algo parece estar mal. ", + "Background job didn’t run yet!" : "¡El trabajo de segundo plano aún no ha corrido!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Para un desempeño ideal, es importante configurar los trabajos de fondo correctamente. Para instancias más grandes 'Cron' es la configuración recomendada. Por favor consulta la documentación para más información. ", + "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php está registrado en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP. ", + "Use system cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos. ", + "The cron.php needs to be executed by the system user \"%s\"." : "El cron.php necesita ser ejecutado por el usuario de sistema \"%s\".", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Version" : "Versión", + "Sharing" : "Compartiendo", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ", + "Allow apps to use the Share API" : "Permitir que las aplicaciones usen el API para Compartir", + "Allow users to share via link" : "Permitir a los usuarios compartir mediante ligas", + "Allow public uploads" : "Permitir cargas públicas", + "Always ask for a password" : "Siempre pedir una contraseña", + "Enforce password protection" : "Forzar protección de contraseñas", + "Set default expiration date" : "Establecer la fecha de expiración predeterminada", + "Expire after " : "Expirar después de", + "days" : "días", + "Enforce expiration date" : "Forzar fecha de expiración", + "Allow resharing" : "Permitir volver a compartir", + "Allow sharing with groups" : "Permitir compartir con grupos", + "Restrict users to only share with users in their groups" : "Limitar a los usuarios a sólo compartir con otros usuarios en sus grupos", + "Exclude groups from sharing" : "Evitar que los grupos compartan", + "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir elementos compartidos, pero no los podrán iniciar.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Permitir el autocompletado de usuarios en la ventana de diálogo de compartir. Si esto está deshabilitado, se deberá ingresar el correo electrónico o nombre completo. ", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar el texto de exención de responsabilidad legal en la página de carga de ligas públicas. (Sólo se muestra cuando la lista de archivos está oculta.)", + "This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la página de carga de la liga pública cuando la lista de archivos esté oculta. ", + "Tips & tricks" : "Consejos & trucos", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar a otra base de datos, usa la herramienta de la línea de comando 'occ db:convert-type', o consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a>.", + "How to do backups" : "Cómo hacer respaldos", + "Advanced monitoring" : "Monitoreo avanzado", + "Performance tuning" : "Optimización de rendimiento", + "Improving the config.php" : "Mejorando la config.php", + "Theming" : "Tematizar", + "Check the security of your Nextcloud over our security scan" : "Verifica la seguridad de tu Nextcloud con nuestro escaneo de seguridad", + "Hardening and security guidance" : "Consejos de reforzamiento y seguridad", + "Personal" : "Personal", + "Administration" : "Administración", + "You are using <strong>%s</strong> of <strong>%s</strong>" : "Estás usando <strong>%s</strong> de <strong>%s</strong>", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Estás usando <strong>%s</strong> de <strong>%s</strong> (<strong> %s %%</strong>)", + "Profile picture" : "Foto de perfil", + "Upload new" : "Cargar nuevo", + "Select from Files" : "Seleccionar desde Archivos", + "Remove image" : "Eliminar imagen", + "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", + "Picture provided by original account" : "Imagen proporcionada por la cuenta original ", + "Cancel" : "Cancelar", + "Choose as profile picture" : "Seleccionar como foto del perfil", + "Full name" : "Nombre completo", + "No display name set" : "No se ha establecido el nombre a desplegar", + "Email" : "Correo electrónico", + "Your email address" : "Tu dirección de correo electrónico", + "No email address set" : "No se ha establecido la dirección de correo electrónico", + "For password reset and notifications" : "Para restablecer contraseña y notificaciones", + "Phone number" : "Número de teléfono", + "Your phone number" : "Su número telefónico", + "Address" : "Dirección", + "Your postal address" : "Tu dirección postal", + "Website" : "Sitio web", + "It can take up to 24 hours before the account is displayed as verified." : "Puede tomar hasta 24 horas antes de que la cuenta se muestre como verificada. ", + "Link https://…" : "Liga https:// ...", + "Twitter" : "Twitter", + "Twitter handle @…" : "Cuenta de twitter @...", + "You are member of the following groups:" : "Eres miembro de los siguientes grupos:", + "Language" : "Idioma", + "Help translate" : "Ayuda a traducir", + "Password" : "Contraseña", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Change password" : "Cambiar contraseña", + "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ", + "Device" : "Dispositivo", + "Last activity" : "Última actividad", + "App name" : "Nombre de la aplicación", + "Create new app password" : "Crear una nueva contraseña de aplicación", + "Use the credentials below to configure your app or device." : "Usa las siguientes credenciales para configurar tu aplicación o dispositivo. ", + "For security reasons this password will only be shown once." : "Por razones de seguridad esta contraseña sólo se mostrará una vez. ", + "Username" : "Usuario", + "Done" : "Terminado", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.", + "Follow us on Google+" : "Síguenos en Google+", + "Like our Facebook page" : "Da un Like a nuestra página de Facebook", + "Follow us on Twitter" : "Síguenos en Twitter", + "Check out our blog" : "Visita nuestro blog", + "Subscribe to our newsletter" : "Suscribete a nuestro boletín", + "Settings" : "Configuraciones ", + "Show storage location" : "Mostrar la ubicación del almacenamiento", + "Show user backend" : "Mostrar backend del usuario", + "Show last login" : "Mostrar último inicio de sesión", + "Show email address" : "Mostrar dirección de correo electrónico", + "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Cuando la contraseña de un usuario nuevo se deja en blanco, se envía un correo electrónico de activación con una liga para establecerla. ", + "E-Mail" : "Correo electrónico", + "Create" : "Crear", + "Admin Recovery Password" : "Recuperación de la contraseña del administrador", + "Enter the recovery password in order to recover the users files during password change" : "Ingresa la contraseña de recuperación con la finalidad de recuperar los archivos de los usuarios al cambiar la contraseña.", + "Everyone" : "Todos", + "Admins" : "Administradores", + "Disabled" : "Deshabilitado", + "Default quota" : "Cuota predeterminada", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indica la cuota de almacenamiento (ejem: \"512 MB\" ó \"12 GB\")", + "Unlimited" : "Ilimitado", + "Other" : "Otro", + "Group admin for" : "Administrador del grupo para", + "Quota" : "Cuota", + "Storage location" : "Úbicación del almacenamiento", + "User backend" : "Backend del usuario", + "Last login" : "Último inicio de sesión", + "change full name" : "cambiar el nombre completo", + "set new password" : "establecer nueva contraseña", + "change email address" : "cambiar la dirección de correo electrónico", + "Default" : "Predeterminado", + "Enabled" : "Habilitado", + "Not enabled" : "No habilitado", + "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor proporciona una contraseña de recuperación de administrador, de lo contrario se perderán todos los datos de usuario", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada exitosamente.", + "test email settings" : "probar las configuraciones del correo electrónico", + "Invalid request" : "Solicitud inválida", + "Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador", + "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s", + "Unable to remove user from group %s" : "No fue posible eliminar el usuario del grupo %s", + "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Tienes %n actualizaciones de la aplicación pendientes"], + "Uninstalling ...." : "Desinstalando ...", + "Error while uninstalling app" : "Se presentó un error al desinstalar la aplicación", + "Uninstall" : "Desinstalar", + "__language_name__" : "Español (México)", + "Personal info" : "Información personal", + "Sessions" : "Sesiones", + "App passwords" : "Contraseñas de aplicación", + "Sync clients" : "Sincronizar clientes", + "This is used for sending out notifications." : "Esto se usa para enviar notificaciones", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Al parecer php no está correctamente configurado para consultar las variables de ambiente. La prueba con getenv(\"PATH\") solo está regresando una respuesta vacía. ", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Favor de consultar la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para las notas de configuración de php en tu servidor, específicamente al usar php-fpm. ", + "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s mas reciente. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", + "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Te sugerimos ámpliamente instalar en tu sistema los paquetes requeridos para soportar alguno de los sigueintes locales: %s.", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalacion no fue hecha en la raíz del dominio y usa el cron del sistema, pueden presentarse temas con la generación de URLs. Para evitar estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere : \"%s\")", + "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "No fue posible ejecutar la tarea de cron con CLI. Se presentaron los siguientes errores técnicos:", + "Cron" : "Cron", + "Last cron job execution: %s." : "Última ejecución de tareas de cron: %s.", + "Last cron job execution: %s. Something seems wrong." : "Última ejecución de tareas de cron: %s. Algo parece estar mal. ", + "Cron was not executed yet!" : "¡Aún no han sido ejecutado el cron!", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", + "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio de cron del sistema para llamar el archivo cron.php cada 15 minutos.", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión posix de PHP. Por favor consulta la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Permitir auto-completar el nombre de usuario en la ventana de diálogo. Si esta opción está deshabilitada, el nombre de usuario completo debe ser ingresado.", + "Uninstall app" : "Desinstalar la aplicación", + "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "Hola,<br><br> sólo queremos informarte que ahora tienes una cuenta %s.<br><br> Tu usuario es: <strong>%s</strong> <br>Ingresa a ella: <strong><a href=\"%s\">%s</a></strong><br><br>", + "Cheers!" : "¡Saludos!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola,\n\nsólo queremos informarte que ahora tienes una cuenta %s.\n\nTu usuario es: %s\n\nIngresa a ella: %s\n", + "For password recovery and notifications" : "Para recuperación de contraseña y notificaciones", + "Your website" : "Tu sitio web", + "Your Twitter handle" : "Tu cuenta de Twitter", + "Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos", + "Desktop client" : "Cliente de escritorio", + "Android app" : "Aplicación android", + "iOS app" : "Aplicación iOS", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "¡Si deseas apoyar al proyecto {contributeopen} únete al desarrollo{linkclose} o {contributeopen} pasa la voz {linkclose}!", + "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de Ejecución Inicial", + "Passcodes that give an app or device permissions to access your account." : "Los códigos de seguridad que le dan permisos a la aplicación o dispositivo para accesar a tu cuenta. ", + "Name" : "Nombre", + "Follow us on Google Plus!" : "¡Sígueos en Google Plus!", + "Like our facebook page!" : "¡Dale un me gusta a nuestra página de facebook!", + "Subscribe to our twitter channel!" : "¡Suscríbete a nuestro canal de twitter!", + "Subscribe to our news feed!" : "¡Suscríbete a nuestra fuente de noticias!", + "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", + "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", + "You have now an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos. ", + "Verifying" : "Verificando", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de su instancia que todo esté configurado correctamente. Para ayudarlo con esto, estamos haciendo algunas verficaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "A continuación se presenta un listado de las sesiones, dispositivos y eventos que se han presentado en tu cuenta. ", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aquí puedes generar contraseñas individuales para las aplicaciones para que no tengas que dar tu contraseña. También puedes revocalras individualmente. ", + "Follow us on Google+!" : "¡Síguenos en Google+!", + "Follow us on Twitter!" : "¡Síguenos en Twitter!", + "Check out our blog!" : "¡Visita nuestro blog!" +}, +"nplurals=2; plural=(n != 1);"); diff --git a/settings/l10n/es_EC.json b/settings/l10n/es_EC.json new file mode 100644 index 00000000000..213f6bb1da2 --- /dev/null +++ b/settings/l10n/es_EC.json @@ -0,0 +1,455 @@ +{ "translations": { + "{actor} changed your password" : "{actor} ha cambiado tu contraseña", + "You changed your password" : "Cambiaste tu contraseña", + "Your password was reset by an administrator" : "Tu contraseña ha sido restablecida por un adminsitrador", + "{actor} changed your email address" : "{actor} ha cambiado tu dirección de correo electrónico", + "You changed your email address" : "Cambiaste tu dirección de correo electrónico", + "Your email address was changed by an administrator" : "Tu dirección de correo electrónico ha sido cambiada por un administrador", + "Security" : "Seguridad", + "You successfully logged in using two-factor authentication (%1$s)" : "Has iniciado sesión exitosamente usando autenticación de dos-factores (%1$s)", + "A login attempt using two-factor authentication failed (%1$s)" : "Un intento de autenticación usando autenticación de dos-factores ha fallado (%1$s)", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Tu <strong>contraseña</strong> o <strong>correo electrónico</strong> ha sido modificado", + "Your apps" : "Tus aplicaciones", + "Updates" : "Actualizaciones", + "Enabled apps" : "Aplicaciones habilitadas", + "Disabled apps" : "Aplicaciones deshabilitadas", + "App bundles" : "Paquetes de aplicación", + "Wrong password" : "Contraseña incorrecta", + "Saved" : "Guardado", + "No user supplied" : "No se proporcionó usuario alguno", + "Unable to change password" : "No fue posible cambiar la contraseña", + "Authentication error" : "Error de autenticación", + "Please provide an admin recovery password; otherwise, all user data will be lost." : "Por favor proporciona una contraseña de recuperación de administrador; de lo contrario toda la información del usuario se perderá. ", + "Wrong admin recovery password. Please check the password and try again." : "Contraseña de recuperación de administrador incorrecta. Por favor verificala e inténtalo de nuevo.", + "Backend doesn't support password change, but the user's encryption key was updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada.", + "installing and updating apps via the app store or Federated Cloud Sharing" : "Instalando y actualizando aplicaciones por la tienda de aplicaciones o Compartido la Nube Federada", + "Federated Cloud Sharing" : "Compartir en la Nube Federada", + "cURL is using an outdated %s version (%s). Please update your operating system or features such as %s will not work reliably." : "cURL está usando una versión anticuada (%s) de %s. Por favor actualiza tu sistema operativo o funciones tales como %s no funcionarán de forma confiable.", + "A problem occurred, please check your log files (Error: %s)" : "Se presentó un problema, por favor verifica tus archivos de bitácoras (Error: %s)", + "Migration Completed" : "Migración completada", + "Group already exists." : "El grupo ya existe.", + "Unable to add group." : "No fue posible agregar el grupo.", + "Unable to delete group." : "No fue posible borrar el grupo.", + "Invalid SMTP password." : "Constraseña SMTP inválida. ", + "Email setting test" : "Prueba de ajustes de correo", + "Well done, %s!" : "¡Bien hecho, %s!", + "If you received this email, the email configuration seems to be correct." : "Si has recibido este correo electrónico, la configuración del correo electrónico parece estar correcta. ", + "Email could not be sent. Check your mail server log" : "No fue posible enviar el correo electrónico. Por favor verfica la bitácora de tu servidor de correo", + "A problem occurred while sending the email. Please revise your settings. (Error: %s)" : "Se presentó un problema al enviar el correo electrónico. Por favor revisa tus configuraciones (Error: %s)", + "You need to set your user email before being able to send test emails." : "Requieres establecer tu correo electrónico antes de poder enviar correos electrónicos de prueba. ", + "Invalid mail address" : "Dirección de correo inválida", + "No valid group selected" : "No se ha seleccionado un grupo válido", + "A user with that name already exists." : "Un usuario con ese nombre ya existe. ", + "To send a password link to the user an email address is required." : "Para enviar la liga a una contraseña al usuario, se requiere de una dirección de correo electrónico.", + "Unable to create user." : "No fue posible crear el usuario. ", + "Unable to delete user." : "No fue posible eliminar el usuario.", + "Error while enabling user." : "Se presentó un error al habilitar el usuario. ", + "Error while disabling user." : "Se presentó un error al deshabilitar el usuario.", + "In order to verify your Twitter account, post the following tweet on Twitter (please make sure to post it without any line breaks):" : "Para poder verificar tu cuenta de Twitter, publica el siguiente tweet en Twitter (por favor asegúrarte de publicar sin ninguna línea en blanco):", + "In order to verify your Website, store the following content in your web-root at '.well-known/CloudIdVerificationCode.txt' (please make sure that the complete text is in one line):" : "Para poder verificar tu sitio Web, agrega el siguiente contendio a tu web-root en '.well-known/CloudIdVerificationCode.txt' (por favor asegurate de que el texto completo este en una sóla línea):", + "Settings saved" : "Se han guardado las configuraciones ", + "Unable to change full name" : "No fue posible cambiar el nombre completo", + "Unable to change email address" : "No fue posible cambiar la dirección de correo electrónico", + "Your full name has been changed." : "Tu nombre completo ha sido cambiado.", + "Forbidden" : "Prohibido", + "Invalid user" : "Usuario inválido", + "Unable to change mail address" : "No fue posible cambiar la dirección de correo", + "Email saved" : "Correo electrónico guardado", + "%1$s changed your password on %2$s." : "%1$s cambió tu contraseña el %2$s.", + "Your password on %s was changed." : "Tu contraseña de %s fue cambiada. ", + "Your password on %s was reset by an administrator." : "Tu contraseña de %s fue restablecida por un administrador.", + "Password for %1$s changed on %2$s" : "La contraseña para %1$s fue cambiada el %2$s", + "Password changed for %s" : "La contraseña fue cambiada para %s", + "If you did not request this, please contact an administrator." : "Si no lo solicitaste, por favor contacta a un administrador. ", + "%1$s changed your email address on %2$s." : "%1$s cambió tu dirección de correo electrónico el %2$s.", + "Your email address on %s was changed." : "Tu dirección de correo electrónico en %s fue cambiada. ", + "Your email address on %s was changed by an administrator." : "Tu dirección de correo electrónico en %s fue cambiada por un adminsitrador. ", + "Email address for %1$s changed on %2$s" : "La dirección de correo electrónico para %1$s fue cambiada el %2$s", + "Email address changed for %s" : "La dirección de correo electrónico fue cambiada para %s", + "The new email address is %s" : "La nueva dirección de correo electrónico es %s", + "Your %s account was created" : "Tu cuenta %s ha sido creada", + "Welcome aboard" : "Bienvenido a bordo", + "Welcome aboard %s" : "Bienvenido a bordo %s", + "You now have an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos.", + "Your username is: %s" : "Tu Usuario es: %s", + "Set your password" : "Establece tu contraseña", + "Go to %s" : "Ir a %s", + "Install Client" : "Instalar el cliente", + "Password confirmation is required" : "Se requiere la confirmación de la contraseña", + "Couldn't remove app." : "No fue posible eliminar la aplicación. ", + "Couldn't update app." : "No fue posible actualizar la aplicación.", + "Are you really sure you want add {domain} as trusted domain?" : "¿Realmente estás seguro que quieres agregar a {domain} como un dominio de confianza?", + "Add trusted domain" : "Agregar un dominio de confianza", + "Migration in progress. Please wait until the migration is finished" : "La migración está en curso. Por favor espera hasta que termine la migración", + "Migration started …" : "La migración ha comenzado ...", + "Not saved" : "No guardado", + "Sending…" : "Enviando...", + "Email sent" : "Correo electrónico enviado", + "Official" : "Oficial", + "All" : "Todos", + "Update to %s" : "Actualizar a %s", + "No apps found for your version" : "No se encontraron aplicaciones para tu versión", + "The app will be downloaded from the app store" : "La aplicación será descargada de la tienda de aplicaciones <app store>", + "Official apps are developed by and within the community. They offer central functionality and are ready for production use." : "Las aplicaciones oficiales son desarrolladas por y dentro de la comunidad. Ofrecen una funcionalidad centralizada y se encuentran listas para ser usadas en producción. ", + "Approved apps are developed by trusted developers and have passed a cursory security check. They are actively maintained in an open code repository and their maintainers deem them to be stable for casual to normal use." : "Las aplicaciones aprobadas son desarrolladas por desarrolladores de confianza y han pasado una verificación de seguridad. Se les brinda mantenimiento activamente en un repositorio de código abierto y los mantenedores las consideran estables para un uso casual a normal. ", + "This app is not checked for security issues and is new or known to be unstable. Install at your own risk." : "Esta aplicación no cuenta con una verificación contra temas de seguridad y es nueva o se sabe que es instable. Instalala bajo tu propio riesgo. ", + "Disabling app …" : "Deshabilitando la aplicación ...", + "Error while disabling app" : "Se presentó un error mientras se deshabilitaba la aplicación", + "Disable" : "Deshabilitar", + "Enable" : "Habilitar", + "Enabling app …" : "Habilitando aplicación ...", + "Error while enabling app" : "Se presentó un error al habilitar la aplicación", + "Error: This app can not be enabled because it makes the server unstable" : "Error: Esta aplicación no puede ser habilitada porque genera inestabilidad en el servidor", + "Error: Could not disable broken app" : "Error: No fue posible deshabilitar la aplicación rota", + "Error while disabling broken app" : "Se presentó un error al deshabilitar la aplicación rota", + "No app updates available" : "No hay actualizaciones disponibles de la aplicación ", + "Updating...." : "Actualizando....", + "Error while updating app" : "Se presentó un error al actualizar la aplicación", + "Updated" : "Actualizado", + "Removing …" : "Eliminando ...", + "Error while removing app" : "Se presentó un error al eliminar la aplicación", + "Remove" : "Eliminar", + "The app has been enabled but needs to be updated. You will be redirected to the update page in 5 seconds." : "La aplicación está habilitada pero necesita ser actualizada. Serás redireccionado a la página de actualización en 5 segundos. ", + "App update" : "Actualización de la aplicación", + "Approved" : "Aprobado", + "Experimental" : "Experimental", + "No apps found for {query}" : "No se encontraron aplicaciones para {query}", + "Enable all" : "Habilitar todo", + "Allow filesystem access" : "Permitir acceso al sistema de archivos", + "Disconnect" : "Desconectar", + "Revoke" : "Revocar", + "Internet Explorer" : "Internet Explorer", + "Edge" : "Edge", + "Firefox" : "Firefox", + "Google Chrome" : "Google Chrome", + "Safari" : "Safari", + "Google Chrome for Android" : "Google Chrome para Android", + "iPhone iOS" : "iPhone iOS", + "iPad iOS" : "iPad iOS", + "iOS Client" : "Cliente iOS", + "Android Client" : "Cliente Android", + "Sync client - {os}" : "Sync client - {os}", + "This session" : "Esta sesión", + "Copy" : "Copiar", + "Copied!" : "¡Copiado!", + "Not supported!" : "¡No soportado!", + "Press ⌘-C to copy." : "Presiona ⌘-C para copiar. ", + "Press Ctrl-C to copy." : "Presiona Ctrl-C para copiar.", + "Error while loading browser sessions and device tokens" : "Se presentó un error al cargar las sesiones de tu navegador y las fichas de los dispositivos.", + "Error while creating device token" : "Se presentó un error al crear la ficha en el dispositivo", + "Error while deleting the token" : "Se presentó un error al borrar la ficha", + "An error occurred. Please upload an ASCII-encoded PEM certificate." : "Se presentó un error. Por favor carga un certificado PEM con codificación ASCII", + "Valid until {date}" : "Válido hasta {date}", + "Delete" : "Borrar", + "Local" : "Local", + "Private" : "Privado", + "Only visible to local users" : "Visible sólo para usuarios locales", + "Only visible to you" : "Sólo visible para ti", + "Contacts" : "Contactos", + "Visible to local users and to trusted servers" : "Visible para usuarios locales y para servidores de confianza", + "Public" : "Público", + "Will be synced to a global and public address book" : "Será sincronizado a una libreta de direcciones global y pública", + "Verify" : "Verificar", + "Verifying …" : "Verificando ...", + "An error occured while changing your language. Please reload the page and try again." : "Se presentó un error al cambiar tu idioma. Por favor vuelve a cargar la página y vuelva a intentarlo. ", + "Select a profile picture" : "Selecciona una imagen de perfil", + "Very weak password" : "Contraseña muy débil", + "Weak password" : "Contraseña débil", + "So-so password" : "Contraseña aceptable", + "Good password" : "Buena contraseña", + "Strong password" : "Contraseña fuerte", + "Groups" : "Grupos", + "Unable to delete {objName}" : "No fue posible borrar {objName}", + "Error creating group: {message}" : "Se presentó un error al crear el grupo: {message}", + "A valid group name must be provided" : "Debes proporcionar un nombre de grupo válido", + "deleted {groupName}" : "borrado {groupName}", + "undo" : "deshacer", + "{size} used" : "{size} usado", + "never" : "nunca", + "deleted {userName}" : "borrado {userName}", + "No user found for <strong>{pattern}</strong>" : "No se encontraron usuarios para <strong>{pattern}</strong>", + "Unable to add user to group {group}" : "No fue posible agregar el usuario al grupo {group}", + "Unable to remove user from group {group}" : "No fue posible eliminar el usuario del grupo {group}", + "Add group" : "Agregar grupo", + "Invalid quota value \"{val}\"" : "Valor de cuota inválido \"{val}\"", + "no group" : "sin grupos", + "Password successfully changed" : "La contraseña se cambió exitosamente", + "Changing the password will result in data loss, because data recovery is not available for this user" : "El cambiar la contraseña puede generar pérdida de datos, porque la recuperación de datos no está disponible para este usuario", + "Could not change the users email" : "No fue posible cambiar el correo electrónico del usuario. ", + "Error while changing status of {user}" : "Se presentó un error al cambiar el estatus del usuario {user}", + "A valid username must be provided" : "Se debe proporcionar un nombre de usuario válido", + "Error creating user: {message}" : "Se presentó un error al crear el usuario: {message}", + "A valid password must be provided" : "Se debe proporcionar una contraseña válida", + "A valid email must be provided" : "Se debe proporcionar un correo electrónico válido", + "Developer documentation" : "Documentación del desarrollador", + "View in store" : "Ver en la tienda", + "Limit to groups" : "Limitar a grupos", + "by %s" : "por %s", + "%s-licensed" : "%s-licensed", + "Documentation:" : "Documentación:", + "User documentation" : "Documentación del usuario", + "Admin documentation" : "Documentación del administrador", + "Visit website" : "Visita el sitio web", + "Report a bug" : "Reporta un detalle", + "Show description …" : "Mostrar descripción ...", + "Hide description …" : "Ocultar descripción ...", + "This app has an update available." : "Esta aplicación tiene una actualización disponible.", + "This app has no minimum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión mínima de Nextcloud asignada. Esto será un error en el futuro.", + "This app has no maximum Nextcloud version assigned. This will be an error in the future." : "Esta aplicación no cuenta con una versión máxima de Nextcloud asignada. Esto será un error en el futuro.", + "This app cannot be installed because the following dependencies are not fulfilled:" : "Esta aplicación no puede ser instalada porque las siguientes dependencias no están satisfechas:", + "Enable only for specific groups" : "Habilitar sólo para grupos específicos", + "SSL Root Certificates" : "Certificado SSL Raíz", + "Common Name" : "Nombre común", + "Valid until" : "Válido hasta", + "Issued By" : "Levantado Por", + "Valid until %s" : "Válido hasta %s", + "Import root certificate" : "Importar certificado raíz", + "Administrator documentation" : "Documentación del adminsitrador", + "Online documentation" : "Documentación en línea", + "Forum" : "Foro", + "Getting help" : "Obtener ayuda", + "Commercial support" : "Soporte comercial", + "None" : "Ninguno", + "Login" : "Iniciar sesión", + "Plain" : "Plano", + "NT LAN Manager" : "Administrador de LAN NT", + "SSL/TLS" : "SSL/TLS", + "STARTTLS" : "STARTTLS", + "Email server" : "Servidor de correo electrónico", + "Open documentation" : "Abrir documentación", + "It is important to set up this server to be able to send emails, like for password reset and notifications." : "Es importante preparar este servidor para poder enviar correos electrónicos, como para restablecer contraseñas y notificaciones. ", + "Send mode" : "Modo de envío", + "Encryption" : "Encripción", + "From address" : "De la dirección", + "mail" : "correo", + "Authentication method" : "Método de autenticación", + "Authentication required" : "Autenticación requerida", + "Server address" : "Dirección del servidor", + "Port" : "Puerto", + "Credentials" : "Credenciales", + "SMTP Username" : "Usuario SMTP", + "SMTP Password" : "Contraseña SMTP", + "Store credentials" : "Almacenar credenciales", + "Test email settings" : "Probar las configuraciones de correo electrónico", + "Send email" : "Enviar correo electrónico", + "Server-side encryption" : "Encripción del lado del servidor", + "Server-side encryption makes it possible to encrypt files which are uploaded to this server. This comes with limitations like a performance penalty, so enable this only if needed." : "La encripción del lado del servidor hace posible encriptar archivos que serán cargados a este servidor. Esto trae consigo algunas limitaciónes como penalizaciones en el desemeño, asi que habilítalo sólo si es necesario. ", + "Enable server-side encryption" : "Habilitar encripción del lado del servidor", + "Please read carefully before activating server-side encryption: " : "Por favor lee detenidamente antes de activar la encripción del lado de servidor:", + "Once encryption is enabled, all files uploaded to the server from that point forward will be encrypted at rest on the server. It will only be possible to disable encryption at a later date if the active encryption module supports that function, and all pre-conditions (e.g. setting a recover key) are met." : "Una vez que la encripción se encuentre habilitada, todos lo archivos cargados al servidor desde ese momento en tiempo, se encriptarán en el servidor. Sólo será posible deshabilitar la encripción en una fecha posterior si el modulo de encripción activo soporta esa funcionalidad y si todas las preciondiciones están satisfechas (ejem. establecer una llave de recuperación).", + "Encryption alone does not guarantee security of the system. Please see documentation for more information about how the encryption app works, and the supported use cases." : "La encripción por sí sola no garantiza la seguridad del sistema. Por favor consulta la documentación para mayores informes de cómo funciona la aplicación de encripción y de los casos de uso soportados. ", + "Be aware that encryption always increases the file size." : "Por favor considera que la encripción siempre aumenta el tamaño de los archivos. ", + "It is always good to create regular backups of your data, in case of encryption make sure to backup the encryption keys along with your data." : "Siempre es una buena idea generar respaldos de tus datos, en caso de tener encripción asegúrate de respaldar las llaves de encripción junto con tus datos. ", + "This is the final warning: Do you really want to enable encryption?" : "Esta es la advertencia final: ¿Realmente deseas habilitar la encripción?", + "Enable encryption" : "Habilitar encripción", + "No encryption module loaded, please enable an encryption module in the app menu." : "No se ha cargado un módulo de encripción, por favor habilita un módulo de encripción en el menú de la aplicación. ", + "Select default encryption module:" : "Selecciona el modulo de encripción predeterminado:", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one. Please enable the \"Default encryption module\" and run 'occ encryption:migrate'" : "Necesitas migrar tus llaves de encripción de la encripción anterior (ownCloud <= 8.0) a la actual. Por favor habilita el \"Módulo de encripción predeterminado\" y ejecuta el comando 'occ encryption:migrate'", + "You need to migrate your encryption keys from the old encryption (ownCloud <= 8.0) to the new one." : "Necesitas migar tus llaves de encripción de la encripción anterior (ownCloud <=8.0) a la actual. ", + "Start migration" : "Iniciar migración", + "Security & setup warnings" : "Advertencias de seguridad y configuración", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Tricks section and the documentation for more information." : "Es importante que todo esté configurado correctamente por la seguridad y desempeño de tu instancia. Para ayudarte con esto, estamos haciendo unas validaciones automáticas. Por favor ve la sección de Consejos y Trucos así como la documentación para más información.", + "PHP does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "PHP no parece estar configurado correctamente para consultar las variables de ambiente. La prueba con getenv(\"PATH\") sólo regresa una respuesta vacía.", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for PHP configuration notes and the PHP configuration of your server, especially when using php-fpm." : "Por favor verifica la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> en relación a las notas de configuración de PHP y la configuración de PHP en tu servidorr, especialmente cuando se usa php-fpm.", + "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "La configuración de Sólo Lectura ha sido habilitada. Esto previene establecer algunas configuraciones mediante la interface web. Adicionalmente, el archivo necesita que se le establezca tener permisos de escritura manualmente en cada actualización. ", + "PHP is apparently set up to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques internos de documentación. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Esto es posiblemente causado por un caché/acelerador tal como Zend OPcache o eAccelerator. ", + "Your database does not run with \"READ COMMITTED\" transaction isolation level. This can cause problems when multiple actions are executed in parallel." : "Tu base de datos no puede correr con el nivel de aislamiento de transacción de \"READ COMMITTED\". Puede causar problemas cuando mútiples acciones sean ejecutadas en paralelo.", + "%1$s below version %2$s is installed, for stability and performance reasons it is recommended to update to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s más reciente. ", + "The PHP module 'fileinfo' is missing. It is strongly recommended to enable this module to get the best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Recomendamos ámpliamente que se habilite este módulo para obtener los mejores resultados en la detección de tipos MIME", + "Transactional file locking is disabled, this might lead to issues with race conditions. Enable 'filelocking.enabled' in config.php to avoid these problems. See the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a> for more information." : "El bloqueo de archivos transaccional se encuentra deshabilitado, esto puede generar temas bajo ciertas condiciones. Habilita 'filelocking.enabled' en el archivo config.php para evitar problemas. Por favor consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentatcón ↗</a> para más información.", + "System locale can not be set to a one which supports UTF-8." : "No es posible establecer la regionalización del sistema a una que soporte UTF-8.", + "This means that there might be problems with certain characters in filenames." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de archivos. ", + "It is strongly proposed to install the required packages on your system to support one of the following locales: %s." : "Se recomienda ámpliamente instalar los paquetes requeridos en tu sistema para soportar alguna de las siguientes regionalizaciones: %s.", + "If your installation is not installed at the root of the domain and uses system Cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalación no se hizo en la raíz del dominio y usa el sistema Cron, puede haber temas con la generación de la URL. Para prevenir estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere: \"%s\")", + "It was not possible to execute the cron job via CLI. The following technical errors have appeared:" : "No fue posible ejecutar el trabajo de cron via CLI. Se presentaron los siguientes errores técnicos:", + "Please double check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation guides ↗</a>, and check for any errors or warnings in the <a href=\"%s\">log</a>." : "Por favor vuelve a verificar las <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">guías de instalación↗</a>, y comprueba que no haya errores o advertenicas en la <a href=\"%s\">bitácora</a>.", + "All checks passed." : "Pasaron todas las verificaciones. ", + "Background jobs" : "Trabajos en segundo plano", + "Last job ran %s." : "El último trabajo corrió %s.", + "Last job execution ran %s. Something seems wrong." : "La última ejecución del trabajo corrió %s. Algo parece estar mal. ", + "Background job didn’t run yet!" : "¡El trabajo de segundo plano aún no ha corrido!", + "For optimal performance it's important to configure background jobs correctly. For bigger instances 'Cron' is the recommended setting. Please see the documentation for more information." : "Para un desempeño ideal, es importante configurar los trabajos de fondo correctamente. Para instancias más grandes 'Cron' es la configuración recomendada. Por favor consulta la documentación para más información. ", + "Execute one task with each page loaded" : "Ejecutar una tarea con cada página cargada", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over HTTP." : "cron.php está registrado en un servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP. ", + "Use system cron service to call the cron.php file every 15 minutes." : "Usar el servicio cron del sistema para llamar al archivo cron.php cada 15 minutos. ", + "The cron.php needs to be executed by the system user \"%s\"." : "El cron.php necesita ser ejecutado por el usuario de sistema \"%s\".", + "To run this you need the PHP POSIX extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión POSIX de PHP. Por favor ve la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Version" : "Versión", + "Sharing" : "Compartiendo", + "As admin you can fine-tune the sharing behavior. Please see the documentation for more information." : "Como administrador, puedes hacer ajustes finos al comportamiento de compartir. Por favor consulta la documentación para más información. ", + "Allow apps to use the Share API" : "Permitir que las aplicaciones usen el API para Compartir", + "Allow users to share via link" : "Permitir a los usuarios compartir mediante ligas", + "Allow public uploads" : "Permitir cargas públicas", + "Always ask for a password" : "Siempre pedir una contraseña", + "Enforce password protection" : "Forzar protección de contraseñas", + "Set default expiration date" : "Establecer la fecha de expiración predeterminada", + "Expire after " : "Expirar después de", + "days" : "días", + "Enforce expiration date" : "Forzar fecha de expiración", + "Allow resharing" : "Permitir volver a compartir", + "Allow sharing with groups" : "Permitir compartir con grupos", + "Restrict users to only share with users in their groups" : "Limitar a los usuarios a sólo compartir con otros usuarios en sus grupos", + "Exclude groups from sharing" : "Evitar que los grupos compartan", + "These groups will still be able to receive shares, but not to initiate them." : "Estos grupos aún podrán recibir elementos compartidos, pero no los podrán iniciar.", + "Allow username autocompletion in share dialog. If this is disabled the full username or email address needs to be entered." : "Permitir el autocompletado de usuarios en la ventana de diálogo de compartir. Si esto está deshabilitado, se deberá ingresar el correo electrónico o nombre completo. ", + "Show disclaimer text on the public link upload page. (Only shown when the file list is hidden.)" : "Mostrar el texto de exención de responsabilidad legal en la página de carga de ligas públicas. (Sólo se muestra cuando la lista de archivos está oculta.)", + "This text will be shown on the public link upload page when the file list is hidden." : "Este texto se mostrará en la página de carga de la liga pública cuando la lista de archivos esté oculta. ", + "Tips & tricks" : "Consejos & trucos", + "There are a lot of features and config switches available to optimally customize and use this instance. Here are some pointers for more information." : "Existen muchas funcionalidades y configuraciones disponibles para personalizar y usar de manera óptima esta instancia. Aquí hay algunos consejos para más información. ", + "SQLite is currently being used as the backend database. For larger installations we recommend that you switch to a different database backend." : "Actualmente estás usando SQLite como el backend de base de datos. Para instalaciones más grandes te recomendamos cambiar a un backend de base de datos diferente.", + "This is particularly recommended when using the desktop client for file synchronisation." : "Esto es particularmente recomendado cuando se usa el cliente de escritorio para sincronización de archivos. ", + "To migrate to another database use the command line tool: 'occ db:convert-type', or see the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentation ↗</a>." : "Para migrar a otra base de datos, usa la herramienta de la línea de comando 'occ db:convert-type', o consulta la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación ↗</a>.", + "How to do backups" : "Cómo hacer respaldos", + "Advanced monitoring" : "Monitoreo avanzado", + "Performance tuning" : "Optimización de rendimiento", + "Improving the config.php" : "Mejorando la config.php", + "Theming" : "Tematizar", + "Check the security of your Nextcloud over our security scan" : "Verifica la seguridad de tu Nextcloud con nuestro escaneo de seguridad", + "Hardening and security guidance" : "Consejos de reforzamiento y seguridad", + "Personal" : "Personal", + "Administration" : "Administración", + "You are using <strong>%s</strong> of <strong>%s</strong>" : "Estás usando <strong>%s</strong> de <strong>%s</strong>", + "You are using <strong>%s</strong> of <strong>%s</strong> (<strong>%s %%</strong>)" : "Estás usando <strong>%s</strong> de <strong>%s</strong> (<strong> %s %%</strong>)", + "Profile picture" : "Foto de perfil", + "Upload new" : "Cargar nuevo", + "Select from Files" : "Seleccionar desde Archivos", + "Remove image" : "Eliminar imagen", + "png or jpg, max. 20 MB" : "png o jpg max. 20 MB", + "Picture provided by original account" : "Imagen proporcionada por la cuenta original ", + "Cancel" : "Cancelar", + "Choose as profile picture" : "Seleccionar como foto del perfil", + "Full name" : "Nombre completo", + "No display name set" : "No se ha establecido el nombre a desplegar", + "Email" : "Correo electrónico", + "Your email address" : "Tu dirección de correo electrónico", + "No email address set" : "No se ha establecido la dirección de correo electrónico", + "For password reset and notifications" : "Para restablecer contraseña y notificaciones", + "Phone number" : "Número de teléfono", + "Your phone number" : "Su número telefónico", + "Address" : "Dirección", + "Your postal address" : "Tu dirección postal", + "Website" : "Sitio web", + "It can take up to 24 hours before the account is displayed as verified." : "Puede tomar hasta 24 horas antes de que la cuenta se muestre como verificada. ", + "Link https://…" : "Liga https:// ...", + "Twitter" : "Twitter", + "Twitter handle @…" : "Cuenta de twitter @...", + "You are member of the following groups:" : "Eres miembro de los siguientes grupos:", + "Language" : "Idioma", + "Help translate" : "Ayuda a traducir", + "Password" : "Contraseña", + "Current password" : "Contraseña actual", + "New password" : "Nueva contraseña", + "Change password" : "Cambiar contraseña", + "Web, desktop and mobile clients currently logged in to your account." : "Clientes web, de escritorio y móviles han iniciado sesión en tu cuenta. ", + "Device" : "Dispositivo", + "Last activity" : "Última actividad", + "App name" : "Nombre de la aplicación", + "Create new app password" : "Crear una nueva contraseña de aplicación", + "Use the credentials below to configure your app or device." : "Usa las siguientes credenciales para configurar tu aplicación o dispositivo. ", + "For security reasons this password will only be shown once." : "Por razones de seguridad esta contraseña sólo se mostrará una vez. ", + "Username" : "Usuario", + "Done" : "Terminado", + "Developed by the {communityopen}Nextcloud community{linkclose}, the {githubopen}source code{linkclose} is licensed under the {licenseopen}AGPL{linkclose}." : "Desarrollado por la {communityopen}comunidad Nextcloud {linkclose}, el {githubopen}código fuente {linkclose} está licenciado bajo {licenseopen}AGPL{linkclose}.", + "Follow us on Google+" : "Síguenos en Google+", + "Like our Facebook page" : "Da un Like a nuestra página de Facebook", + "Follow us on Twitter" : "Síguenos en Twitter", + "Check out our blog" : "Visita nuestro blog", + "Subscribe to our newsletter" : "Suscribete a nuestro boletín", + "Settings" : "Configuraciones ", + "Show storage location" : "Mostrar la ubicación del almacenamiento", + "Show user backend" : "Mostrar backend del usuario", + "Show last login" : "Mostrar último inicio de sesión", + "Show email address" : "Mostrar dirección de correo electrónico", + "Send email to new user" : "Enviar un correo electrónico al usuario nuevo", + "When the password of a new user is left empty, an activation email with a link to set the password is sent." : "Cuando la contraseña de un usuario nuevo se deja en blanco, se envía un correo electrónico de activación con una liga para establecerla. ", + "E-Mail" : "Correo electrónico", + "Create" : "Crear", + "Admin Recovery Password" : "Recuperación de la contraseña del administrador", + "Enter the recovery password in order to recover the users files during password change" : "Ingresa la contraseña de recuperación con la finalidad de recuperar los archivos de los usuarios al cambiar la contraseña.", + "Everyone" : "Todos", + "Admins" : "Administradores", + "Disabled" : "Deshabilitado", + "Default quota" : "Cuota predeterminada", + "Please enter storage quota (ex: \"512 MB\" or \"12 GB\")" : "Por favor indica la cuota de almacenamiento (ejem: \"512 MB\" ó \"12 GB\")", + "Unlimited" : "Ilimitado", + "Other" : "Otro", + "Group admin for" : "Administrador del grupo para", + "Quota" : "Cuota", + "Storage location" : "Úbicación del almacenamiento", + "User backend" : "Backend del usuario", + "Last login" : "Último inicio de sesión", + "change full name" : "cambiar el nombre completo", + "set new password" : "establecer nueva contraseña", + "change email address" : "cambiar la dirección de correo electrónico", + "Default" : "Predeterminado", + "Enabled" : "Habilitado", + "Not enabled" : "No habilitado", + "Please provide an admin recovery password, otherwise all user data will be lost" : "Por favor proporciona una contraseña de recuperación de administrador, de lo contrario se perderán todos los datos de usuario", + "Backend doesn't support password change, but the user's encryption key was successfully updated." : "El backend no soporta el cambio de contraseñas, pero la llave de encripción del usuario fue actualizada exitosamente.", + "test email settings" : "probar las configuraciones del correo electrónico", + "Invalid request" : "Solicitud inválida", + "Admins can't remove themself from the admin group" : "Los administradores no se pueden eliminar a ellos mismos del grupo de administrador", + "Unable to add user to group %s" : "No fue posible agregar el usuario al grupo %s", + "Unable to remove user from group %s" : "No fue posible eliminar el usuario del grupo %s", + "Sending..." : "Enviando...", + "_You have %n app update pending_::_You have %n app updates pending_" : ["Usted tiene %n actualización de la aplicación pendiente","Tienes %n actualizaciones de la aplicación pendientes"], + "Uninstalling ...." : "Desinstalando ...", + "Error while uninstalling app" : "Se presentó un error al desinstalar la aplicación", + "Uninstall" : "Desinstalar", + "__language_name__" : "Español (México)", + "Personal info" : "Información personal", + "Sessions" : "Sesiones", + "App passwords" : "Contraseñas de aplicación", + "Sync clients" : "Sincronizar clientes", + "This is used for sending out notifications." : "Esto se usa para enviar notificaciones", + "php does not seem to be setup properly to query system environment variables. The test with getenv(\"PATH\") only returns an empty response." : "Al parecer php no está correctamente configurado para consultar las variables de ambiente. La prueba con getenv(\"PATH\") solo está regresando una respuesta vacía. ", + "Please check the <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">installation documentation ↗</a> for php configuration notes and the php configuration of your server, especially when using php-fpm." : "Favor de consultar la <a target=\"_blank\" rel=\"noreferrer\" href=\"%s\">documentación de instalación ↗</a> para las notas de configuración de php en tu servidor, específicamente al usar php-fpm. ", + "PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Al parecer PHP está configurado para quitar los bloques de comentarios internos. Esto hará que varias aplicaciones principales sean inaccesibles. ", + "%1$s below version %2$s is installed, for stability and performance reasons we recommend updating to a newer %1$s version." : "%1$s con versión inferior a %2$s está instalado, por razones de estabilidad y desempeño te recomendamos actualizar a una versión de %1$s mas reciente. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with mime-type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "This means that there might be problems with certain characters in file names." : "Esto significa que puede haber problemas con ciertos caracteres en los nombres de los archivos.", + "We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Te sugerimos ámpliamente instalar en tu sistema los paquetes requeridos para soportar alguno de los sigueintes locales: %s.", + "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Si tu instalacion no fue hecha en la raíz del dominio y usa el cron del sistema, pueden presentarse temas con la generación de URLs. Para evitar estos problemas, por favor establece la opción \"overwrite.cli.url\" en tu archivo config.php a la ruta del webroot de tu instalación (Se sugiere : \"%s\")", + "It was not possible to execute the cronjob via CLI. The following technical errors have appeared:" : "No fue posible ejecutar la tarea de cron con CLI. Se presentaron los siguientes errores técnicos:", + "Cron" : "Cron", + "Last cron job execution: %s." : "Última ejecución de tareas de cron: %s.", + "Last cron job execution: %s. Something seems wrong." : "Última ejecución de tareas de cron: %s. Algo parece estar mal. ", + "Cron was not executed yet!" : "¡Aún no han sido ejecutado el cron!", + "cron.php is registered at a webcron service to call cron.php every 15 minutes over http." : "cron.php está registrado en el servicio webcron para llamar a cron.php cada 15 minutos a través de HTTP.", + "Use system's cron service to call the cron.php file every 15 minutes." : "Usar el servicio de cron del sistema para llamar el archivo cron.php cada 15 minutos.", + "To run this you need the PHP posix extension. See {linkstart}PHP documentation{linkend} for more details." : "Para correr esto necesitas la extensión posix de PHP. Por favor consulta la {linkstart}documentación de PHP{linkend} para más detalles. ", + "Allow username autocompletion in share dialog. If this is disabled the full username needs to be entered." : "Permitir auto-completar el nombre de usuario en la ventana de diálogo. Si esta opción está deshabilitada, el nombre de usuario completo debe ser ingresado.", + "Uninstall app" : "Desinstalar la aplicación", + "Hey there,<br><br>just letting you know that you now have a %s account.<br><br>Your username: <strong>%s</strong><br>Access it: <strong><a href=\"%s\">%s</a></strong><br><br>" : "Hola,<br><br> sólo queremos informarte que ahora tienes una cuenta %s.<br><br> Tu usuario es: <strong>%s</strong> <br>Ingresa a ella: <strong><a href=\"%s\">%s</a></strong><br><br>", + "Cheers!" : "¡Saludos!", + "Hey there,\n\njust letting you know that you now have a %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Hola,\n\nsólo queremos informarte que ahora tienes una cuenta %s.\n\nTu usuario es: %s\n\nIngresa a ella: %s\n", + "For password recovery and notifications" : "Para recuperación de contraseña y notificaciones", + "Your website" : "Tu sitio web", + "Your Twitter handle" : "Tu cuenta de Twitter", + "Get the apps to sync your files" : "Obten las aplicaciones para sincronizar tus archivos", + "Desktop client" : "Cliente de escritorio", + "Android app" : "Aplicación android", + "iOS app" : "Aplicación iOS", + "If you want to support the project {contributeopen}join development{linkclose} or {contributeopen}spread the word{linkclose}!" : "¡Si deseas apoyar al proyecto {contributeopen} únete al desarrollo{linkclose} o {contributeopen} pasa la voz {linkclose}!", + "Show First Run Wizard again" : "Mostrar nuevamente el Asistente de Ejecución Inicial", + "Passcodes that give an app or device permissions to access your account." : "Los códigos de seguridad que le dan permisos a la aplicación o dispositivo para accesar a tu cuenta. ", + "Name" : "Nombre", + "Follow us on Google Plus!" : "¡Sígueos en Google Plus!", + "Like our facebook page!" : "¡Dale un me gusta a nuestra página de facebook!", + "Subscribe to our twitter channel!" : "¡Suscríbete a nuestro canal de twitter!", + "Subscribe to our news feed!" : "¡Suscríbete a nuestra fuente de noticias!", + "Subscribe to our newsletter!" : "¡Suscríbete a nuestro boletín!", + "Show last log in" : "Mostrar el último inicio de sesión", + "Group name" : "Nombre del grupo", + "You have now an %s account, you can add, protect, and share your data." : "Ahora tienes una cuenta %s, puedes agregar, proteger y compartir tus datos. ", + "Verifying" : "Verificando", + "It's important for the security and performance of your instance that everything is configured correctly. To help you with that we are doing some automatic checks. Please see the Tips & Ticks section and the documentation for more information." : "Es importante para la seguridad y desempeño de su instancia que todo esté configurado correctamente. Para ayudarlo con esto, estamos haciendo algunas verficaciones automáticas. Por favor consulta la sección de Consejos & Trucos de la documentación para más información. ", + "The PHP module 'fileinfo' is missing. We strongly recommend to enable this module to get best results with MIME type detection." : "El modulo PHP 'fileinfo' no ha sido encontrado. Te recomendamos ámpliamente que habilites este módulo para obtener los mejores resultados en la detección de tipos MIME.", + "Web, desktop, mobile clients and app specific passwords that currently have access to your account." : "A continuación se presenta un listado de las sesiones, dispositivos y eventos que se han presentado en tu cuenta. ", + "Here you can generate individual passwords for apps so you don’t have to give out your password. You can revoke them individually too." : "Aquí puedes generar contraseñas individuales para las aplicaciones para que no tengas que dar tu contraseña. También puedes revocalras individualmente. ", + "Follow us on Google+!" : "¡Síguenos en Google+!", + "Follow us on Twitter!" : "¡Síguenos en Twitter!", + "Check out our blog!" : "¡Visita nuestro blog!" +},"pluralForm" :"nplurals=2; plural=(n != 1);" +}
\ No newline at end of file diff --git a/settings/l10n/ru.js b/settings/l10n/ru.js index 8f09c657bf1..330cc78f8c0 100644 --- a/settings/l10n/ru.js +++ b/settings/l10n/ru.js @@ -1,16 +1,16 @@ OC.L10N.register( "settings", { - "{actor} changed your password" : "{actor} сменил ваш пароль", + "{actor} changed your password" : "{actor} сменил(а) ваш пароль", "You changed your password" : "Вы изменили свой пароль", "Your password was reset by an administrator" : "Ваш пароль был сброшен администратором", - "{actor} changed your email address" : "{actor} сменил ваш адрес электронной почты", + "{actor} changed your email address" : "{actor} сменил(а) ваш адрес электронной почты", "You changed your email address" : "Вы изменили свой адрес электронной почты", "Your email address was changed by an administrator" : "Ваш адрес электронной почты был изменён администратором", "Security" : "Безопасность", "You successfully logged in using two-factor authentication (%1$s)" : "Вы успешно вошли в систему используя двухфакторную аутентификацию (%1$s)", "A login attempt using two-factor authentication failed (%1$s)" : "Сбой при попытке входа с использованием двухфакторной аутентификации (%1$s)", - "Your <strong>password</strong> or <strong>email</strong> was modified" : "Вашr <strong>пароль</strong> или <strong>адрес электронной почты</strong> были изменены", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Ваш <strong>пароль</strong> или <strong>адрес электронной почты</strong> были изменены", "Your apps" : "Ваши приложения", "Updates" : "Обновления", "Enabled apps" : "Активные приложения", @@ -64,11 +64,11 @@ OC.L10N.register( "Password changed for %s" : "Пароль изменён для %s", "If you did not request this, please contact an administrator." : "В случае, если вы не запрашивали это действие, свяжитесь с администратором.", "%1$s changed your email address on %2$s." : "%1$s изменил ваш адрес электронной почты на сервере %2$s.", - "Your email address on %s was changed." : "Ваш адрес электронной почты на сервере %s был изменён.", + "Your email address on %s was changed." : "На сервере %s был изменён адрес электронной почты Вашей учётной записи.", "Your email address on %s was changed by an administrator." : "Ваш адрес электронной почты на сервере %s был изменён администратором.", "Email address for %1$s changed on %2$s" : "Адрес электронной почты %1$s изменён на %2$s", - "Email address changed for %s" : "Адрес эл.почты был изменен для %s.", - "The new email address is %s" : "Новый адрес эл.почты теперь %s", + "Email address changed for %s" : "Изменён адрес электронной почты пользователя %s.", + "The new email address is %s" : "Новый адрес электронной почты: %s.", "Your %s account was created" : "Была создана ваша учётная запись %s ", "Welcome aboard" : "Добро пожаловать", "Welcome aboard %s" : "Добро пожаловать, %s!", diff --git a/settings/l10n/ru.json b/settings/l10n/ru.json index 036f4264fb3..3ef3052a9ac 100644 --- a/settings/l10n/ru.json +++ b/settings/l10n/ru.json @@ -1,14 +1,14 @@ { "translations": { - "{actor} changed your password" : "{actor} сменил ваш пароль", + "{actor} changed your password" : "{actor} сменил(а) ваш пароль", "You changed your password" : "Вы изменили свой пароль", "Your password was reset by an administrator" : "Ваш пароль был сброшен администратором", - "{actor} changed your email address" : "{actor} сменил ваш адрес электронной почты", + "{actor} changed your email address" : "{actor} сменил(а) ваш адрес электронной почты", "You changed your email address" : "Вы изменили свой адрес электронной почты", "Your email address was changed by an administrator" : "Ваш адрес электронной почты был изменён администратором", "Security" : "Безопасность", "You successfully logged in using two-factor authentication (%1$s)" : "Вы успешно вошли в систему используя двухфакторную аутентификацию (%1$s)", "A login attempt using two-factor authentication failed (%1$s)" : "Сбой при попытке входа с использованием двухфакторной аутентификации (%1$s)", - "Your <strong>password</strong> or <strong>email</strong> was modified" : "Вашr <strong>пароль</strong> или <strong>адрес электронной почты</strong> были изменены", + "Your <strong>password</strong> or <strong>email</strong> was modified" : "Ваш <strong>пароль</strong> или <strong>адрес электронной почты</strong> были изменены", "Your apps" : "Ваши приложения", "Updates" : "Обновления", "Enabled apps" : "Активные приложения", @@ -62,11 +62,11 @@ "Password changed for %s" : "Пароль изменён для %s", "If you did not request this, please contact an administrator." : "В случае, если вы не запрашивали это действие, свяжитесь с администратором.", "%1$s changed your email address on %2$s." : "%1$s изменил ваш адрес электронной почты на сервере %2$s.", - "Your email address on %s was changed." : "Ваш адрес электронной почты на сервере %s был изменён.", + "Your email address on %s was changed." : "На сервере %s был изменён адрес электронной почты Вашей учётной записи.", "Your email address on %s was changed by an administrator." : "Ваш адрес электронной почты на сервере %s был изменён администратором.", "Email address for %1$s changed on %2$s" : "Адрес электронной почты %1$s изменён на %2$s", - "Email address changed for %s" : "Адрес эл.почты был изменен для %s.", - "The new email address is %s" : "Новый адрес эл.почты теперь %s", + "Email address changed for %s" : "Изменён адрес электронной почты пользователя %s.", + "The new email address is %s" : "Новый адрес электронной почты: %s.", "Your %s account was created" : "Была создана ваша учётная запись %s ", "Welcome aboard" : "Добро пожаловать", "Welcome aboard %s" : "Добро пожаловать, %s!", diff --git a/settings/routes.php b/settings/routes.php index 12da950ed2f..ecf68791a27 100644 --- a/settings/routes.php +++ b/settings/routes.php @@ -2,18 +2,20 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> + * @author Bjoern Schiessle <bjoern@schiessle.org> * @author Björn Schießle <bjoern@schiessle.org> - * @author Christopher Schäpers <kondou@ts.unde.re> * @author Christoph Wurst <christoph@owncloud.com> * @author Frank Karlitschek <frank@karlitschek.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Raghu Nayyar <me@iraghu.com> * @author Robin Appelman <robin@icewind.nl> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Thomas Pulzer <t.pulzer@kniel.de> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 diff --git a/settings/users.php b/settings/users.php index 2d949cb618c..20b9e21d58e 100644 --- a/settings/users.php +++ b/settings/users.php @@ -4,20 +4,19 @@ * * @author Arthur Schiwon <blizzz@arthur-schiwon.de> * @author Bart Visscher <bartv@thisnet.nl> - * @author Björn Schießle <bjoern@schiessle.org> * @author Clark Tomlinson <fallen013@gmail.com> * @author Daniel Molkentin <daniel@molkentin.de> - * @author Georg Ehrke <georg@owncloud.com> + * @author Georg Ehrke <oc.list@georgehrke.com> * @author Jakob Sack <mail@jakobsack.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> * @author Lukas Reschke <lukas@statuscode.ch> * @author Morris Jobke <hey@morrisjobke.de> * @author Robin Appelman <robin@icewind.nl> - * @author Robin McCorkell <robin@mccorkell.me.uk> * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Stephan Peijnik <speijnik@anexia-it.com> * @author Thomas Müller <thomas.mueller@tmit.eu> + * @author Thomas Pulzer <t.pulzer@kniel.de> * * @license AGPL-3.0 * diff --git a/status.php b/status.php index 293d843c6d6..f97c4410cc8 100644 --- a/status.php +++ b/status.php @@ -7,7 +7,9 @@ * @author Frank Karlitschek <frank@karlitschek.de> * @author Joas Schilling <coding@schilljs.com> * @author Jörn Friedrich Dreyer <jfd@butonic.de> + * @author Kristof Provost <github@sigsegv.be> * @author Lukas Reschke <lukas@statuscode.ch> + * @author martin.mattel@diemattels.at <martin.mattel@diemattels.at> * @author Masaki Kawabata Neto <masaki.kawabata@gmail.com> * @author Morris Jobke <hey@morrisjobke.de> * diff --git a/tests/lib/L10N/L10nTest.php b/tests/lib/L10N/L10nTest.php index 6d662efee23..703aa9e227c 100644 --- a/tests/lib/L10N/L10nTest.php +++ b/tests/lib/L10N/L10nTest.php @@ -164,4 +164,9 @@ class L10nTest extends TestCase { $l = \OC::$server->getL10N('lib', 'de'); $this->assertEquals('de', $l->getLanguageCode()); } + + public function testWeekdayName() { + $l = \OC::$server->getL10N('lib', 'de'); + $this->assertEquals('Mo.', $l->l('weekdayName', new \DateTime('2017-11-6'), ['width' => 'abbreviated'])); + } } diff --git a/version.php b/version.php index 1ae5b87effe..8222977fb49 100644 --- a/version.php +++ b/version.php @@ -2,9 +2,12 @@ /** * @copyright Copyright (c) 2016, ownCloud, Inc. * + * @author Christoph Wurst <christoph@owncloud.com> * @author Frank Karlitschek <frank@karlitschek.de> * @author Joas Schilling <coding@schilljs.com> * @author Lukas Reschke <lukas@statuscode.ch> + * @author Morris Jobke <hey@morrisjobke.de> + * @author Roeland Jago Douma <roeland@famdouma.nl> * @author Vincent Petry <pvince81@owncloud.com> * * @license AGPL-3.0 |