Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/circles.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVinicius Cubas Brand <viniciuscb@gmail.com>2017-10-25 18:38:13 +0300
committerVinicius Cubas Brand <viniciuscb@gmail.com>2017-10-25 18:38:13 +0300
commita7458c3e73f468198a6725d0b29683ea40e908d4 (patch)
treec761ac7fcd15139efccfc297e80ed2ff3014b608
parent200422b2ffe2bd5b6014f42c5296ce808c9a96f5 (diff)
parent6e34dea0c8fe0b2e9cd9f07ec85923b7c8097db4 (diff)
Merge branch 'master' into circles-files-panel
-rw-r--r--CHANGELOG.md43
-rw-r--r--Makefile2
-rw-r--r--appinfo/database.xml3
-rw-r--r--appinfo/info.xml17
-rw-r--r--js/admin.js3
-rw-r--r--l10n/ca.js81
-rw-r--r--l10n/ca.json81
-rw-r--r--l10n/cs.js33
-rw-r--r--l10n/cs.json33
-rw-r--r--l10n/da.js122
-rw-r--r--l10n/da.json120
-rw-r--r--l10n/de.js20
-rw-r--r--l10n/de.json20
-rw-r--r--l10n/de_DE.js14
-rw-r--r--l10n/de_DE.json14
-rw-r--r--l10n/el.js3
-rw-r--r--l10n/el.json3
-rw-r--r--l10n/en_GB.js2
-rw-r--r--l10n/en_GB.json2
-rw-r--r--l10n/es.js2
-rw-r--r--l10n/es.json2
-rw-r--r--l10n/es_CO.js268
-rw-r--r--l10n/es_CO.json266
-rw-r--r--l10n/es_MX.js2
-rw-r--r--l10n/es_MX.json2
-rw-r--r--l10n/fi.js59
-rw-r--r--l10n/fi.json59
-rw-r--r--l10n/fr.js2
-rw-r--r--l10n/fr.json2
-rw-r--r--l10n/hu.js193
-rw-r--r--l10n/hu.json191
-rw-r--r--l10n/is.js2
-rw-r--r--l10n/is.json2
-rw-r--r--l10n/it.js2
-rw-r--r--l10n/it.json2
-rw-r--r--l10n/lt_LT.js98
-rw-r--r--l10n/lt_LT.json96
-rw-r--r--l10n/nb.js2
-rw-r--r--l10n/nb.json2
-rw-r--r--l10n/nl.js10
-rw-r--r--l10n/nl.json10
-rw-r--r--l10n/pl.js2
-rw-r--r--l10n/pl.json2
-rw-r--r--l10n/pt_BR.js2
-rw-r--r--l10n/pt_BR.json2
-rw-r--r--l10n/ru.js13
-rw-r--r--l10n/ru.json13
-rw-r--r--l10n/sk.js7
-rw-r--r--l10n/sk.json7
-rw-r--r--l10n/sq.js2
-rw-r--r--l10n/sq.json2
-rw-r--r--l10n/sr.js268
-rw-r--r--l10n/sr.json266
-rw-r--r--l10n/sv.js6
-rw-r--r--l10n/sv.json6
-rw-r--r--l10n/tr.js2
-rw-r--r--l10n/tr.json2
-rw-r--r--l10n/zh_CN.js150
-rw-r--r--l10n/zh_CN.json150
-rw-r--r--lib/Activity/Provider.php24
-rw-r--r--lib/Activity/ProviderSubjectMember.php2
-rw-r--r--lib/Api/Sharees.php13
-rw-r--r--lib/Api/v1/Circles.php55
-rw-r--r--lib/Api/v1/ShotgunCircles.php79
-rw-r--r--lib/Circles/FileSharingBroadcaster.php3
-rw-r--r--lib/Collaboration/v1/CollaboratorSearchPlugin.php82
-rw-r--r--lib/Command/Clean.php132
-rw-r--r--lib/Command/FixUniqueId.php148
-rw-r--r--lib/Command/Groups.php153
-rw-r--r--lib/Controller/CirclesController.php2
-rw-r--r--lib/Controller/NavigationController.php5
-rw-r--r--lib/Db/CircleProviderRequestBuilder.php2
-rw-r--r--lib/Db/CirclesRequest.php100
-rw-r--r--lib/Db/CirclesRequestBuilder.php115
-rw-r--r--lib/Db/CoreRequestBuilder.php35
-rw-r--r--lib/Db/MembersRequest.php62
-rw-r--r--lib/Db/MembersRequestBuilder.php23
-rw-r--r--lib/Db/SharingFrameRequest.php129
-rw-r--r--lib/Db/SharingFrameRequestBuilder.php145
-rw-r--r--lib/Events/UserEvents.php17
-rw-r--r--lib/Exceptions/CommandMissingArgumentException.php34
-rw-r--r--lib/Migration/SetMemberTypeToDefault.php52
-rw-r--r--lib/Migration/UpdateShareTimeToTimestamp.php2
-rw-r--r--lib/Migration/UsingShortenUniqueIdInsteadOfCircleId.php15
-rw-r--r--lib/Model/SharingFrame.php4
-rw-r--r--lib/Service/CirclesService.php91
-rw-r--r--lib/Service/ConfigService.php36
-rw-r--r--lib/Service/EventsService.php13
-rw-r--r--lib/Service/MembersService.php2
-rw-r--r--lib/Service/MiscService.php2
-rw-r--r--lib/Service/SharingFrameService.php65
-rw-r--r--lib/ShareByCircleProvider.php2
92 files changed, 4034 insertions, 402 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 64355085..e3d80fef 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,49 @@
# Changelog
All notable changes to this project will be documented in this file.
+## 0.13.4
+
+- bugfixes.
+
+
+## 0.13.0
+
+- Feature: Circles Async is now available on every shares rendering the UX a lot smoother.
+- Feature: The stability of Circles Async is testable from the Admin Interface.
+- Feature: mail address can be added as a member of a Circle.
+- Feature: contact can be added as a member of a Circle.
+- Feature: When sharing a file to a Circle, all non-local member (Mail address or Contact) will receive a link to the shared files by mail.
+- Feature: the older Admin of a Circle becomes Owner if current Owner's account deleted. If the Circle has no Admin, the Circle is deleted.
+- api: Circles::getSharesFromCircle()/ShotgunCircles::getSharesFromCircle() returns SharingFrame[]
+- Fix: Unexpected behaviour when an the account of a circle owner is removed from the cloud
+- Code: Automatic DI
+- Code: Compatibility NC13 collaboration search
+- New Command: ./occ circles:clean
+- API: The app will dispatch some events (by Vinicius Cubas Brand <viniciuscb@gmail.com>)
+
+
+ \OCA\Circles::onCircleCreation
+ \OCA\Circles::onCircleDestruction
+ \OCA\Circles::onMemberNew
+ \OCA\Circles::onMemberInvited
+ \OCA\Circles::onMemberRequesting
+ \OCA\Circles::onMemberLeaving
+ \OCA\Circles::onMemberLevel
+ \OCA\Circles::onMemberOwner
+ \OCA\Circles::onGroupLink
+ \OCA\Circles::onGroupUnlink
+ \OCA\Circles::onGroupLevel
+ \OCA\Circles::onLinkRequestSent
+ \OCA\Circles::onLinkRequestReceived
+ \OCA\Circles::onLinkRequestRejected
+ \OCA\Circles::onLinkRequestCanceled
+ \OCA\Circles::onLinkRequestAccepted
+ \OCA\Circles::onLinkRequestAccepting
+ \OCA\Circles::onLinkUp
+ \OCA\Circles::onLinkDown
+ \OCA\Circles::onLinkRemove
+ \OCA\Circles::onSettingsChange
+
## 0.12.4
diff --git a/Makefile b/Makefile
index 558be287..3ace390e 100644
--- a/Makefile
+++ b/Makefile
@@ -7,7 +7,7 @@ source_dir=$(build_dir)/source
sign_dir=$(build_dir)/sign
package_name=$(app_name)
cert_dir=$(HOME)/.nextcloud/certificates
-version+=0.12.4
+version+=0.13.4
all: appstore
diff --git a/appinfo/database.xml b/appinfo/database.xml
index b6be8035..a80f14f0 100644
--- a/appinfo/database.xml
+++ b/appinfo/database.xml
@@ -303,7 +303,7 @@
<field>
<name>author</name>
<type>text</type>
- <length>32</length>
+ <length>64</length>
<notnull>true</notnull>
</field>
@@ -312,6 +312,7 @@
<type>text</type>
<length>128</length>
<notnull>false</notnull>
+ <default>null</default>
</field>
<field>
diff --git a/appinfo/info.xml b/appinfo/info.xml
index 51bbbba3..502667e0 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -23,7 +23,7 @@ Users won't be able to find this Circle using Nextcloud search engine.
]]>
</description>
- <version>0.12.5</version>
+ <version>0.13.4</version>
<licence>agpl</licence>
<author>Maxence Lange</author>
<documentation>
@@ -34,8 +34,7 @@ Users won't be able to find this Circle using Nextcloud search engine.
<website>https://github.com/nextcloud/circles</website>
<bugs>https://github.com/nextcloud/circles/issues</bugs>
<repository>https://github.com/nextcloud/circles.git</repository>
- <screenshot>https://raw.githubusercontent.com/nextcloud/circles/master/screenshots/0.12.0.png
- </screenshot>
+ <screenshot>https://raw.githubusercontent.com/nextcloud/circles/master/screenshots/0.12.0.png</screenshot>
<dependencies>
<nextcloud min-version="12" max-version="13"/>
</dependencies>
@@ -49,6 +48,12 @@ Users won't be able to find this Circle using Nextcloud search engine.
</post-migration>
</repair-steps>
+ <commands>
+ <command>OCA\Circles\Command\Clean</command>
+ <!--<command>OCA\Circles\Command\Groups</command>-->
+ <command>OCA\Circles\Command\FixUniqueId</command>
+ </commands>
+
<activity>
<settings>
<setting>OCA\Circles\Activity\SettingAsModerator</setting>
@@ -61,4 +66,10 @@ Users won't be able to find this Circle using Nextcloud search engine.
<provider>OCA\Circles\Activity\Provider</provider>
</providers>
</activity>
+
+ <collaboration>
+ <plugins>
+ <plugin type="collaborator-search" share-type="SHARE_TYPE_CIRCLE">OCA\Circles\Collaboration\v1\CollaboratorSearchPlugin</plugin>
+ </plugins>
+ </collaboration>
</info>
diff --git a/js/admin.js b/js/admin.js
index b7586e4b..f4866237 100644
--- a/js/admin.js
+++ b/js/admin.js
@@ -27,6 +27,7 @@
/** global: OC */
var elements = {
+ test_timer: 4000,
test_async_start: null,
test_async_reset: null,
test_async_wait: null,
@@ -173,7 +174,7 @@ $(document).ready(function () {
var timerTestAsync = setInterval(function () {
self.updateTestAsync();
- }, 4000);
+ }, elements.test_timer);
})
diff --git a/l10n/ca.js b/l10n/ca.js
index cd8b651e..b0c4e80b 100644
--- a/l10n/ca.js
+++ b/l10n/ca.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"circles",
{
+ "Circles is using its own way to async heavy process." : "Els cercles utilitzen la seva pròpia manera d'asinkar el procés pesat.",
"Are you sure you want to transfer your ownership?" : "Estàs segur que vols transferir la teva propietat?",
"This action is irreversible" : "Aquesta acció és irreversible",
"Personal circle" : "Cercle personal",
@@ -37,6 +38,8 @@ OC.L10N.register(
"Please confirm" : "Si us plau confirma",
"Are you sure you want to leave this circle?" : "Estàs segur que vols deixar aquest cercle?",
"Are you sure you want to delete this circle?" : "Estàs segur que vols suprimir aquest cercle?",
+ "Mail Address" : "Adreça de correu",
+ "Contact" : "Contacte",
"Kick this member" : "Expulsa aquest membre",
"Accept the request" : "Accepta la petició",
"Dismiss the request" : "Cancel·la la petició",
@@ -68,12 +71,20 @@ OC.L10N.register(
"the link to <b>{remote}</b> is now up and running." : "l'enllaç a <b>{remote}</b> és correcte i està funcionant.",
"The status of the link could not be updated" : "No s'ha pogut actualitzar l'estat de l'enllaç",
"The status of the link has been updated" : "S'ha actualitzat l'estat de l'enllaç",
+ "Local User" : "Usuari local",
+ "Local Group" : "Grup local",
"The member '{name}' was added to the circle" : "S'ha inclòs '{name}' al cercle",
"The member '{name}' could not be added to the circle" : "El membre '{name}' no s'ha pogut afegir al cercle",
"The email address '{email}' was added to the circle" : "L'adreça '{email}' s'ha afegit al cercle",
"The email address '{email}' could not be added to the circle" : "L'adreça '{email}' no s'ha pogut afegir al cercle",
+ "The contact '{contact}' was added to the circle" : "El contacte \"{contact}\" s'ha afegit al cercle",
+ "The contact '{contact}' could not be added to the circle" : "El contacte '{contact}' no s'ha pogut afegir al cercle",
"The member '{name}' was invited to the circle" : "S'ha convidat '{name}' al cercle",
"The member '{name}' could not be invited to the circle" : "No s'ha pogut convidar '{name}' al cercle",
+ "Members of the group '{name}' were added to the circle" : "S'han afegit membres del grup '{name}' al cercle",
+ "Members of the group '{name}' could not be added to the circle" : "Els membres del grup '{name}' no s'han pogut afegir al cercle",
+ "Members of the group '{name}' were invited to the circle" : "Els membres del grup '{name}' es van convidar al cercle",
+ "Members of the group '{name}' could not be invited to the circle" : "No s'han pogut convidar membres del grup '{name}' al cercle",
"The member '{name}' was removed from the circle" : "S'ha tret '{name}' del cercle",
"The member '{name}' could not be removed from the circle" : "No s'ha pogut treure '{name}' del cercle",
"Member '{name}' updated" : "El membre '{name}' s'ha actualitzat",
@@ -85,28 +96,98 @@ OC.L10N.register(
"{author} created the circle {circle}" : "{author} ha creat el cercle {circle}",
"You deleted {circle}" : "Heu esborrat {circle}",
"{author} deleted {circle}" : "{author} ha esborrat {circle}",
+ "You linked {group} to {circle}" : "Heu enllaçat {group} a {circle}",
+ "{group} has been linked to {circle} by {author}" : "{group} s'ha enllaçat a {circle} per {author}",
+ "You unlinked {group} from {circle}" : "Has deesenllaçat {group} de {circle}",
+ "{group} has been unlinked from {circle} by {author}" : "{group} s'ha desenllaçat de {circle} per {author}",
+ "You changed the level of the linked group {group} in {circle} to %1$s" : "Heu canviat el nivell del grup {group} enllaçat a {circle} a%1$s",
+ "{author} changed the level of the linked group {group} in {circle} to %1$s" : "{author} ha canviat el nivell del grup {group} enllaçat en {circle} a%1$s",
+ "You sent a request to link {circle} with {remote}" : "Heu enviat una sol·licitud per enllaçar {circle} amb {remote}",
+ "{author} sent a request to link {circle} with {remote}" : "{author} ha enviat una sol·licitud per enllaçar {circle} amb {remote}",
+ "{remote} requested a link with {circle}" : "{remote} ha sol·licitat un enllaç amb {circle}",
+ "The request to link {circle} with {remote} has been rejected" : "S'ha rebutjat la sol·licitud d'enllaç {circle} amb {remote}",
+ "The request to link {remote} with {circle} has been canceled remotely" : "La sol·licitud d'enllaçar {remote} amb {circle} s'ha cancel·lat de manera remota",
+ "The request to link {circle} with {remote} has been accepted" : "S'ha acceptat la sol·licitud d'enllaç {circle} amb {remote}",
+ "You dismissed the request to link {remote} with {circle}" : "Heu rebutjat la sol·licitud per enllaçar {remote} amb {circle}",
+ "{author} dismissed the request to link {remote} with {circle}" : "{author} ha rebutjat la sol·licitud d'enllaç {remote} amb {circle}",
+ "You canceled the request to link {circle} with {remote}" : "Heu cancel·lat la sol·licitud per enllaçar {circle} amb {remote}",
+ "{author} canceled the request to link {circle} with {remote}" : "{author} ha cancel·lat la sol·licitud per enllaçar {circle} amb {remote}",
+ "You accepted the request to link {remote} with {circle}" : "Heu acceptat la sol·licitud d'enllaç {remote} amb {circle}",
+ "{author} accepted the request to link {remote} with {circle}" : "{author} ha acceptat la sol·licitud d'enllaç {remote} amb {circle}",
+ "A link between {circle} and {remote} is now up and running" : "Ara hi ha un enllaç entre {circle} i {remote}",
+ "The link between {circle} and {remote} has been shutdown remotely" : "L'enllaç entre {circle} i {remote} s'ha tancat de manera remota",
+ "You closed the link between {circle} and {remote}" : "Heu tancat l'enllaç entre {circle} i {remote}",
+ "{author} closed the link between {circle} and {remote}" : "{author} ha tancat l'enllaç entre {circle} i {remote}",
"You joined {circle}" : "T'has unit a {circle}",
"{member} joined {circle}" : "{member} s'ha unit a {circle}",
+ "You accepted the invitation to join {circle}" : "Heu acceptat la invitació per unir-se a {circle}",
+ "{member} accepted the invitation to join {circle}" : "{member} ha acceptat la invitació per unir-se a {circle}",
"You added {member} as member to {circle}" : "Has afegit {member} com a membre de {circle}",
+ "You have been added as member to {circle} by {author}" : "Heu afegit com a membre a {circle} per {author}",
+ "{member} has been added as member to {circle} by {author}" : "{member} s'ha afegit com a membre a {circle} per {author}",
+ "You added {external} to {circle}" : "Heu afegit {extern} a {cercle}",
+ "{external} has been added to {circle} by {author}" : "S'ha afegit {external} a {circle} per {author}",
+ "You accepted {member}'s request to join {circle}" : "Heu acceptat la sol·licitud de {member} per unir-se a {circle}",
+ "Your request to join {circle} has been accepted by {author}" : "La vostra sol·licitud d'unir {circle} ha estat acceptada per {author}",
+ "{member}'s request to join {circle} has been accepted by {author}" : "La sol·licitud d'{member} per unir-se a {circle} ha estat acceptada per {author}",
"You left {circle}" : "Has deixat {circle}",
"{member} left {circle}" : "{member} ha deixat {circle}",
+ "You declined the invitation to join {circle}" : "Has rebutjat la invitació per unir-te a {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} ha rebutjat una invitació per unir-se a {circle}",
+ "You cancelled your request to join {circle}" : "Has cancel·lat la teva sol·licitud per unir-te a {circle}",
+ "{member} cancelled his request to join {circle}" : "{member} ha cancel·lat la seva sol·licitud per unir-se a {circle}",
"You removed {member} from {circle}" : "Has tret {member} de {circle}",
+ "You have been removed from {circle} by {author}" : "Heu eliminat {circle} per {author}",
+ "{member} has been removed from {circle} by {author}" : "{member} s'ha eliminat de {circle} per {author}",
+ "You removed {external} from {circle}" : "Heu eliminat {extern} de {circle}",
+ "{external} has been removed from {circle} by {author}" : "{external} s'ha eliminat de {circle} per {author}",
+ "You cancelled {member}'s invitation to join {circle}" : "Has cancel·lat la invitació de {member} per unir-te a {circle}",
+ "Your invitation to join {circle} has been cancelled by {author}" : "La vostra invitació per unir-se a {circle} ha estat cancel·lada per {author}",
+ "{author} cancelled {member}'s invitation to join {circle}" : "{author} ha cancel·lat la invitació {member} per unir-se a {circle}",
+ "You dismissed {member}'s request to join {circle}" : "Heu rebutjat la sol·licitud de {member} per unir-se a {circle}",
+ "Your request to join {circle} has been dismissed by {author}" : "La vostra sol·licitud d'unir-se a {circle} ha estat rebutjada per {author}",
+ "{member}'s request to join {circle} has been dismissed by {author}" : "La sol·licitud d'{member} per unir-se a {circle} ha estat rebutjada per {author}",
+ "You invited {member} to join {circle}" : "Has convidat {member} a unir-te a {circle}",
+ "You have been invited to join {circle} by {author}" : "Has estat convidat a unir-te a {circle} per {author}",
+ "{member} has been invited to join {circle} by {author}" : "{member} ha estat convidat a unir {circle} per {author}",
"You changed {member}'s level in {circle} to %1$s" : "Has canviat el nivell de {member} al cercle {circle} a %1$s",
+ "{author} changed your level in {circle} to %1$s" : "{author} ha canviat el vostre nivell a {circle} a%1$s",
+ "{author} changed {member}'s level in {circle} to %1$s" : "{author} ha canviat el nivell {member} a {circle} a%1$s",
+ "You sent a request to join {circle}" : "Heu enviat una sol·licitud per unir-se a {circle}",
+ "{member} sent a request to join {circle}" : "{member} ha enviat una sol·licitud per unir-se a {circle}",
"You are the new owner of {circle}" : "Ets el nou propietari de {circle}",
+ "{member} is the new owner of {circle}" : "{member} és el nou propietari de {circle}",
+ "On events happening in a <strong>Circle</strong> you belong" : "Sobre esdeveniments que succeeixen en un <strong> Cercle</strong> que pertanys",
+ "Any important event in a <strong>Circle</strong> you are moderating" : "Qualsevol esdeveniment important d'un <strong>Cercle</strong> que esteu moderant",
+ "%s shared »%s« with you." : "%s compartit »%s« amb tu.",
+ "%s shared »%s« with '%s'." : "%scompartit »%s« amb '%s'.",
+ "%s on %s" : "%son %s",
+ "Click the button below to open it." : "Feu clic al botó següent per obrir-lo.",
+ "Open »%s«" : "Obre »%s«",
"The name of your circle must contain at least 3 characters" : "El nom del teu cercle ha de tenir com a mínim 3 caràcters",
+ "The name of your circle must start with an alpha-numerical character" : "El nom del vostre cercle ha de començar amb un caràcter alfanumèric",
+ "Linked Groups are not allowed on this Nextcloud" : "Els grups vinculats no estan permesos en aquest Nextcloud",
"Federated circles are not allowed on this Nextcloud" : "Els cercles federats no estan permesos en aquest Nextcloud",
"Circle not found" : "No s'ha trobat el cercle",
"A circle with that name exists" : "Un cercle amb aquest nom ja existeix",
+ "You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "No podeu utilitzar la Aplicació de cercles fins que l'administrador hagi permès com a mínim un tipus de cercles",
+ "Federated link not found" : "No s'ha trobat l'enllaç federat",
"This member does not exist" : "Aquest membre no existeix",
"This user is already a member of the circle" : "Aquest usuari ja és membre del cercle",
+ "Sharing Frame does not exist" : "El Marc compartit no existeix",
+ "This feature is not available for personal circles" : "Aquesta funció no està disponible per als cercles personals",
+ "The circle is not Federated" : "El cercle no està federat",
"You cannot join this circle" : "No et pots unira aquest cercle",
"This member is not a moderator" : "Aquest membre no és moderador",
"Not enough privileges" : "No tens prou privilegis",
"This member is not the owner of the circle" : "Aquest membre no és el propietari del cercle",
"This member is not admin of the circle" : "Aquest membre no és administrador del cercle",
"This member is the owner of the circle" : "Aquest membre és el propietari del cercle",
+ "Level cannot be changed for that type of member" : "No es pot canviar el nivell d'aquest tipus de membre",
"You are already a member of this circle" : "Ja ets membre d'aquest cercle",
"You have been blocked from this circle" : "Has estat bloquejat d'aquest cercle",
+ "User is already a member of this circle" : "L'usuari ja és membre d'aquest cercle",
+ "User is already invited into this circle" : "L'usuari ja està convidat a aquest cercle",
"You need a specify a type of circle" : "Has d'especificar un tipus de cercle",
"You cannot create this type of circle" : "No pots crear aquest tipus de cercle",
"You cannot display this type of circle" : "No pots mostrar aquest tipus de cercle",
diff --git a/l10n/ca.json b/l10n/ca.json
index dd598fa5..70a72c2d 100644
--- a/l10n/ca.json
+++ b/l10n/ca.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Circles is using its own way to async heavy process." : "Els cercles utilitzen la seva pròpia manera d'asinkar el procés pesat.",
"Are you sure you want to transfer your ownership?" : "Estàs segur que vols transferir la teva propietat?",
"This action is irreversible" : "Aquesta acció és irreversible",
"Personal circle" : "Cercle personal",
@@ -35,6 +36,8 @@
"Please confirm" : "Si us plau confirma",
"Are you sure you want to leave this circle?" : "Estàs segur que vols deixar aquest cercle?",
"Are you sure you want to delete this circle?" : "Estàs segur que vols suprimir aquest cercle?",
+ "Mail Address" : "Adreça de correu",
+ "Contact" : "Contacte",
"Kick this member" : "Expulsa aquest membre",
"Accept the request" : "Accepta la petició",
"Dismiss the request" : "Cancel·la la petició",
@@ -66,12 +69,20 @@
"the link to <b>{remote}</b> is now up and running." : "l'enllaç a <b>{remote}</b> és correcte i està funcionant.",
"The status of the link could not be updated" : "No s'ha pogut actualitzar l'estat de l'enllaç",
"The status of the link has been updated" : "S'ha actualitzat l'estat de l'enllaç",
+ "Local User" : "Usuari local",
+ "Local Group" : "Grup local",
"The member '{name}' was added to the circle" : "S'ha inclòs '{name}' al cercle",
"The member '{name}' could not be added to the circle" : "El membre '{name}' no s'ha pogut afegir al cercle",
"The email address '{email}' was added to the circle" : "L'adreça '{email}' s'ha afegit al cercle",
"The email address '{email}' could not be added to the circle" : "L'adreça '{email}' no s'ha pogut afegir al cercle",
+ "The contact '{contact}' was added to the circle" : "El contacte \"{contact}\" s'ha afegit al cercle",
+ "The contact '{contact}' could not be added to the circle" : "El contacte '{contact}' no s'ha pogut afegir al cercle",
"The member '{name}' was invited to the circle" : "S'ha convidat '{name}' al cercle",
"The member '{name}' could not be invited to the circle" : "No s'ha pogut convidar '{name}' al cercle",
+ "Members of the group '{name}' were added to the circle" : "S'han afegit membres del grup '{name}' al cercle",
+ "Members of the group '{name}' could not be added to the circle" : "Els membres del grup '{name}' no s'han pogut afegir al cercle",
+ "Members of the group '{name}' were invited to the circle" : "Els membres del grup '{name}' es van convidar al cercle",
+ "Members of the group '{name}' could not be invited to the circle" : "No s'han pogut convidar membres del grup '{name}' al cercle",
"The member '{name}' was removed from the circle" : "S'ha tret '{name}' del cercle",
"The member '{name}' could not be removed from the circle" : "No s'ha pogut treure '{name}' del cercle",
"Member '{name}' updated" : "El membre '{name}' s'ha actualitzat",
@@ -83,28 +94,98 @@
"{author} created the circle {circle}" : "{author} ha creat el cercle {circle}",
"You deleted {circle}" : "Heu esborrat {circle}",
"{author} deleted {circle}" : "{author} ha esborrat {circle}",
+ "You linked {group} to {circle}" : "Heu enllaçat {group} a {circle}",
+ "{group} has been linked to {circle} by {author}" : "{group} s'ha enllaçat a {circle} per {author}",
+ "You unlinked {group} from {circle}" : "Has deesenllaçat {group} de {circle}",
+ "{group} has been unlinked from {circle} by {author}" : "{group} s'ha desenllaçat de {circle} per {author}",
+ "You changed the level of the linked group {group} in {circle} to %1$s" : "Heu canviat el nivell del grup {group} enllaçat a {circle} a%1$s",
+ "{author} changed the level of the linked group {group} in {circle} to %1$s" : "{author} ha canviat el nivell del grup {group} enllaçat en {circle} a%1$s",
+ "You sent a request to link {circle} with {remote}" : "Heu enviat una sol·licitud per enllaçar {circle} amb {remote}",
+ "{author} sent a request to link {circle} with {remote}" : "{author} ha enviat una sol·licitud per enllaçar {circle} amb {remote}",
+ "{remote} requested a link with {circle}" : "{remote} ha sol·licitat un enllaç amb {circle}",
+ "The request to link {circle} with {remote} has been rejected" : "S'ha rebutjat la sol·licitud d'enllaç {circle} amb {remote}",
+ "The request to link {remote} with {circle} has been canceled remotely" : "La sol·licitud d'enllaçar {remote} amb {circle} s'ha cancel·lat de manera remota",
+ "The request to link {circle} with {remote} has been accepted" : "S'ha acceptat la sol·licitud d'enllaç {circle} amb {remote}",
+ "You dismissed the request to link {remote} with {circle}" : "Heu rebutjat la sol·licitud per enllaçar {remote} amb {circle}",
+ "{author} dismissed the request to link {remote} with {circle}" : "{author} ha rebutjat la sol·licitud d'enllaç {remote} amb {circle}",
+ "You canceled the request to link {circle} with {remote}" : "Heu cancel·lat la sol·licitud per enllaçar {circle} amb {remote}",
+ "{author} canceled the request to link {circle} with {remote}" : "{author} ha cancel·lat la sol·licitud per enllaçar {circle} amb {remote}",
+ "You accepted the request to link {remote} with {circle}" : "Heu acceptat la sol·licitud d'enllaç {remote} amb {circle}",
+ "{author} accepted the request to link {remote} with {circle}" : "{author} ha acceptat la sol·licitud d'enllaç {remote} amb {circle}",
+ "A link between {circle} and {remote} is now up and running" : "Ara hi ha un enllaç entre {circle} i {remote}",
+ "The link between {circle} and {remote} has been shutdown remotely" : "L'enllaç entre {circle} i {remote} s'ha tancat de manera remota",
+ "You closed the link between {circle} and {remote}" : "Heu tancat l'enllaç entre {circle} i {remote}",
+ "{author} closed the link between {circle} and {remote}" : "{author} ha tancat l'enllaç entre {circle} i {remote}",
"You joined {circle}" : "T'has unit a {circle}",
"{member} joined {circle}" : "{member} s'ha unit a {circle}",
+ "You accepted the invitation to join {circle}" : "Heu acceptat la invitació per unir-se a {circle}",
+ "{member} accepted the invitation to join {circle}" : "{member} ha acceptat la invitació per unir-se a {circle}",
"You added {member} as member to {circle}" : "Has afegit {member} com a membre de {circle}",
+ "You have been added as member to {circle} by {author}" : "Heu afegit com a membre a {circle} per {author}",
+ "{member} has been added as member to {circle} by {author}" : "{member} s'ha afegit com a membre a {circle} per {author}",
+ "You added {external} to {circle}" : "Heu afegit {extern} a {cercle}",
+ "{external} has been added to {circle} by {author}" : "S'ha afegit {external} a {circle} per {author}",
+ "You accepted {member}'s request to join {circle}" : "Heu acceptat la sol·licitud de {member} per unir-se a {circle}",
+ "Your request to join {circle} has been accepted by {author}" : "La vostra sol·licitud d'unir {circle} ha estat acceptada per {author}",
+ "{member}'s request to join {circle} has been accepted by {author}" : "La sol·licitud d'{member} per unir-se a {circle} ha estat acceptada per {author}",
"You left {circle}" : "Has deixat {circle}",
"{member} left {circle}" : "{member} ha deixat {circle}",
+ "You declined the invitation to join {circle}" : "Has rebutjat la invitació per unir-te a {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} ha rebutjat una invitació per unir-se a {circle}",
+ "You cancelled your request to join {circle}" : "Has cancel·lat la teva sol·licitud per unir-te a {circle}",
+ "{member} cancelled his request to join {circle}" : "{member} ha cancel·lat la seva sol·licitud per unir-se a {circle}",
"You removed {member} from {circle}" : "Has tret {member} de {circle}",
+ "You have been removed from {circle} by {author}" : "Heu eliminat {circle} per {author}",
+ "{member} has been removed from {circle} by {author}" : "{member} s'ha eliminat de {circle} per {author}",
+ "You removed {external} from {circle}" : "Heu eliminat {extern} de {circle}",
+ "{external} has been removed from {circle} by {author}" : "{external} s'ha eliminat de {circle} per {author}",
+ "You cancelled {member}'s invitation to join {circle}" : "Has cancel·lat la invitació de {member} per unir-te a {circle}",
+ "Your invitation to join {circle} has been cancelled by {author}" : "La vostra invitació per unir-se a {circle} ha estat cancel·lada per {author}",
+ "{author} cancelled {member}'s invitation to join {circle}" : "{author} ha cancel·lat la invitació {member} per unir-se a {circle}",
+ "You dismissed {member}'s request to join {circle}" : "Heu rebutjat la sol·licitud de {member} per unir-se a {circle}",
+ "Your request to join {circle} has been dismissed by {author}" : "La vostra sol·licitud d'unir-se a {circle} ha estat rebutjada per {author}",
+ "{member}'s request to join {circle} has been dismissed by {author}" : "La sol·licitud d'{member} per unir-se a {circle} ha estat rebutjada per {author}",
+ "You invited {member} to join {circle}" : "Has convidat {member} a unir-te a {circle}",
+ "You have been invited to join {circle} by {author}" : "Has estat convidat a unir-te a {circle} per {author}",
+ "{member} has been invited to join {circle} by {author}" : "{member} ha estat convidat a unir {circle} per {author}",
"You changed {member}'s level in {circle} to %1$s" : "Has canviat el nivell de {member} al cercle {circle} a %1$s",
+ "{author} changed your level in {circle} to %1$s" : "{author} ha canviat el vostre nivell a {circle} a%1$s",
+ "{author} changed {member}'s level in {circle} to %1$s" : "{author} ha canviat el nivell {member} a {circle} a%1$s",
+ "You sent a request to join {circle}" : "Heu enviat una sol·licitud per unir-se a {circle}",
+ "{member} sent a request to join {circle}" : "{member} ha enviat una sol·licitud per unir-se a {circle}",
"You are the new owner of {circle}" : "Ets el nou propietari de {circle}",
+ "{member} is the new owner of {circle}" : "{member} és el nou propietari de {circle}",
+ "On events happening in a <strong>Circle</strong> you belong" : "Sobre esdeveniments que succeeixen en un <strong> Cercle</strong> que pertanys",
+ "Any important event in a <strong>Circle</strong> you are moderating" : "Qualsevol esdeveniment important d'un <strong>Cercle</strong> que esteu moderant",
+ "%s shared »%s« with you." : "%s compartit »%s« amb tu.",
+ "%s shared »%s« with '%s'." : "%scompartit »%s« amb '%s'.",
+ "%s on %s" : "%son %s",
+ "Click the button below to open it." : "Feu clic al botó següent per obrir-lo.",
+ "Open »%s«" : "Obre »%s«",
"The name of your circle must contain at least 3 characters" : "El nom del teu cercle ha de tenir com a mínim 3 caràcters",
+ "The name of your circle must start with an alpha-numerical character" : "El nom del vostre cercle ha de començar amb un caràcter alfanumèric",
+ "Linked Groups are not allowed on this Nextcloud" : "Els grups vinculats no estan permesos en aquest Nextcloud",
"Federated circles are not allowed on this Nextcloud" : "Els cercles federats no estan permesos en aquest Nextcloud",
"Circle not found" : "No s'ha trobat el cercle",
"A circle with that name exists" : "Un cercle amb aquest nom ja existeix",
+ "You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "No podeu utilitzar la Aplicació de cercles fins que l'administrador hagi permès com a mínim un tipus de cercles",
+ "Federated link not found" : "No s'ha trobat l'enllaç federat",
"This member does not exist" : "Aquest membre no existeix",
"This user is already a member of the circle" : "Aquest usuari ja és membre del cercle",
+ "Sharing Frame does not exist" : "El Marc compartit no existeix",
+ "This feature is not available for personal circles" : "Aquesta funció no està disponible per als cercles personals",
+ "The circle is not Federated" : "El cercle no està federat",
"You cannot join this circle" : "No et pots unira aquest cercle",
"This member is not a moderator" : "Aquest membre no és moderador",
"Not enough privileges" : "No tens prou privilegis",
"This member is not the owner of the circle" : "Aquest membre no és el propietari del cercle",
"This member is not admin of the circle" : "Aquest membre no és administrador del cercle",
"This member is the owner of the circle" : "Aquest membre és el propietari del cercle",
+ "Level cannot be changed for that type of member" : "No es pot canviar el nivell d'aquest tipus de membre",
"You are already a member of this circle" : "Ja ets membre d'aquest cercle",
"You have been blocked from this circle" : "Has estat bloquejat d'aquest cercle",
+ "User is already a member of this circle" : "L'usuari ja és membre d'aquest cercle",
+ "User is already invited into this circle" : "L'usuari ja està convidat a aquest cercle",
"You need a specify a type of circle" : "Has d'especificar un tipus de cercle",
"You cannot create this type of circle" : "No pots crear aquest tipus de cercle",
"You cannot display this type of circle" : "No pots mostrar aquest tipus de cercle",
diff --git a/l10n/cs.js b/l10n/cs.js
index 53f33dcb..870689ae 100644
--- a/l10n/cs.js
+++ b/l10n/cs.js
@@ -4,6 +4,8 @@ OC.L10N.register(
"Are you sure you want to transfer your ownership?" : "Opravdu chcete převést vlastnictví?",
"This action is irreversible" : "Tato akce je nevratná",
"Personal circle" : "Osobní kruh",
+ "Secret circle" : "Soukromý kruh",
+ "Closed circle" : "Uzavřený kruh",
"Public circle" : "Veřejný kruh",
"Circle" : "Kruh",
"Link Removed" : "Propojení odstraněno",
@@ -14,8 +16,12 @@ OC.L10N.register(
"Link requested" : "Zažádáno o propojení",
"Link up" : "Propojení dostupné",
"Personal Circle" : "Osobní kruh",
+ "Secret Circle" : "Soukromý kruh",
+ "Closed Circle" : "Uzavřený kruh",
"Public Circle" : "Veřejný kruh",
"Personal" : "Osobní",
+ "Secret" : "Soukromý",
+ "Closed" : "Uzavřený",
"Public" : "Veřejný",
"Not a member" : "Není člen",
"Member" : "Člen",
@@ -31,6 +37,8 @@ OC.L10N.register(
"Please confirm" : "Prosím potvrďte",
"Are you sure you want to leave this circle?" : "Opravdu chcete opustit tento kruh?",
"Are you sure you want to delete this circle?" : "Opravdu chcete smazat tento kruh?",
+ "Mail Address" : "Emailová adresa",
+ "Contact" : "Kontakt",
"Kick this member" : "Vykopnout tohoto člena",
"Accept the request" : "Přijmout požadavek",
"Dismiss the request" : "Skrýt požadavek",
@@ -62,8 +70,20 @@ OC.L10N.register(
"the link to <b>{remote}</b> is now up and running." : "Vazba na <b>{remote}</b> byla navázána a je funkční.",
"The status of the link could not be updated" : "Stav propojení nemohl být aktualizován",
"The status of the link has been updated" : "Stav propojení byl aktualizován",
+ "Local User" : "Místní uživatel",
+ "Local Group" : "Místní skupina",
+ "The member '{name}' was added to the circle" : "Člen '{member}' byl přidán do kruhu",
"The member '{name}' could not be added to the circle" : "Člena '{name}' se nepodařilo přidat do kruhu.",
+ "The email address '{email}' was added to the circle" : "E-mailová adresa '{email}' byla přidána ke kruhu",
+ "The email address '{email}' could not be added to the circle" : "E-mailová adresa '{email}' nemohla být přidána ke kruhu",
+ "The contact '{contact}' was added to the circle" : "Kontakt '{contact}' byl přidán ke kruhu",
+ "The contact '{contact}' could not be added to the circle" : "Kontakt '{contact}' nemohl být přidán ke kruhu",
+ "The member '{name}' was invited to the circle" : "Člen '{name}' byl pozván ke kruhu",
"The member '{name}' could not be invited to the circle" : "Člen '{name}' nemohl být pozván do kruhu",
+ "Members of the group '{name}' were added to the circle" : "Členové skupiny '{name}' byli přidáni ke kruhu",
+ "Members of the group '{name}' could not be added to the circle" : "Členové skupiny '{name}' nemohli být přidáni ke kruhu",
+ "Members of the group '{name}' were invited to the circle" : "Členové skupiny '{name}' byli pozváni ke kruhu",
+ "Members of the group '{name}' could not be invited to the circle" : "Členové skupiny '{name}' nemohli být pozváni ke kruhu",
"The member '{name}' was removed from the circle" : "Člen '{name}' byl odstraněn z kruhu",
"The member '{name}' could not be removed from the circle" : "Člen '{name}' nemohl být odstraněn z kruhu",
"Member '{name}' updated" : "Člen '{name}' aktualizován",
@@ -76,6 +96,11 @@ OC.L10N.register(
"You deleted {circle}" : "Smazali jste kruh {circle}",
"{author} deleted {circle}" : "{author} smazal {circle}",
"You linked {group} to {circle}" : "Připojil(a) jste {group} k {circle}",
+ "{group} has been linked to {circle} by {author}" : "{group} byla připojena k {circle} uživatelem {author}",
+ "You unlinked {group} from {circle}" : "Odpojil(a) jste {group} od {circle}",
+ "{group} has been unlinked from {circle} by {author}" : "skupina {group} byla odpojena od {circle} uživatelem {author}",
+ "You changed the level of the linked group {group} in {circle} to %1$s" : "Změnil(a) jste úroveň připojené skupiny {group} v {circle} na %1$s",
+ "{author} changed the level of the linked group {group} in {circle} to %1$s" : "{author} změnil(a) úroveň připojené skupiny {group} v {circle} na %1$s",
"{remote} requested a link with {circle}" : "{remote} požádal o spojení s {circle}",
"You joined {circle}" : "Připojili jste se k {circle}",
"{member} joined {circle}" : "{member} se připojil k {circle}",
@@ -90,16 +115,18 @@ OC.L10N.register(
"{member} is the new owner of {circle}" : "{member} je novým vlastníkem kruhu {circle}",
"On events happening in a <strong>Circle</strong> you belong" : "Události v <strong>Kruzích</strong>, kterých jste členem",
"Any important event in a <strong>Circle</strong> you are moderating" : "Důležité události v <strong>Kruhu</strong>, který moderujete",
+ "Click the button below to open it." : "Pro otevření klikněte na tlačítko níže.",
+ "Open »%s«" : "Otevřít »%s«",
"The name of your circle must contain at least 3 characters" : "Jméno vašeho kruhu musí obsahovat alespoň 3 znaky",
"Linked Groups are not allowed on this Nextcloud" : "Propojené skupiny nejsou v této instanci Nextcloudu povoleny",
"Federated circles are not allowed on this Nextcloud" : "Propojené kruhy nejsou v této instance Nextcloudu povoleny",
"Circle not found" : "Kruh nenalezen",
"A circle with that name exists" : "Kruh s tímto názvem již existuje",
- "Sharing Frame does not exist" : "Rámec sdílení neexistuje",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Aplikaci Kruhy nelze použít dokud administrátor nepovolí vytváření alespoň jednoho typu kruhů",
"Federated link not found" : "Sdružené spojení nenalezeno",
"This member does not exist" : "Tento člen neexistuje",
"This user is already a member of the circle" : "Tento uživatel je již členem tohoto kruhu",
+ "Sharing Frame does not exist" : "Rámec sdílení neexistuje",
"This feature is not available for personal circles" : "Tato funkce není pro osobní kruhy dostupná",
"The circle is not Federated" : "Kruh není sdružen",
"You cannot join this circle" : "K tomuto kruhu se nemůžete připojit",
@@ -124,12 +151,16 @@ OC.L10N.register(
"You cannot edit level in a personal circle" : "Úroveň osobního kruhu nelze upravit",
"Group cannot be set as owner of a circle" : "Skupina nemůže být nastavena jako vlastník kruhu",
"This user does not exist" : "Vybraný uživatel neexisstuje",
+ "Could not find share" : "Nelze nalézt sdílení",
"Create a new circle" : "Vytvořit nový kruh",
"Select a type of circle" : "Vyberte typ kruhu",
"Create a personal circle" : "Vytvořit osobní kruh",
"Create a public circle" : "Vytvořit veřejný kruh",
"A personal circle is a list of users known only to the owner." : "Osobní kruh je seznam uživatelů, který znáte pouze vy.",
"A public circle is an open group visible to anyone willing to join." : "Veřejný kruh je otevřená skupina viditelná všem, kteří by se chtěli připojit.",
+ "Personal circles" : "Osobní kruhy",
+ "Public circles" : "Veřejné kruhy",
+ "Secret circles" : "Tajné kruhy",
"All circles" : "Všechny kruhy",
"Search circles" : "Prohledat kruhy",
"No filter" : "Žádný filtr",
diff --git a/l10n/cs.json b/l10n/cs.json
index 86570ace..57fb1369 100644
--- a/l10n/cs.json
+++ b/l10n/cs.json
@@ -2,6 +2,8 @@
"Are you sure you want to transfer your ownership?" : "Opravdu chcete převést vlastnictví?",
"This action is irreversible" : "Tato akce je nevratná",
"Personal circle" : "Osobní kruh",
+ "Secret circle" : "Soukromý kruh",
+ "Closed circle" : "Uzavřený kruh",
"Public circle" : "Veřejný kruh",
"Circle" : "Kruh",
"Link Removed" : "Propojení odstraněno",
@@ -12,8 +14,12 @@
"Link requested" : "Zažádáno o propojení",
"Link up" : "Propojení dostupné",
"Personal Circle" : "Osobní kruh",
+ "Secret Circle" : "Soukromý kruh",
+ "Closed Circle" : "Uzavřený kruh",
"Public Circle" : "Veřejný kruh",
"Personal" : "Osobní",
+ "Secret" : "Soukromý",
+ "Closed" : "Uzavřený",
"Public" : "Veřejný",
"Not a member" : "Není člen",
"Member" : "Člen",
@@ -29,6 +35,8 @@
"Please confirm" : "Prosím potvrďte",
"Are you sure you want to leave this circle?" : "Opravdu chcete opustit tento kruh?",
"Are you sure you want to delete this circle?" : "Opravdu chcete smazat tento kruh?",
+ "Mail Address" : "Emailová adresa",
+ "Contact" : "Kontakt",
"Kick this member" : "Vykopnout tohoto člena",
"Accept the request" : "Přijmout požadavek",
"Dismiss the request" : "Skrýt požadavek",
@@ -60,8 +68,20 @@
"the link to <b>{remote}</b> is now up and running." : "Vazba na <b>{remote}</b> byla navázána a je funkční.",
"The status of the link could not be updated" : "Stav propojení nemohl být aktualizován",
"The status of the link has been updated" : "Stav propojení byl aktualizován",
+ "Local User" : "Místní uživatel",
+ "Local Group" : "Místní skupina",
+ "The member '{name}' was added to the circle" : "Člen '{member}' byl přidán do kruhu",
"The member '{name}' could not be added to the circle" : "Člena '{name}' se nepodařilo přidat do kruhu.",
+ "The email address '{email}' was added to the circle" : "E-mailová adresa '{email}' byla přidána ke kruhu",
+ "The email address '{email}' could not be added to the circle" : "E-mailová adresa '{email}' nemohla být přidána ke kruhu",
+ "The contact '{contact}' was added to the circle" : "Kontakt '{contact}' byl přidán ke kruhu",
+ "The contact '{contact}' could not be added to the circle" : "Kontakt '{contact}' nemohl být přidán ke kruhu",
+ "The member '{name}' was invited to the circle" : "Člen '{name}' byl pozván ke kruhu",
"The member '{name}' could not be invited to the circle" : "Člen '{name}' nemohl být pozván do kruhu",
+ "Members of the group '{name}' were added to the circle" : "Členové skupiny '{name}' byli přidáni ke kruhu",
+ "Members of the group '{name}' could not be added to the circle" : "Členové skupiny '{name}' nemohli být přidáni ke kruhu",
+ "Members of the group '{name}' were invited to the circle" : "Členové skupiny '{name}' byli pozváni ke kruhu",
+ "Members of the group '{name}' could not be invited to the circle" : "Členové skupiny '{name}' nemohli být pozváni ke kruhu",
"The member '{name}' was removed from the circle" : "Člen '{name}' byl odstraněn z kruhu",
"The member '{name}' could not be removed from the circle" : "Člen '{name}' nemohl být odstraněn z kruhu",
"Member '{name}' updated" : "Člen '{name}' aktualizován",
@@ -74,6 +94,11 @@
"You deleted {circle}" : "Smazali jste kruh {circle}",
"{author} deleted {circle}" : "{author} smazal {circle}",
"You linked {group} to {circle}" : "Připojil(a) jste {group} k {circle}",
+ "{group} has been linked to {circle} by {author}" : "{group} byla připojena k {circle} uživatelem {author}",
+ "You unlinked {group} from {circle}" : "Odpojil(a) jste {group} od {circle}",
+ "{group} has been unlinked from {circle} by {author}" : "skupina {group} byla odpojena od {circle} uživatelem {author}",
+ "You changed the level of the linked group {group} in {circle} to %1$s" : "Změnil(a) jste úroveň připojené skupiny {group} v {circle} na %1$s",
+ "{author} changed the level of the linked group {group} in {circle} to %1$s" : "{author} změnil(a) úroveň připojené skupiny {group} v {circle} na %1$s",
"{remote} requested a link with {circle}" : "{remote} požádal o spojení s {circle}",
"You joined {circle}" : "Připojili jste se k {circle}",
"{member} joined {circle}" : "{member} se připojil k {circle}",
@@ -88,16 +113,18 @@
"{member} is the new owner of {circle}" : "{member} je novým vlastníkem kruhu {circle}",
"On events happening in a <strong>Circle</strong> you belong" : "Události v <strong>Kruzích</strong>, kterých jste členem",
"Any important event in a <strong>Circle</strong> you are moderating" : "Důležité události v <strong>Kruhu</strong>, který moderujete",
+ "Click the button below to open it." : "Pro otevření klikněte na tlačítko níže.",
+ "Open »%s«" : "Otevřít »%s«",
"The name of your circle must contain at least 3 characters" : "Jméno vašeho kruhu musí obsahovat alespoň 3 znaky",
"Linked Groups are not allowed on this Nextcloud" : "Propojené skupiny nejsou v této instanci Nextcloudu povoleny",
"Federated circles are not allowed on this Nextcloud" : "Propojené kruhy nejsou v této instance Nextcloudu povoleny",
"Circle not found" : "Kruh nenalezen",
"A circle with that name exists" : "Kruh s tímto názvem již existuje",
- "Sharing Frame does not exist" : "Rámec sdílení neexistuje",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Aplikaci Kruhy nelze použít dokud administrátor nepovolí vytváření alespoň jednoho typu kruhů",
"Federated link not found" : "Sdružené spojení nenalezeno",
"This member does not exist" : "Tento člen neexistuje",
"This user is already a member of the circle" : "Tento uživatel je již členem tohoto kruhu",
+ "Sharing Frame does not exist" : "Rámec sdílení neexistuje",
"This feature is not available for personal circles" : "Tato funkce není pro osobní kruhy dostupná",
"The circle is not Federated" : "Kruh není sdružen",
"You cannot join this circle" : "K tomuto kruhu se nemůžete připojit",
@@ -122,12 +149,16 @@
"You cannot edit level in a personal circle" : "Úroveň osobního kruhu nelze upravit",
"Group cannot be set as owner of a circle" : "Skupina nemůže být nastavena jako vlastník kruhu",
"This user does not exist" : "Vybraný uživatel neexisstuje",
+ "Could not find share" : "Nelze nalézt sdílení",
"Create a new circle" : "Vytvořit nový kruh",
"Select a type of circle" : "Vyberte typ kruhu",
"Create a personal circle" : "Vytvořit osobní kruh",
"Create a public circle" : "Vytvořit veřejný kruh",
"A personal circle is a list of users known only to the owner." : "Osobní kruh je seznam uživatelů, který znáte pouze vy.",
"A public circle is an open group visible to anyone willing to join." : "Veřejný kruh je otevřená skupina viditelná všem, kteří by se chtěli připojit.",
+ "Personal circles" : "Osobní kruhy",
+ "Public circles" : "Veřejné kruhy",
+ "Secret circles" : "Tajné kruhy",
"All circles" : "Všechny kruhy",
"Search circles" : "Prohledat kruhy",
"No filter" : "Žádný filtr",
diff --git a/l10n/da.js b/l10n/da.js
new file mode 100644
index 00000000..a1f4b91b
--- /dev/null
+++ b/l10n/da.js
@@ -0,0 +1,122 @@
+OC.L10N.register(
+ "circles",
+ {
+ "Are you sure you want to transfer your ownership?" : "Er du sikker på at du vil overføre dine ejerskab?",
+ "This action is irreversible" : "Denne handling kan ikke fortrydes",
+ "Personal circle" : "Person cirkel",
+ "Secret circle" : "Hemmelig cirkel",
+ "Closed circle" : "Lukket cirkel",
+ "Public circle" : "Offentlig cirkel",
+ "Circle" : "Cirkel",
+ "Link Removed" : "Link fjernet",
+ "Link down" : "Link nede",
+ "Request dismissed" : "Forespørgsel afvist",
+ "Request sent" : "Forespørgsel sendt",
+ "Link requested" : "Anmodet om link",
+ "Personal Circle" : "Personlig Cirkel",
+ "Secret Circle" : "Hemmelig cirkel",
+ "Closed Circle" : "Lukket cirkel",
+ "Public Circle" : "Offentlig Cirkel",
+ "Personal" : "Personlig",
+ "Secret" : "Hemmelig",
+ "Closed" : "Lukket",
+ "Public" : "Offentlig",
+ "Not a member" : "Ikke medlem",
+ "Member" : "Medlem",
+ "Moderator" : "Modeator",
+ "Admin" : "Admin",
+ "Owner" : "Ejer",
+ "Unknown" : "Ukendt",
+ "Invited" : "Inviteret",
+ "Requesting" : "Anmoder",
+ "Blocked" : "Blokeret",
+ "Kicked" : "Smidt ud",
+ "Please confirm" : "Bekræft venligst",
+ "Are you sure you want to leave this circle?" : "Er du sikker på at du vil forlade denne cirkel?",
+ "Are you sure you want to delete this circle?" : "Er du sikker på at du vil slette denne cirkel?",
+ "Mail Address" : "Email addresse",
+ "Contact" : "Kontakt",
+ "Kick this member" : "Fjern dette medlem",
+ "Accept the request" : "Accepter anmodning",
+ "Dismiss the request" : "Afvis anmodning",
+ "Unlink this group" : "Fjern gruppe",
+ "Remove this link" : "Fjern dette link",
+ "Cancel the link request" : "Avis link anmodningen",
+ "Accept the link request" : "Accepter link anmodningen",
+ "Reject the link request" : "Avis link anmodningen",
+ "Cannot join this circle" : "Kan ikke deltage i denne cirkel",
+ "no error message" : "ingen fejlbesked",
+ "You have joined this circle" : "Du har forbundet med cirklen",
+ "You have requested to join this circle" : "Du har efterspurgt en invitation til at forbinde med denne cirkel",
+ "You have left this circle" : "Du har forladt med cirklen",
+ "Cannot leave this circle" : "Kan ikke forlade denne cirkel",
+ "You have deleted this circle" : "Du har slettet denne cirkel",
+ "Cannot delete this circle" : "Kan ikke slette denne cirkel",
+ " {type} '{name}' created" : " {type} '{name}' oprettet",
+ " {type} '{name}' could not be created" : " {type} '{name}' kunne ikke oprettes",
+ "Issue while retrieving the details of this circle" : "Fejl under hentning af detaljer for denne cirkel",
+ "Issue while retrieving the list of circles" : "Fejl under hentning af listen med cirkler",
+ "Group '{name}' successfully added to the circle" : "Gruppen '{name}' er tilføjet til denne cirkel",
+ "Group '{name}' could not be added to the circle" : "Gruppen '{name}' kunne ikke tilføjes til denne cirkel",
+ "Group '{name}' updated" : "Gruppen '{name}' opdateret",
+ "Group '{name}' could not be updated" : "Gruppen '{name}' kunne ikke opdateres",
+ "Group '{name}' successfully removed from the circle" : "Det lykkedes at fjerne gruppen '{name}' fra cirklen",
+ "Local User" : "Lokal bruger",
+ "Local Group" : "Lokal gruppe",
+ "Circles" : "Cirkler",
+ "You left {circle}" : "Du forlod {circle}",
+ "{member} left {circle}" : "{member} forlod {circle}",
+ "You declined the invitation to join {circle}" : "Du har afvist en invitation om at forbinde med {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} afviste invitation om at forbinde med {circle}",
+ "This member does not exist" : "Dette medlem eksisterer ikke",
+ "This user is already a member of the circle" : "Denne bruger er allerede medlem af cirklen",
+ "You cannot join this circle" : "Du kan ikke forbinde med cirklen",
+ "This member is not a moderator" : "Dette medlem er ikke en moderator",
+ "This member is not the owner of the circle" : "Dette medlem ejer ikke cirklen",
+ "This member is the owner of the circle" : "Dette medlem ejer cirklen",
+ "You are already a member of this circle" : "Du er allerede medlem af cirklen",
+ "Trying to link a circle to itself" : "Prøver at linke cirklen til sig selv",
+ "This link exists already" : "Dette link eksisterer allerede",
+ "This group does not exist" : "Denne gruppe eksisterer ikke",
+ "This user does not exist" : "Brugeren eksisterer ikke ",
+ "Email format is not valid" : "Email format er ugyldigt",
+ "This contact is not available" : "Denne kontakt er ikke tilgængelig ",
+ "Could not find share" : "Kunne ikke finde deling",
+ "Create a new circle" : "Opret en ny cirkel",
+ "Select a type of circle" : "Vælg en cirkeltype",
+ "Create a personal circle" : "Opret en Personlig Cirkel",
+ "Create a public circle" : "Opret en Offentlig Cirkel",
+ "Create a closed circle" : "Opret en lukket cirkel",
+ "Create a secret circle" : "Opret en hemmelig cirkel",
+ "Personal circles" : "Personlig cirkel",
+ "Public circles" : "Offentlig cirkel",
+ "Closed circles" : "Lukket cirkel",
+ "Secret circles" : "Hemmelig cirkel",
+ "All circles" : "Alle Cirkler",
+ "Search circles" : "Søg cirkler",
+ "No filter" : "Ingen filter",
+ "Circles you belong to" : "Cirkler du er en del af",
+ "Circles you own" : "Cirkler du ejer",
+ "No circle selected" : "Ingen cirkel valgt",
+ "Pending invitation to join this circle" : "Ubesvaret invitation til at blive medlem af denne cirkel",
+ "Add a member" : "Tilføj et medlem",
+ "Join this circle" : "Bliv en del af denne cirkel",
+ "Delete circle" : "Slet cirkel",
+ "Edit circle" : "Rediger cirkel",
+ "Accept the invitation" : "Accepter invitationen",
+ "Decline the invitation" : "Afvis invitationenen",
+ "Leave this circle" : "Forlad denne cirkel",
+ "Link to a circle" : "Link til en cirkel",
+ "Return to menu" : "Gå tilbage til menu",
+ "Username" : "Brugernavn",
+ "Level" : "Niveau",
+ "Status" : "Status",
+ "Joined" : "Forbind",
+ "Group Name" : "Gruppenavn",
+ "Link" : "Link",
+ "Linked" : "Linket",
+ "Allow Federated Links" : "Tillad federarede links",
+ "Save settings" : "Gem indstillinger",
+ "Allow Federated Circles:" : "Tillad federarede cirkler:"
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/l10n/da.json b/l10n/da.json
new file mode 100644
index 00000000..05e2d9fb
--- /dev/null
+++ b/l10n/da.json
@@ -0,0 +1,120 @@
+{ "translations": {
+ "Are you sure you want to transfer your ownership?" : "Er du sikker på at du vil overføre dine ejerskab?",
+ "This action is irreversible" : "Denne handling kan ikke fortrydes",
+ "Personal circle" : "Person cirkel",
+ "Secret circle" : "Hemmelig cirkel",
+ "Closed circle" : "Lukket cirkel",
+ "Public circle" : "Offentlig cirkel",
+ "Circle" : "Cirkel",
+ "Link Removed" : "Link fjernet",
+ "Link down" : "Link nede",
+ "Request dismissed" : "Forespørgsel afvist",
+ "Request sent" : "Forespørgsel sendt",
+ "Link requested" : "Anmodet om link",
+ "Personal Circle" : "Personlig Cirkel",
+ "Secret Circle" : "Hemmelig cirkel",
+ "Closed Circle" : "Lukket cirkel",
+ "Public Circle" : "Offentlig Cirkel",
+ "Personal" : "Personlig",
+ "Secret" : "Hemmelig",
+ "Closed" : "Lukket",
+ "Public" : "Offentlig",
+ "Not a member" : "Ikke medlem",
+ "Member" : "Medlem",
+ "Moderator" : "Modeator",
+ "Admin" : "Admin",
+ "Owner" : "Ejer",
+ "Unknown" : "Ukendt",
+ "Invited" : "Inviteret",
+ "Requesting" : "Anmoder",
+ "Blocked" : "Blokeret",
+ "Kicked" : "Smidt ud",
+ "Please confirm" : "Bekræft venligst",
+ "Are you sure you want to leave this circle?" : "Er du sikker på at du vil forlade denne cirkel?",
+ "Are you sure you want to delete this circle?" : "Er du sikker på at du vil slette denne cirkel?",
+ "Mail Address" : "Email addresse",
+ "Contact" : "Kontakt",
+ "Kick this member" : "Fjern dette medlem",
+ "Accept the request" : "Accepter anmodning",
+ "Dismiss the request" : "Afvis anmodning",
+ "Unlink this group" : "Fjern gruppe",
+ "Remove this link" : "Fjern dette link",
+ "Cancel the link request" : "Avis link anmodningen",
+ "Accept the link request" : "Accepter link anmodningen",
+ "Reject the link request" : "Avis link anmodningen",
+ "Cannot join this circle" : "Kan ikke deltage i denne cirkel",
+ "no error message" : "ingen fejlbesked",
+ "You have joined this circle" : "Du har forbundet med cirklen",
+ "You have requested to join this circle" : "Du har efterspurgt en invitation til at forbinde med denne cirkel",
+ "You have left this circle" : "Du har forladt med cirklen",
+ "Cannot leave this circle" : "Kan ikke forlade denne cirkel",
+ "You have deleted this circle" : "Du har slettet denne cirkel",
+ "Cannot delete this circle" : "Kan ikke slette denne cirkel",
+ " {type} '{name}' created" : " {type} '{name}' oprettet",
+ " {type} '{name}' could not be created" : " {type} '{name}' kunne ikke oprettes",
+ "Issue while retrieving the details of this circle" : "Fejl under hentning af detaljer for denne cirkel",
+ "Issue while retrieving the list of circles" : "Fejl under hentning af listen med cirkler",
+ "Group '{name}' successfully added to the circle" : "Gruppen '{name}' er tilføjet til denne cirkel",
+ "Group '{name}' could not be added to the circle" : "Gruppen '{name}' kunne ikke tilføjes til denne cirkel",
+ "Group '{name}' updated" : "Gruppen '{name}' opdateret",
+ "Group '{name}' could not be updated" : "Gruppen '{name}' kunne ikke opdateres",
+ "Group '{name}' successfully removed from the circle" : "Det lykkedes at fjerne gruppen '{name}' fra cirklen",
+ "Local User" : "Lokal bruger",
+ "Local Group" : "Lokal gruppe",
+ "Circles" : "Cirkler",
+ "You left {circle}" : "Du forlod {circle}",
+ "{member} left {circle}" : "{member} forlod {circle}",
+ "You declined the invitation to join {circle}" : "Du har afvist en invitation om at forbinde med {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} afviste invitation om at forbinde med {circle}",
+ "This member does not exist" : "Dette medlem eksisterer ikke",
+ "This user is already a member of the circle" : "Denne bruger er allerede medlem af cirklen",
+ "You cannot join this circle" : "Du kan ikke forbinde med cirklen",
+ "This member is not a moderator" : "Dette medlem er ikke en moderator",
+ "This member is not the owner of the circle" : "Dette medlem ejer ikke cirklen",
+ "This member is the owner of the circle" : "Dette medlem ejer cirklen",
+ "You are already a member of this circle" : "Du er allerede medlem af cirklen",
+ "Trying to link a circle to itself" : "Prøver at linke cirklen til sig selv",
+ "This link exists already" : "Dette link eksisterer allerede",
+ "This group does not exist" : "Denne gruppe eksisterer ikke",
+ "This user does not exist" : "Brugeren eksisterer ikke ",
+ "Email format is not valid" : "Email format er ugyldigt",
+ "This contact is not available" : "Denne kontakt er ikke tilgængelig ",
+ "Could not find share" : "Kunne ikke finde deling",
+ "Create a new circle" : "Opret en ny cirkel",
+ "Select a type of circle" : "Vælg en cirkeltype",
+ "Create a personal circle" : "Opret en Personlig Cirkel",
+ "Create a public circle" : "Opret en Offentlig Cirkel",
+ "Create a closed circle" : "Opret en lukket cirkel",
+ "Create a secret circle" : "Opret en hemmelig cirkel",
+ "Personal circles" : "Personlig cirkel",
+ "Public circles" : "Offentlig cirkel",
+ "Closed circles" : "Lukket cirkel",
+ "Secret circles" : "Hemmelig cirkel",
+ "All circles" : "Alle Cirkler",
+ "Search circles" : "Søg cirkler",
+ "No filter" : "Ingen filter",
+ "Circles you belong to" : "Cirkler du er en del af",
+ "Circles you own" : "Cirkler du ejer",
+ "No circle selected" : "Ingen cirkel valgt",
+ "Pending invitation to join this circle" : "Ubesvaret invitation til at blive medlem af denne cirkel",
+ "Add a member" : "Tilføj et medlem",
+ "Join this circle" : "Bliv en del af denne cirkel",
+ "Delete circle" : "Slet cirkel",
+ "Edit circle" : "Rediger cirkel",
+ "Accept the invitation" : "Accepter invitationen",
+ "Decline the invitation" : "Afvis invitationenen",
+ "Leave this circle" : "Forlad denne cirkel",
+ "Link to a circle" : "Link til en cirkel",
+ "Return to menu" : "Gå tilbage til menu",
+ "Username" : "Brugernavn",
+ "Level" : "Niveau",
+ "Status" : "Status",
+ "Joined" : "Forbind",
+ "Group Name" : "Gruppenavn",
+ "Link" : "Link",
+ "Linked" : "Linket",
+ "Allow Federated Links" : "Tillad federarede links",
+ "Save settings" : "Gem indstillinger",
+ "Allow Federated Circles:" : "Tillad federarede cirkler:"
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/l10n/de.js b/l10n/de.js
index 552f7a96..3aa1f407 100644
--- a/l10n/de.js
+++ b/l10n/de.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"circles",
{
- "Circles is using its own way to async heavy process." : "Kreise nutzt eigene Methoden zur zur asynchronen Synchronisation bei hoher Auslastung.",
+ "Circles is using its own way to async heavy process." : "Kreise nutzt eigene Methoden zur asynchronen Synchronisation bei hoher Auslastung.",
"Are you sure you want to transfer your ownership?" : "Möchtest Du wirklich Deine Besitzerrechte übertragen?",
"This action is irreversible" : "Dieser Vorgang kann nicht rückgängig gemacht werden",
"Personal circle" : "Persönlicher Kreis",
@@ -78,7 +78,7 @@ OC.L10N.register(
"The email address '{email}' was added to the circle" : "Die E-Mail-Adresse '{email}' wurde zum Kreis hinzugefügt",
"The email address '{email}' could not be added to the circle" : "Die E-Mail-Adresse '{email}' konnte dem Kreis nicht hinzugefügt werden ",
"The contact '{contact}' was added to the circle" : "Der Kontakt '{contact}' wurde dem Kreis hinzugefügt",
- "The contact '{contact}' could not be added to the circle" : "Der Kontakt '{contact}' komnte dem Kreis nicht hinzugefügt werden",
+ "The contact '{contact}' could not be added to the circle" : "Der Kontakt '{contact}' konnte dem Kreis nicht hinzugefügt werden",
"The member '{name}' was invited to the circle" : "Das Mitglied '{name}' wurde zum Kreis eingeladen",
"The member '{name}' could not be invited to the circle" : "Das Mitglied '{name}' konnte nicht zum Kreis eingeladen werden",
"Members of the group '{name}' were added to the circle" : "Mitglieder der Gruppe '{name}' wurden dem Kreis hinzugefügt",
@@ -170,12 +170,12 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Federated-Kreise sind auf dieser Nextcloud nicht zugelassen",
"Circle not found" : "Kreis nicht gefunden",
"A circle with that name exists" : "Ein Kreis mit diesem Namen existiert bereits",
- "Sharing Frame does not exist" : "Rahmen zum Teilen existiert nicht",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Du kannst die Kreise-App nicht verwenden, solange Dein Administrator nicht wenigstens einen Kreis-Typ zulässt",
"Federated link not found" : "Federated-Verknüpfung nicht gefunden",
"This member does not exist" : "Dieses Mitglied existiert nicht",
"This user is already a member of the circle" : "Dieser Benutzer ist bereits Mitglied dieses Kreises",
- "This feature is not available for personal circles" : "Diese Eigenschaft steht für persönliche Kreise nicht zur Verfügung",
+ "Sharing Frame does not exist" : "Rahmen zum Teilen existiert nicht",
+ "This feature is not available for personal circles" : "Diese Funktion steht für persönliche Kreise nicht zur Verfügung",
"The circle is not Federated" : "Der Kreis ist nicht Federated",
"You cannot join this circle" : "Du kannst diesem Kreis nicht beitreten",
"This member is not a moderator" : "Dieses Mitglied ist kein Moderator",
@@ -186,8 +186,8 @@ OC.L10N.register(
"Level cannot be changed for that type of member" : "Berechtigungsstufe kann für diesen Mitgliedstyp nicht geändert werden",
"You are already a member of this circle" : "Du bist bereits Mitglied dieses Kreises",
"You have been blocked from this circle" : "Du wurdest für diesen Kreis blockiert",
- "User is already a member of this circle" : "Nutzer ist bereits Mitglied dieses Kreises",
- "User is already invited into this circle" : "Nutzer wurde bereits zu diesem Kreis eingeladen",
+ "User is already a member of this circle" : "Benutzer ist bereits Mitglied dieses Kreises",
+ "User is already invited into this circle" : "Benutzer wurde bereits zu diesem Kreis eingeladen",
"You need a specify a type of circle" : "Du benötigst einen bestimmten Kreis-Typ",
"You cannot create this type of circle" : "Du kannst diese Art von Kreis nicht erstellen",
"You cannot display this type of circle" : "Du kannst diese Art von Kreis nicht anzeigen",
@@ -205,7 +205,7 @@ OC.L10N.register(
"Group cannot be set as owner of a circle" : "Eine Gruppe kann nicht Besitzer eines Kreises sein",
"This user does not exist" : "Dieser Nutzer existiert nicht",
"Email format is not valid" : "Das E-Mail-Format ist ungültig",
- "This contact is not available" : "Dieser Kontakt ist nicht vorhanden",
+ "This contact is not available" : "Dieser Kontakt ist nicht verfügbar",
"Could not find share" : "Freigabe konnte nicht gefunden werden",
"Create a new circle" : "Einen neuen Kreis erstellen.",
"Select a type of circle" : "Bitte Kreis-Typ wählen",
@@ -260,9 +260,9 @@ OC.L10N.register(
"initiate test of Circles Async" : "Initialisierung des Tests der asynchronen Synchronisation",
"reset test result" : "Testergebnisse zurücksetzen",
"Test is currently running. Please wait." : "Test wird durchgeführt. Bitte warten.",
- "Allow Group Linking:" : "Erlaube Gruppen-Verknüpfung:",
+ "Allow Group Linking:" : "Gruppenverknüpfung erlauben:",
"Groups can be linked to Circles." : "Gruppen können mit Kreisen verknüpft werden.",
- "Allow Federated Circles:" : "Erlaube Verknüpfung von externen Kreisen:",
- "Circles from different Nextclouds can be linked together." : "Kreise von externen Servern können verknüpft werden."
+ "Allow Federated Circles:" : "Federated-Kreise erlauben:",
+ "Circles from different Nextclouds can be linked together." : "Kreise aus verschiedenen Nextclouds können miteinander verknüpft werden."
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/de.json b/l10n/de.json
index 5215a41e..998a9bed 100644
--- a/l10n/de.json
+++ b/l10n/de.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Circles is using its own way to async heavy process." : "Kreise nutzt eigene Methoden zur zur asynchronen Synchronisation bei hoher Auslastung.",
+ "Circles is using its own way to async heavy process." : "Kreise nutzt eigene Methoden zur asynchronen Synchronisation bei hoher Auslastung.",
"Are you sure you want to transfer your ownership?" : "Möchtest Du wirklich Deine Besitzerrechte übertragen?",
"This action is irreversible" : "Dieser Vorgang kann nicht rückgängig gemacht werden",
"Personal circle" : "Persönlicher Kreis",
@@ -76,7 +76,7 @@
"The email address '{email}' was added to the circle" : "Die E-Mail-Adresse '{email}' wurde zum Kreis hinzugefügt",
"The email address '{email}' could not be added to the circle" : "Die E-Mail-Adresse '{email}' konnte dem Kreis nicht hinzugefügt werden ",
"The contact '{contact}' was added to the circle" : "Der Kontakt '{contact}' wurde dem Kreis hinzugefügt",
- "The contact '{contact}' could not be added to the circle" : "Der Kontakt '{contact}' komnte dem Kreis nicht hinzugefügt werden",
+ "The contact '{contact}' could not be added to the circle" : "Der Kontakt '{contact}' konnte dem Kreis nicht hinzugefügt werden",
"The member '{name}' was invited to the circle" : "Das Mitglied '{name}' wurde zum Kreis eingeladen",
"The member '{name}' could not be invited to the circle" : "Das Mitglied '{name}' konnte nicht zum Kreis eingeladen werden",
"Members of the group '{name}' were added to the circle" : "Mitglieder der Gruppe '{name}' wurden dem Kreis hinzugefügt",
@@ -168,12 +168,12 @@
"Federated circles are not allowed on this Nextcloud" : "Federated-Kreise sind auf dieser Nextcloud nicht zugelassen",
"Circle not found" : "Kreis nicht gefunden",
"A circle with that name exists" : "Ein Kreis mit diesem Namen existiert bereits",
- "Sharing Frame does not exist" : "Rahmen zum Teilen existiert nicht",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Du kannst die Kreise-App nicht verwenden, solange Dein Administrator nicht wenigstens einen Kreis-Typ zulässt",
"Federated link not found" : "Federated-Verknüpfung nicht gefunden",
"This member does not exist" : "Dieses Mitglied existiert nicht",
"This user is already a member of the circle" : "Dieser Benutzer ist bereits Mitglied dieses Kreises",
- "This feature is not available for personal circles" : "Diese Eigenschaft steht für persönliche Kreise nicht zur Verfügung",
+ "Sharing Frame does not exist" : "Rahmen zum Teilen existiert nicht",
+ "This feature is not available for personal circles" : "Diese Funktion steht für persönliche Kreise nicht zur Verfügung",
"The circle is not Federated" : "Der Kreis ist nicht Federated",
"You cannot join this circle" : "Du kannst diesem Kreis nicht beitreten",
"This member is not a moderator" : "Dieses Mitglied ist kein Moderator",
@@ -184,8 +184,8 @@
"Level cannot be changed for that type of member" : "Berechtigungsstufe kann für diesen Mitgliedstyp nicht geändert werden",
"You are already a member of this circle" : "Du bist bereits Mitglied dieses Kreises",
"You have been blocked from this circle" : "Du wurdest für diesen Kreis blockiert",
- "User is already a member of this circle" : "Nutzer ist bereits Mitglied dieses Kreises",
- "User is already invited into this circle" : "Nutzer wurde bereits zu diesem Kreis eingeladen",
+ "User is already a member of this circle" : "Benutzer ist bereits Mitglied dieses Kreises",
+ "User is already invited into this circle" : "Benutzer wurde bereits zu diesem Kreis eingeladen",
"You need a specify a type of circle" : "Du benötigst einen bestimmten Kreis-Typ",
"You cannot create this type of circle" : "Du kannst diese Art von Kreis nicht erstellen",
"You cannot display this type of circle" : "Du kannst diese Art von Kreis nicht anzeigen",
@@ -203,7 +203,7 @@
"Group cannot be set as owner of a circle" : "Eine Gruppe kann nicht Besitzer eines Kreises sein",
"This user does not exist" : "Dieser Nutzer existiert nicht",
"Email format is not valid" : "Das E-Mail-Format ist ungültig",
- "This contact is not available" : "Dieser Kontakt ist nicht vorhanden",
+ "This contact is not available" : "Dieser Kontakt ist nicht verfügbar",
"Could not find share" : "Freigabe konnte nicht gefunden werden",
"Create a new circle" : "Einen neuen Kreis erstellen.",
"Select a type of circle" : "Bitte Kreis-Typ wählen",
@@ -258,9 +258,9 @@
"initiate test of Circles Async" : "Initialisierung des Tests der asynchronen Synchronisation",
"reset test result" : "Testergebnisse zurücksetzen",
"Test is currently running. Please wait." : "Test wird durchgeführt. Bitte warten.",
- "Allow Group Linking:" : "Erlaube Gruppen-Verknüpfung:",
+ "Allow Group Linking:" : "Gruppenverknüpfung erlauben:",
"Groups can be linked to Circles." : "Gruppen können mit Kreisen verknüpft werden.",
- "Allow Federated Circles:" : "Erlaube Verknüpfung von externen Kreisen:",
- "Circles from different Nextclouds can be linked together." : "Kreise von externen Servern können verknüpft werden."
+ "Allow Federated Circles:" : "Federated-Kreise erlauben:",
+ "Circles from different Nextclouds can be linked together." : "Kreise aus verschiedenen Nextclouds können miteinander verknüpft werden."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/de_DE.js b/l10n/de_DE.js
index 8030be83..addf1cbc 100644
--- a/l10n/de_DE.js
+++ b/l10n/de_DE.js
@@ -1,7 +1,7 @@
OC.L10N.register(
"circles",
{
- "Circles is using its own way to async heavy process." : "Kreise nutzt eigene Methoden zur zur asynchronen Synchronisation bei hoher Auslastung.",
+ "Circles is using its own way to async heavy process." : "Kreise nutzt eigene Methoden zur asynchronen Synchronisation bei hoher Auslastung.",
"Are you sure you want to transfer your ownership?" : "Möchten Sie wirklich Ihre Besitzerrechte übertragen?",
"This action is irreversible" : "Dieser Vorgang ist unumkehrbar",
"Personal circle" : "Persönlicher Kreis",
@@ -78,7 +78,7 @@ OC.L10N.register(
"The email address '{email}' was added to the circle" : "Die E-Mail-Adresse '{email}' wurde zum Kreis hinzugefügt",
"The email address '{email}' could not be added to the circle" : "Die E-Mail-Adresse '{email}' konnte dem Kreis nicht hinzugefügt werden",
"The contact '{contact}' was added to the circle" : "Der Kontakt '{contact}' wurde dem Kreis hinzugefügt",
- "The contact '{contact}' could not be added to the circle" : "Der Kontakt '{contact}' komnte dem Kreis nicht hinzugefügt werden",
+ "The contact '{contact}' could not be added to the circle" : "Der Kontakt '{contact}' konnte dem Kreis nicht hinzugefügt werden",
"The member '{name}' was invited to the circle" : "Das Mitglied '{name}' wurde zum Kreis eingeladen",
"The member '{name}' could not be invited to the circle" : "Das Mitglied '{name}' konnte nicht zum Kreis eingeladen werden",
"Members of the group '{name}' were added to the circle" : "Mitglieder der Gruppe '{name}' wurden dem Kreis hinzugefügt",
@@ -170,12 +170,12 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Federated-Kreise sind auf dieser Nextcloud nicht zugelassen",
"Circle not found" : "Kreis nicht gefunden",
"A circle with that name exists" : "Ein Kreis mit diesem Namen existiert bereits",
- "Sharing Frame does not exist" : "Rahmen zum Teilen existiert nicht",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Sie können die Kreise-App nicht verwenden, solange Ihr Administrator nicht wenigstens einen Kreis-Typ zulässt",
"Federated link not found" : "Federated-Verknüpfung nicht gefunden",
"This member does not exist" : "Dieses Mitglied existiert nicht",
"This user is already a member of the circle" : "Dieser Benutzer ist bereits Mitglied dieses Kreises",
- "This feature is not available for personal circles" : "Diese Eigenschaft steht für persönliche Kreise nicht zur Verfügung",
+ "Sharing Frame does not exist" : "Rahmen zum Teilen existiert nicht",
+ "This feature is not available for personal circles" : "Diese Funktion steht für persönliche Kreise nicht zur Verfügung",
"The circle is not Federated" : "Der Kreis ist nicht Federated",
"You cannot join this circle" : "Sie können diesem Kreis nicht beitreten",
"This member is not a moderator" : "Dieses Mitglied ist kein Moderator",
@@ -186,8 +186,8 @@ OC.L10N.register(
"Level cannot be changed for that type of member" : "Berechtigungsstufe kann für diesen Mitgliedstyp nicht geändert werden",
"You are already a member of this circle" : "Sie sind bereits Mitglied dieses Kreises",
"You have been blocked from this circle" : "Sie wurden für diesen Kreis blockiert",
- "User is already a member of this circle" : "Nutzer ist bereits Mitglied dieses Kreises",
- "User is already invited into this circle" : "Nutzer wurde bereits zu diesem Kreis eingeladen",
+ "User is already a member of this circle" : "Benutzer ist bereits Mitglied dieses Kreises",
+ "User is already invited into this circle" : "Benutzer wurde bereits zu diesem Kreis eingeladen",
"You need a specify a type of circle" : "Sie benötigen einen bestimmten Kreis-Typ",
"You cannot create this type of circle" : "Sie können diese Art von Kreis nicht erstellen",
"You cannot display this type of circle" : "Sie können diese Art von Kreis nicht anzeigen",
@@ -205,7 +205,7 @@ OC.L10N.register(
"Group cannot be set as owner of a circle" : "Eine Gruppe kann nicht Besitzer eines Kreises sein",
"This user does not exist" : "Dieser Nutzer existiert nicht",
"Email format is not valid" : "Das E-Mail-Format ist ungültig",
- "This contact is not available" : "Dieser Kontakt ist nicht vorhanden",
+ "This contact is not available" : "Dieser Kontakt ist nicht verfügbar",
"Could not find share" : "Freigabe konnte nicht gefunden werden",
"Create a new circle" : "Einen neuen Kreis erstellen",
"Select a type of circle" : "Bitte Kreis-Typ wählen",
diff --git a/l10n/de_DE.json b/l10n/de_DE.json
index e99d4fb6..6da8dd0c 100644
--- a/l10n/de_DE.json
+++ b/l10n/de_DE.json
@@ -1,5 +1,5 @@
{ "translations": {
- "Circles is using its own way to async heavy process." : "Kreise nutzt eigene Methoden zur zur asynchronen Synchronisation bei hoher Auslastung.",
+ "Circles is using its own way to async heavy process." : "Kreise nutzt eigene Methoden zur asynchronen Synchronisation bei hoher Auslastung.",
"Are you sure you want to transfer your ownership?" : "Möchten Sie wirklich Ihre Besitzerrechte übertragen?",
"This action is irreversible" : "Dieser Vorgang ist unumkehrbar",
"Personal circle" : "Persönlicher Kreis",
@@ -76,7 +76,7 @@
"The email address '{email}' was added to the circle" : "Die E-Mail-Adresse '{email}' wurde zum Kreis hinzugefügt",
"The email address '{email}' could not be added to the circle" : "Die E-Mail-Adresse '{email}' konnte dem Kreis nicht hinzugefügt werden",
"The contact '{contact}' was added to the circle" : "Der Kontakt '{contact}' wurde dem Kreis hinzugefügt",
- "The contact '{contact}' could not be added to the circle" : "Der Kontakt '{contact}' komnte dem Kreis nicht hinzugefügt werden",
+ "The contact '{contact}' could not be added to the circle" : "Der Kontakt '{contact}' konnte dem Kreis nicht hinzugefügt werden",
"The member '{name}' was invited to the circle" : "Das Mitglied '{name}' wurde zum Kreis eingeladen",
"The member '{name}' could not be invited to the circle" : "Das Mitglied '{name}' konnte nicht zum Kreis eingeladen werden",
"Members of the group '{name}' were added to the circle" : "Mitglieder der Gruppe '{name}' wurden dem Kreis hinzugefügt",
@@ -168,12 +168,12 @@
"Federated circles are not allowed on this Nextcloud" : "Federated-Kreise sind auf dieser Nextcloud nicht zugelassen",
"Circle not found" : "Kreis nicht gefunden",
"A circle with that name exists" : "Ein Kreis mit diesem Namen existiert bereits",
- "Sharing Frame does not exist" : "Rahmen zum Teilen existiert nicht",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Sie können die Kreise-App nicht verwenden, solange Ihr Administrator nicht wenigstens einen Kreis-Typ zulässt",
"Federated link not found" : "Federated-Verknüpfung nicht gefunden",
"This member does not exist" : "Dieses Mitglied existiert nicht",
"This user is already a member of the circle" : "Dieser Benutzer ist bereits Mitglied dieses Kreises",
- "This feature is not available for personal circles" : "Diese Eigenschaft steht für persönliche Kreise nicht zur Verfügung",
+ "Sharing Frame does not exist" : "Rahmen zum Teilen existiert nicht",
+ "This feature is not available for personal circles" : "Diese Funktion steht für persönliche Kreise nicht zur Verfügung",
"The circle is not Federated" : "Der Kreis ist nicht Federated",
"You cannot join this circle" : "Sie können diesem Kreis nicht beitreten",
"This member is not a moderator" : "Dieses Mitglied ist kein Moderator",
@@ -184,8 +184,8 @@
"Level cannot be changed for that type of member" : "Berechtigungsstufe kann für diesen Mitgliedstyp nicht geändert werden",
"You are already a member of this circle" : "Sie sind bereits Mitglied dieses Kreises",
"You have been blocked from this circle" : "Sie wurden für diesen Kreis blockiert",
- "User is already a member of this circle" : "Nutzer ist bereits Mitglied dieses Kreises",
- "User is already invited into this circle" : "Nutzer wurde bereits zu diesem Kreis eingeladen",
+ "User is already a member of this circle" : "Benutzer ist bereits Mitglied dieses Kreises",
+ "User is already invited into this circle" : "Benutzer wurde bereits zu diesem Kreis eingeladen",
"You need a specify a type of circle" : "Sie benötigen einen bestimmten Kreis-Typ",
"You cannot create this type of circle" : "Sie können diese Art von Kreis nicht erstellen",
"You cannot display this type of circle" : "Sie können diese Art von Kreis nicht anzeigen",
@@ -203,7 +203,7 @@
"Group cannot be set as owner of a circle" : "Eine Gruppe kann nicht Besitzer eines Kreises sein",
"This user does not exist" : "Dieser Nutzer existiert nicht",
"Email format is not valid" : "Das E-Mail-Format ist ungültig",
- "This contact is not available" : "Dieser Kontakt ist nicht vorhanden",
+ "This contact is not available" : "Dieser Kontakt ist nicht verfügbar",
"Could not find share" : "Freigabe konnte nicht gefunden werden",
"Create a new circle" : "Einen neuen Kreis erstellen",
"Select a type of circle" : "Bitte Kreis-Typ wählen",
diff --git a/l10n/el.js b/l10n/el.js
index 33f57715..33f67c9b 100644
--- a/l10n/el.js
+++ b/l10n/el.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"circles",
{
+ "Circles is using its own way to async heavy process." : "Οι κύκλοι χρησιμοποιούν τις δικές τους μεθόδους για τον ασυγχρονισμό βαρέων διαδικασιών",
"Are you sure you want to transfer your ownership?" : "Είστε σίγουροι ότι θέλετε να μεταφέρετε την ιδιοκτησία;",
"This action is irreversible" : "Αυτή η ενέργεια είναι μη αναστρέψιμη",
"Personal circle" : "Προσωπικός κύκλος",
@@ -128,11 +129,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Ομόσπονδοι κύκλοι δεν επιτρέπονται σε αυτό το Nextcloud",
"Circle not found" : "Ο Κύκλος δεν βρέθηκε",
"A circle with that name exists" : "Υπάρχει ένας κύκλος με αυτό το όνομα",
- "Sharing Frame does not exist" : "Το Πλαίσιο Διαμοιρασμού δεν υπάρχει",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Δεν μπορείτε να χρησιμοποιήσετε την εφαρμογή Κύκλοι, μέχρι ο διαχειριστής να επιτρέψει τουλάχιστον έναν τύπο κύκλων",
"Federated link not found" : "Ο Ομόσπονδος σύνδεσμος δεν βρέθηκε",
"This member does not exist" : "Αυτό το μέλος δεν υπάρχει",
"This user is already a member of the circle" : "Αυτός ο χρήστης είναι ήδη μέλος του κύκλου",
+ "Sharing Frame does not exist" : "Το Πλαίσιο Διαμοιρασμού δεν υπάρχει",
"The circle is not Federated" : "Ο κύκλος δεν είναι Ομόσπονδος",
"You cannot join this circle" : "Δεν μπορείτε να συνδεθείτε σε αυτόν τον κύκλο",
"This member is not a moderator" : "Αυτό το μέλος δεν είναι επιμελητής",
diff --git a/l10n/el.json b/l10n/el.json
index 9028a957..c0192edd 100644
--- a/l10n/el.json
+++ b/l10n/el.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Circles is using its own way to async heavy process." : "Οι κύκλοι χρησιμοποιούν τις δικές τους μεθόδους για τον ασυγχρονισμό βαρέων διαδικασιών",
"Are you sure you want to transfer your ownership?" : "Είστε σίγουροι ότι θέλετε να μεταφέρετε την ιδιοκτησία;",
"This action is irreversible" : "Αυτή η ενέργεια είναι μη αναστρέψιμη",
"Personal circle" : "Προσωπικός κύκλος",
@@ -126,11 +127,11 @@
"Federated circles are not allowed on this Nextcloud" : "Ομόσπονδοι κύκλοι δεν επιτρέπονται σε αυτό το Nextcloud",
"Circle not found" : "Ο Κύκλος δεν βρέθηκε",
"A circle with that name exists" : "Υπάρχει ένας κύκλος με αυτό το όνομα",
- "Sharing Frame does not exist" : "Το Πλαίσιο Διαμοιρασμού δεν υπάρχει",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Δεν μπορείτε να χρησιμοποιήσετε την εφαρμογή Κύκλοι, μέχρι ο διαχειριστής να επιτρέψει τουλάχιστον έναν τύπο κύκλων",
"Federated link not found" : "Ο Ομόσπονδος σύνδεσμος δεν βρέθηκε",
"This member does not exist" : "Αυτό το μέλος δεν υπάρχει",
"This user is already a member of the circle" : "Αυτός ο χρήστης είναι ήδη μέλος του κύκλου",
+ "Sharing Frame does not exist" : "Το Πλαίσιο Διαμοιρασμού δεν υπάρχει",
"The circle is not Federated" : "Ο κύκλος δεν είναι Ομόσπονδος",
"You cannot join this circle" : "Δεν μπορείτε να συνδεθείτε σε αυτόν τον κύκλο",
"This member is not a moderator" : "Αυτό το μέλος δεν είναι επιμελητής",
diff --git a/l10n/en_GB.js b/l10n/en_GB.js
index f7137415..a899ec75 100644
--- a/l10n/en_GB.js
+++ b/l10n/en_GB.js
@@ -170,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Federated circles are not allowed on this Nextcloud",
"Circle not found" : "Circle not found",
"A circle with that name exists" : "A circle with that name exists",
- "Sharing Frame does not exist" : "Sharing Frame does not exist",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "You cannot use the Circles Application until your administrator has allowed at least one type of circles",
"Federated link not found" : "Federated link not found",
"This member does not exist" : "This member does not exist",
"This user is already a member of the circle" : "This user is already a member of the circle",
+ "Sharing Frame does not exist" : "Sharing Frame does not exist",
"This feature is not available for personal circles" : "This feature is not available for personal circles",
"The circle is not Federated" : "The circle is not Federated",
"You cannot join this circle" : "You cannot join this circle",
diff --git a/l10n/en_GB.json b/l10n/en_GB.json
index e06f0d91..a8578991 100644
--- a/l10n/en_GB.json
+++ b/l10n/en_GB.json
@@ -168,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "Federated circles are not allowed on this Nextcloud",
"Circle not found" : "Circle not found",
"A circle with that name exists" : "A circle with that name exists",
- "Sharing Frame does not exist" : "Sharing Frame does not exist",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "You cannot use the Circles Application until your administrator has allowed at least one type of circles",
"Federated link not found" : "Federated link not found",
"This member does not exist" : "This member does not exist",
"This user is already a member of the circle" : "This user is already a member of the circle",
+ "Sharing Frame does not exist" : "Sharing Frame does not exist",
"This feature is not available for personal circles" : "This feature is not available for personal circles",
"The circle is not Federated" : "The circle is not Federated",
"You cannot join this circle" : "You cannot join this circle",
diff --git a/l10n/es.js b/l10n/es.js
index e837d063..18df28fa 100644
--- a/l10n/es.js
+++ b/l10n/es.js
@@ -169,11 +169,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Los círculos federados no están permitidos en este Nextcloud",
"Circle not found" : "No se ha encontrado el círculo",
"A circle with that name exists" : "Ya existe un círculo con ese nombre",
- "Sharing Frame does not exist" : "No existe el marco de compartición",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "No puedes usar la app Círculos hasta que el administrador haya permitido al menos un tipo de círculos",
"Federated link not found" : "Enlace federado no encontrado",
"This member does not exist" : "Este miembro no existe",
"This user is already a member of the circle" : "Este usuario ya es miembro de este círculo",
+ "Sharing Frame does not exist" : "No existe el marco de compartición",
"This feature is not available for personal circles" : "Esta funcionalidad no está disponible para círculos personales",
"The circle is not Federated" : "Este círculo no es federado",
"You cannot join this circle" : "No puede unirse a este círculo",
diff --git a/l10n/es.json b/l10n/es.json
index c8b030c9..36a1661b 100644
--- a/l10n/es.json
+++ b/l10n/es.json
@@ -167,11 +167,11 @@
"Federated circles are not allowed on this Nextcloud" : "Los círculos federados no están permitidos en este Nextcloud",
"Circle not found" : "No se ha encontrado el círculo",
"A circle with that name exists" : "Ya existe un círculo con ese nombre",
- "Sharing Frame does not exist" : "No existe el marco de compartición",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "No puedes usar la app Círculos hasta que el administrador haya permitido al menos un tipo de círculos",
"Federated link not found" : "Enlace federado no encontrado",
"This member does not exist" : "Este miembro no existe",
"This user is already a member of the circle" : "Este usuario ya es miembro de este círculo",
+ "Sharing Frame does not exist" : "No existe el marco de compartición",
"This feature is not available for personal circles" : "Esta funcionalidad no está disponible para círculos personales",
"The circle is not Federated" : "Este círculo no es federado",
"You cannot join this circle" : "No puede unirse a este círculo",
diff --git a/l10n/es_CO.js b/l10n/es_CO.js
new file mode 100644
index 00000000..bf7d7636
--- /dev/null
+++ b/l10n/es_CO.js
@@ -0,0 +1,268 @@
+OC.L10N.register(
+ "circles",
+ {
+ "Circles is using its own way to async heavy process." : "La aplicación Cirlces está usando su propio mecanismo para async los procesos pesados.",
+ "Are you sure you want to transfer your ownership?" : "¿Estás seguro que quieres transferir tu propiedad?",
+ "This action is irreversible" : "Esta acción es irreversible",
+ "Personal circle" : "Círculo personal",
+ "Secret circle" : "Círculo secreto",
+ "Closed circle" : "Círculo cerrado",
+ "Public circle" : "Círculo público",
+ "Circle" : "Círculo",
+ "Link Removed" : "Liga eliminada",
+ "Link down" : "Liga no disponible",
+ "Setting link" : "Estableciendo liga",
+ "Request dismissed" : "Solicitud descartada",
+ "Request sent" : "Solicitud enviada",
+ "Link requested" : "Liga solicitada",
+ "Link up" : "Liga disponible",
+ "Personal Circle" : "Círculo Personal",
+ "Secret Circle" : "Círculo Secreto",
+ "Closed Circle" : "Círculo Cerrado",
+ "Public Circle" : "Círculo Público",
+ "Personal" : "Personal",
+ "Secret" : "Secreto",
+ "Closed" : "Cerrado",
+ "Public" : "Público",
+ "Not a member" : "No es un miembro",
+ "Member" : "Miembro",
+ "Moderator" : "Moderador",
+ "Admin" : "Administrador",
+ "Owner" : "Dueño",
+ "Unknown" : "Desconocido",
+ "Invited" : "Invitado",
+ "Requesting" : "Solicitando",
+ "Blocked" : "Bloqueado",
+ "Kicked" : "Expulsado",
+ "This operation will add/invite all members of the group to the circle" : "Esta operación agregará/invitará a todos los miembros del grupo al círculo",
+ "Please confirm" : "Por favor confirma",
+ "Are you sure you want to leave this circle?" : "¿Estás seguro que quieres dejar este círculo?",
+ "Are you sure you want to delete this circle?" : "¿Estás seguro que deseas borrar este círculo?",
+ "Mail Address" : "Dirección de correo",
+ "Contact" : "Contacto",
+ "Kick this member" : "Sacar a este miembro",
+ "Accept the request" : "Aceptar la solicitud",
+ "Dismiss the request" : "Descartar la solicitud",
+ "Unlink this group" : "Desligar este grupo",
+ "Remove this link" : "Eliminar esta liga",
+ "Cancel the link request" : "Cancelar la solicitud de liga",
+ "Accept the link request" : "Aceptar la solicitud de liga",
+ "Reject the link request" : "Rechazar la solicitud de liga",
+ "Cannot join this circle" : "No se puedes unirte a este círculo",
+ "no error message" : "no hay mensaje de error",
+ "You have joined this circle" : "Te has unido a este círculo",
+ "You have requested to join this circle" : "Has solicitado unirte a este círculo",
+ "You have left this circle" : "Has dejado este círculo",
+ "Cannot leave this circle" : "No puedes dejar este círculo",
+ "You have deleted this circle" : "Has borrado este círculo",
+ "Cannot delete this circle" : "No es posible borrar este círculo ",
+ " {type} '{name}' created" : " {type} '{name}' ha sido creado",
+ " {type} '{name}' could not be created" : " {type} '{name}' no pudo ser creado",
+ "Issue while retrieving the details of this circle" : "Se presentó un tema al recuperar los detalles de este círculo",
+ "Issue while retrieving the list of circles" : "Se presentó un tema al recuperar la lista de círculos",
+ "Group '{name}' successfully added to the circle" : "El grupo '{name}' fue agregado al círculo exitosamente",
+ "Group '{name}' could not be added to the circle" : "El grupo '{name}' no pudo ser agregado al círculo",
+ "Group '{name}' updated" : "El grupo '{name}' fue actualizado",
+ "Group '{name}' could not be updated" : "El grupo '{name}' no pudo ser actualizado",
+ "Group '{name}' successfully removed from the circle" : "El grupo '{name}' fue eliminado exitosamente del círculo",
+ "Group '{name}' could not be removed from the circle" : "El grupo '{name}' no pudo ser eliminado del círculo",
+ "A link to <b>{remote}</b> could not be initiated" : "No fue posible inicializar la liga a <b>{remote}</b>",
+ "A link to <b>{remote}</b> has been requested." : "Se ha solicitado una liga a <b>{remote}</b>.",
+ "the link to <b>{remote}</b> is now up and running." : "la liga a <b>{remote}</b> ya está disponible y funcionando.",
+ "The status of the link could not be updated" : "El estatus de la liga no pudo ser actualizado",
+ "The status of the link has been updated" : "El estatus de la liga ha sido actualizado",
+ "Local User" : "Usuario local",
+ "Local Group" : "Grupo local",
+ "The member '{name}' was added to the circle" : "El miembro '{name}' fue agregado al círculo",
+ "The member '{name}' could not be added to the circle" : "El miembro '{name}' no pudo ser agregado al círculo",
+ "The email address '{email}' was added to the circle" : "La dirección de correo '{email}' fue agregada al círculo",
+ "The email address '{email}' could not be added to the circle" : "La dirección de correo electrónico '{email}' no pudo ser agregara al círculo",
+ "The contact '{contact}' was added to the circle" : "El contacto \"{contact}\" fue agregado al círculo",
+ "The contact '{contact}' could not be added to the circle" : "El contacto \"{contact}\" no pudo ser agregado al círculo",
+ "The member '{name}' was invited to the circle" : "El miembro '{name}' fue invitado al círculo",
+ "The member '{name}' could not be invited to the circle" : "El miembro '{name}' no pudo ser invitado al círculo",
+ "Members of the group '{name}' were added to the circle" : "Miembros del grupo '{name}' fueron agregados al círculo",
+ "Members of the group '{name}' could not be added to the circle" : "Miembros del grupo '{name}' no pudieron ser agregados al círculo",
+ "Members of the group '{name}' were invited to the circle" : "Miembros del grupo '{name}' fueron invitados al círculo",
+ "Members of the group '{name}' could not be invited to the circle" : "Miembros del grupo '{name}' no pudieron ser inivitados al círculo",
+ "The member '{name}' was removed from the circle" : "El miembro '{name}' se eliminó del círculo",
+ "The member '{name}' could not be removed from the circle" : "El miembro '{name}' no pudo ser eliminado del círculo",
+ "Member '{name}' updated" : "El miembro '{name}' fue actualizado",
+ "The member '{name}' could not be updated" : "El miembro '{name}' no pudo ser actualizado",
+ "Issue while saving settings" : "Se presentó un tema al guardar las configuraciones",
+ "Settings saved." : "Configuraciones guardadas.",
+ "Circles" : "Círculos",
+ "You created the circle {circle}" : "Creaste el círculo {circle}",
+ "{author} created the circle {circle}" : "{author} creó el círculo {circle}",
+ "You deleted {circle}" : "Borraste el círculo {circle}",
+ "{author} deleted {circle}" : "{author} borró {circle}",
+ "You linked {group} to {circle}" : "Vinculaste a {group} a {circle}",
+ "{group} has been linked to {circle} by {author}" : "{author} vinculó {group} a {circle}",
+ "You unlinked {group} from {circle}" : "Desvinculaste a {group} de {circle}",
+ "{group} has been unlinked from {circle} by {author}" : "{author} desvinculó {group} de {circle}",
+ "You changed the level of the linked group {group} in {circle} to %1$s" : "Cambiaste el nivel del grupo vinculado {group} en {circle} a %1$s",
+ "{author} changed the level of the linked group {group} in {circle} to %1$s" : "{author} cambió el nivel del grupo vinculado {group} en {circle} a %1$s",
+ "You sent a request to link {circle} with {remote}" : "Enviaste una solicitud para vincular {circle} con {remote}",
+ "{author} sent a request to link {circle} with {remote}" : "{author} envió una solicitud para vincular {circle} con {remote}",
+ "{remote} requested a link with {circle}" : "{remote} solicitó una liga para {circle}",
+ "The request to link {circle} with {remote} has been rejected" : "La solicitud para vincular{circle} con {remote} fue rechazada",
+ "The request to link {remote} with {circle} has been canceled remotely" : "La solicitud para vincular {remote} con {circle} ha sido cancelada remotamente",
+ "The request to link {circle} with {remote} has been accepted" : "La solicitud para vincular {circle} con {rempte} ha sido aceptada",
+ "You dismissed the request to link {remote} with {circle}" : "Descartaste la solicitud para vincular {remote} con {circle}",
+ "{author} dismissed the request to link {remote} with {circle}" : "{author} descartó la solicitud para vincular {remote} con {circle}",
+ "You canceled the request to link {circle} with {remote}" : "Cancelaste la solicitud para vincular {circle} con {remote}",
+ "{author} canceled the request to link {circle} with {remote}" : "{author} canceló la solicitud para vincular {circle} con {remote}",
+ "You accepted the request to link {remote} with {circle}" : "Aceptaste la solicitud para vincular {remote} con {circle}",
+ "{author} accepted the request to link {remote} with {circle}" : "{author} aceptó la solicitud para vincular {remote} con {circle}",
+ "A link between {circle} and {remote} is now up and running" : "La liga entre {circle} y {remote} está ahora lista y funcionando",
+ "The link between {circle} and {remote} has been shutdown remotely" : "La liga entre {circle} y {remote} ha sido deshabilitada remotamente",
+ "You closed the link between {circle} and {remote}" : "Cerraste la liga entre {cirlce} y {remote}",
+ "{author} closed the link between {circle} and {remote}" : "{author} cerró la liga entre {circle} y {remote}",
+ "You joined {circle}" : "Te uniste a {circle}",
+ "{member} joined {circle}" : "{member} se unió a {circle}",
+ "You accepted the invitation to join {circle}" : "Aceptaste la invitación para unirte a {cirlce}",
+ "{member} accepted the invitation to join {circle}" : "{member} aceptó la inivtación para unirse a {circle}",
+ "You added {member} as member to {circle}" : "Agregaste a {member} como miembro de {circle}",
+ "You have been added as member to {circle} by {author}" : "Has sido agregado como miembro de {circle} por {author}",
+ "{member} has been added as member to {circle} by {author}" : "{member} ha sido agregado como un miembro de {circle} por {author}",
+ "You added {external} to {circle}" : "Agregaste a {external} a {circle}",
+ "{external} has been added to {circle} by {author}" : "{external} ha sido agregado a {circle} por {author}",
+ "You accepted {member}'s request to join {circle}" : "Aceptaste la solicitud de {member} para unirse a {circle}",
+ "Your request to join {circle} has been accepted by {author}" : "Tu solicitud para unirte a {circle} ha sido aceptada por {author}",
+ "{member}'s request to join {circle} has been accepted by {author}" : "La solicitud de {member} para unirse a {circle} ha sido aceptada por {author}",
+ "You left {circle}" : "Dejaste el {circle}",
+ "{member} left {circle}" : "{member} dejó {circle}",
+ "You declined the invitation to join {circle}" : "Declinaste la invitacion a unirte a {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} declinó la invitación para unirse a {cricle}",
+ "You cancelled your request to join {circle}" : "Cancelaste tu solicitud para unirte a {cricle}",
+ "{member} cancelled his request to join {circle}" : "{member} canceló su solicitud para unirse a {circle}",
+ "You removed {member} from {circle}" : "Eliminaste a {member} de {circle}",
+ "You have been removed from {circle} by {author}" : "Has sido eliminado de {circle} por {author}",
+ "{member} has been removed from {circle} by {author}" : "{member} ha sido eliminado de {circle} por {author}",
+ "You removed {external} from {circle}" : "Eliminaste a {external} de {circle}",
+ "{external} has been removed from {circle} by {author}" : "{external} ha sido eliminado de {circle} por {autor}",
+ "You cancelled {member}'s invitation to join {circle}" : "Cancelaste la invitación de {member} para unirse a {circle}",
+ "Your invitation to join {circle} has been cancelled by {author}" : "Tu invitación para unirte a {circle} ha sido cancelada por {author}",
+ "{author} cancelled {member}'s invitation to join {circle}" : "{author} canceló la invitación de {member} para unirse a {crcle}",
+ "You dismissed {member}'s request to join {circle}" : "Descartaste la solicitud de {member} para unirse a {circle}",
+ "Your request to join {circle} has been dismissed by {author}" : "Tu solicitud para unirte a {circle} fue descartada por {author}",
+ "{member}'s request to join {circle} has been dismissed by {author}" : "La solicitud de {member} para unirse a {circle} ha sido descartada por {author}",
+ "You invited {member} to join {circle}" : "Invitaste a {member} a unirse a {circle}",
+ "You have been invited to join {circle} by {author}" : "{author} te ha invitado a unirte a {circle}",
+ "{member} has been invited to join {circle} by {author}" : "{member} fue invitado a unirse a {circle} por {author}",
+ "You changed {member}'s level in {circle} to %1$s" : "Cambiaste el nivel de {member} en el círculo a %1$s",
+ "{author} changed your level in {circle} to %1$s" : "{author} cambió tu nivel en {circle} a %1$s",
+ "{author} changed {member}'s level in {circle} to %1$s" : "{author} cambió el nivel de {member} en {circle}  a %1$s",
+ "You sent a request to join {circle}" : "Enviaste una solicitud para unirte a {circle}",
+ "{member} sent a request to join {circle}" : "{member} envió una solicitud para unirse a {circle}",
+ "You are the new owner of {circle}" : "Eres el nuevo dueño de {circle}",
+ "{member} is the new owner of {circle}" : "{member} es el nuevo dueño de {circle}",
+ "On events happening in a <strong>Circle</strong> you belong" : "Acerca de eventos que pasan en un <strong>C´riculo</strong> al que perteneces",
+ "Any important event in a <strong>Circle</strong> you are moderating" : "Cualquier evento importante en un <strong>Círculo</strong> que estés moderando",
+ "%s shared »%s« with you." : "%s compartió »%s« contigo.",
+ "%s shared »%s« with '%s'." : "%s compartió »%s« con '%s'.",
+ "%s on %s" : "%s en %s",
+ "Click the button below to open it." : "Haz click en el botón para abrirlo.",
+ "Open »%s«" : "Abrir »%s«",
+ "The name of your circle must contain at least 3 characters" : "El nombre de tu círculo debe contener al menos 3 caracteres",
+ "The name of your circle must start with an alpha-numerical character" : "El nombre del círculo debe empezar con un caracter alfa-numérico",
+ "Linked Groups are not allowed on this Nextcloud" : "No se permiten Grupos Ligados en este Nextcloud",
+ "Federated circles are not allowed on this Nextcloud" : "No se permiten los círculos federados en este Nextcloud",
+ "Circle not found" : "Círculo no encontrado",
+ "A circle with that name exists" : "Un círculo con ese nombre ya existe",
+ "You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "No puedes usar la Aplicación de Círculos hasta que tu adminsitrador haya permitido al menos un tipo de círculo",
+ "Federated link not found" : "No se encontró la liga",
+ "This member does not exist" : "Este miembro no existe",
+ "This user is already a member of the circle" : "El usuario ya es un miembro del círculo",
+ "Sharing Frame does not exist" : "No existe el Marco para Compartir. ",
+ "This feature is not available for personal circles" : "Esta característica no está disponible para círculos personales",
+ "The circle is not Federated" : "Este círculo no es Federado",
+ "You cannot join this circle" : "No puedes unirte a este cículo",
+ "This member is not a moderator" : "Este miembro no es un moderador",
+ "Not enough privileges" : "No cuentas con privilegios suficientes",
+ "This member is not the owner of the circle" : "Este miembro no es el dueño del círculo",
+ "This member is not admin of the circle" : "Este miembro no es un adminsitrador del círculo",
+ "This member is the owner of the circle" : "Este miembro es el dueño del círculo",
+ "Level cannot be changed for that type of member" : "El nivel no puede ser cambiado para ese tipo de miembro",
+ "You are already a member of this circle" : "Ya eres un miembro de este círculo",
+ "You have been blocked from this circle" : "Has sido bloqueado de este círculo",
+ "User is already a member of this circle" : "El usuario ya es miembro de este círculo",
+ "User is already invited into this circle" : "El usuario ya está invitado a este círculo",
+ "You need a specify a type of circle" : "Necesitas especificar un tipo de círculo",
+ "You cannot create this type of circle" : "No puede crear un círculo de este tipo",
+ "You cannot display this type of circle" : "No puedes desplegar un círculo de este tipo",
+ "Federated link does not have a valid format" : "La liga federada no tiene un formato válido",
+ "Federated circles are not allowed on the remote Nextcloud" : "No se permiten los círculos federados en el Nextcloud remoto",
+ "Remote circle does not accept federated links" : "El círculo remoto no acepta ligas federadas",
+ "Trying to link a circle to itself" : "Intentando vincular círculo a si mismo",
+ "This link exists already" : "Esta liga ya existe",
+ "The requested remote circle does not exist" : "El círculo remoto solicitado no existe",
+ "The remote host is down or the Circles app is not installed on it" : "El servidor remoto está abajo o bien la aplicación de Círculos no está instalada en él",
+ "Cannot proceed with this status update" : "No es posible proceder con esta actualización de estatus",
+ "This group does not exist" : "Este grupo no existe",
+ "This group is already linked to the circle" : "Este grupo ya ha sido ligado a este círculo",
+ "You cannot edit level in a personal circle" : "No puedes editar el nivel en un círculo personal",
+ "Group cannot be set as owner of a circle" : "Un Grupo no puede ser establecido como dueño de un círculo",
+ "This user does not exist" : "Este usuario no existe",
+ "Email format is not valid" : "El formato de la dirección de correo electrónico no es válido",
+ "This contact is not available" : "Este contacto no está disponible",
+ "Could not find share" : "No se encontró el elemento compartido",
+ "Create a new circle" : "Crear un nuevo círculo",
+ "Select a type of circle" : "Selecciona el tipo de círculo",
+ "Create a personal circle" : "Crear un círculo personal",
+ "Create a public circle" : "Crear un círculo público",
+ "Create a closed circle" : "Crear un círculo cerrado",
+ "Create a secret circle" : "Crear un círculo secreto",
+ "A personal circle is a list of users known only to the owner." : "Un círculo personal es una lista de usuarios que es conocida solo por el dueño. ",
+ "This is the right option if you want to do recurrent sharing with the same list of local users." : "Esta es la opción más indicada si quieres compartir recurrentemente con la misma lista de usuarios locales. ",
+ "A secret circle is an hidden group that can only be seen by its members or by people knowing the exact name of the circle." : "Un círculo secreto es un grupo oculto que solo puede ser visto por sus miembros o por personas que conozcan el nombre exacto del círculo.",
+ "Non-members won't be able to find your secret circle using the search bar." : "Sólo los miembros podrán encontrar tu círculo secreto usando la barra de búsqueda.",
+ "Joining a closed circle requires an invitation or a confirmation by a moderator." : "Unirse a un círculo cerrado requiere de una invitación o confirmación de un moderador.",
+ "Anyone can find the circle and request an invitation; but only members will see who's in it and get access to shared items." : "Cualquiera puede encontrar el cículo y solicitar una invitación; pero solo los miembros podrán ver quién es miembro y acceder los elementos compartidos.",
+ "A public circle is an open group visible to anyone willing to join." : "Un círculo público es un grupo abierto, visible a todos aquellos que quieran unirse.",
+ "Anyone can see the circle, can join the circle and access the items shared to the circle." : "Cualquiera puede ver el círculo, unirse al círculo y accesar a los elementos compartidos al círculo. ",
+ "Personal circles" : "Círculos personales",
+ "Public circles" : "Círculos públicos",
+ "Closed circles" : "Círculos cerrados",
+ "Secret circles" : "Círculos secretos",
+ "All circles" : "Todos los círculos",
+ "Search circles" : "Buscar círculos",
+ "No filter" : "Sin filtro",
+ "Circles you belong to" : "Círculos a los que perteneces",
+ "Circles you own" : "Círculos que te pertenecen ",
+ "No circle selected" : "No se ha selecccionado un círculo",
+ "Pending invitation to join this circle" : "Invitación pendiente para unirte a este círculo",
+ "You have a pending request to join this circle" : "Tienes una solicitud pendiente para unirte a este círculo ",
+ "Add a member" : "Agegar un miembro",
+ "Link a group" : "Ligar un grupo",
+ "Link a circle" : "Ligar un círculo",
+ "Join this circle" : "Únete a este círculo",
+ "Delete circle" : "Borrar círculo",
+ "Edit circle" : "Editar círculo",
+ "Accept the invitation" : "Aceptar la invitación",
+ "Decline the invitation" : "Declinar la invitación",
+ "Leave this circle" : "Dejar este círculo",
+ "Link to a circle" : "Ligar a un círculo",
+ "Return to menu" : "Regresar al menú",
+ "Username" : "Usuario",
+ "Level" : "Nivel",
+ "Status" : "Estatus",
+ "Joined" : "Se ha unido",
+ "Group Name" : "Nombre del Grupo",
+ "Link" : "Ligas",
+ "Linked" : "Ligado",
+ "Allow Federated Links" : "Permitir Ligas Federadas",
+ "Turns the circle as Federated and enable sharing between Federated Circles" : "Convierte el círculo a Federado y habilita el compartir entre Círculos Federados",
+ "Automatically Accept Link Request" : "Aceptar Automáticamente Solicitudes de Ligas",
+ "Warning: enabling this will automatically accept new link requests from other circle." : "Advertencia: al habilitar esto, aceptará automáticamente solicitudes de ligas nuevas de otros círculos",
+ "Save settings" : "Guardar configuraciones",
+ "Async Testing:" : "Probando Async:",
+ "initiate test of Circles Async" : "Comenzar la prueba de Círculos Async",
+ "reset test result" : "reiniciar los resutlados de la prueba",
+ "Test is currently running. Please wait." : "La prueba está en ejecución. Por favor espera.",
+ "Allow Group Linking:" : "Permitir Vinculacion de Gurpos:",
+ "Groups can be linked to Circles." : "Los grupos se pueden vincular a Círculos.",
+ "Allow Federated Circles:" : "Permitir Círculos Federados:",
+ "Circles from different Nextclouds can be linked together." : "Círculos de diferentes Nextclouds se pueden vincular juntos."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/l10n/es_CO.json b/l10n/es_CO.json
new file mode 100644
index 00000000..4907ba3c
--- /dev/null
+++ b/l10n/es_CO.json
@@ -0,0 +1,266 @@
+{ "translations": {
+ "Circles is using its own way to async heavy process." : "La aplicación Cirlces está usando su propio mecanismo para async los procesos pesados.",
+ "Are you sure you want to transfer your ownership?" : "¿Estás seguro que quieres transferir tu propiedad?",
+ "This action is irreversible" : "Esta acción es irreversible",
+ "Personal circle" : "Círculo personal",
+ "Secret circle" : "Círculo secreto",
+ "Closed circle" : "Círculo cerrado",
+ "Public circle" : "Círculo público",
+ "Circle" : "Círculo",
+ "Link Removed" : "Liga eliminada",
+ "Link down" : "Liga no disponible",
+ "Setting link" : "Estableciendo liga",
+ "Request dismissed" : "Solicitud descartada",
+ "Request sent" : "Solicitud enviada",
+ "Link requested" : "Liga solicitada",
+ "Link up" : "Liga disponible",
+ "Personal Circle" : "Círculo Personal",
+ "Secret Circle" : "Círculo Secreto",
+ "Closed Circle" : "Círculo Cerrado",
+ "Public Circle" : "Círculo Público",
+ "Personal" : "Personal",
+ "Secret" : "Secreto",
+ "Closed" : "Cerrado",
+ "Public" : "Público",
+ "Not a member" : "No es un miembro",
+ "Member" : "Miembro",
+ "Moderator" : "Moderador",
+ "Admin" : "Administrador",
+ "Owner" : "Dueño",
+ "Unknown" : "Desconocido",
+ "Invited" : "Invitado",
+ "Requesting" : "Solicitando",
+ "Blocked" : "Bloqueado",
+ "Kicked" : "Expulsado",
+ "This operation will add/invite all members of the group to the circle" : "Esta operación agregará/invitará a todos los miembros del grupo al círculo",
+ "Please confirm" : "Por favor confirma",
+ "Are you sure you want to leave this circle?" : "¿Estás seguro que quieres dejar este círculo?",
+ "Are you sure you want to delete this circle?" : "¿Estás seguro que deseas borrar este círculo?",
+ "Mail Address" : "Dirección de correo",
+ "Contact" : "Contacto",
+ "Kick this member" : "Sacar a este miembro",
+ "Accept the request" : "Aceptar la solicitud",
+ "Dismiss the request" : "Descartar la solicitud",
+ "Unlink this group" : "Desligar este grupo",
+ "Remove this link" : "Eliminar esta liga",
+ "Cancel the link request" : "Cancelar la solicitud de liga",
+ "Accept the link request" : "Aceptar la solicitud de liga",
+ "Reject the link request" : "Rechazar la solicitud de liga",
+ "Cannot join this circle" : "No se puedes unirte a este círculo",
+ "no error message" : "no hay mensaje de error",
+ "You have joined this circle" : "Te has unido a este círculo",
+ "You have requested to join this circle" : "Has solicitado unirte a este círculo",
+ "You have left this circle" : "Has dejado este círculo",
+ "Cannot leave this circle" : "No puedes dejar este círculo",
+ "You have deleted this circle" : "Has borrado este círculo",
+ "Cannot delete this circle" : "No es posible borrar este círculo ",
+ " {type} '{name}' created" : " {type} '{name}' ha sido creado",
+ " {type} '{name}' could not be created" : " {type} '{name}' no pudo ser creado",
+ "Issue while retrieving the details of this circle" : "Se presentó un tema al recuperar los detalles de este círculo",
+ "Issue while retrieving the list of circles" : "Se presentó un tema al recuperar la lista de círculos",
+ "Group '{name}' successfully added to the circle" : "El grupo '{name}' fue agregado al círculo exitosamente",
+ "Group '{name}' could not be added to the circle" : "El grupo '{name}' no pudo ser agregado al círculo",
+ "Group '{name}' updated" : "El grupo '{name}' fue actualizado",
+ "Group '{name}' could not be updated" : "El grupo '{name}' no pudo ser actualizado",
+ "Group '{name}' successfully removed from the circle" : "El grupo '{name}' fue eliminado exitosamente del círculo",
+ "Group '{name}' could not be removed from the circle" : "El grupo '{name}' no pudo ser eliminado del círculo",
+ "A link to <b>{remote}</b> could not be initiated" : "No fue posible inicializar la liga a <b>{remote}</b>",
+ "A link to <b>{remote}</b> has been requested." : "Se ha solicitado una liga a <b>{remote}</b>.",
+ "the link to <b>{remote}</b> is now up and running." : "la liga a <b>{remote}</b> ya está disponible y funcionando.",
+ "The status of the link could not be updated" : "El estatus de la liga no pudo ser actualizado",
+ "The status of the link has been updated" : "El estatus de la liga ha sido actualizado",
+ "Local User" : "Usuario local",
+ "Local Group" : "Grupo local",
+ "The member '{name}' was added to the circle" : "El miembro '{name}' fue agregado al círculo",
+ "The member '{name}' could not be added to the circle" : "El miembro '{name}' no pudo ser agregado al círculo",
+ "The email address '{email}' was added to the circle" : "La dirección de correo '{email}' fue agregada al círculo",
+ "The email address '{email}' could not be added to the circle" : "La dirección de correo electrónico '{email}' no pudo ser agregara al círculo",
+ "The contact '{contact}' was added to the circle" : "El contacto \"{contact}\" fue agregado al círculo",
+ "The contact '{contact}' could not be added to the circle" : "El contacto \"{contact}\" no pudo ser agregado al círculo",
+ "The member '{name}' was invited to the circle" : "El miembro '{name}' fue invitado al círculo",
+ "The member '{name}' could not be invited to the circle" : "El miembro '{name}' no pudo ser invitado al círculo",
+ "Members of the group '{name}' were added to the circle" : "Miembros del grupo '{name}' fueron agregados al círculo",
+ "Members of the group '{name}' could not be added to the circle" : "Miembros del grupo '{name}' no pudieron ser agregados al círculo",
+ "Members of the group '{name}' were invited to the circle" : "Miembros del grupo '{name}' fueron invitados al círculo",
+ "Members of the group '{name}' could not be invited to the circle" : "Miembros del grupo '{name}' no pudieron ser inivitados al círculo",
+ "The member '{name}' was removed from the circle" : "El miembro '{name}' se eliminó del círculo",
+ "The member '{name}' could not be removed from the circle" : "El miembro '{name}' no pudo ser eliminado del círculo",
+ "Member '{name}' updated" : "El miembro '{name}' fue actualizado",
+ "The member '{name}' could not be updated" : "El miembro '{name}' no pudo ser actualizado",
+ "Issue while saving settings" : "Se presentó un tema al guardar las configuraciones",
+ "Settings saved." : "Configuraciones guardadas.",
+ "Circles" : "Círculos",
+ "You created the circle {circle}" : "Creaste el círculo {circle}",
+ "{author} created the circle {circle}" : "{author} creó el círculo {circle}",
+ "You deleted {circle}" : "Borraste el círculo {circle}",
+ "{author} deleted {circle}" : "{author} borró {circle}",
+ "You linked {group} to {circle}" : "Vinculaste a {group} a {circle}",
+ "{group} has been linked to {circle} by {author}" : "{author} vinculó {group} a {circle}",
+ "You unlinked {group} from {circle}" : "Desvinculaste a {group} de {circle}",
+ "{group} has been unlinked from {circle} by {author}" : "{author} desvinculó {group} de {circle}",
+ "You changed the level of the linked group {group} in {circle} to %1$s" : "Cambiaste el nivel del grupo vinculado {group} en {circle} a %1$s",
+ "{author} changed the level of the linked group {group} in {circle} to %1$s" : "{author} cambió el nivel del grupo vinculado {group} en {circle} a %1$s",
+ "You sent a request to link {circle} with {remote}" : "Enviaste una solicitud para vincular {circle} con {remote}",
+ "{author} sent a request to link {circle} with {remote}" : "{author} envió una solicitud para vincular {circle} con {remote}",
+ "{remote} requested a link with {circle}" : "{remote} solicitó una liga para {circle}",
+ "The request to link {circle} with {remote} has been rejected" : "La solicitud para vincular{circle} con {remote} fue rechazada",
+ "The request to link {remote} with {circle} has been canceled remotely" : "La solicitud para vincular {remote} con {circle} ha sido cancelada remotamente",
+ "The request to link {circle} with {remote} has been accepted" : "La solicitud para vincular {circle} con {rempte} ha sido aceptada",
+ "You dismissed the request to link {remote} with {circle}" : "Descartaste la solicitud para vincular {remote} con {circle}",
+ "{author} dismissed the request to link {remote} with {circle}" : "{author} descartó la solicitud para vincular {remote} con {circle}",
+ "You canceled the request to link {circle} with {remote}" : "Cancelaste la solicitud para vincular {circle} con {remote}",
+ "{author} canceled the request to link {circle} with {remote}" : "{author} canceló la solicitud para vincular {circle} con {remote}",
+ "You accepted the request to link {remote} with {circle}" : "Aceptaste la solicitud para vincular {remote} con {circle}",
+ "{author} accepted the request to link {remote} with {circle}" : "{author} aceptó la solicitud para vincular {remote} con {circle}",
+ "A link between {circle} and {remote} is now up and running" : "La liga entre {circle} y {remote} está ahora lista y funcionando",
+ "The link between {circle} and {remote} has been shutdown remotely" : "La liga entre {circle} y {remote} ha sido deshabilitada remotamente",
+ "You closed the link between {circle} and {remote}" : "Cerraste la liga entre {cirlce} y {remote}",
+ "{author} closed the link between {circle} and {remote}" : "{author} cerró la liga entre {circle} y {remote}",
+ "You joined {circle}" : "Te uniste a {circle}",
+ "{member} joined {circle}" : "{member} se unió a {circle}",
+ "You accepted the invitation to join {circle}" : "Aceptaste la invitación para unirte a {cirlce}",
+ "{member} accepted the invitation to join {circle}" : "{member} aceptó la inivtación para unirse a {circle}",
+ "You added {member} as member to {circle}" : "Agregaste a {member} como miembro de {circle}",
+ "You have been added as member to {circle} by {author}" : "Has sido agregado como miembro de {circle} por {author}",
+ "{member} has been added as member to {circle} by {author}" : "{member} ha sido agregado como un miembro de {circle} por {author}",
+ "You added {external} to {circle}" : "Agregaste a {external} a {circle}",
+ "{external} has been added to {circle} by {author}" : "{external} ha sido agregado a {circle} por {author}",
+ "You accepted {member}'s request to join {circle}" : "Aceptaste la solicitud de {member} para unirse a {circle}",
+ "Your request to join {circle} has been accepted by {author}" : "Tu solicitud para unirte a {circle} ha sido aceptada por {author}",
+ "{member}'s request to join {circle} has been accepted by {author}" : "La solicitud de {member} para unirse a {circle} ha sido aceptada por {author}",
+ "You left {circle}" : "Dejaste el {circle}",
+ "{member} left {circle}" : "{member} dejó {circle}",
+ "You declined the invitation to join {circle}" : "Declinaste la invitacion a unirte a {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} declinó la invitación para unirse a {cricle}",
+ "You cancelled your request to join {circle}" : "Cancelaste tu solicitud para unirte a {cricle}",
+ "{member} cancelled his request to join {circle}" : "{member} canceló su solicitud para unirse a {circle}",
+ "You removed {member} from {circle}" : "Eliminaste a {member} de {circle}",
+ "You have been removed from {circle} by {author}" : "Has sido eliminado de {circle} por {author}",
+ "{member} has been removed from {circle} by {author}" : "{member} ha sido eliminado de {circle} por {author}",
+ "You removed {external} from {circle}" : "Eliminaste a {external} de {circle}",
+ "{external} has been removed from {circle} by {author}" : "{external} ha sido eliminado de {circle} por {autor}",
+ "You cancelled {member}'s invitation to join {circle}" : "Cancelaste la invitación de {member} para unirse a {circle}",
+ "Your invitation to join {circle} has been cancelled by {author}" : "Tu invitación para unirte a {circle} ha sido cancelada por {author}",
+ "{author} cancelled {member}'s invitation to join {circle}" : "{author} canceló la invitación de {member} para unirse a {crcle}",
+ "You dismissed {member}'s request to join {circle}" : "Descartaste la solicitud de {member} para unirse a {circle}",
+ "Your request to join {circle} has been dismissed by {author}" : "Tu solicitud para unirte a {circle} fue descartada por {author}",
+ "{member}'s request to join {circle} has been dismissed by {author}" : "La solicitud de {member} para unirse a {circle} ha sido descartada por {author}",
+ "You invited {member} to join {circle}" : "Invitaste a {member} a unirse a {circle}",
+ "You have been invited to join {circle} by {author}" : "{author} te ha invitado a unirte a {circle}",
+ "{member} has been invited to join {circle} by {author}" : "{member} fue invitado a unirse a {circle} por {author}",
+ "You changed {member}'s level in {circle} to %1$s" : "Cambiaste el nivel de {member} en el círculo a %1$s",
+ "{author} changed your level in {circle} to %1$s" : "{author} cambió tu nivel en {circle} a %1$s",
+ "{author} changed {member}'s level in {circle} to %1$s" : "{author} cambió el nivel de {member} en {circle}  a %1$s",
+ "You sent a request to join {circle}" : "Enviaste una solicitud para unirte a {circle}",
+ "{member} sent a request to join {circle}" : "{member} envió una solicitud para unirse a {circle}",
+ "You are the new owner of {circle}" : "Eres el nuevo dueño de {circle}",
+ "{member} is the new owner of {circle}" : "{member} es el nuevo dueño de {circle}",
+ "On events happening in a <strong>Circle</strong> you belong" : "Acerca de eventos que pasan en un <strong>C´riculo</strong> al que perteneces",
+ "Any important event in a <strong>Circle</strong> you are moderating" : "Cualquier evento importante en un <strong>Círculo</strong> que estés moderando",
+ "%s shared »%s« with you." : "%s compartió »%s« contigo.",
+ "%s shared »%s« with '%s'." : "%s compartió »%s« con '%s'.",
+ "%s on %s" : "%s en %s",
+ "Click the button below to open it." : "Haz click en el botón para abrirlo.",
+ "Open »%s«" : "Abrir »%s«",
+ "The name of your circle must contain at least 3 characters" : "El nombre de tu círculo debe contener al menos 3 caracteres",
+ "The name of your circle must start with an alpha-numerical character" : "El nombre del círculo debe empezar con un caracter alfa-numérico",
+ "Linked Groups are not allowed on this Nextcloud" : "No se permiten Grupos Ligados en este Nextcloud",
+ "Federated circles are not allowed on this Nextcloud" : "No se permiten los círculos federados en este Nextcloud",
+ "Circle not found" : "Círculo no encontrado",
+ "A circle with that name exists" : "Un círculo con ese nombre ya existe",
+ "You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "No puedes usar la Aplicación de Círculos hasta que tu adminsitrador haya permitido al menos un tipo de círculo",
+ "Federated link not found" : "No se encontró la liga",
+ "This member does not exist" : "Este miembro no existe",
+ "This user is already a member of the circle" : "El usuario ya es un miembro del círculo",
+ "Sharing Frame does not exist" : "No existe el Marco para Compartir. ",
+ "This feature is not available for personal circles" : "Esta característica no está disponible para círculos personales",
+ "The circle is not Federated" : "Este círculo no es Federado",
+ "You cannot join this circle" : "No puedes unirte a este cículo",
+ "This member is not a moderator" : "Este miembro no es un moderador",
+ "Not enough privileges" : "No cuentas con privilegios suficientes",
+ "This member is not the owner of the circle" : "Este miembro no es el dueño del círculo",
+ "This member is not admin of the circle" : "Este miembro no es un adminsitrador del círculo",
+ "This member is the owner of the circle" : "Este miembro es el dueño del círculo",
+ "Level cannot be changed for that type of member" : "El nivel no puede ser cambiado para ese tipo de miembro",
+ "You are already a member of this circle" : "Ya eres un miembro de este círculo",
+ "You have been blocked from this circle" : "Has sido bloqueado de este círculo",
+ "User is already a member of this circle" : "El usuario ya es miembro de este círculo",
+ "User is already invited into this circle" : "El usuario ya está invitado a este círculo",
+ "You need a specify a type of circle" : "Necesitas especificar un tipo de círculo",
+ "You cannot create this type of circle" : "No puede crear un círculo de este tipo",
+ "You cannot display this type of circle" : "No puedes desplegar un círculo de este tipo",
+ "Federated link does not have a valid format" : "La liga federada no tiene un formato válido",
+ "Federated circles are not allowed on the remote Nextcloud" : "No se permiten los círculos federados en el Nextcloud remoto",
+ "Remote circle does not accept federated links" : "El círculo remoto no acepta ligas federadas",
+ "Trying to link a circle to itself" : "Intentando vincular círculo a si mismo",
+ "This link exists already" : "Esta liga ya existe",
+ "The requested remote circle does not exist" : "El círculo remoto solicitado no existe",
+ "The remote host is down or the Circles app is not installed on it" : "El servidor remoto está abajo o bien la aplicación de Círculos no está instalada en él",
+ "Cannot proceed with this status update" : "No es posible proceder con esta actualización de estatus",
+ "This group does not exist" : "Este grupo no existe",
+ "This group is already linked to the circle" : "Este grupo ya ha sido ligado a este círculo",
+ "You cannot edit level in a personal circle" : "No puedes editar el nivel en un círculo personal",
+ "Group cannot be set as owner of a circle" : "Un Grupo no puede ser establecido como dueño de un círculo",
+ "This user does not exist" : "Este usuario no existe",
+ "Email format is not valid" : "El formato de la dirección de correo electrónico no es válido",
+ "This contact is not available" : "Este contacto no está disponible",
+ "Could not find share" : "No se encontró el elemento compartido",
+ "Create a new circle" : "Crear un nuevo círculo",
+ "Select a type of circle" : "Selecciona el tipo de círculo",
+ "Create a personal circle" : "Crear un círculo personal",
+ "Create a public circle" : "Crear un círculo público",
+ "Create a closed circle" : "Crear un círculo cerrado",
+ "Create a secret circle" : "Crear un círculo secreto",
+ "A personal circle is a list of users known only to the owner." : "Un círculo personal es una lista de usuarios que es conocida solo por el dueño. ",
+ "This is the right option if you want to do recurrent sharing with the same list of local users." : "Esta es la opción más indicada si quieres compartir recurrentemente con la misma lista de usuarios locales. ",
+ "A secret circle is an hidden group that can only be seen by its members or by people knowing the exact name of the circle." : "Un círculo secreto es un grupo oculto que solo puede ser visto por sus miembros o por personas que conozcan el nombre exacto del círculo.",
+ "Non-members won't be able to find your secret circle using the search bar." : "Sólo los miembros podrán encontrar tu círculo secreto usando la barra de búsqueda.",
+ "Joining a closed circle requires an invitation or a confirmation by a moderator." : "Unirse a un círculo cerrado requiere de una invitación o confirmación de un moderador.",
+ "Anyone can find the circle and request an invitation; but only members will see who's in it and get access to shared items." : "Cualquiera puede encontrar el cículo y solicitar una invitación; pero solo los miembros podrán ver quién es miembro y acceder los elementos compartidos.",
+ "A public circle is an open group visible to anyone willing to join." : "Un círculo público es un grupo abierto, visible a todos aquellos que quieran unirse.",
+ "Anyone can see the circle, can join the circle and access the items shared to the circle." : "Cualquiera puede ver el círculo, unirse al círculo y accesar a los elementos compartidos al círculo. ",
+ "Personal circles" : "Círculos personales",
+ "Public circles" : "Círculos públicos",
+ "Closed circles" : "Círculos cerrados",
+ "Secret circles" : "Círculos secretos",
+ "All circles" : "Todos los círculos",
+ "Search circles" : "Buscar círculos",
+ "No filter" : "Sin filtro",
+ "Circles you belong to" : "Círculos a los que perteneces",
+ "Circles you own" : "Círculos que te pertenecen ",
+ "No circle selected" : "No se ha selecccionado un círculo",
+ "Pending invitation to join this circle" : "Invitación pendiente para unirte a este círculo",
+ "You have a pending request to join this circle" : "Tienes una solicitud pendiente para unirte a este círculo ",
+ "Add a member" : "Agegar un miembro",
+ "Link a group" : "Ligar un grupo",
+ "Link a circle" : "Ligar un círculo",
+ "Join this circle" : "Únete a este círculo",
+ "Delete circle" : "Borrar círculo",
+ "Edit circle" : "Editar círculo",
+ "Accept the invitation" : "Aceptar la invitación",
+ "Decline the invitation" : "Declinar la invitación",
+ "Leave this circle" : "Dejar este círculo",
+ "Link to a circle" : "Ligar a un círculo",
+ "Return to menu" : "Regresar al menú",
+ "Username" : "Usuario",
+ "Level" : "Nivel",
+ "Status" : "Estatus",
+ "Joined" : "Se ha unido",
+ "Group Name" : "Nombre del Grupo",
+ "Link" : "Ligas",
+ "Linked" : "Ligado",
+ "Allow Federated Links" : "Permitir Ligas Federadas",
+ "Turns the circle as Federated and enable sharing between Federated Circles" : "Convierte el círculo a Federado y habilita el compartir entre Círculos Federados",
+ "Automatically Accept Link Request" : "Aceptar Automáticamente Solicitudes de Ligas",
+ "Warning: enabling this will automatically accept new link requests from other circle." : "Advertencia: al habilitar esto, aceptará automáticamente solicitudes de ligas nuevas de otros círculos",
+ "Save settings" : "Guardar configuraciones",
+ "Async Testing:" : "Probando Async:",
+ "initiate test of Circles Async" : "Comenzar la prueba de Círculos Async",
+ "reset test result" : "reiniciar los resutlados de la prueba",
+ "Test is currently running. Please wait." : "La prueba está en ejecución. Por favor espera.",
+ "Allow Group Linking:" : "Permitir Vinculacion de Gurpos:",
+ "Groups can be linked to Circles." : "Los grupos se pueden vincular a Círculos.",
+ "Allow Federated Circles:" : "Permitir Círculos Federados:",
+ "Circles from different Nextclouds can be linked together." : "Círculos de diferentes Nextclouds se pueden vincular juntos."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/l10n/es_MX.js b/l10n/es_MX.js
index 9c484172..bf7d7636 100644
--- a/l10n/es_MX.js
+++ b/l10n/es_MX.js
@@ -170,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "No se permiten los círculos federados en este Nextcloud",
"Circle not found" : "Círculo no encontrado",
"A circle with that name exists" : "Un círculo con ese nombre ya existe",
- "Sharing Frame does not exist" : "No existe el Marco para Compartir. ",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "No puedes usar la Aplicación de Círculos hasta que tu adminsitrador haya permitido al menos un tipo de círculo",
"Federated link not found" : "No se encontró la liga",
"This member does not exist" : "Este miembro no existe",
"This user is already a member of the circle" : "El usuario ya es un miembro del círculo",
+ "Sharing Frame does not exist" : "No existe el Marco para Compartir. ",
"This feature is not available for personal circles" : "Esta característica no está disponible para círculos personales",
"The circle is not Federated" : "Este círculo no es Federado",
"You cannot join this circle" : "No puedes unirte a este cículo",
diff --git a/l10n/es_MX.json b/l10n/es_MX.json
index 11dba952..4907ba3c 100644
--- a/l10n/es_MX.json
+++ b/l10n/es_MX.json
@@ -168,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "No se permiten los círculos federados en este Nextcloud",
"Circle not found" : "Círculo no encontrado",
"A circle with that name exists" : "Un círculo con ese nombre ya existe",
- "Sharing Frame does not exist" : "No existe el Marco para Compartir. ",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "No puedes usar la Aplicación de Círculos hasta que tu adminsitrador haya permitido al menos un tipo de círculo",
"Federated link not found" : "No se encontró la liga",
"This member does not exist" : "Este miembro no existe",
"This user is already a member of the circle" : "El usuario ya es un miembro del círculo",
+ "Sharing Frame does not exist" : "No existe el Marco para Compartir. ",
"This feature is not available for personal circles" : "Esta característica no está disponible para círculos personales",
"The circle is not Federated" : "Este círculo no es Federado",
"You cannot join this circle" : "No puedes unirte a este cículo",
diff --git a/l10n/fi.js b/l10n/fi.js
index e15e98f1..3602cda1 100644
--- a/l10n/fi.js
+++ b/l10n/fi.js
@@ -1,13 +1,21 @@
OC.L10N.register(
"circles",
{
+ "Are you sure you want to transfer your ownership?" : "Haluatko varmasti siirtää omistajuutesi?",
"This action is irreversible" : "Tämä toiminto on peruuttamaton",
"Personal circle" : "Henkilökohtainen piiri",
+ "Secret circle" : "Salainen piiri",
+ "Closed circle" : "Suljettu piiri",
"Public circle" : "Julkinen piiri",
"Circle" : "Piiri",
+ "Request sent" : "Pyyntö lähetetty",
"Personal Circle" : "Henkilökohtainen piiri",
+ "Secret Circle" : "Salainen piiri",
+ "Closed Circle" : "Suljettu piiri",
"Public Circle" : "Julkinen piiri",
"Personal" : "Henkilökohtainen",
+ "Secret" : "Salainen",
+ "Closed" : "Suljettu",
"Public" : "Julkinen",
"Not a member" : "Ei jäsen",
"Member" : "Jäsen",
@@ -22,18 +30,37 @@ OC.L10N.register(
"Please confirm" : "Vahvista muutokset",
"Are you sure you want to leave this circle?" : "Oletko varma, että haluat poistua tästä piiristä?",
"Are you sure you want to delete this circle?" : "Oletko varma, että haluat poistaa tämän piirin?",
+ "Mail Address" : "Sähköpostiosoite",
"Kick this member" : "Erota jäsen",
"Accept the request" : "Hyväksy pyyntö",
"Dismiss the request" : "Hylkää pyyntö",
+ "Remove this link" : "Poista tämä linkki",
"Cannot join this circle" : "Piiriin liittyminen ei onnistu",
"no error message" : "ei virheilmoitusta",
+ "You have joined this circle" : "Olet liittynyt tähän piiriin",
"You have requested to join this circle" : "Pyyntö piiriin liittymiseksi",
+ "You have left this circle" : "Olet poistunut tästä piiristä",
"Cannot leave this circle" : "Piiristä poistuminen ei onnistu",
+ "You have deleted this circle" : "Olet poistanut tämän piirin",
"Cannot delete this circle" : "Ei voida poistaa tätä piiriä",
" {type} '{name}' created" : "{type} '{name}' luotiin",
" {type} '{name}' could not be created" : " {type} '{name}' ei voitu luoda",
"Issue while retrieving the details of this circle" : "Ongelma vastaanotettaessa piirin yksityiskohtia",
"Issue while retrieving the list of circles" : "Virhe haettaessa listaa piireistä",
+ "Group '{name}' successfully added to the circle" : "Ryhmä '{name}' lisätty onnistuneesti piiriin",
+ "Group '{name}' could not be added to the circle" : "Ryhmää '{name}' ei voitu liittää piiriin",
+ "Group '{name}' updated" : "Ryhmä '{name}' päivitetty",
+ "Group '{name}' could not be updated" : "Ryhmää '{name}' ei voitu päivittää",
+ "Group '{name}' successfully removed from the circle" : "Ryhmä '{name}' poistettu onnistuneesti tästä piiristä",
+ "Local User" : "Paikallinen käyttäjä",
+ "Local Group" : "Paikallinen ryhmä",
+ "The member '{name}' was added to the circle" : "Jäsen '{name}' lisättiin piiriin",
+ "The member '{name}' could not be added to the circle" : "Jäsentä '{name}' ei voitu liittää piiriin",
+ "The member '{name}' was invited to the circle" : "Jäsen '{name}' kutsuttiin piiriin",
+ "The member '{name}' was removed from the circle" : "Jäsen '{name}' poistettiin piiristä",
+ "The member '{name}' could not be removed from the circle" : "Jäsentä '{name}' ei voitu poistaa piiristä",
+ "Member '{name}' updated" : "Jäsen '{name}' päivitetty",
+ "The member '{name}' could not be updated" : "Jäsentä '{name}' ei voitu päivittää",
"Issue while saving settings" : "Virhe tallennettaessa asetuksia",
"Settings saved." : "Asetukset tallennettu.",
"Circles" : "Piirit",
@@ -41,12 +68,26 @@ OC.L10N.register(
"{author} created the circle {circle}" : "{author} loi piirin {circle}",
"You deleted {circle}" : "Poistit piirin {circle}",
"{author} deleted {circle}" : "{author} poisti piirin {circle}",
+ "You linked {group} to {circle}" : "Linkitit ryhmän {group} piiriin {circle}",
"You joined {circle}" : "Liityit piiriin {circle}",
"{member} joined {circle}" : "{member} liittyi piiriin {circle}",
+ "You accepted the invitation to join {circle}" : "Hyväksyit kutsun liittyä piirin {circle}",
+ "{member} accepted the invitation to join {circle}" : "{member} hyväksyi kutsun liittyä piiriin {circle}",
"You added {member} as member to {circle}" : "Lisäsit käyttäjän {member} jäsenenä piiriin {circle}",
+ "You accepted {member}'s request to join {circle}" : "Hyväksyit jäsenen {member} pyynnön liittyä piiriin {circle}",
+ "You left {circle}" : "Poistuit piiristä {circle}",
"{member} left {circle}" : "{member} poistui piiristä {circle}",
+ "You cancelled your request to join {circle}" : "Peruit pyyntösi liittyä piiriin {circle}",
+ "{member} cancelled his request to join {circle}" : "{member} perui pyyntönsä liittyä piiriin {circle}",
"You removed {member} from {circle}" : "Poistit jäsenen {member} piiristä {circle}",
+ "You invited {member} to join {circle}" : "Kutsuit jäsenen {member} liittymään piiriin {circle}",
+ "You sent a request to join {circle}" : "Lähetit pyynnön liittyä piiriin {circle}",
+ "{member} sent a request to join {circle}" : "{member} lähetti pyynnön liittyä piiriin {circle}",
+ "You are the new owner of {circle}" : "Olet piirin {circle} uusi omistaja",
"{member} is the new owner of {circle}" : "{member} on piirin {circle} uusi omistaja",
+ "Click the button below to open it." : "Napsauta alla olevaa painiketta avataksesi sen.",
+ "Open »%s«" : "Avaa »%s«",
+ "The name of your circle must contain at least 3 characters" : "Piirisi nimessä tulee olla vähintään kolme merkkiä",
"Circle not found" : "Piiriä ei löytynyt",
"A circle with that name exists" : "Piirin nimi on jo olemassa",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Et voi käyttää Piiri Sovellusta ennenkuin ylläpitäjä on lisännyt sinut vähintään yhteen piiriin",
@@ -60,18 +101,29 @@ OC.L10N.register(
"This member is the owner of the circle" : "Tämä jäsen on piirin omistaja",
"You are already a member of this circle" : "Olet jo jäsenenä tässä piirissä",
"You have been blocked from this circle" : "Sinut on estetty tästä piiristä",
+ "User is already a member of this circle" : "Käyttäjä on jo tämän piirin jäsen",
+ "User is already invited into this circle" : "Käyttäjä on jo kutsuttu tähän piiriin",
"You need a specify a type of circle" : "Sinun täytyy määritellä piirin tyyppi",
"You cannot create this type of circle" : "Et voi luoda tämän tyyppistä piiriä",
"You cannot display this type of circle" : "Et voi näyttää tämän tyyppistä piiriä",
"This link exists already" : "Linkki on jo olemassa",
"The requested remote circle does not exist" : "Pyydettyä etäpiiriä ei ole olemassa",
+ "This group does not exist" : "Tätä ryhmää ei ole olemassa",
+ "This group is already linked to the circle" : "Tämä ryhmä on jo linkitetty piiriin",
+ "Group cannot be set as owner of a circle" : "Ryhmää ei voi asettaa piirin omistajaksi",
"This user does not exist" : "Tätä käyttäjää ei ole olemassa",
"Create a new circle" : "Luo uusi piiri",
"Select a type of circle" : "Valitse piirin tyyppi",
"Create a personal circle" : "Luo henkilökohtainen piiri",
"Create a public circle" : "Luo julkinen piiri",
+ "Create a closed circle" : "Luo suljettu piiri",
+ "Create a secret circle" : "Luo salainen piiri",
"A personal circle is a list of users known only to the owner." : "Vain omistaja tietää tähän piiriin kuuluvat.",
"A public circle is an open group visible to anyone willing to join." : "Julkinen piiri on avoin ryhmä, joka on nähtäville kenelle tahansa, joka haluaa liittyä siihen.",
+ "Personal circles" : "Henkilökohtaiset piirit",
+ "Public circles" : "Julkiset piirit",
+ "Closed circles" : "Suljetut piirit",
+ "Secret circles" : "Salaiset piirit",
"All circles" : "Kaikki piirit",
"Search circles" : "Etsi piirejä",
"No filter" : "Ei suodatinta",
@@ -81,6 +133,8 @@ OC.L10N.register(
"Pending invitation to join this circle" : "Tässä piirissä on odottavia kutsuja",
"You have a pending request to join this circle" : "Pyyntö piiriin liittymiseksi odottaa",
"Add a member" : "Lisää jäsen",
+ "Link a group" : "Linkitä ryhmä",
+ "Link a circle" : "Linkitä piiri",
"Join this circle" : "Liity tähän piiriin",
"Delete circle" : "Poista piiri",
"Edit circle" : "Muokkaa piiriä",
@@ -93,7 +147,10 @@ OC.L10N.register(
"Level" : "Taso",
"Status" : "Tila",
"Joined" : "Liittynyt",
+ "Group Name" : "Ryhmän nimi",
"Link" : "Linkki",
- "Save settings" : "Tallenna asetukset"
+ "Linked" : "Linkitetty",
+ "Save settings" : "Tallenna asetukset",
+ "Groups can be linked to Circles." : "Ryhmät voidaan linkittää piireihin."
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/fi.json b/l10n/fi.json
index 04e3132d..7f387c96 100644
--- a/l10n/fi.json
+++ b/l10n/fi.json
@@ -1,11 +1,19 @@
{ "translations": {
+ "Are you sure you want to transfer your ownership?" : "Haluatko varmasti siirtää omistajuutesi?",
"This action is irreversible" : "Tämä toiminto on peruuttamaton",
"Personal circle" : "Henkilökohtainen piiri",
+ "Secret circle" : "Salainen piiri",
+ "Closed circle" : "Suljettu piiri",
"Public circle" : "Julkinen piiri",
"Circle" : "Piiri",
+ "Request sent" : "Pyyntö lähetetty",
"Personal Circle" : "Henkilökohtainen piiri",
+ "Secret Circle" : "Salainen piiri",
+ "Closed Circle" : "Suljettu piiri",
"Public Circle" : "Julkinen piiri",
"Personal" : "Henkilökohtainen",
+ "Secret" : "Salainen",
+ "Closed" : "Suljettu",
"Public" : "Julkinen",
"Not a member" : "Ei jäsen",
"Member" : "Jäsen",
@@ -20,18 +28,37 @@
"Please confirm" : "Vahvista muutokset",
"Are you sure you want to leave this circle?" : "Oletko varma, että haluat poistua tästä piiristä?",
"Are you sure you want to delete this circle?" : "Oletko varma, että haluat poistaa tämän piirin?",
+ "Mail Address" : "Sähköpostiosoite",
"Kick this member" : "Erota jäsen",
"Accept the request" : "Hyväksy pyyntö",
"Dismiss the request" : "Hylkää pyyntö",
+ "Remove this link" : "Poista tämä linkki",
"Cannot join this circle" : "Piiriin liittyminen ei onnistu",
"no error message" : "ei virheilmoitusta",
+ "You have joined this circle" : "Olet liittynyt tähän piiriin",
"You have requested to join this circle" : "Pyyntö piiriin liittymiseksi",
+ "You have left this circle" : "Olet poistunut tästä piiristä",
"Cannot leave this circle" : "Piiristä poistuminen ei onnistu",
+ "You have deleted this circle" : "Olet poistanut tämän piirin",
"Cannot delete this circle" : "Ei voida poistaa tätä piiriä",
" {type} '{name}' created" : "{type} '{name}' luotiin",
" {type} '{name}' could not be created" : " {type} '{name}' ei voitu luoda",
"Issue while retrieving the details of this circle" : "Ongelma vastaanotettaessa piirin yksityiskohtia",
"Issue while retrieving the list of circles" : "Virhe haettaessa listaa piireistä",
+ "Group '{name}' successfully added to the circle" : "Ryhmä '{name}' lisätty onnistuneesti piiriin",
+ "Group '{name}' could not be added to the circle" : "Ryhmää '{name}' ei voitu liittää piiriin",
+ "Group '{name}' updated" : "Ryhmä '{name}' päivitetty",
+ "Group '{name}' could not be updated" : "Ryhmää '{name}' ei voitu päivittää",
+ "Group '{name}' successfully removed from the circle" : "Ryhmä '{name}' poistettu onnistuneesti tästä piiristä",
+ "Local User" : "Paikallinen käyttäjä",
+ "Local Group" : "Paikallinen ryhmä",
+ "The member '{name}' was added to the circle" : "Jäsen '{name}' lisättiin piiriin",
+ "The member '{name}' could not be added to the circle" : "Jäsentä '{name}' ei voitu liittää piiriin",
+ "The member '{name}' was invited to the circle" : "Jäsen '{name}' kutsuttiin piiriin",
+ "The member '{name}' was removed from the circle" : "Jäsen '{name}' poistettiin piiristä",
+ "The member '{name}' could not be removed from the circle" : "Jäsentä '{name}' ei voitu poistaa piiristä",
+ "Member '{name}' updated" : "Jäsen '{name}' päivitetty",
+ "The member '{name}' could not be updated" : "Jäsentä '{name}' ei voitu päivittää",
"Issue while saving settings" : "Virhe tallennettaessa asetuksia",
"Settings saved." : "Asetukset tallennettu.",
"Circles" : "Piirit",
@@ -39,12 +66,26 @@
"{author} created the circle {circle}" : "{author} loi piirin {circle}",
"You deleted {circle}" : "Poistit piirin {circle}",
"{author} deleted {circle}" : "{author} poisti piirin {circle}",
+ "You linked {group} to {circle}" : "Linkitit ryhmän {group} piiriin {circle}",
"You joined {circle}" : "Liityit piiriin {circle}",
"{member} joined {circle}" : "{member} liittyi piiriin {circle}",
+ "You accepted the invitation to join {circle}" : "Hyväksyit kutsun liittyä piirin {circle}",
+ "{member} accepted the invitation to join {circle}" : "{member} hyväksyi kutsun liittyä piiriin {circle}",
"You added {member} as member to {circle}" : "Lisäsit käyttäjän {member} jäsenenä piiriin {circle}",
+ "You accepted {member}'s request to join {circle}" : "Hyväksyit jäsenen {member} pyynnön liittyä piiriin {circle}",
+ "You left {circle}" : "Poistuit piiristä {circle}",
"{member} left {circle}" : "{member} poistui piiristä {circle}",
+ "You cancelled your request to join {circle}" : "Peruit pyyntösi liittyä piiriin {circle}",
+ "{member} cancelled his request to join {circle}" : "{member} perui pyyntönsä liittyä piiriin {circle}",
"You removed {member} from {circle}" : "Poistit jäsenen {member} piiristä {circle}",
+ "You invited {member} to join {circle}" : "Kutsuit jäsenen {member} liittymään piiriin {circle}",
+ "You sent a request to join {circle}" : "Lähetit pyynnön liittyä piiriin {circle}",
+ "{member} sent a request to join {circle}" : "{member} lähetti pyynnön liittyä piiriin {circle}",
+ "You are the new owner of {circle}" : "Olet piirin {circle} uusi omistaja",
"{member} is the new owner of {circle}" : "{member} on piirin {circle} uusi omistaja",
+ "Click the button below to open it." : "Napsauta alla olevaa painiketta avataksesi sen.",
+ "Open »%s«" : "Avaa »%s«",
+ "The name of your circle must contain at least 3 characters" : "Piirisi nimessä tulee olla vähintään kolme merkkiä",
"Circle not found" : "Piiriä ei löytynyt",
"A circle with that name exists" : "Piirin nimi on jo olemassa",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Et voi käyttää Piiri Sovellusta ennenkuin ylläpitäjä on lisännyt sinut vähintään yhteen piiriin",
@@ -58,18 +99,29 @@
"This member is the owner of the circle" : "Tämä jäsen on piirin omistaja",
"You are already a member of this circle" : "Olet jo jäsenenä tässä piirissä",
"You have been blocked from this circle" : "Sinut on estetty tästä piiristä",
+ "User is already a member of this circle" : "Käyttäjä on jo tämän piirin jäsen",
+ "User is already invited into this circle" : "Käyttäjä on jo kutsuttu tähän piiriin",
"You need a specify a type of circle" : "Sinun täytyy määritellä piirin tyyppi",
"You cannot create this type of circle" : "Et voi luoda tämän tyyppistä piiriä",
"You cannot display this type of circle" : "Et voi näyttää tämän tyyppistä piiriä",
"This link exists already" : "Linkki on jo olemassa",
"The requested remote circle does not exist" : "Pyydettyä etäpiiriä ei ole olemassa",
+ "This group does not exist" : "Tätä ryhmää ei ole olemassa",
+ "This group is already linked to the circle" : "Tämä ryhmä on jo linkitetty piiriin",
+ "Group cannot be set as owner of a circle" : "Ryhmää ei voi asettaa piirin omistajaksi",
"This user does not exist" : "Tätä käyttäjää ei ole olemassa",
"Create a new circle" : "Luo uusi piiri",
"Select a type of circle" : "Valitse piirin tyyppi",
"Create a personal circle" : "Luo henkilökohtainen piiri",
"Create a public circle" : "Luo julkinen piiri",
+ "Create a closed circle" : "Luo suljettu piiri",
+ "Create a secret circle" : "Luo salainen piiri",
"A personal circle is a list of users known only to the owner." : "Vain omistaja tietää tähän piiriin kuuluvat.",
"A public circle is an open group visible to anyone willing to join." : "Julkinen piiri on avoin ryhmä, joka on nähtäville kenelle tahansa, joka haluaa liittyä siihen.",
+ "Personal circles" : "Henkilökohtaiset piirit",
+ "Public circles" : "Julkiset piirit",
+ "Closed circles" : "Suljetut piirit",
+ "Secret circles" : "Salaiset piirit",
"All circles" : "Kaikki piirit",
"Search circles" : "Etsi piirejä",
"No filter" : "Ei suodatinta",
@@ -79,6 +131,8 @@
"Pending invitation to join this circle" : "Tässä piirissä on odottavia kutsuja",
"You have a pending request to join this circle" : "Pyyntö piiriin liittymiseksi odottaa",
"Add a member" : "Lisää jäsen",
+ "Link a group" : "Linkitä ryhmä",
+ "Link a circle" : "Linkitä piiri",
"Join this circle" : "Liity tähän piiriin",
"Delete circle" : "Poista piiri",
"Edit circle" : "Muokkaa piiriä",
@@ -91,7 +145,10 @@
"Level" : "Taso",
"Status" : "Tila",
"Joined" : "Liittynyt",
+ "Group Name" : "Ryhmän nimi",
"Link" : "Linkki",
- "Save settings" : "Tallenna asetukset"
+ "Linked" : "Linkitetty",
+ "Save settings" : "Tallenna asetukset",
+ "Groups can be linked to Circles." : "Ryhmät voidaan linkittää piireihin."
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/fr.js b/l10n/fr.js
index d1b66835..74528e79 100644
--- a/l10n/fr.js
+++ b/l10n/fr.js
@@ -170,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Les cercles fédérés ne sont pas autorisés sur ce Nextcloud",
"Circle not found" : "Cercle non trouvé",
"A circle with that name exists" : "Ce nom de cercle existe",
- "Sharing Frame does not exist" : "Le partage de la fenêtre n'existe pas",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Vous ne pouvez pas utiliser l'application Cercles à moins que votre admnistrateur est autorisé au moins un type de cercles",
"Federated link not found" : "Lien fédéré non trouvé",
"This member does not exist" : "Ce membre n'existe pas",
"This user is already a member of the circle" : "Cet utilisateur est déjà membre du cercle",
+ "Sharing Frame does not exist" : "Le partage de la fenêtre n'existe pas",
"This feature is not available for personal circles" : "Cette fonctionnalité n'est pas disponible pour les cercles personnels",
"The circle is not Federated" : "Le cercle n'est pas Fédéré",
"You cannot join this circle" : "Vous ne pouvez pas rejoindre ce cercle",
diff --git a/l10n/fr.json b/l10n/fr.json
index a84359af..00d133d9 100644
--- a/l10n/fr.json
+++ b/l10n/fr.json
@@ -168,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "Les cercles fédérés ne sont pas autorisés sur ce Nextcloud",
"Circle not found" : "Cercle non trouvé",
"A circle with that name exists" : "Ce nom de cercle existe",
- "Sharing Frame does not exist" : "Le partage de la fenêtre n'existe pas",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Vous ne pouvez pas utiliser l'application Cercles à moins que votre admnistrateur est autorisé au moins un type de cercles",
"Federated link not found" : "Lien fédéré non trouvé",
"This member does not exist" : "Ce membre n'existe pas",
"This user is already a member of the circle" : "Cet utilisateur est déjà membre du cercle",
+ "Sharing Frame does not exist" : "Le partage de la fenêtre n'existe pas",
"This feature is not available for personal circles" : "Cette fonctionnalité n'est pas disponible pour les cercles personnels",
"The circle is not Federated" : "Le cercle n'est pas Fédéré",
"You cannot join this circle" : "Vous ne pouvez pas rejoindre ce cercle",
diff --git a/l10n/hu.js b/l10n/hu.js
new file mode 100644
index 00000000..943dfef8
--- /dev/null
+++ b/l10n/hu.js
@@ -0,0 +1,193 @@
+OC.L10N.register(
+ "circles",
+ {
+ "Are you sure you want to transfer your ownership?" : "Biztosan átadod a tulajdonjogodat?",
+ "This action is irreversible" : "Ez a művelet nem visszafordítható",
+ "Personal circle" : "Személyes kör",
+ "Secret circle" : "Titkos kör",
+ "Closed circle" : "Zárt kör",
+ "Public circle" : "Nyilvános kör",
+ "Circle" : "Kör",
+ "Link Removed" : "Hivatkozás eltávolítása",
+ "Link down" : "Kapcsolat le",
+ "Setting link" : "Kapcsolat beállítása",
+ "Request dismissed" : "Kérés elutasítva",
+ "Request sent" : "Kérés elküldve",
+ "Link requested" : "Kapcsolat kérelmezve",
+ "Link up" : "Kapcsolat fel",
+ "Personal Circle" : "Személyes kör",
+ "Secret Circle" : "Titkos kör",
+ "Closed Circle" : "Zárt kör",
+ "Public Circle" : "Nyilvános kör",
+ "Personal" : "Személyes",
+ "Secret" : "Titok",
+ "Closed" : "Bezárt",
+ "Public" : "Nyilvános",
+ "Not a member" : "Nem tag",
+ "Member" : "Tag",
+ "Moderator" : "Moderátor",
+ "Admin" : "Adminisztrátor",
+ "Owner" : "Tulajdonos",
+ "Unknown" : "Ismeretlen",
+ "Invited" : "Meghívva",
+ "Requesting" : "Kérelmezés",
+ "Blocked" : "Blokkolva",
+ "Kicked" : "Kirúgva",
+ "This operation will add/invite all members of the group to the circle" : "A művelet a csoport minden tagját hozzáadja/meghívja a körbe",
+ "Please confirm" : "Kérlek erősítsd meg",
+ "Are you sure you want to leave this circle?" : "Biztosan el akarod hagyni ezt a kört?",
+ "Are you sure you want to delete this circle?" : "Biztosan törlöd ezt a kört?",
+ "Mail Address" : "Levél cím",
+ "Contact" : "Kapcsolat",
+ "Kick this member" : "A tag kirúgása",
+ "Accept the request" : "Kérés elfogadása",
+ "Dismiss the request" : "Kérés elutasítása",
+ "Unlink this group" : "Csoport leválasztása",
+ "Remove this link" : "Link eltávolítása",
+ "Cancel the link request" : "Kapcsolati kérés visszavonása",
+ "Accept the link request" : "Kapcsolati kérés elfogadása",
+ "Reject the link request" : "Kapcsolati kérés elutasítása",
+ "Cannot join this circle" : "Ehhez a köröz nem lehet csatlakozni ",
+ "no error message" : "nincs hibaüzenet",
+ "You have joined this circle" : "Csatlakoztál a körhöz",
+ "You have requested to join this circle" : "Kérelmezted a körhöz való csatlakozást",
+ "You have left this circle" : "Elhagytad a kört",
+ "Cannot leave this circle" : "Ezt a kört nem lehet elhagyni",
+ "You have deleted this circle" : "Törölted a kört",
+ "Cannot delete this circle" : "Kör nem törölhető",
+ " {type} '{name}' created" : " {type} '{name}' létrehozva",
+ " {type} '{name}' could not be created" : " {type} '{name}' nem létrehozható",
+ "Issue while retrieving the details of this circle" : "Hiba történt a kör részleteinek betöltésekor",
+ "Issue while retrieving the list of circles" : "Hiba történt a körök listájának lekérése közben",
+ "Group '{name}' successfully added to the circle" : "A(z) '{name}' csoport sikeresen hozzáadva a körhöz",
+ "Group '{name}' could not be added to the circle" : "A(z) '{name}' csoport nem adható a körhöz",
+ "Group '{name}' updated" : "'{name}' csoport frissítve",
+ "Group '{name}' could not be updated" : "A(z) '{name}' csoport nem frissíthető",
+ "Group '{name}' successfully removed from the circle" : "A(z) '{name}' csoport sikeresen eltávolítva a körből",
+ "Group '{name}' could not be removed from the circle" : "A(z) '{name}' csoport nem eltávolítható a körből",
+ "The status of the link could not be updated" : "A kapcsolat állapota nem módosítható",
+ "The status of the link has been updated" : "A kapcsolat állapota módosítva",
+ "Local User" : "Helyi felhasználó",
+ "Local Group" : "Helyi csoport",
+ "The member '{name}' was removed from the circle" : "A(z) '{name}' tag eltávolítva a körből",
+ "The member '{name}' could not be removed from the circle" : "A(z) '{name}' tag nem eltávolítható a körből",
+ "Member '{name}' updated" : "A(z) '{name}' tag frissítve",
+ "The member '{name}' could not be updated" : "A(z) '{name}' tag nem frissíthető",
+ "Issue while saving settings" : "Esemény a beállítások mentésekor",
+ "Settings saved." : "Beállítások elmentve.",
+ "Circles" : "Körök",
+ "You created the circle {circle}" : "Létrehoztad a {circle} kört",
+ "{author} created the circle {circle}" : "{author} létrehozta a(z) {circle} kört",
+ "You deleted {circle}" : "Törölted ezt: {circle}",
+ "{author} deleted {circle}" : "{author} törölte a(z) {circle} kört",
+ "You linked {group} to {circle}" : "Kapcsoltad a(z) {group} csoportot ehhez: {circle}",
+ "You joined {circle}" : "Csatlakoztál ehhez: {circle}",
+ "{member} joined {circle}" : "{member} csatlakozott ehhez: {circle}",
+ "You left {circle}" : "Elhagytad ezt: {circle}",
+ "{member} left {circle}" : "{member} elhagyta ezt: {circle}",
+ "You declined the invitation to join {circle}" : "Visszautasítottad a meghívást ehhez: {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} visszautasította a meghívást ehhez: {circle}",
+ "You sent a request to join {circle}" : "Kérelmet küldtél a {circle} körhöz való csatlakozáshoz",
+ "{member} sent a request to join {circle}" : "{member} kérelmezte a csatlakozását ide: {circle}",
+ "%s shared »%s« with you." : "%s megosztotta »%s« veled.",
+ "%s shared »%s« with '%s'." : "%s megosztotta »%s« vele: '%s'.",
+ "%s on %s" : "%s ezen: %s",
+ "Click the button below to open it." : "Kattints a lenti gombra a megnyitáshoz",
+ "Open »%s«" : "»%s« megnyitása",
+ "The name of your circle must contain at least 3 characters" : "A kör neve legalább 3 karakterből kell álljon",
+ "The name of your circle must start with an alpha-numerical character" : "A kör neve alfanumerikus karakterrel kell kezdődjön",
+ "Linked Groups are not allowed on this Nextcloud" : "Kapcsolt csoportok nem engedélyezettek ezen a Nextcloud-on",
+ "Federated circles are not allowed on this Nextcloud" : "Ezen a Nextcloudon nem engedélyezettek az egységesített körök",
+ "Circle not found" : "A Kör nem található",
+ "A circle with that name exists" : "Már van ilyen nevű kör",
+ "You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "A kör alkalmazás nem használható, amíg az adminisztrátor legalább egy kör típust nem engedélyez.",
+ "Federated link not found" : "Egységesített kapcsolat nem található",
+ "This member does not exist" : "Ez a tag nem létezik",
+ "This user is already a member of the circle" : "Ez a felhasználó már tagja a körnek",
+ "Sharing Frame does not exist" : "Megosztókeret nem létezik",
+ "This feature is not available for personal circles" : "Ez a szolgátatás nem elérhető személyes köröknek",
+ "The circle is not Federated" : "A kör nem egységesített",
+ "You cannot join this circle" : "Nem csatlakozhatsz ehhez a körhöz",
+ "This member is not a moderator" : "Ez a tag nem moderátor",
+ "Not enough privileges" : "Elégtelen jogosultság",
+ "This member is not the owner of the circle" : "Ez a tag nem a tulajdonosa a körnek",
+ "This member is not admin of the circle" : "Ez a tag nem adminja a körnek",
+ "This member is the owner of the circle" : "Ez a tag a kör tulajdonosa",
+ "Level cannot be changed for that type of member" : "Ilyen típusú körnél nem állítható be szint",
+ "You are already a member of this circle" : "Már a tagja vagy ennek a körnek",
+ "You have been blocked from this circle" : "Kizártak ebből a körből",
+ "User is already a member of this circle" : "A felhasználó már tagja a körnek",
+ "User is already invited into this circle" : "A felhasználó már meg lett hívva a körbe",
+ "You need a specify a type of circle" : "Meg kell adnod egy kör típust",
+ "You cannot create this type of circle" : "Nem hozhatsz létre ilyen típusú kört",
+ "You cannot display this type of circle" : "Nem tudod megjeleníteni ezt a típusú kört",
+ "Federated link does not have a valid format" : "Érvénytelen egységesített kapcsolati formátum",
+ "Federated circles are not allowed on the remote Nextcloud" : "Egységesített körök nem engedélyezettek a távoli Nextcloud-on.",
+ "Remote circle does not accept federated links" : "A távoli kör nem fogad egységesített kapcsolatokat",
+ "Trying to link a circle to itself" : "Magához próbálod kötni a kört",
+ "This link exists already" : "Ez a kapcsolat már létezik",
+ "The requested remote circle does not exist" : "A kért távoli kör nem létezik",
+ "The remote host is down or the Circles app is not installed on it" : "A távoli kiszolgáló nem megy vagy a kör alkalmazás nincs telepítve",
+ "Cannot proceed with this status update" : "Státusz frissítés sikertelen",
+ "This group does not exist" : "Nem létező csoport",
+ "This group is already linked to the circle" : "Ez a csoport már csatolva van a körhöz",
+ "You cannot edit level in a personal circle" : "A szint nem szerkeszthető egy személyes körnél",
+ "Group cannot be set as owner of a circle" : "Csoport nem lehet kör tulajdonosa",
+ "This user does not exist" : "Ez a felhasználó nem létezik",
+ "Email format is not valid" : "Hibás e-mail formátum",
+ "This contact is not available" : "A kapcsolat nem elérhető",
+ "Could not find share" : "Megosztás nem található",
+ "Create a new circle" : "Új kör létrehozása",
+ "Select a type of circle" : "Válassz kör típust",
+ "Create a personal circle" : "Személyes kör létrehozása",
+ "Create a public circle" : " Nyilvános kör létrehozása",
+ "Create a closed circle" : "Zárt kör létrehozása",
+ "Create a secret circle" : "Titkos kör létrehozása",
+ "A personal circle is a list of users known only to the owner." : "A személyes kör egy olyan felhasználói lista, amit csak a tulajdonos ismer.",
+ "A public circle is an open group visible to anyone willing to join." : "A nyilvános kör egy nyitott csoport azok számára, akik csatlakoznának.",
+ "Anyone can see the circle, can join the circle and access the items shared to the circle." : "Bárki láthatja a kört, csatlakozhat és hozzáférhet az abban megosztott elemekhez.",
+ "Personal circles" : "Személyes körök",
+ "Public circles" : "Nyilvános körök",
+ "Closed circles" : "Zárt körök",
+ "Secret circles" : "Titkos körök",
+ "All circles" : "Minden kör",
+ "Search circles" : "Körök keresése",
+ "No filter" : "Nincs szűrő",
+ "Circles you belong to" : "Körök amikbe tartozol",
+ "Circles you own" : "A te köreid",
+ "No circle selected" : "Nincs kör kiválasztva",
+ "Pending invitation to join this circle" : "Függő körhöz való csatlakozási felkérés",
+ "You have a pending request to join this circle" : "Egy körhöz való csatlakozási kérelmed függőben van",
+ "Add a member" : "Tag felvétele",
+ "Link a group" : "Csoport kapcsolása",
+ "Link a circle" : "Kör csatolása",
+ "Join this circle" : "Csatlakozás a körhöz",
+ "Delete circle" : "Kör törlése",
+ "Edit circle" : "Kör szerkesztése",
+ "Accept the invitation" : "Meghívás elfogadása",
+ "Decline the invitation" : "Meghívó visszautasítása",
+ "Leave this circle" : "Kör elhagyása",
+ "Link to a circle" : "Kapcsolódás egy körhöz",
+ "Return to menu" : "Vissza a menübe",
+ "Username" : "Felhasználónév",
+ "Level" : "Szint",
+ "Status" : "Állapot",
+ "Joined" : "Csatlakozott",
+ "Group Name" : "Csoport Név",
+ "Link" : "Kapcsolat",
+ "Linked" : "Kapcsolódva",
+ "Allow Federated Links" : "Egyesített linkek engedélyezése",
+ "Turns the circle as Federated and enable sharing between Federated Circles" : "A köröket egységesítetté teszi és lehetővé teszi az egységes körök közti megosztást.",
+ "Automatically Accept Link Request" : "Kapcsolati kérések automatikus elfogadása",
+ "Warning: enabling this will automatically accept new link requests from other circle." : "Figyelem: ennek bekapcsolásával a kapcsolati kérések más köröktől automatikusan elfogadásra kerülnek.",
+ "Save settings" : "Beállítások mentése",
+ "Async Testing:" : "Async tesztelése:",
+ "initiate test of Circles Async" : "körök aszinkron tesztelésének kezdése",
+ "reset test result" : "teszteredmények visszaállítása",
+ "Test is currently running. Please wait." : "A teszt fut. Kérlek várj.",
+ "Allow Group Linking:" : "Csoport kötések engedélyezése:",
+ "Groups can be linked to Circles." : "A csoportok körökhöz köthetők.",
+ "Allow Federated Circles:" : "Egységesített körök engedélyezése:",
+ "Circles from different Nextclouds can be linked together." : "Más Nextcloud-okból való körök összekapcsolhatók."
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/l10n/hu.json b/l10n/hu.json
new file mode 100644
index 00000000..2c136bbf
--- /dev/null
+++ b/l10n/hu.json
@@ -0,0 +1,191 @@
+{ "translations": {
+ "Are you sure you want to transfer your ownership?" : "Biztosan átadod a tulajdonjogodat?",
+ "This action is irreversible" : "Ez a művelet nem visszafordítható",
+ "Personal circle" : "Személyes kör",
+ "Secret circle" : "Titkos kör",
+ "Closed circle" : "Zárt kör",
+ "Public circle" : "Nyilvános kör",
+ "Circle" : "Kör",
+ "Link Removed" : "Hivatkozás eltávolítása",
+ "Link down" : "Kapcsolat le",
+ "Setting link" : "Kapcsolat beállítása",
+ "Request dismissed" : "Kérés elutasítva",
+ "Request sent" : "Kérés elküldve",
+ "Link requested" : "Kapcsolat kérelmezve",
+ "Link up" : "Kapcsolat fel",
+ "Personal Circle" : "Személyes kör",
+ "Secret Circle" : "Titkos kör",
+ "Closed Circle" : "Zárt kör",
+ "Public Circle" : "Nyilvános kör",
+ "Personal" : "Személyes",
+ "Secret" : "Titok",
+ "Closed" : "Bezárt",
+ "Public" : "Nyilvános",
+ "Not a member" : "Nem tag",
+ "Member" : "Tag",
+ "Moderator" : "Moderátor",
+ "Admin" : "Adminisztrátor",
+ "Owner" : "Tulajdonos",
+ "Unknown" : "Ismeretlen",
+ "Invited" : "Meghívva",
+ "Requesting" : "Kérelmezés",
+ "Blocked" : "Blokkolva",
+ "Kicked" : "Kirúgva",
+ "This operation will add/invite all members of the group to the circle" : "A művelet a csoport minden tagját hozzáadja/meghívja a körbe",
+ "Please confirm" : "Kérlek erősítsd meg",
+ "Are you sure you want to leave this circle?" : "Biztosan el akarod hagyni ezt a kört?",
+ "Are you sure you want to delete this circle?" : "Biztosan törlöd ezt a kört?",
+ "Mail Address" : "Levél cím",
+ "Contact" : "Kapcsolat",
+ "Kick this member" : "A tag kirúgása",
+ "Accept the request" : "Kérés elfogadása",
+ "Dismiss the request" : "Kérés elutasítása",
+ "Unlink this group" : "Csoport leválasztása",
+ "Remove this link" : "Link eltávolítása",
+ "Cancel the link request" : "Kapcsolati kérés visszavonása",
+ "Accept the link request" : "Kapcsolati kérés elfogadása",
+ "Reject the link request" : "Kapcsolati kérés elutasítása",
+ "Cannot join this circle" : "Ehhez a köröz nem lehet csatlakozni ",
+ "no error message" : "nincs hibaüzenet",
+ "You have joined this circle" : "Csatlakoztál a körhöz",
+ "You have requested to join this circle" : "Kérelmezted a körhöz való csatlakozást",
+ "You have left this circle" : "Elhagytad a kört",
+ "Cannot leave this circle" : "Ezt a kört nem lehet elhagyni",
+ "You have deleted this circle" : "Törölted a kört",
+ "Cannot delete this circle" : "Kör nem törölhető",
+ " {type} '{name}' created" : " {type} '{name}' létrehozva",
+ " {type} '{name}' could not be created" : " {type} '{name}' nem létrehozható",
+ "Issue while retrieving the details of this circle" : "Hiba történt a kör részleteinek betöltésekor",
+ "Issue while retrieving the list of circles" : "Hiba történt a körök listájának lekérése közben",
+ "Group '{name}' successfully added to the circle" : "A(z) '{name}' csoport sikeresen hozzáadva a körhöz",
+ "Group '{name}' could not be added to the circle" : "A(z) '{name}' csoport nem adható a körhöz",
+ "Group '{name}' updated" : "'{name}' csoport frissítve",
+ "Group '{name}' could not be updated" : "A(z) '{name}' csoport nem frissíthető",
+ "Group '{name}' successfully removed from the circle" : "A(z) '{name}' csoport sikeresen eltávolítva a körből",
+ "Group '{name}' could not be removed from the circle" : "A(z) '{name}' csoport nem eltávolítható a körből",
+ "The status of the link could not be updated" : "A kapcsolat állapota nem módosítható",
+ "The status of the link has been updated" : "A kapcsolat állapota módosítva",
+ "Local User" : "Helyi felhasználó",
+ "Local Group" : "Helyi csoport",
+ "The member '{name}' was removed from the circle" : "A(z) '{name}' tag eltávolítva a körből",
+ "The member '{name}' could not be removed from the circle" : "A(z) '{name}' tag nem eltávolítható a körből",
+ "Member '{name}' updated" : "A(z) '{name}' tag frissítve",
+ "The member '{name}' could not be updated" : "A(z) '{name}' tag nem frissíthető",
+ "Issue while saving settings" : "Esemény a beállítások mentésekor",
+ "Settings saved." : "Beállítások elmentve.",
+ "Circles" : "Körök",
+ "You created the circle {circle}" : "Létrehoztad a {circle} kört",
+ "{author} created the circle {circle}" : "{author} létrehozta a(z) {circle} kört",
+ "You deleted {circle}" : "Törölted ezt: {circle}",
+ "{author} deleted {circle}" : "{author} törölte a(z) {circle} kört",
+ "You linked {group} to {circle}" : "Kapcsoltad a(z) {group} csoportot ehhez: {circle}",
+ "You joined {circle}" : "Csatlakoztál ehhez: {circle}",
+ "{member} joined {circle}" : "{member} csatlakozott ehhez: {circle}",
+ "You left {circle}" : "Elhagytad ezt: {circle}",
+ "{member} left {circle}" : "{member} elhagyta ezt: {circle}",
+ "You declined the invitation to join {circle}" : "Visszautasítottad a meghívást ehhez: {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} visszautasította a meghívást ehhez: {circle}",
+ "You sent a request to join {circle}" : "Kérelmet küldtél a {circle} körhöz való csatlakozáshoz",
+ "{member} sent a request to join {circle}" : "{member} kérelmezte a csatlakozását ide: {circle}",
+ "%s shared »%s« with you." : "%s megosztotta »%s« veled.",
+ "%s shared »%s« with '%s'." : "%s megosztotta »%s« vele: '%s'.",
+ "%s on %s" : "%s ezen: %s",
+ "Click the button below to open it." : "Kattints a lenti gombra a megnyitáshoz",
+ "Open »%s«" : "»%s« megnyitása",
+ "The name of your circle must contain at least 3 characters" : "A kör neve legalább 3 karakterből kell álljon",
+ "The name of your circle must start with an alpha-numerical character" : "A kör neve alfanumerikus karakterrel kell kezdődjön",
+ "Linked Groups are not allowed on this Nextcloud" : "Kapcsolt csoportok nem engedélyezettek ezen a Nextcloud-on",
+ "Federated circles are not allowed on this Nextcloud" : "Ezen a Nextcloudon nem engedélyezettek az egységesített körök",
+ "Circle not found" : "A Kör nem található",
+ "A circle with that name exists" : "Már van ilyen nevű kör",
+ "You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "A kör alkalmazás nem használható, amíg az adminisztrátor legalább egy kör típust nem engedélyez.",
+ "Federated link not found" : "Egységesített kapcsolat nem található",
+ "This member does not exist" : "Ez a tag nem létezik",
+ "This user is already a member of the circle" : "Ez a felhasználó már tagja a körnek",
+ "Sharing Frame does not exist" : "Megosztókeret nem létezik",
+ "This feature is not available for personal circles" : "Ez a szolgátatás nem elérhető személyes köröknek",
+ "The circle is not Federated" : "A kör nem egységesített",
+ "You cannot join this circle" : "Nem csatlakozhatsz ehhez a körhöz",
+ "This member is not a moderator" : "Ez a tag nem moderátor",
+ "Not enough privileges" : "Elégtelen jogosultság",
+ "This member is not the owner of the circle" : "Ez a tag nem a tulajdonosa a körnek",
+ "This member is not admin of the circle" : "Ez a tag nem adminja a körnek",
+ "This member is the owner of the circle" : "Ez a tag a kör tulajdonosa",
+ "Level cannot be changed for that type of member" : "Ilyen típusú körnél nem állítható be szint",
+ "You are already a member of this circle" : "Már a tagja vagy ennek a körnek",
+ "You have been blocked from this circle" : "Kizártak ebből a körből",
+ "User is already a member of this circle" : "A felhasználó már tagja a körnek",
+ "User is already invited into this circle" : "A felhasználó már meg lett hívva a körbe",
+ "You need a specify a type of circle" : "Meg kell adnod egy kör típust",
+ "You cannot create this type of circle" : "Nem hozhatsz létre ilyen típusú kört",
+ "You cannot display this type of circle" : "Nem tudod megjeleníteni ezt a típusú kört",
+ "Federated link does not have a valid format" : "Érvénytelen egységesített kapcsolati formátum",
+ "Federated circles are not allowed on the remote Nextcloud" : "Egységesített körök nem engedélyezettek a távoli Nextcloud-on.",
+ "Remote circle does not accept federated links" : "A távoli kör nem fogad egységesített kapcsolatokat",
+ "Trying to link a circle to itself" : "Magához próbálod kötni a kört",
+ "This link exists already" : "Ez a kapcsolat már létezik",
+ "The requested remote circle does not exist" : "A kért távoli kör nem létezik",
+ "The remote host is down or the Circles app is not installed on it" : "A távoli kiszolgáló nem megy vagy a kör alkalmazás nincs telepítve",
+ "Cannot proceed with this status update" : "Státusz frissítés sikertelen",
+ "This group does not exist" : "Nem létező csoport",
+ "This group is already linked to the circle" : "Ez a csoport már csatolva van a körhöz",
+ "You cannot edit level in a personal circle" : "A szint nem szerkeszthető egy személyes körnél",
+ "Group cannot be set as owner of a circle" : "Csoport nem lehet kör tulajdonosa",
+ "This user does not exist" : "Ez a felhasználó nem létezik",
+ "Email format is not valid" : "Hibás e-mail formátum",
+ "This contact is not available" : "A kapcsolat nem elérhető",
+ "Could not find share" : "Megosztás nem található",
+ "Create a new circle" : "Új kör létrehozása",
+ "Select a type of circle" : "Válassz kör típust",
+ "Create a personal circle" : "Személyes kör létrehozása",
+ "Create a public circle" : " Nyilvános kör létrehozása",
+ "Create a closed circle" : "Zárt kör létrehozása",
+ "Create a secret circle" : "Titkos kör létrehozása",
+ "A personal circle is a list of users known only to the owner." : "A személyes kör egy olyan felhasználói lista, amit csak a tulajdonos ismer.",
+ "A public circle is an open group visible to anyone willing to join." : "A nyilvános kör egy nyitott csoport azok számára, akik csatlakoznának.",
+ "Anyone can see the circle, can join the circle and access the items shared to the circle." : "Bárki láthatja a kört, csatlakozhat és hozzáférhet az abban megosztott elemekhez.",
+ "Personal circles" : "Személyes körök",
+ "Public circles" : "Nyilvános körök",
+ "Closed circles" : "Zárt körök",
+ "Secret circles" : "Titkos körök",
+ "All circles" : "Minden kör",
+ "Search circles" : "Körök keresése",
+ "No filter" : "Nincs szűrő",
+ "Circles you belong to" : "Körök amikbe tartozol",
+ "Circles you own" : "A te köreid",
+ "No circle selected" : "Nincs kör kiválasztva",
+ "Pending invitation to join this circle" : "Függő körhöz való csatlakozási felkérés",
+ "You have a pending request to join this circle" : "Egy körhöz való csatlakozási kérelmed függőben van",
+ "Add a member" : "Tag felvétele",
+ "Link a group" : "Csoport kapcsolása",
+ "Link a circle" : "Kör csatolása",
+ "Join this circle" : "Csatlakozás a körhöz",
+ "Delete circle" : "Kör törlése",
+ "Edit circle" : "Kör szerkesztése",
+ "Accept the invitation" : "Meghívás elfogadása",
+ "Decline the invitation" : "Meghívó visszautasítása",
+ "Leave this circle" : "Kör elhagyása",
+ "Link to a circle" : "Kapcsolódás egy körhöz",
+ "Return to menu" : "Vissza a menübe",
+ "Username" : "Felhasználónév",
+ "Level" : "Szint",
+ "Status" : "Állapot",
+ "Joined" : "Csatlakozott",
+ "Group Name" : "Csoport Név",
+ "Link" : "Kapcsolat",
+ "Linked" : "Kapcsolódva",
+ "Allow Federated Links" : "Egyesített linkek engedélyezése",
+ "Turns the circle as Federated and enable sharing between Federated Circles" : "A köröket egységesítetté teszi és lehetővé teszi az egységes körök közti megosztást.",
+ "Automatically Accept Link Request" : "Kapcsolati kérések automatikus elfogadása",
+ "Warning: enabling this will automatically accept new link requests from other circle." : "Figyelem: ennek bekapcsolásával a kapcsolati kérések más köröktől automatikusan elfogadásra kerülnek.",
+ "Save settings" : "Beállítások mentése",
+ "Async Testing:" : "Async tesztelése:",
+ "initiate test of Circles Async" : "körök aszinkron tesztelésének kezdése",
+ "reset test result" : "teszteredmények visszaállítása",
+ "Test is currently running. Please wait." : "A teszt fut. Kérlek várj.",
+ "Allow Group Linking:" : "Csoport kötések engedélyezése:",
+ "Groups can be linked to Circles." : "A csoportok körökhöz köthetők.",
+ "Allow Federated Circles:" : "Egységesített körök engedélyezése:",
+ "Circles from different Nextclouds can be linked together." : "Más Nextcloud-okból való körök összekapcsolhatók."
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/l10n/is.js b/l10n/is.js
index 466f7001..12f0adae 100644
--- a/l10n/is.js
+++ b/l10n/is.js
@@ -170,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Skýjasambönd hringja eru ekki leyfð í þessu Nextcloud-skýi",
"Circle not found" : "Hringur fannst ekki",
"A circle with that name exists" : "Nú þegar er til hringur með þetta nafn",
- "Sharing Frame does not exist" : "Deilingarrammi er ekki til",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Þú getur ekki notað Hringir-forritið fyrr en kerfisstjóri er búinn að leyfa a.m.k. eina gerð hringja",
"Federated link not found" : "Skyjasambandstengill fannst ekki",
"This member does not exist" : "Þessi meðlimur er ekki til",
"This user is already a member of the circle" : "Þessi notandi er nú þegar meðlimur í þessum hring",
+ "Sharing Frame does not exist" : "Deilingarrammi er ekki til",
"This feature is not available for personal circles" : "Þessi eiginleiki er ekki tiltækur fyrir persónulega hringi",
"The circle is not Federated" : "Hringurinn er ekki í skýjasambandi",
"You cannot join this circle" : "Þú getur ekki tekið þátt í þessum hring",
diff --git a/l10n/is.json b/l10n/is.json
index a9bc5155..7c5be333 100644
--- a/l10n/is.json
+++ b/l10n/is.json
@@ -168,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "Skýjasambönd hringja eru ekki leyfð í þessu Nextcloud-skýi",
"Circle not found" : "Hringur fannst ekki",
"A circle with that name exists" : "Nú þegar er til hringur með þetta nafn",
- "Sharing Frame does not exist" : "Deilingarrammi er ekki til",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Þú getur ekki notað Hringir-forritið fyrr en kerfisstjóri er búinn að leyfa a.m.k. eina gerð hringja",
"Federated link not found" : "Skyjasambandstengill fannst ekki",
"This member does not exist" : "Þessi meðlimur er ekki til",
"This user is already a member of the circle" : "Þessi notandi er nú þegar meðlimur í þessum hring",
+ "Sharing Frame does not exist" : "Deilingarrammi er ekki til",
"This feature is not available for personal circles" : "Þessi eiginleiki er ekki tiltækur fyrir persónulega hringi",
"The circle is not Federated" : "Hringurinn er ekki í skýjasambandi",
"You cannot join this circle" : "Þú getur ekki tekið þátt í þessum hring",
diff --git a/l10n/it.js b/l10n/it.js
index 79207281..f8450243 100644
--- a/l10n/it.js
+++ b/l10n/it.js
@@ -170,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Le cerchie federate non sono consentite su questo Nextcloud",
"Circle not found" : "Cerchia non trovata",
"A circle with that name exists" : "Una cerchia con quel nome esiste già",
- "Sharing Frame does not exist" : "Il riquadro di condivisione non esiste",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Non puoi utilizzare l'applicazione Cerchie fino a quando il tuo amministratore avrà consentito almeno un tipo di cerchia",
"Federated link not found" : "Collegamento federato non trovato",
"This member does not exist" : "Questo membro non esiste",
"This user is already a member of the circle" : "L'utente è già membro di una cerchia",
+ "Sharing Frame does not exist" : "Il riquadro di condivisione non esiste",
"This feature is not available for personal circles" : "Questa funzionalità non è disponibile nelle cerchie personali",
"The circle is not Federated" : "La cerchia non è federata",
"You cannot join this circle" : "Non puoi unirti a questa cerchia",
diff --git a/l10n/it.json b/l10n/it.json
index 4949d75b..3b21a502 100644
--- a/l10n/it.json
+++ b/l10n/it.json
@@ -168,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "Le cerchie federate non sono consentite su questo Nextcloud",
"Circle not found" : "Cerchia non trovata",
"A circle with that name exists" : "Una cerchia con quel nome esiste già",
- "Sharing Frame does not exist" : "Il riquadro di condivisione non esiste",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Non puoi utilizzare l'applicazione Cerchie fino a quando il tuo amministratore avrà consentito almeno un tipo di cerchia",
"Federated link not found" : "Collegamento federato non trovato",
"This member does not exist" : "Questo membro non esiste",
"This user is already a member of the circle" : "L'utente è già membro di una cerchia",
+ "Sharing Frame does not exist" : "Il riquadro di condivisione non esiste",
"This feature is not available for personal circles" : "Questa funzionalità non è disponibile nelle cerchie personali",
"The circle is not Federated" : "La cerchia non è federata",
"You cannot join this circle" : "Non puoi unirti a questa cerchia",
diff --git a/l10n/lt_LT.js b/l10n/lt_LT.js
new file mode 100644
index 00000000..4dc4a07a
--- /dev/null
+++ b/l10n/lt_LT.js
@@ -0,0 +1,98 @@
+OC.L10N.register(
+ "circles",
+ {
+ "This action is irreversible" : "Šis veiksmas yra neatšaukiamas",
+ "Personal circle" : "Asmeninis ratas",
+ "Secret circle" : "Slaptas ratas",
+ "Closed circle" : "Uždaras ratas",
+ "Public circle" : "Viešas ratas",
+ "Circle" : "Ratas",
+ "Link Removed" : "Nuoroda pašalinta",
+ "Personal Circle" : "Asmeninis ratas",
+ "Secret Circle" : "Slaptas ratas",
+ "Closed Circle" : "Uždaras ratas",
+ "Public Circle" : "Viešas ratas",
+ "Are you sure you want to leave this circle?" : "Ar tikrai norite išeiti iš šio rato?",
+ "Are you sure you want to delete this circle?" : "Ar tikrai norite ištrinti šį ratą?",
+ "Cannot join this circle" : "Nepavyksta prisijungti prie šio rato",
+ "You have joined this circle" : "Jūs prisijungėte prie šio rato",
+ "You have requested to join this circle" : "Jūs užklausėte prisijungti prie šio rato",
+ "You have left this circle" : "Jūs išėjote iš šio rato",
+ "Cannot leave this circle" : "Nepavyksta išeiti iš šio rato",
+ "You have deleted this circle" : "Jūs ištrynėte šį ratą",
+ "Cannot delete this circle" : "Nepavyksta ištrinti šio rato",
+ "Issue while retrieving the details of this circle" : "Problemos, gaunant išsamesnę šio rato informaciją",
+ "Issue while retrieving the list of circles" : "Problemos, gaunant ratų sąrašą",
+ "Group '{name}' successfully added to the circle" : "Grupė \"{name}\" sėkmingai pridėta į ratą",
+ "Group '{name}' could not be added to the circle" : "Grupės \"{name}\" nepavyko pridėti į ratą",
+ "Group '{name}' successfully removed from the circle" : "Grupė \"{name}\" sėkmingai pašalinta iš rato",
+ "Group '{name}' could not be removed from the circle" : "Grupės \"{name}\" nepavyko pašalinti iš rato",
+ "The member '{name}' was added to the circle" : "Narys \"{name}\" buvo pridėtas į ratą",
+ "The member '{name}' could not be added to the circle" : "Nepavyko nario \"{name}\" pridėti į ratą",
+ "The email address '{email}' was added to the circle" : "El. pašto adresas \"{email}\" buvo pridėtas į ratą",
+ "The email address '{email}' could not be added to the circle" : "Nepavyko el. pašto \"{email}\" pridėti į ratą",
+ "The contact '{contact}' was added to the circle" : "Kontaktas \"{contact}\" buvo pridėtas į ratą",
+ "The contact '{contact}' could not be added to the circle" : "Nepavyko kontakto \"{contact}\" pridėti į ratą",
+ "The member '{name}' was invited to the circle" : "Narys \"{name}\" buvo pakviestas į ratą",
+ "The member '{name}' could not be invited to the circle" : "Nepavyko nario \"{name}\" pakviesti į ratą",
+ "Members of the group '{name}' were added to the circle" : "Grupės \"{name}\" nariai buvo pridėti į ratą",
+ "Members of the group '{name}' could not be added to the circle" : "Nepavyko grupės \"{name}\" narių pridėti į ratą",
+ "Members of the group '{name}' were invited to the circle" : "Grupės \"{name}\" nariai buvo pakviesti į ratą",
+ "Members of the group '{name}' could not be invited to the circle" : "Nepavyko grupės \"{name}\" narių pakviesti į ratą",
+ "The member '{name}' was removed from the circle" : "Narys \"{name}\" buvo pašalintas iš rato",
+ "The member '{name}' could not be removed from the circle" : "Nepavyko nario \"{name}\" pašalinti iš rato",
+ "Member '{name}' updated" : "Narys \"{name}\" atnaujintas",
+ "The member '{name}' could not be updated" : "Nepavyko atnaujinti nario \"{name}\"",
+ "Issue while saving settings" : "Problemos, įrašant nustatymus",
+ "Settings saved." : "Nustatymai įrašyti.",
+ "Circles" : "Ratai",
+ "You created the circle {circle}" : "Jūs sukūrėte ratą {circle}",
+ "{author} created the circle {circle}" : "{author} sukūrė ratą {circle}",
+ "You deleted {circle}" : "Jūs ištrynėte {circle}",
+ "{author} deleted {circle}" : "{author} ištrynė {circle}",
+ "You joined {circle}" : "Jūs prisijungėte prie {circle}",
+ "{member} joined {circle}" : "{member} prisijungė prie {circle}",
+ "You accepted the invitation to join {circle}" : "Jūs priėmėte pakvietimą prisijungti prie {circle}",
+ "{member} accepted the invitation to join {circle}" : "{member} priėmė pakvietimą prisijungti prie {circle}",
+ "You left {circle}" : "Jūs išėjote iš {circle}",
+ "{member} left {circle}" : "{member} išėjo iš {circle}",
+ "You declined the invitation to join {circle}" : "Jūs atmetėte pakvietimą prisijungti prie {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} atmetė pakvietimą prisijungti prie {circle}",
+ "You removed {member} from {circle}" : "Jūs pašalinote {member} iš {circle}",
+ "You have been removed from {circle} by {author}" : "{author} pašalino jus iš {circle}",
+ "{member} has been removed from {circle} by {author}" : "{author} pašalino {member} iš {circle}",
+ "You removed {external} from {circle}" : "Jūs pašalinote {external} iš {circle}",
+ "{external} has been removed from {circle} by {author}" : "{author} pašalino {external} iš {circle}",
+ "You invited {member} to join {circle}" : "Jūs pakvietėte {member} prisijungti prie {circle}",
+ "You have been invited to join {circle} by {author}" : "{author} pakvietė jus prisijungti prie {circle}",
+ "{member} has been invited to join {circle} by {author}" : "{author} pakvietė {member} prisijungti prie {circle}",
+ "You are the new owner of {circle}" : "Jūs esate rato {circle} savininkas",
+ "{member} is the new owner of {circle}" : "{member} yra naujas rato {circle} savininkas",
+ "Circle not found" : "Ratas nerastas",
+ "A circle with that name exists" : "Ratas tokiu pavadinimu jau yra",
+ "This user is already a member of the circle" : "Šis naudotojas jau yra šio rato narys",
+ "This feature is not available for personal circles" : "Ši ypatybė nėra prieinama asmeniniams ratams",
+ "You cannot join this circle" : "Jūs negalite prisijungti prie šio rato",
+ "This member is not the owner of the circle" : "Šis narys nėra rato savininkas",
+ "This member is not admin of the circle" : "Šis narys nėra rato administratorius",
+ "This member is the owner of the circle" : "Šis narys yra rato savininkas",
+ "You are already a member of this circle" : "Jūs jau esate šio rato narys",
+ "User is already a member of this circle" : "Naudotojas jau yra šio rato narys",
+ "User is already invited into this circle" : "Naudotojas jau yra pakviestas į šį ratą",
+ "You need a specify a type of circle" : "Jūs turite nurodyti rato tipą",
+ "You cannot create this type of circle" : "Jūs negalite sukurti šio tipo ratą",
+ "This user does not exist" : "Šio naudotojo nėra",
+ "Create a new circle" : "Sukurti naują ratą",
+ "Create a personal circle" : "Sukurti asmeninį ratą",
+ "Create a public circle" : "Sukurti viešą ratą",
+ "Personal circles" : "Asmeniniai ratai",
+ "Public circles" : "Vieši ratai",
+ "Closed circles" : "Uždari ratai",
+ "Secret circles" : "Slapti ratai",
+ "All circles" : "Visi ratai",
+ "Delete circle" : "Ištrinti ratą",
+ "Accept the invitation" : "Priimti pakvietimą",
+ "Decline the invitation" : "Atmesti pakvietimą",
+ "Username" : "Naudotojo vardas"
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/l10n/lt_LT.json b/l10n/lt_LT.json
new file mode 100644
index 00000000..8e7b8041
--- /dev/null
+++ b/l10n/lt_LT.json
@@ -0,0 +1,96 @@
+{ "translations": {
+ "This action is irreversible" : "Šis veiksmas yra neatšaukiamas",
+ "Personal circle" : "Asmeninis ratas",
+ "Secret circle" : "Slaptas ratas",
+ "Closed circle" : "Uždaras ratas",
+ "Public circle" : "Viešas ratas",
+ "Circle" : "Ratas",
+ "Link Removed" : "Nuoroda pašalinta",
+ "Personal Circle" : "Asmeninis ratas",
+ "Secret Circle" : "Slaptas ratas",
+ "Closed Circle" : "Uždaras ratas",
+ "Public Circle" : "Viešas ratas",
+ "Are you sure you want to leave this circle?" : "Ar tikrai norite išeiti iš šio rato?",
+ "Are you sure you want to delete this circle?" : "Ar tikrai norite ištrinti šį ratą?",
+ "Cannot join this circle" : "Nepavyksta prisijungti prie šio rato",
+ "You have joined this circle" : "Jūs prisijungėte prie šio rato",
+ "You have requested to join this circle" : "Jūs užklausėte prisijungti prie šio rato",
+ "You have left this circle" : "Jūs išėjote iš šio rato",
+ "Cannot leave this circle" : "Nepavyksta išeiti iš šio rato",
+ "You have deleted this circle" : "Jūs ištrynėte šį ratą",
+ "Cannot delete this circle" : "Nepavyksta ištrinti šio rato",
+ "Issue while retrieving the details of this circle" : "Problemos, gaunant išsamesnę šio rato informaciją",
+ "Issue while retrieving the list of circles" : "Problemos, gaunant ratų sąrašą",
+ "Group '{name}' successfully added to the circle" : "Grupė \"{name}\" sėkmingai pridėta į ratą",
+ "Group '{name}' could not be added to the circle" : "Grupės \"{name}\" nepavyko pridėti į ratą",
+ "Group '{name}' successfully removed from the circle" : "Grupė \"{name}\" sėkmingai pašalinta iš rato",
+ "Group '{name}' could not be removed from the circle" : "Grupės \"{name}\" nepavyko pašalinti iš rato",
+ "The member '{name}' was added to the circle" : "Narys \"{name}\" buvo pridėtas į ratą",
+ "The member '{name}' could not be added to the circle" : "Nepavyko nario \"{name}\" pridėti į ratą",
+ "The email address '{email}' was added to the circle" : "El. pašto adresas \"{email}\" buvo pridėtas į ratą",
+ "The email address '{email}' could not be added to the circle" : "Nepavyko el. pašto \"{email}\" pridėti į ratą",
+ "The contact '{contact}' was added to the circle" : "Kontaktas \"{contact}\" buvo pridėtas į ratą",
+ "The contact '{contact}' could not be added to the circle" : "Nepavyko kontakto \"{contact}\" pridėti į ratą",
+ "The member '{name}' was invited to the circle" : "Narys \"{name}\" buvo pakviestas į ratą",
+ "The member '{name}' could not be invited to the circle" : "Nepavyko nario \"{name}\" pakviesti į ratą",
+ "Members of the group '{name}' were added to the circle" : "Grupės \"{name}\" nariai buvo pridėti į ratą",
+ "Members of the group '{name}' could not be added to the circle" : "Nepavyko grupės \"{name}\" narių pridėti į ratą",
+ "Members of the group '{name}' were invited to the circle" : "Grupės \"{name}\" nariai buvo pakviesti į ratą",
+ "Members of the group '{name}' could not be invited to the circle" : "Nepavyko grupės \"{name}\" narių pakviesti į ratą",
+ "The member '{name}' was removed from the circle" : "Narys \"{name}\" buvo pašalintas iš rato",
+ "The member '{name}' could not be removed from the circle" : "Nepavyko nario \"{name}\" pašalinti iš rato",
+ "Member '{name}' updated" : "Narys \"{name}\" atnaujintas",
+ "The member '{name}' could not be updated" : "Nepavyko atnaujinti nario \"{name}\"",
+ "Issue while saving settings" : "Problemos, įrašant nustatymus",
+ "Settings saved." : "Nustatymai įrašyti.",
+ "Circles" : "Ratai",
+ "You created the circle {circle}" : "Jūs sukūrėte ratą {circle}",
+ "{author} created the circle {circle}" : "{author} sukūrė ratą {circle}",
+ "You deleted {circle}" : "Jūs ištrynėte {circle}",
+ "{author} deleted {circle}" : "{author} ištrynė {circle}",
+ "You joined {circle}" : "Jūs prisijungėte prie {circle}",
+ "{member} joined {circle}" : "{member} prisijungė prie {circle}",
+ "You accepted the invitation to join {circle}" : "Jūs priėmėte pakvietimą prisijungti prie {circle}",
+ "{member} accepted the invitation to join {circle}" : "{member} priėmė pakvietimą prisijungti prie {circle}",
+ "You left {circle}" : "Jūs išėjote iš {circle}",
+ "{member} left {circle}" : "{member} išėjo iš {circle}",
+ "You declined the invitation to join {circle}" : "Jūs atmetėte pakvietimą prisijungti prie {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} atmetė pakvietimą prisijungti prie {circle}",
+ "You removed {member} from {circle}" : "Jūs pašalinote {member} iš {circle}",
+ "You have been removed from {circle} by {author}" : "{author} pašalino jus iš {circle}",
+ "{member} has been removed from {circle} by {author}" : "{author} pašalino {member} iš {circle}",
+ "You removed {external} from {circle}" : "Jūs pašalinote {external} iš {circle}",
+ "{external} has been removed from {circle} by {author}" : "{author} pašalino {external} iš {circle}",
+ "You invited {member} to join {circle}" : "Jūs pakvietėte {member} prisijungti prie {circle}",
+ "You have been invited to join {circle} by {author}" : "{author} pakvietė jus prisijungti prie {circle}",
+ "{member} has been invited to join {circle} by {author}" : "{author} pakvietė {member} prisijungti prie {circle}",
+ "You are the new owner of {circle}" : "Jūs esate rato {circle} savininkas",
+ "{member} is the new owner of {circle}" : "{member} yra naujas rato {circle} savininkas",
+ "Circle not found" : "Ratas nerastas",
+ "A circle with that name exists" : "Ratas tokiu pavadinimu jau yra",
+ "This user is already a member of the circle" : "Šis naudotojas jau yra šio rato narys",
+ "This feature is not available for personal circles" : "Ši ypatybė nėra prieinama asmeniniams ratams",
+ "You cannot join this circle" : "Jūs negalite prisijungti prie šio rato",
+ "This member is not the owner of the circle" : "Šis narys nėra rato savininkas",
+ "This member is not admin of the circle" : "Šis narys nėra rato administratorius",
+ "This member is the owner of the circle" : "Šis narys yra rato savininkas",
+ "You are already a member of this circle" : "Jūs jau esate šio rato narys",
+ "User is already a member of this circle" : "Naudotojas jau yra šio rato narys",
+ "User is already invited into this circle" : "Naudotojas jau yra pakviestas į šį ratą",
+ "You need a specify a type of circle" : "Jūs turite nurodyti rato tipą",
+ "You cannot create this type of circle" : "Jūs negalite sukurti šio tipo ratą",
+ "This user does not exist" : "Šio naudotojo nėra",
+ "Create a new circle" : "Sukurti naują ratą",
+ "Create a personal circle" : "Sukurti asmeninį ratą",
+ "Create a public circle" : "Sukurti viešą ratą",
+ "Personal circles" : "Asmeniniai ratai",
+ "Public circles" : "Vieši ratai",
+ "Closed circles" : "Uždari ratai",
+ "Secret circles" : "Slapti ratai",
+ "All circles" : "Visi ratai",
+ "Delete circle" : "Ištrinti ratą",
+ "Accept the invitation" : "Priimti pakvietimą",
+ "Decline the invitation" : "Atmesti pakvietimą",
+ "Username" : "Naudotojo vardas"
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);"
+} \ No newline at end of file
diff --git a/l10n/nb.js b/l10n/nb.js
index 8f2a09ef..0e615264 100644
--- a/l10n/nb.js
+++ b/l10n/nb.js
@@ -170,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Sammenknyttede sirkler tillates ikke i denne Nextcloud-en",
"Circle not found" : "Fant ikke sirkelen",
"A circle with that name exists" : "En sirkel med det navnet finnes",
- "Sharing Frame does not exist" : "Delingsrammen finnes ikke",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Du kan ikke bruke sirkelprogrammet før administratoren din har tillat minst én type sirkler",
"Federated link not found" : "Fant ikke den sammenknyttede lenken",
"This member does not exist" : "Dette medlemmet finnes ikke",
"This user is already a member of the circle" : "Denne brukeren er allerede medlem av sirkelen",
+ "Sharing Frame does not exist" : "Delingsrammen finnes ikke",
"This feature is not available for personal circles" : "Funksjonen er ikke tilgjengelig for personlige sirkler",
"The circle is not Federated" : "Denne sirkelen er ikke sammenknyttet",
"You cannot join this circle" : "Du kan ikke tilslutte deg denne sirkelen",
diff --git a/l10n/nb.json b/l10n/nb.json
index 01b2b0c1..bec75002 100644
--- a/l10n/nb.json
+++ b/l10n/nb.json
@@ -168,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "Sammenknyttede sirkler tillates ikke i denne Nextcloud-en",
"Circle not found" : "Fant ikke sirkelen",
"A circle with that name exists" : "En sirkel med det navnet finnes",
- "Sharing Frame does not exist" : "Delingsrammen finnes ikke",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Du kan ikke bruke sirkelprogrammet før administratoren din har tillat minst én type sirkler",
"Federated link not found" : "Fant ikke den sammenknyttede lenken",
"This member does not exist" : "Dette medlemmet finnes ikke",
"This user is already a member of the circle" : "Denne brukeren er allerede medlem av sirkelen",
+ "Sharing Frame does not exist" : "Delingsrammen finnes ikke",
"This feature is not available for personal circles" : "Funksjonen er ikke tilgjengelig for personlige sirkler",
"The circle is not Federated" : "Denne sirkelen er ikke sammenknyttet",
"You cannot join this circle" : "Du kan ikke tilslutte deg denne sirkelen",
diff --git a/l10n/nl.js b/l10n/nl.js
index 4b7cff90..b2ef8777 100644
--- a/l10n/nl.js
+++ b/l10n/nl.js
@@ -124,6 +124,8 @@ OC.L10N.register(
"You added {member} as member to {circle}" : "Jij hebt {member} aan {circle} toegevoegd",
"You have been added as member to {circle} by {author}" : "Je bent door {author} als lid tot {circle} toegevoegd",
"{member} has been added as member to {circle} by {author}" : "{member} is door {author} als lid tot {circle} toegevoegd",
+ "You added {external} to {circle}" : "U heeft {external} toegevoegd aan {circle}",
+ "{external} has been added to {circle} by {author}" : "{external} is toegevoegd aan {circle} door {author}",
"You accepted {member}'s request to join {circle}" : "Je accepteerde {member}'s verzoek op lid te worden van {circle}",
"Your request to join {circle} has been accepted by {author}" : "Je verzoek om lid te worden van {circle} is door {author} geaccepteerd",
"{member}'s request to join {circle} has been accepted by {author}" : "{member}'s verzoek om lid te worden van {circle} is door {author} geaccepteerd",
@@ -136,6 +138,8 @@ OC.L10N.register(
"You removed {member} from {circle}" : "Je hebt {member} van {circle} verwijderd",
"You have been removed from {circle} by {author}" : "Je werd van {circle} door {author} verwijderd",
"{member} has been removed from {circle} by {author}" : "{member} is van {circle} door {author} verwijderd",
+ "You removed {external} from {circle}" : "U heeft {external} verwijderd van {circle}",
+ "{external} has been removed from {circle} by {author}" : "{external} is door {author} verwijderd van {circle} ",
"You cancelled {member}'s invitation to join {circle}" : "Je hebt de uitnodiging voor {member} om lid te worden van {circle} ingetrokken",
"Your invitation to join {circle} has been cancelled by {author}" : "Je uitnodiging om lid te worden van {circle} is door {author} ingetrokken",
"{author} cancelled {member}'s invitation to join {circle}" : "{author} heeft de uitnodiging voor {member} om lid te worden van {circle} ingetrokken",
@@ -165,11 +169,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Gefedereerde kringen zijn niet toegestaan op deze Nextcloud",
"Circle not found" : "Kring niet gevonden",
"A circle with that name exists" : "Er bestaat al een kring met deze naam",
- "Sharing Frame does not exist" : "Het deelframe bestaan niet.",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "De beheerder dient minimaal een kring te maken voordat je de king-app kan gebruiken.",
"Federated link not found" : "Gefedereerde link is niet gevonden",
"This member does not exist" : "Dit lid bestaat niet",
"This user is already a member of the circle" : "Deze gebruiker is al lid van de kring",
+ "Sharing Frame does not exist" : "Het deelframe bestaan niet.",
"This feature is not available for personal circles" : "Deze functie is niet beschikbaar voor persoonlijke kringen",
"The circle is not Federated" : "De kring is niet gefedereerd",
"You cannot join this circle" : "Je kunt niet lid worden van deze kring",
@@ -188,6 +192,7 @@ OC.L10N.register(
"You cannot display this type of circle" : "Je kan dit type kring niet tonen",
"Federated link does not have a valid format" : "Gefedereerde link heeft geen geldig formaat",
"Federated circles are not allowed on the remote Nextcloud" : "Gefedereerde kringen zijn niet toegestaan op de externe Nextcloud",
+ "Remote circle does not accept federated links" : "Externe kring accepteert geen federale links",
"This link exists already" : "Deze link bestaat al",
"The requested remote circle does not exist" : "De aangevraagde externe Kring bestaat niet",
"The remote host is down or the Circles app is not installed on it" : "De gastheer is uit de lucht of de kring-app is niet geïnstalleerd",
@@ -248,6 +253,7 @@ OC.L10N.register(
"Turns the circle as Federated and enable sharing between Federated Circles" : "Maakt de kring",
"Automatically Accept Link Request" : "Accepteer link verzoeken automatisch",
"Warning: enabling this will automatically accept new link requests from other circle." : "Waarschuwing: hiermee worden nieuwe link verzoeken van andere kringen automatisch aanvaard.",
- "Save settings" : "Opslaan instellingen"
+ "Save settings" : "Opslaan instellingen",
+ "Async Testing:" : "Async Testen:"
},
"nplurals=2; plural=(n != 1);");
diff --git a/l10n/nl.json b/l10n/nl.json
index f1c118fb..822ef41f 100644
--- a/l10n/nl.json
+++ b/l10n/nl.json
@@ -122,6 +122,8 @@
"You added {member} as member to {circle}" : "Jij hebt {member} aan {circle} toegevoegd",
"You have been added as member to {circle} by {author}" : "Je bent door {author} als lid tot {circle} toegevoegd",
"{member} has been added as member to {circle} by {author}" : "{member} is door {author} als lid tot {circle} toegevoegd",
+ "You added {external} to {circle}" : "U heeft {external} toegevoegd aan {circle}",
+ "{external} has been added to {circle} by {author}" : "{external} is toegevoegd aan {circle} door {author}",
"You accepted {member}'s request to join {circle}" : "Je accepteerde {member}'s verzoek op lid te worden van {circle}",
"Your request to join {circle} has been accepted by {author}" : "Je verzoek om lid te worden van {circle} is door {author} geaccepteerd",
"{member}'s request to join {circle} has been accepted by {author}" : "{member}'s verzoek om lid te worden van {circle} is door {author} geaccepteerd",
@@ -134,6 +136,8 @@
"You removed {member} from {circle}" : "Je hebt {member} van {circle} verwijderd",
"You have been removed from {circle} by {author}" : "Je werd van {circle} door {author} verwijderd",
"{member} has been removed from {circle} by {author}" : "{member} is van {circle} door {author} verwijderd",
+ "You removed {external} from {circle}" : "U heeft {external} verwijderd van {circle}",
+ "{external} has been removed from {circle} by {author}" : "{external} is door {author} verwijderd van {circle} ",
"You cancelled {member}'s invitation to join {circle}" : "Je hebt de uitnodiging voor {member} om lid te worden van {circle} ingetrokken",
"Your invitation to join {circle} has been cancelled by {author}" : "Je uitnodiging om lid te worden van {circle} is door {author} ingetrokken",
"{author} cancelled {member}'s invitation to join {circle}" : "{author} heeft de uitnodiging voor {member} om lid te worden van {circle} ingetrokken",
@@ -163,11 +167,11 @@
"Federated circles are not allowed on this Nextcloud" : "Gefedereerde kringen zijn niet toegestaan op deze Nextcloud",
"Circle not found" : "Kring niet gevonden",
"A circle with that name exists" : "Er bestaat al een kring met deze naam",
- "Sharing Frame does not exist" : "Het deelframe bestaan niet.",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "De beheerder dient minimaal een kring te maken voordat je de king-app kan gebruiken.",
"Federated link not found" : "Gefedereerde link is niet gevonden",
"This member does not exist" : "Dit lid bestaat niet",
"This user is already a member of the circle" : "Deze gebruiker is al lid van de kring",
+ "Sharing Frame does not exist" : "Het deelframe bestaan niet.",
"This feature is not available for personal circles" : "Deze functie is niet beschikbaar voor persoonlijke kringen",
"The circle is not Federated" : "De kring is niet gefedereerd",
"You cannot join this circle" : "Je kunt niet lid worden van deze kring",
@@ -186,6 +190,7 @@
"You cannot display this type of circle" : "Je kan dit type kring niet tonen",
"Federated link does not have a valid format" : "Gefedereerde link heeft geen geldig formaat",
"Federated circles are not allowed on the remote Nextcloud" : "Gefedereerde kringen zijn niet toegestaan op de externe Nextcloud",
+ "Remote circle does not accept federated links" : "Externe kring accepteert geen federale links",
"This link exists already" : "Deze link bestaat al",
"The requested remote circle does not exist" : "De aangevraagde externe Kring bestaat niet",
"The remote host is down or the Circles app is not installed on it" : "De gastheer is uit de lucht of de kring-app is niet geïnstalleerd",
@@ -246,6 +251,7 @@
"Turns the circle as Federated and enable sharing between Federated Circles" : "Maakt de kring",
"Automatically Accept Link Request" : "Accepteer link verzoeken automatisch",
"Warning: enabling this will automatically accept new link requests from other circle." : "Waarschuwing: hiermee worden nieuwe link verzoeken van andere kringen automatisch aanvaard.",
- "Save settings" : "Opslaan instellingen"
+ "Save settings" : "Opslaan instellingen",
+ "Async Testing:" : "Async Testen:"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/l10n/pl.js b/l10n/pl.js
index b822aed8..ebc5b510 100644
--- a/l10n/pl.js
+++ b/l10n/pl.js
@@ -170,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Zjednoczone kręgi są niedozwolone w tym Nextcloud",
"Circle not found" : "Krąg nie został znaleziony",
"A circle with that name exists" : "Krąg o takiej nazwie istnieje",
- "Sharing Frame does not exist" : "Współdzielona ramka nie istnieje",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Nie można użyć aplikacji Kręgi, dopóki co najmniej jeden rodzaj kręgu nie zostanie dozwolony przez administratora",
"Federated link not found" : "Nie znaleziono linka stowarzyszonego",
"This member does not exist" : "Ten członek nie istnieje",
"This user is already a member of the circle" : "Użytkownik jest już członkiem tego kręgu",
+ "Sharing Frame does not exist" : "Współdzielona ramka nie istnieje",
"This feature is not available for personal circles" : "Ta funkcjonalność jest niedostępna dla kręgów osobistych",
"The circle is not Federated" : "Ten krąg nie jest Zjednoczony",
"You cannot join this circle" : "Nie możesz dołączyć do tego kręgu",
diff --git a/l10n/pl.json b/l10n/pl.json
index 2aeec2e9..de73542c 100644
--- a/l10n/pl.json
+++ b/l10n/pl.json
@@ -168,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "Zjednoczone kręgi są niedozwolone w tym Nextcloud",
"Circle not found" : "Krąg nie został znaleziony",
"A circle with that name exists" : "Krąg o takiej nazwie istnieje",
- "Sharing Frame does not exist" : "Współdzielona ramka nie istnieje",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Nie można użyć aplikacji Kręgi, dopóki co najmniej jeden rodzaj kręgu nie zostanie dozwolony przez administratora",
"Federated link not found" : "Nie znaleziono linka stowarzyszonego",
"This member does not exist" : "Ten członek nie istnieje",
"This user is already a member of the circle" : "Użytkownik jest już członkiem tego kręgu",
+ "Sharing Frame does not exist" : "Współdzielona ramka nie istnieje",
"This feature is not available for personal circles" : "Ta funkcjonalność jest niedostępna dla kręgów osobistych",
"The circle is not Federated" : "Ten krąg nie jest Zjednoczony",
"You cannot join this circle" : "Nie możesz dołączyć do tego kręgu",
diff --git a/l10n/pt_BR.js b/l10n/pt_BR.js
index cb58ed81..2a545937 100644
--- a/l10n/pt_BR.js
+++ b/l10n/pt_BR.js
@@ -170,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Círculos federados não são permitidos neste Nextcloud",
"Circle not found" : "Círculo não encontrado",
"A circle with that name exists" : "Um círculo com este nome já existe",
- "Sharing Frame does not exist" : "O Quadro de Compartilhamento não existe",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Você não pode usar a aplicação Círculos até que o administrador tenha permitido ao menos um tipo de círculo",
"Federated link not found" : "Link federado não encontrado",
"This member does not exist" : "Este membro não existe",
"This user is already a member of the circle" : "Este usuário já é membro do círculo",
+ "Sharing Frame does not exist" : "O Quadro de Compartilhamento não existe",
"This feature is not available for personal circles" : "Este recurso não está disponível para círculos pessoais",
"The circle is not Federated" : "O círculo não é Federado",
"You cannot join this circle" : "Você não pode juntar-se ao círculo",
diff --git a/l10n/pt_BR.json b/l10n/pt_BR.json
index 973c763a..0b7d90de 100644
--- a/l10n/pt_BR.json
+++ b/l10n/pt_BR.json
@@ -168,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "Círculos federados não são permitidos neste Nextcloud",
"Circle not found" : "Círculo não encontrado",
"A circle with that name exists" : "Um círculo com este nome já existe",
- "Sharing Frame does not exist" : "O Quadro de Compartilhamento não existe",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Você não pode usar a aplicação Círculos até que o administrador tenha permitido ao menos um tipo de círculo",
"Federated link not found" : "Link federado não encontrado",
"This member does not exist" : "Este membro não existe",
"This user is already a member of the circle" : "Este usuário já é membro do círculo",
+ "Sharing Frame does not exist" : "O Quadro de Compartilhamento não existe",
"This feature is not available for personal circles" : "Este recurso não está disponível para círculos pessoais",
"The circle is not Federated" : "O círculo não é Federado",
"You cannot join this circle" : "Você não pode juntar-se ao círculo",
diff --git a/l10n/ru.js b/l10n/ru.js
index 5c2629ff..0cac05e2 100644
--- a/l10n/ru.js
+++ b/l10n/ru.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"circles",
{
+ "Circles is using its own way to async heavy process." : "Приложение «Круги» использует собственный способ параллельного выполнения требовательным к ресурсам процессов. ",
"Are you sure you want to transfer your ownership?" : "Действительно передать свои права владения?",
"This action is irreversible" : "Это действие необратимо",
"Personal circle" : "Личный круг",
@@ -169,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Федеративные круги не разрешены на этом сервере Nextcloud",
"Circle not found" : "Круг не найден",
"A circle with that name exists" : "Круг с таким именем существует",
- "Sharing Frame does not exist" : "Механизм обмена не существует",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "В не можете использовать это приложение до тех пор, пока администратор не разрешит использовать как минимум один тип кругов.",
"Federated link not found" : "Федеративная связь не найдена",
"This member does not exist" : "Этот участник не существует",
"This user is already a member of the circle" : "Этот пользователь уже участник круга",
+ "Sharing Frame does not exist" : "Механизм обмена не существует",
"This feature is not available for personal circles" : "Эта возможность недоступна для личных кругов",
"The circle is not Federated" : "К этому кругу не предоставлен федеративный доступ",
"You cannot join this circle" : "Вы не можете присоедениться к этому кругу",
@@ -254,6 +255,14 @@ OC.L10N.register(
"Turns the circle as Federated and enable sharing between Federated Circles" : "Превращает этот круг в федеративный и разрешает обмен между федеративными кругами",
"Automatically Accept Link Request" : "Автоматически принимать запросы на связывание",
"Warning: enabling this will automatically accept new link requests from other circle." : "Внимание: при включении это настройки запросы на связывание, полученные из других кругов, будут приниматься автоматически.",
- "Save settings" : "Сохранить изменения"
+ "Save settings" : "Сохранить изменения",
+ "Async Testing:" : "Проверка параллельного выполнения:",
+ "initiate test of Circles Async" : "запустить проверку параллельного выполнения",
+ "reset test result" : "сбросить результат проверки",
+ "Test is currently running. Please wait." : "Выполняется проверка, подождите.",
+ "Allow Group Linking:" : "Разрешать связывание групп:",
+ "Groups can be linked to Circles." : "Группы могут быть связаны с кругами.",
+ "Allow Federated Circles:" : "Разрешить федеративные круги:",
+ "Circles from different Nextclouds can be linked together." : "Могут быть связаны круги, расположенные на разных серверах Nextcloud."
},
"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);");
diff --git a/l10n/ru.json b/l10n/ru.json
index aff4b1d8..b9c3a3b7 100644
--- a/l10n/ru.json
+++ b/l10n/ru.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Circles is using its own way to async heavy process." : "Приложение «Круги» использует собственный способ параллельного выполнения требовательным к ресурсам процессов. ",
"Are you sure you want to transfer your ownership?" : "Действительно передать свои права владения?",
"This action is irreversible" : "Это действие необратимо",
"Personal circle" : "Личный круг",
@@ -167,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "Федеративные круги не разрешены на этом сервере Nextcloud",
"Circle not found" : "Круг не найден",
"A circle with that name exists" : "Круг с таким именем существует",
- "Sharing Frame does not exist" : "Механизм обмена не существует",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "В не можете использовать это приложение до тех пор, пока администратор не разрешит использовать как минимум один тип кругов.",
"Federated link not found" : "Федеративная связь не найдена",
"This member does not exist" : "Этот участник не существует",
"This user is already a member of the circle" : "Этот пользователь уже участник круга",
+ "Sharing Frame does not exist" : "Механизм обмена не существует",
"This feature is not available for personal circles" : "Эта возможность недоступна для личных кругов",
"The circle is not Federated" : "К этому кругу не предоставлен федеративный доступ",
"You cannot join this circle" : "Вы не можете присоедениться к этому кругу",
@@ -252,6 +253,14 @@
"Turns the circle as Federated and enable sharing between Federated Circles" : "Превращает этот круг в федеративный и разрешает обмен между федеративными кругами",
"Automatically Accept Link Request" : "Автоматически принимать запросы на связывание",
"Warning: enabling this will automatically accept new link requests from other circle." : "Внимание: при включении это настройки запросы на связывание, полученные из других кругов, будут приниматься автоматически.",
- "Save settings" : "Сохранить изменения"
+ "Save settings" : "Сохранить изменения",
+ "Async Testing:" : "Проверка параллельного выполнения:",
+ "initiate test of Circles Async" : "запустить проверку параллельного выполнения",
+ "reset test result" : "сбросить результат проверки",
+ "Test is currently running. Please wait." : "Выполняется проверка, подождите.",
+ "Allow Group Linking:" : "Разрешать связывание групп:",
+ "Groups can be linked to Circles." : "Группы могут быть связаны с кругами.",
+ "Allow Federated Circles:" : "Разрешить федеративные круги:",
+ "Circles from different Nextclouds can be linked together." : "Могут быть связаны круги, расположенные на разных серверах Nextcloud."
},"pluralForm" :"nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || (n%100>=11 && n%100<=14)? 2 : 3);"
} \ No newline at end of file
diff --git a/l10n/sk.js b/l10n/sk.js
index 63ddc7e4..2fb132e6 100644
--- a/l10n/sk.js
+++ b/l10n/sk.js
@@ -81,11 +81,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Združené kruhy nie sú povolené v tomto Nextcloud",
"Circle not found" : "Kruh sa nenašiel",
"A circle with that name exists" : "Kruh s týmto názvom existuje",
- "Sharing Frame does not exist" : "Rámec sprístupnenia neexistuje",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Nemôžete použiť aplikáciu Kruhy, pokiaľ administrátor nepovolí aspoň jeden typ kruhov",
"Federated link not found" : "Združené prepojenie sa nenašlo",
"This member does not exist" : "Tento používateľ neexistuje",
"This user is already a member of the circle" : "Tento používateľ už je členom kruhu",
+ "Sharing Frame does not exist" : "Rámec sprístupnenia neexistuje",
"This feature is not available for personal circles" : "Táto funkcia nie je k dispozícii pre osobné kruhy",
"The circle is not Federated" : "Tento kruh nie je združený",
"You cannot join this circle" : "Nemôžete sa pripojiť k tomuto kruhu",
@@ -103,6 +103,11 @@ OC.L10N.register(
"You cannot create this type of circle" : "Nemôžete vytvoriť tento typ kruhu",
"You cannot display this type of circle" : "Nemôžete zobraziť tento typ kruhu",
"This group does not exist" : "Táto skupina neexistuje",
+ "This group is already linked to the circle" : "Táto skupina je už s kruhom prepojená",
+ "You cannot edit level in a personal circle" : "Úroveň osobného kruhu sa nedá upraviť",
+ "This user does not exist" : "Vybraný používateľ neexistuje",
+ "Email format is not valid" : "Nesprávny formát e-mailu",
+ "This contact is not available" : "Tento kontakt je nedostupný",
"Could not find share" : "Nebolo možné nájsť sprístupnenie",
"Create a new circle" : "Vytvoriť nový kruh",
"Select a type of circle" : "Vybrať typ kruhu",
diff --git a/l10n/sk.json b/l10n/sk.json
index 6ed53088..610854ed 100644
--- a/l10n/sk.json
+++ b/l10n/sk.json
@@ -79,11 +79,11 @@
"Federated circles are not allowed on this Nextcloud" : "Združené kruhy nie sú povolené v tomto Nextcloud",
"Circle not found" : "Kruh sa nenašiel",
"A circle with that name exists" : "Kruh s týmto názvom existuje",
- "Sharing Frame does not exist" : "Rámec sprístupnenia neexistuje",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Nemôžete použiť aplikáciu Kruhy, pokiaľ administrátor nepovolí aspoň jeden typ kruhov",
"Federated link not found" : "Združené prepojenie sa nenašlo",
"This member does not exist" : "Tento používateľ neexistuje",
"This user is already a member of the circle" : "Tento používateľ už je členom kruhu",
+ "Sharing Frame does not exist" : "Rámec sprístupnenia neexistuje",
"This feature is not available for personal circles" : "Táto funkcia nie je k dispozícii pre osobné kruhy",
"The circle is not Federated" : "Tento kruh nie je združený",
"You cannot join this circle" : "Nemôžete sa pripojiť k tomuto kruhu",
@@ -101,6 +101,11 @@
"You cannot create this type of circle" : "Nemôžete vytvoriť tento typ kruhu",
"You cannot display this type of circle" : "Nemôžete zobraziť tento typ kruhu",
"This group does not exist" : "Táto skupina neexistuje",
+ "This group is already linked to the circle" : "Táto skupina je už s kruhom prepojená",
+ "You cannot edit level in a personal circle" : "Úroveň osobného kruhu sa nedá upraviť",
+ "This user does not exist" : "Vybraný používateľ neexistuje",
+ "Email format is not valid" : "Nesprávny formát e-mailu",
+ "This contact is not available" : "Tento kontakt je nedostupný",
"Could not find share" : "Nebolo možné nájsť sprístupnenie",
"Create a new circle" : "Vytvoriť nový kruh",
"Select a type of circle" : "Vybrať typ kruhu",
diff --git a/l10n/sq.js b/l10n/sq.js
index 3552e22c..c50ff072 100644
--- a/l10n/sq.js
+++ b/l10n/sq.js
@@ -129,11 +129,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Qarqet e federuara nuk janë të lejuara në këtë Nextcloud",
"Circle not found" : "Rrethi nuk u gjet",
"A circle with that name exists" : "Një rreth me këtë emër ekziston",
- "Sharing Frame does not exist" : "Korniza e shpërndarjes nuk ekziston",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Ju nuk mund të përdorni Aplikacionin e Qarqeve derisa administratori juaj të ketë lejuar të paktën një lloj qarku",
"Federated link not found" : "Lidhja federative nuk u gjet",
"This member does not exist" : "Ky anëtar nuk ekziston",
"This user is already a member of the circle" : "Ky përdorues është tashmë anëtar i rrethit",
+ "Sharing Frame does not exist" : "Korniza e shpërndarjes nuk ekziston",
"This feature is not available for personal circles" : "Ky funksion nuk është i vlefshëm për rrathë personal.",
"The circle is not Federated" : "Rrethi nuk është i Federuar",
"You cannot join this circle" : "Ju nuk mund t'i bashkoheni këtij rrethi",
diff --git a/l10n/sq.json b/l10n/sq.json
index 3eab7668..483beef0 100644
--- a/l10n/sq.json
+++ b/l10n/sq.json
@@ -127,11 +127,11 @@
"Federated circles are not allowed on this Nextcloud" : "Qarqet e federuara nuk janë të lejuara në këtë Nextcloud",
"Circle not found" : "Rrethi nuk u gjet",
"A circle with that name exists" : "Një rreth me këtë emër ekziston",
- "Sharing Frame does not exist" : "Korniza e shpërndarjes nuk ekziston",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Ju nuk mund të përdorni Aplikacionin e Qarqeve derisa administratori juaj të ketë lejuar të paktën një lloj qarku",
"Federated link not found" : "Lidhja federative nuk u gjet",
"This member does not exist" : "Ky anëtar nuk ekziston",
"This user is already a member of the circle" : "Ky përdorues është tashmë anëtar i rrethit",
+ "Sharing Frame does not exist" : "Korniza e shpërndarjes nuk ekziston",
"This feature is not available for personal circles" : "Ky funksion nuk është i vlefshëm për rrathë personal.",
"The circle is not Federated" : "Rrethi nuk është i Federuar",
"You cannot join this circle" : "Ju nuk mund t'i bashkoheni këtij rrethi",
diff --git a/l10n/sr.js b/l10n/sr.js
new file mode 100644
index 00000000..66dd4e8a
--- /dev/null
+++ b/l10n/sr.js
@@ -0,0 +1,268 @@
+OC.L10N.register(
+ "circles",
+ {
+ "Circles is using its own way to async heavy process." : "Кругови користе сопствени начин да асинхроно извршавају веће процесе.",
+ "Are you sure you want to transfer your ownership?" : "Да ли сте сигурни да желите да предате власништво?",
+ "This action is irreversible" : "Ова акција је неповратна",
+ "Personal circle" : "Лични круг",
+ "Secret circle" : "Тајни круг",
+ "Closed circle" : "Затворени круг",
+ "Public circle" : "Јавни круг",
+ "Circle" : "Круг",
+ "Link Removed" : "Веза уклоњена",
+ "Link down" : "Веза не ради",
+ "Setting link" : "Постављам везу",
+ "Request dismissed" : "Захтев одбачен",
+ "Request sent" : "Захтев послат",
+ "Link requested" : "Захтевано везивање",
+ "Link up" : "Веза ради",
+ "Personal Circle" : "Лични круг",
+ "Secret Circle" : "Тајни круг",
+ "Closed Circle" : "Затворени круг",
+ "Public Circle" : "Јавни круг",
+ "Personal" : "Лични",
+ "Secret" : "Тајни",
+ "Closed" : "Затворени",
+ "Public" : "Јавни",
+ "Not a member" : "Није члан",
+ "Member" : "Члан",
+ "Moderator" : "Модератор",
+ "Admin" : "Администратор",
+ "Owner" : "Власник",
+ "Unknown" : "Непознато",
+ "Invited" : "Позван",
+ "Requesting" : "Захтевам",
+ "Blocked" : "Блокиран",
+ "Kicked" : "Избачен",
+ "This operation will add/invite all members of the group to the circle" : "Ова акција ће додати/позвати све чланове групе у круг",
+ "Please confirm" : "Молимо потврдите",
+ "Are you sure you want to leave this circle?" : "Да ли сте сигурни да желите да напустите круг?",
+ "Are you sure you want to delete this circle?" : "Да ли сте сигурни да желите да обришете круг?",
+ "Mail Address" : "Адреса е-поште",
+ "Contact" : "Контакт",
+ "Kick this member" : "Избаци овог члана",
+ "Accept the request" : "Прихвати захтев",
+ "Dismiss the request" : "Одбаци захтев",
+ "Unlink this group" : "Одвежи ову групу",
+ "Remove this link" : "Уклони ову везу",
+ "Cancel the link request" : "Поништи захтев за везивањем",
+ "Accept the link request" : "Прихват захтев за повезивањем",
+ "Reject the link request" : "Одбиј захтев за везивањем",
+ "Cannot join this circle" : "Не могу да се придружим кругу",
+ "no error message" : "нема поруке о грешци",
+ "You have joined this circle" : "Придружили сте се кругу",
+ "You have requested to join this circle" : "Предали сте захтев да се придружите кругу",
+ "You have left this circle" : "Напустили сте круг",
+ "Cannot leave this circle" : "Не могу да напустим круг",
+ "You have deleted this circle" : "Избрисали сте круг",
+ "Cannot delete this circle" : "Не могу да избришем круг",
+ " {type} '{name}' created" : " {type} '{name}' направљен",
+ " {type} '{name}' could not be created" : " {type} '{name}' не може да се направи",
+ "Issue while retrieving the details of this circle" : "Грешка приликом дохватања детаља о овом кругу",
+ "Issue while retrieving the list of circles" : "Грешка приликом дохватања списка кругова",
+ "Group '{name}' successfully added to the circle" : "Група '{name}' успешно додата у круг",
+ "Group '{name}' could not be added to the circle" : "Група '{name}' не може да се дода у круг",
+ "Group '{name}' updated" : "Група'{name}' ажурирана",
+ "Group '{name}' could not be updated" : "Група '{name}' не може да се ажурира",
+ "Group '{name}' successfully removed from the circle" : "Група '{name}' успешно уклоњена из круга",
+ "Group '{name}' could not be removed from the circle" : "Група '{name}' не може да се уклони из круга",
+ "A link to <b>{remote}</b> could not be initiated" : "Везивање са <b>{remote}</b> не може да се покрене",
+ "A link to <b>{remote}</b> has been requested." : "Захтевано везивање са <b>{remote}</b>.",
+ "the link to <b>{remote}</b> is now up and running." : "Веза са <b>{remote}</b> успостављена и ради.",
+ "The status of the link could not be updated" : "Стање везивања не може да се ажурира",
+ "The status of the link has been updated" : "Стање везивања је ажурирано",
+ "Local User" : "Локални корисник",
+ "Local Group" : "Локална група",
+ "The member '{name}' was added to the circle" : "Члан '{name}' додат у круг",
+ "The member '{name}' could not be added to the circle" : "Члан '{name}' не може да се дода у круг",
+ "The email address '{email}' was added to the circle" : "Адреса е-поште '{email}' додата у круг",
+ "The email address '{email}' could not be added to the circle" : "Адреса е-поште '{email}' не може да се дода у круг",
+ "The contact '{contact}' was added to the circle" : "Контакт '{contact}' додат у круг",
+ "The contact '{contact}' could not be added to the circle" : "Контакт '{contact}' не може да се дода у круг",
+ "The member '{name}' was invited to the circle" : "Члан '{name}' позван у круг",
+ "The member '{name}' could not be invited to the circle" : "Члан '{name}' не може бити позван у круг",
+ "Members of the group '{name}' were added to the circle" : "Чланови групе '{name}' додати у круг",
+ "Members of the group '{name}' could not be added to the circle" : "Чланови групе '{name}' не могу бити додати у круг",
+ "Members of the group '{name}' were invited to the circle" : "Чланови групе '{name}' позвани у круг",
+ "Members of the group '{name}' could not be invited to the circle" : "Чланови групе '{name}' не могу бити позвани у круг",
+ "The member '{name}' was removed from the circle" : "Члан '{name}' уклоњен из круга",
+ "The member '{name}' could not be removed from the circle" : "Члан '{name}' не може бити уклоњен из круга",
+ "Member '{name}' updated" : "Члан '{name}' ажуриран",
+ "The member '{name}' could not be updated" : "Члан '{name}' не може да се ажурира",
+ "Issue while saving settings" : "Грешка приликом чувања поставки",
+ "Settings saved." : "Поставке сачуване.",
+ "Circles" : "Кругови",
+ "You created the circle {circle}" : "Направили сте круг {circle}",
+ "{author} created the circle {circle}" : "{author} је направио круг {circle}",
+ "You deleted {circle}" : "Обрисали сте круг {circle}",
+ "{author} deleted {circle}" : "{author} је обрисао круг {circle}",
+ "You linked {group} to {circle}" : "Везали сте групу {group} на круг {circle}",
+ "{group} has been linked to {circle} by {author}" : "{author} је повезао групу {group} са кругом {circle}",
+ "You unlinked {group} from {circle}" : "Одвезали сте групу {group} од круга {circle}",
+ "{group} has been unlinked from {circle} by {author}" : "{author} је одвезао групу {group} од круга {circle}",
+ "You changed the level of the linked group {group} in {circle} to %1$s" : "Променили сте ниво везе групе {group} у кругу {circle} на %1$s",
+ "{author} changed the level of the linked group {group} in {circle} to %1$s" : "{author} је променио ниво везе групе {group} у кругу {circle} на %1$s",
+ "You sent a request to link {circle} with {remote}" : "Послали сте захтев да вежете круг {circle} са {remote}",
+ "{author} sent a request to link {circle} with {remote}" : "{author} је послао захтев да веже круг {circle} са {remote}",
+ "{remote} requested a link with {circle}" : "{remote} је захтевао везивање са кругом {circle}",
+ "The request to link {circle} with {remote} has been rejected" : "Захтев за везивањем круга {circle} са {remote} је одбијен",
+ "The request to link {remote} with {circle} has been canceled remotely" : "Захтев за везивањем круга {circle} са {remote} је поништен са друге стране",
+ "The request to link {circle} with {remote} has been accepted" : "Захтев за везивањем круга {circle} са {remote} је прихваћен",
+ "You dismissed the request to link {remote} with {circle}" : "Одбацили сте захтев за везивањем {remote} са кругом {circle}",
+ "{author} dismissed the request to link {remote} with {circle}" : "{author} је одбацио захтев за везивање {remote} са кругом {circle}",
+ "You canceled the request to link {circle} with {remote}" : "Поништили сте захтев за везивањем круга {circle} саwith {remote}",
+ "{author} canceled the request to link {circle} with {remote}" : "{author} је поништио захтев за везивањем круга {circle} са {remote}",
+ "You accepted the request to link {remote} with {circle}" : "Прихватили сте захтев за везивањем {remote} са кругом {circle}",
+ "{author} accepted the request to link {remote} with {circle}" : "{author} је прихватио захтев за везивањем {remote} са кругом {circle}",
+ "A link between {circle} and {remote} is now up and running" : "Веза између круга {circle} и {remote} је успостављена и ради",
+ "The link between {circle} and {remote} has been shutdown remotely" : "Веза између круга {circle} и {remote} је угашена са друге стране",
+ "You closed the link between {circle} and {remote}" : "Затворили сте везу између круга {circle} и {remote}",
+ "{author} closed the link between {circle} and {remote}" : "{author} је затворио везу између круга {circle} и {remote}",
+ "You joined {circle}" : "Придружили сте се кругу {circle}",
+ "{member} joined {circle}" : "{member} се придружио кругу {circle}",
+ "You accepted the invitation to join {circle}" : "Прихватили сте позив да се придружите кругу {circle}",
+ "{member} accepted the invitation to join {circle}" : "{member} је прихватио позив да се придружи кругу {circle}",
+ "You added {member} as member to {circle}" : "Додали сте корисника {member} као члана у круг {circle}",
+ "You have been added as member to {circle} by {author}" : "{author} Вас је додао као члана у круг {circle}",
+ "{member} has been added as member to {circle} by {author}" : "{author} је додао корисника {member} у круг {circle}",
+ "You added {external} to {circle}" : "Додали сте {external} у круг {circle}",
+ "{external} has been added to {circle} by {author}" : "{author} је додао {external} у круг{circle}",
+ "You accepted {member}'s request to join {circle}" : "Прихватили сте захтев корисника {member} да се придружите кругу {circle}",
+ "Your request to join {circle} has been accepted by {author}" : "{author} је прихватио Ваш позив да се придружите кругу {circle}",
+ "{member}'s request to join {circle} has been accepted by {author}" : "{author} је прихватио захтев корисника {member} да се придружи кругу {circle} ",
+ "You left {circle}" : "Напустили сте круг {circle}",
+ "{member} left {circle}" : "{member} је напустио круг {circle}",
+ "You declined the invitation to join {circle}" : "Одбили сте позивницу да се придружите кругу {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} је одбио позивницу да се придружи кругу {circle}",
+ "You cancelled your request to join {circle}" : "Отказали сте захтев да се придружите кругу {circle}",
+ "{member} cancelled his request to join {circle}" : "{member} је отказао захтев да се придружи кругу {circle}",
+ "You removed {member} from {circle}" : "Уклонили сте корисника {member} из круга {circle}",
+ "You have been removed from {circle} by {author}" : "{author} Вас је уклонио из круга {circle}",
+ "{member} has been removed from {circle} by {author}" : "{author} је уклонио корисника {member} из круга {circle}",
+ "You removed {external} from {circle}" : "Уклонили сте {external} из круга {circle}",
+ "{external} has been removed from {circle} by {author}" : "{author} је уклонио {external} из круга {circle}",
+ "You cancelled {member}'s invitation to join {circle}" : "Отказали сте позивницу кориснику {member} да се придружи кругу {circle}",
+ "Your invitation to join {circle} has been cancelled by {author}" : "{author} је поништио Вашу позивницу да се придружите кругу {circle}",
+ "{author} cancelled {member}'s invitation to join {circle}" : "{author} је поништио позивницу корисника {member} да се придружи кругу {circle}",
+ "You dismissed {member}'s request to join {circle}" : "Одбацили сте захтев корисника {member} да се придружи кругу {circle}",
+ "Your request to join {circle} has been dismissed by {author}" : "{author} је одбацио Ваш захтев да се придружите кругу {circle}",
+ "{member}'s request to join {circle} has been dismissed by {author}" : "{author} је одбацио захтев корисника {member} да се придружи кругу {circle}",
+ "You invited {member} to join {circle}" : "Позвали сте корисника {member} да се придружи кругу {circle}",
+ "You have been invited to join {circle} by {author}" : "{author} Вас је позвао да се придружите кругу {circle}",
+ "{member} has been invited to join {circle} by {author}" : "{author} је позвао корисника {member} да се придружи кругу {circle}",
+ "You changed {member}'s level in {circle} to %1$s" : "Променили сте ниво корисника {member} у кругу {circle} на %1$s",
+ "{author} changed your level in {circle} to %1$s" : "{author} је променио Ваш ниво у кругу {circle} на %1$s",
+ "{author} changed {member}'s level in {circle} to %1$s" : "{author} је променио ниво корисника {member} у кругу {circle} на %1$s",
+ "You sent a request to join {circle}" : "Послали сте захтев да се придружите кругу {circle}",
+ "{member} sent a request to join {circle}" : "{member} је послао захтев да се придружи кругу {circle}",
+ "You are the new owner of {circle}" : "Ви сте нови власник круга {circle}",
+ "{member} is the new owner of {circle}" : "{member} је нови власник круга {circle}",
+ "On events happening in a <strong>Circle</strong> you belong" : "На догађај који се дешава у <strong>Кругу</strong> коме припадате",
+ "Any important event in a <strong>Circle</strong> you are moderating" : "Било који битан догађај у <strong>Кругу</strong> који модеришете",
+ "%s shared »%s« with you." : "%s је поделио »%s« са Вама.",
+ "%s shared »%s« with '%s'." : "%s је поделио »%s« са '%s'.",
+ "%s on %s" : "%s на %s",
+ "Click the button below to open it." : "Кликните дугме испод да га отворите.",
+ "Open »%s«" : "Отвори »%s«",
+ "The name of your circle must contain at least 3 characters" : "Име круга мора да има бар 3 карактера",
+ "The name of your circle must start with an alpha-numerical character" : "Име круга мора да почиње са алфанумеричким карактером",
+ "Linked Groups are not allowed on this Nextcloud" : "Повезане групе нису дозвољене на овом Некстклауду",
+ "Federated circles are not allowed on this Nextcloud" : "Здружени кругови нису дозвољени на овом Некстклауду",
+ "Circle not found" : "Круг није нађен",
+ "A circle with that name exists" : "Круг са тим именом постоји",
+ "You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Не можете користити апликацију Кругови док администратор не дозволи бар један тип кругова",
+ "Federated link not found" : "Здружена веза није нађена",
+ "This member does not exist" : "Члан не постоји",
+ "This user is already a member of the circle" : "Корисник је већ члан круга",
+ "Sharing Frame does not exist" : "Фрејм за дељење не постоји",
+ "This feature is not available for personal circles" : "Ова функционалност није доступна за личне кругове",
+ "The circle is not Federated" : "Круг није здружен",
+ "You cannot join this circle" : "Не можете се придружити кругу",
+ "This member is not a moderator" : "Овај члан није модератор",
+ "Not enough privileges" : "Недовољно привилегија",
+ "This member is not the owner of the circle" : "Овај члан није власник круга",
+ "This member is not admin of the circle" : "Овај члан није администратор круга",
+ "This member is the owner of the circle" : "Овај члан је власник круга",
+ "Level cannot be changed for that type of member" : "Ниво не може да се промени за овог типа члана",
+ "You are already a member of this circle" : "Већ сте члан овог круга",
+ "You have been blocked from this circle" : "Блокирани сте у овом кругу",
+ "User is already a member of this circle" : "Корисник је већ члан круга",
+ "User is already invited into this circle" : "Корисник је већ позван у овај круг",
+ "You need a specify a type of circle" : "Морате навести тип круга",
+ "You cannot create this type of circle" : "Не можете направити круг овог типа",
+ "You cannot display this type of circle" : "Не можете приказати круг овог типа",
+ "Federated link does not have a valid format" : "Здружена веза нема исправан формат",
+ "Federated circles are not allowed on the remote Nextcloud" : "Здружени кругови нису дозвољени на удаљеном Некстклауду",
+ "Remote circle does not accept federated links" : "Удаљени круг не прихвата здружене везе",
+ "Trying to link a circle to itself" : "Покушавате да повежете круг са самим собом",
+ "This link exists already" : "Повезивање већ постоји",
+ "The requested remote circle does not exist" : "Тражени удаљени круг не постоји",
+ "The remote host is down or the Circles app is not installed on it" : "Удаљени сервер је недоступан или апликација Кругова није инсталирана на њему",
+ "Cannot proceed with this status update" : "Не могу да наставим са ажурирањем стања",
+ "This group does not exist" : "Ова група не постоји",
+ "This group is already linked to the circle" : "Ова група је већ везана за круг",
+ "You cannot edit level in a personal circle" : "Не можете мењати ниво у личним круговима",
+ "Group cannot be set as owner of a circle" : "Не можете да поставите групу као власника круга",
+ "This user does not exist" : "Овај корисник не постоји",
+ "Email format is not valid" : "Формат адресе е-поште није исправан",
+ "This contact is not available" : "Овај контакт није доступан",
+ "Could not find share" : "Не могу да нађем дељење",
+ "Create a new circle" : "Направи нови круг",
+ "Select a type of circle" : "Изаберите тип круга",
+ "Create a personal circle" : "Направи лични круг",
+ "Create a public circle" : "Направи јавни круг",
+ "Create a closed circle" : "Направи затворени круг",
+ "Create a secret circle" : "Направи тајни круг",
+ "A personal circle is a list of users known only to the owner." : "Лични круг је круг са списком корисника познатим само власнику.",
+ "This is the right option if you want to do recurrent sharing with the same list of local users." : "Ово је прави избор ако желите стално да делите ствари са истом листом локалних корисника.",
+ "A secret circle is an hidden group that can only be seen by its members or by people knowing the exact name of the circle." : "Тајни круг је тајна група коју виде само њени чланови или људи који знају тачно име круга.",
+ "Non-members won't be able to find your secret circle using the search bar." : "Корисници који нису чланови неће наћи тајни круг користећи претрагу.",
+ "Joining a closed circle requires an invitation or a confirmation by a moderator." : "Придруживање затвореном кругу захтева позивницу или потврду модератора.",
+ "Anyone can find the circle and request an invitation; but only members will see who's in it and get access to shared items." : "Свако може да нађе круг и да затражи позивницу; само чланови ће видети ко је у кругу и моћи да приступају дељеним стварима.",
+ "A public circle is an open group visible to anyone willing to join." : "Јавни круг је отворена група видљива свима који желе да се придруже.",
+ "Anyone can see the circle, can join the circle and access the items shared to the circle." : "Свако може да види круг, да му се придружи и приступа стварима дељеним у кругу.",
+ "Personal circles" : "Лични кругови",
+ "Public circles" : "Јавни кругови",
+ "Closed circles" : "Затворени кругови",
+ "Secret circles" : "Тајни кругови",
+ "All circles" : "Сви кругови",
+ "Search circles" : "Претражи кругове",
+ "No filter" : "Без филтера",
+ "Circles you belong to" : "Кругови у којима сте",
+ "Circles you own" : "Кругови чији сте власник",
+ "No circle selected" : "Ниједан круг није одабран",
+ "Pending invitation to join this circle" : "Позивница за придруживање овом кругу на чекању",
+ "You have a pending request to join this circle" : "Имате позивницу на чекању да се придружите овом кругу",
+ "Add a member" : "Додај члана",
+ "Link a group" : "Вежи групу",
+ "Link a circle" : "Вежи круг",
+ "Join this circle" : "Придружи се кругу",
+ "Delete circle" : "Обриши круг",
+ "Edit circle" : "Измени круг",
+ "Accept the invitation" : "Прихвати позивницу",
+ "Decline the invitation" : "Одбиј позивницу",
+ "Leave this circle" : "Напусти круг",
+ "Link to a circle" : "Веза ка кругу",
+ "Return to menu" : "Назад на мени",
+ "Username" : "Корисничко име",
+ "Level" : "Ниво",
+ "Status" : "Статус",
+ "Joined" : "Придружен",
+ "Group Name" : "Име групе",
+ "Link" : "Везивање",
+ "Linked" : "Повезани",
+ "Allow Federated Links" : "Дозволи здружено везивање",
+ "Turns the circle as Federated and enable sharing between Federated Circles" : "Претвара круг у Здружени и укључује дељење измеђи Здружених Кругова",
+ "Automatically Accept Link Request" : "Аутоматски прихвати захтев за везивањем",
+ "Warning: enabling this will automatically accept new link requests from other circle." : "Упозорење: укључивањем овога ћете аутоматски прихватати нове захтеве за везивањем од других кругова.",
+ "Save settings" : "Сачувај поставке",
+ "Async Testing:" : "Асинхроно тестирање:",
+ "initiate test of Circles Async" : "Започни тест Асинхроних Кругова",
+ "reset test result" : "ресетуј резултате теста",
+ "Test is currently running. Please wait." : "Тест тренутно ради. Сачекајте.",
+ "Allow Group Linking:" : "Дозволи везивање група:",
+ "Groups can be linked to Circles." : "Групе се могу везати на Кругове.",
+ "Allow Federated Circles:" : "Дозволи здружене Кругове:",
+ "Circles from different Nextclouds can be linked together." : "Кругови са различитих Некстклауда се могу везати заједно."
+},
+"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/l10n/sr.json b/l10n/sr.json
new file mode 100644
index 00000000..c6d4a87b
--- /dev/null
+++ b/l10n/sr.json
@@ -0,0 +1,266 @@
+{ "translations": {
+ "Circles is using its own way to async heavy process." : "Кругови користе сопствени начин да асинхроно извршавају веће процесе.",
+ "Are you sure you want to transfer your ownership?" : "Да ли сте сигурни да желите да предате власништво?",
+ "This action is irreversible" : "Ова акција је неповратна",
+ "Personal circle" : "Лични круг",
+ "Secret circle" : "Тајни круг",
+ "Closed circle" : "Затворени круг",
+ "Public circle" : "Јавни круг",
+ "Circle" : "Круг",
+ "Link Removed" : "Веза уклоњена",
+ "Link down" : "Веза не ради",
+ "Setting link" : "Постављам везу",
+ "Request dismissed" : "Захтев одбачен",
+ "Request sent" : "Захтев послат",
+ "Link requested" : "Захтевано везивање",
+ "Link up" : "Веза ради",
+ "Personal Circle" : "Лични круг",
+ "Secret Circle" : "Тајни круг",
+ "Closed Circle" : "Затворени круг",
+ "Public Circle" : "Јавни круг",
+ "Personal" : "Лични",
+ "Secret" : "Тајни",
+ "Closed" : "Затворени",
+ "Public" : "Јавни",
+ "Not a member" : "Није члан",
+ "Member" : "Члан",
+ "Moderator" : "Модератор",
+ "Admin" : "Администратор",
+ "Owner" : "Власник",
+ "Unknown" : "Непознато",
+ "Invited" : "Позван",
+ "Requesting" : "Захтевам",
+ "Blocked" : "Блокиран",
+ "Kicked" : "Избачен",
+ "This operation will add/invite all members of the group to the circle" : "Ова акција ће додати/позвати све чланове групе у круг",
+ "Please confirm" : "Молимо потврдите",
+ "Are you sure you want to leave this circle?" : "Да ли сте сигурни да желите да напустите круг?",
+ "Are you sure you want to delete this circle?" : "Да ли сте сигурни да желите да обришете круг?",
+ "Mail Address" : "Адреса е-поште",
+ "Contact" : "Контакт",
+ "Kick this member" : "Избаци овог члана",
+ "Accept the request" : "Прихвати захтев",
+ "Dismiss the request" : "Одбаци захтев",
+ "Unlink this group" : "Одвежи ову групу",
+ "Remove this link" : "Уклони ову везу",
+ "Cancel the link request" : "Поништи захтев за везивањем",
+ "Accept the link request" : "Прихват захтев за повезивањем",
+ "Reject the link request" : "Одбиј захтев за везивањем",
+ "Cannot join this circle" : "Не могу да се придружим кругу",
+ "no error message" : "нема поруке о грешци",
+ "You have joined this circle" : "Придружили сте се кругу",
+ "You have requested to join this circle" : "Предали сте захтев да се придружите кругу",
+ "You have left this circle" : "Напустили сте круг",
+ "Cannot leave this circle" : "Не могу да напустим круг",
+ "You have deleted this circle" : "Избрисали сте круг",
+ "Cannot delete this circle" : "Не могу да избришем круг",
+ " {type} '{name}' created" : " {type} '{name}' направљен",
+ " {type} '{name}' could not be created" : " {type} '{name}' не може да се направи",
+ "Issue while retrieving the details of this circle" : "Грешка приликом дохватања детаља о овом кругу",
+ "Issue while retrieving the list of circles" : "Грешка приликом дохватања списка кругова",
+ "Group '{name}' successfully added to the circle" : "Група '{name}' успешно додата у круг",
+ "Group '{name}' could not be added to the circle" : "Група '{name}' не може да се дода у круг",
+ "Group '{name}' updated" : "Група'{name}' ажурирана",
+ "Group '{name}' could not be updated" : "Група '{name}' не може да се ажурира",
+ "Group '{name}' successfully removed from the circle" : "Група '{name}' успешно уклоњена из круга",
+ "Group '{name}' could not be removed from the circle" : "Група '{name}' не може да се уклони из круга",
+ "A link to <b>{remote}</b> could not be initiated" : "Везивање са <b>{remote}</b> не може да се покрене",
+ "A link to <b>{remote}</b> has been requested." : "Захтевано везивање са <b>{remote}</b>.",
+ "the link to <b>{remote}</b> is now up and running." : "Веза са <b>{remote}</b> успостављена и ради.",
+ "The status of the link could not be updated" : "Стање везивања не може да се ажурира",
+ "The status of the link has been updated" : "Стање везивања је ажурирано",
+ "Local User" : "Локални корисник",
+ "Local Group" : "Локална група",
+ "The member '{name}' was added to the circle" : "Члан '{name}' додат у круг",
+ "The member '{name}' could not be added to the circle" : "Члан '{name}' не може да се дода у круг",
+ "The email address '{email}' was added to the circle" : "Адреса е-поште '{email}' додата у круг",
+ "The email address '{email}' could not be added to the circle" : "Адреса е-поште '{email}' не може да се дода у круг",
+ "The contact '{contact}' was added to the circle" : "Контакт '{contact}' додат у круг",
+ "The contact '{contact}' could not be added to the circle" : "Контакт '{contact}' не може да се дода у круг",
+ "The member '{name}' was invited to the circle" : "Члан '{name}' позван у круг",
+ "The member '{name}' could not be invited to the circle" : "Члан '{name}' не може бити позван у круг",
+ "Members of the group '{name}' were added to the circle" : "Чланови групе '{name}' додати у круг",
+ "Members of the group '{name}' could not be added to the circle" : "Чланови групе '{name}' не могу бити додати у круг",
+ "Members of the group '{name}' were invited to the circle" : "Чланови групе '{name}' позвани у круг",
+ "Members of the group '{name}' could not be invited to the circle" : "Чланови групе '{name}' не могу бити позвани у круг",
+ "The member '{name}' was removed from the circle" : "Члан '{name}' уклоњен из круга",
+ "The member '{name}' could not be removed from the circle" : "Члан '{name}' не може бити уклоњен из круга",
+ "Member '{name}' updated" : "Члан '{name}' ажуриран",
+ "The member '{name}' could not be updated" : "Члан '{name}' не може да се ажурира",
+ "Issue while saving settings" : "Грешка приликом чувања поставки",
+ "Settings saved." : "Поставке сачуване.",
+ "Circles" : "Кругови",
+ "You created the circle {circle}" : "Направили сте круг {circle}",
+ "{author} created the circle {circle}" : "{author} је направио круг {circle}",
+ "You deleted {circle}" : "Обрисали сте круг {circle}",
+ "{author} deleted {circle}" : "{author} је обрисао круг {circle}",
+ "You linked {group} to {circle}" : "Везали сте групу {group} на круг {circle}",
+ "{group} has been linked to {circle} by {author}" : "{author} је повезао групу {group} са кругом {circle}",
+ "You unlinked {group} from {circle}" : "Одвезали сте групу {group} од круга {circle}",
+ "{group} has been unlinked from {circle} by {author}" : "{author} је одвезао групу {group} од круга {circle}",
+ "You changed the level of the linked group {group} in {circle} to %1$s" : "Променили сте ниво везе групе {group} у кругу {circle} на %1$s",
+ "{author} changed the level of the linked group {group} in {circle} to %1$s" : "{author} је променио ниво везе групе {group} у кругу {circle} на %1$s",
+ "You sent a request to link {circle} with {remote}" : "Послали сте захтев да вежете круг {circle} са {remote}",
+ "{author} sent a request to link {circle} with {remote}" : "{author} је послао захтев да веже круг {circle} са {remote}",
+ "{remote} requested a link with {circle}" : "{remote} је захтевао везивање са кругом {circle}",
+ "The request to link {circle} with {remote} has been rejected" : "Захтев за везивањем круга {circle} са {remote} је одбијен",
+ "The request to link {remote} with {circle} has been canceled remotely" : "Захтев за везивањем круга {circle} са {remote} је поништен са друге стране",
+ "The request to link {circle} with {remote} has been accepted" : "Захтев за везивањем круга {circle} са {remote} је прихваћен",
+ "You dismissed the request to link {remote} with {circle}" : "Одбацили сте захтев за везивањем {remote} са кругом {circle}",
+ "{author} dismissed the request to link {remote} with {circle}" : "{author} је одбацио захтев за везивање {remote} са кругом {circle}",
+ "You canceled the request to link {circle} with {remote}" : "Поништили сте захтев за везивањем круга {circle} саwith {remote}",
+ "{author} canceled the request to link {circle} with {remote}" : "{author} је поништио захтев за везивањем круга {circle} са {remote}",
+ "You accepted the request to link {remote} with {circle}" : "Прихватили сте захтев за везивањем {remote} са кругом {circle}",
+ "{author} accepted the request to link {remote} with {circle}" : "{author} је прихватио захтев за везивањем {remote} са кругом {circle}",
+ "A link between {circle} and {remote} is now up and running" : "Веза између круга {circle} и {remote} је успостављена и ради",
+ "The link between {circle} and {remote} has been shutdown remotely" : "Веза између круга {circle} и {remote} је угашена са друге стране",
+ "You closed the link between {circle} and {remote}" : "Затворили сте везу између круга {circle} и {remote}",
+ "{author} closed the link between {circle} and {remote}" : "{author} је затворио везу између круга {circle} и {remote}",
+ "You joined {circle}" : "Придружили сте се кругу {circle}",
+ "{member} joined {circle}" : "{member} се придружио кругу {circle}",
+ "You accepted the invitation to join {circle}" : "Прихватили сте позив да се придружите кругу {circle}",
+ "{member} accepted the invitation to join {circle}" : "{member} је прихватио позив да се придружи кругу {circle}",
+ "You added {member} as member to {circle}" : "Додали сте корисника {member} као члана у круг {circle}",
+ "You have been added as member to {circle} by {author}" : "{author} Вас је додао као члана у круг {circle}",
+ "{member} has been added as member to {circle} by {author}" : "{author} је додао корисника {member} у круг {circle}",
+ "You added {external} to {circle}" : "Додали сте {external} у круг {circle}",
+ "{external} has been added to {circle} by {author}" : "{author} је додао {external} у круг{circle}",
+ "You accepted {member}'s request to join {circle}" : "Прихватили сте захтев корисника {member} да се придружите кругу {circle}",
+ "Your request to join {circle} has been accepted by {author}" : "{author} је прихватио Ваш позив да се придружите кругу {circle}",
+ "{member}'s request to join {circle} has been accepted by {author}" : "{author} је прихватио захтев корисника {member} да се придружи кругу {circle} ",
+ "You left {circle}" : "Напустили сте круг {circle}",
+ "{member} left {circle}" : "{member} је напустио круг {circle}",
+ "You declined the invitation to join {circle}" : "Одбили сте позивницу да се придружите кругу {circle}",
+ "{member} declined an invitation to join {circle}" : "{member} је одбио позивницу да се придружи кругу {circle}",
+ "You cancelled your request to join {circle}" : "Отказали сте захтев да се придружите кругу {circle}",
+ "{member} cancelled his request to join {circle}" : "{member} је отказао захтев да се придружи кругу {circle}",
+ "You removed {member} from {circle}" : "Уклонили сте корисника {member} из круга {circle}",
+ "You have been removed from {circle} by {author}" : "{author} Вас је уклонио из круга {circle}",
+ "{member} has been removed from {circle} by {author}" : "{author} је уклонио корисника {member} из круга {circle}",
+ "You removed {external} from {circle}" : "Уклонили сте {external} из круга {circle}",
+ "{external} has been removed from {circle} by {author}" : "{author} је уклонио {external} из круга {circle}",
+ "You cancelled {member}'s invitation to join {circle}" : "Отказали сте позивницу кориснику {member} да се придружи кругу {circle}",
+ "Your invitation to join {circle} has been cancelled by {author}" : "{author} је поништио Вашу позивницу да се придружите кругу {circle}",
+ "{author} cancelled {member}'s invitation to join {circle}" : "{author} је поништио позивницу корисника {member} да се придружи кругу {circle}",
+ "You dismissed {member}'s request to join {circle}" : "Одбацили сте захтев корисника {member} да се придружи кругу {circle}",
+ "Your request to join {circle} has been dismissed by {author}" : "{author} је одбацио Ваш захтев да се придружите кругу {circle}",
+ "{member}'s request to join {circle} has been dismissed by {author}" : "{author} је одбацио захтев корисника {member} да се придружи кругу {circle}",
+ "You invited {member} to join {circle}" : "Позвали сте корисника {member} да се придружи кругу {circle}",
+ "You have been invited to join {circle} by {author}" : "{author} Вас је позвао да се придружите кругу {circle}",
+ "{member} has been invited to join {circle} by {author}" : "{author} је позвао корисника {member} да се придружи кругу {circle}",
+ "You changed {member}'s level in {circle} to %1$s" : "Променили сте ниво корисника {member} у кругу {circle} на %1$s",
+ "{author} changed your level in {circle} to %1$s" : "{author} је променио Ваш ниво у кругу {circle} на %1$s",
+ "{author} changed {member}'s level in {circle} to %1$s" : "{author} је променио ниво корисника {member} у кругу {circle} на %1$s",
+ "You sent a request to join {circle}" : "Послали сте захтев да се придружите кругу {circle}",
+ "{member} sent a request to join {circle}" : "{member} је послао захтев да се придружи кругу {circle}",
+ "You are the new owner of {circle}" : "Ви сте нови власник круга {circle}",
+ "{member} is the new owner of {circle}" : "{member} је нови власник круга {circle}",
+ "On events happening in a <strong>Circle</strong> you belong" : "На догађај који се дешава у <strong>Кругу</strong> коме припадате",
+ "Any important event in a <strong>Circle</strong> you are moderating" : "Било који битан догађај у <strong>Кругу</strong> који модеришете",
+ "%s shared »%s« with you." : "%s је поделио »%s« са Вама.",
+ "%s shared »%s« with '%s'." : "%s је поделио »%s« са '%s'.",
+ "%s on %s" : "%s на %s",
+ "Click the button below to open it." : "Кликните дугме испод да га отворите.",
+ "Open »%s«" : "Отвори »%s«",
+ "The name of your circle must contain at least 3 characters" : "Име круга мора да има бар 3 карактера",
+ "The name of your circle must start with an alpha-numerical character" : "Име круга мора да почиње са алфанумеричким карактером",
+ "Linked Groups are not allowed on this Nextcloud" : "Повезане групе нису дозвољене на овом Некстклауду",
+ "Federated circles are not allowed on this Nextcloud" : "Здружени кругови нису дозвољени на овом Некстклауду",
+ "Circle not found" : "Круг није нађен",
+ "A circle with that name exists" : "Круг са тим именом постоји",
+ "You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Не можете користити апликацију Кругови док администратор не дозволи бар један тип кругова",
+ "Federated link not found" : "Здружена веза није нађена",
+ "This member does not exist" : "Члан не постоји",
+ "This user is already a member of the circle" : "Корисник је већ члан круга",
+ "Sharing Frame does not exist" : "Фрејм за дељење не постоји",
+ "This feature is not available for personal circles" : "Ова функционалност није доступна за личне кругове",
+ "The circle is not Federated" : "Круг није здружен",
+ "You cannot join this circle" : "Не можете се придружити кругу",
+ "This member is not a moderator" : "Овај члан није модератор",
+ "Not enough privileges" : "Недовољно привилегија",
+ "This member is not the owner of the circle" : "Овај члан није власник круга",
+ "This member is not admin of the circle" : "Овај члан није администратор круга",
+ "This member is the owner of the circle" : "Овај члан је власник круга",
+ "Level cannot be changed for that type of member" : "Ниво не може да се промени за овог типа члана",
+ "You are already a member of this circle" : "Већ сте члан овог круга",
+ "You have been blocked from this circle" : "Блокирани сте у овом кругу",
+ "User is already a member of this circle" : "Корисник је већ члан круга",
+ "User is already invited into this circle" : "Корисник је већ позван у овај круг",
+ "You need a specify a type of circle" : "Морате навести тип круга",
+ "You cannot create this type of circle" : "Не можете направити круг овог типа",
+ "You cannot display this type of circle" : "Не можете приказати круг овог типа",
+ "Federated link does not have a valid format" : "Здружена веза нема исправан формат",
+ "Federated circles are not allowed on the remote Nextcloud" : "Здружени кругови нису дозвољени на удаљеном Некстклауду",
+ "Remote circle does not accept federated links" : "Удаљени круг не прихвата здружене везе",
+ "Trying to link a circle to itself" : "Покушавате да повежете круг са самим собом",
+ "This link exists already" : "Повезивање већ постоји",
+ "The requested remote circle does not exist" : "Тражени удаљени круг не постоји",
+ "The remote host is down or the Circles app is not installed on it" : "Удаљени сервер је недоступан или апликација Кругова није инсталирана на њему",
+ "Cannot proceed with this status update" : "Не могу да наставим са ажурирањем стања",
+ "This group does not exist" : "Ова група не постоји",
+ "This group is already linked to the circle" : "Ова група је већ везана за круг",
+ "You cannot edit level in a personal circle" : "Не можете мењати ниво у личним круговима",
+ "Group cannot be set as owner of a circle" : "Не можете да поставите групу као власника круга",
+ "This user does not exist" : "Овај корисник не постоји",
+ "Email format is not valid" : "Формат адресе е-поште није исправан",
+ "This contact is not available" : "Овај контакт није доступан",
+ "Could not find share" : "Не могу да нађем дељење",
+ "Create a new circle" : "Направи нови круг",
+ "Select a type of circle" : "Изаберите тип круга",
+ "Create a personal circle" : "Направи лични круг",
+ "Create a public circle" : "Направи јавни круг",
+ "Create a closed circle" : "Направи затворени круг",
+ "Create a secret circle" : "Направи тајни круг",
+ "A personal circle is a list of users known only to the owner." : "Лични круг је круг са списком корисника познатим само власнику.",
+ "This is the right option if you want to do recurrent sharing with the same list of local users." : "Ово је прави избор ако желите стално да делите ствари са истом листом локалних корисника.",
+ "A secret circle is an hidden group that can only be seen by its members or by people knowing the exact name of the circle." : "Тајни круг је тајна група коју виде само њени чланови или људи који знају тачно име круга.",
+ "Non-members won't be able to find your secret circle using the search bar." : "Корисници који нису чланови неће наћи тајни круг користећи претрагу.",
+ "Joining a closed circle requires an invitation or a confirmation by a moderator." : "Придруживање затвореном кругу захтева позивницу или потврду модератора.",
+ "Anyone can find the circle and request an invitation; but only members will see who's in it and get access to shared items." : "Свако може да нађе круг и да затражи позивницу; само чланови ће видети ко је у кругу и моћи да приступају дељеним стварима.",
+ "A public circle is an open group visible to anyone willing to join." : "Јавни круг је отворена група видљива свима који желе да се придруже.",
+ "Anyone can see the circle, can join the circle and access the items shared to the circle." : "Свако може да види круг, да му се придружи и приступа стварима дељеним у кругу.",
+ "Personal circles" : "Лични кругови",
+ "Public circles" : "Јавни кругови",
+ "Closed circles" : "Затворени кругови",
+ "Secret circles" : "Тајни кругови",
+ "All circles" : "Сви кругови",
+ "Search circles" : "Претражи кругове",
+ "No filter" : "Без филтера",
+ "Circles you belong to" : "Кругови у којима сте",
+ "Circles you own" : "Кругови чији сте власник",
+ "No circle selected" : "Ниједан круг није одабран",
+ "Pending invitation to join this circle" : "Позивница за придруживање овом кругу на чекању",
+ "You have a pending request to join this circle" : "Имате позивницу на чекању да се придружите овом кругу",
+ "Add a member" : "Додај члана",
+ "Link a group" : "Вежи групу",
+ "Link a circle" : "Вежи круг",
+ "Join this circle" : "Придружи се кругу",
+ "Delete circle" : "Обриши круг",
+ "Edit circle" : "Измени круг",
+ "Accept the invitation" : "Прихвати позивницу",
+ "Decline the invitation" : "Одбиј позивницу",
+ "Leave this circle" : "Напусти круг",
+ "Link to a circle" : "Веза ка кругу",
+ "Return to menu" : "Назад на мени",
+ "Username" : "Корисничко име",
+ "Level" : "Ниво",
+ "Status" : "Статус",
+ "Joined" : "Придружен",
+ "Group Name" : "Име групе",
+ "Link" : "Везивање",
+ "Linked" : "Повезани",
+ "Allow Federated Links" : "Дозволи здружено везивање",
+ "Turns the circle as Federated and enable sharing between Federated Circles" : "Претвара круг у Здружени и укључује дељење измеђи Здружених Кругова",
+ "Automatically Accept Link Request" : "Аутоматски прихвати захтев за везивањем",
+ "Warning: enabling this will automatically accept new link requests from other circle." : "Упозорење: укључивањем овога ћете аутоматски прихватати нове захтеве за везивањем од других кругова.",
+ "Save settings" : "Сачувај поставке",
+ "Async Testing:" : "Асинхроно тестирање:",
+ "initiate test of Circles Async" : "Започни тест Асинхроних Кругова",
+ "reset test result" : "ресетуј резултате теста",
+ "Test is currently running. Please wait." : "Тест тренутно ради. Сачекајте.",
+ "Allow Group Linking:" : "Дозволи везивање група:",
+ "Groups can be linked to Circles." : "Групе се могу везати на Кругове.",
+ "Allow Federated Circles:" : "Дозволи здружене Кругове:",
+ "Circles from different Nextclouds can be linked together." : "Кругови са различитих Некстклауда се могу везати заједно."
+},"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/l10n/sv.js b/l10n/sv.js
index bcc18f94..a63da4ce 100644
--- a/l10n/sv.js
+++ b/l10n/sv.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"circles",
{
+ "Circles is using its own way to async heavy process." : "Cirklar använder ett eget sätt att synkronisera tunga processer.",
"Are you sure you want to transfer your ownership?" : "Är du säker att du vill ändra ägare?",
"This action is irreversible" : "Handlingen kan inte ångras",
"Personal circle" : "Personlig cirkel",
@@ -139,6 +140,7 @@ OC.L10N.register(
"You have been removed from {circle} by {author}" : "Du har tagits bort från {circle} av {author}",
"{member} has been removed from {circle} by {author}" : "{member} har tagits bort från {circle} av {author}",
"You removed {external} from {circle}" : "Du tog bort {external} från {circle}",
+ "{external} has been removed from {circle} by {author}" : "{external} har tagits bort från {circle} av {author}",
"You cancelled {member}'s invitation to join {circle}" : "Du avbröt {member}s inbjudan att gå med i {circle}",
"Your invitation to join {circle} has been cancelled by {author}" : "Din inbjudan att gå med i {circle} har avbrutits av {author}",
"{author} cancelled {member}'s invitation to join {circle}" : "{author} avbröt {member}s inbjudan att gå med i {circle}",
@@ -168,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Federerade cirklar är inte tillåtna på denna Nextcloud",
"Circle not found" : "Cirkel kunde inte hittas",
"A circle with that name exists" : "En cirkel med det namnet finns",
- "Sharing Frame does not exist" : "Delad Frame finns inte",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Du kan inte använda Cirkelappen förrän din administratör har tillåtit minst en typ av cirklar",
"Federated link not found" : "Federerad länk ej funnen",
"This member does not exist" : "Medlemmen finns inte",
"This user is already a member of the circle" : "Användaren är redan medlem i cirkeln",
+ "Sharing Frame does not exist" : "Delad Frame finns inte",
"This feature is not available for personal circles" : "Funktionen är inte tillgänglig för personliga cirklar",
"The circle is not Federated" : "Cirkeln är inte federerad",
"You cannot join this circle" : "Du kan inte gå med i denna cirkel",
@@ -254,6 +256,8 @@ OC.L10N.register(
"Automatically Accept Link Request" : "Automatisk acceptera länkförfrågan",
"Warning: enabling this will automatically accept new link requests from other circle." : "Varning: tillåta detta kommer automatiskt acceptera nya länkförfrågningar från andra cirklar.",
"Save settings" : "Spara inställningar",
+ "Async Testing:" : "Async test:",
+ "initiate test of Circles Async" : "starta test av Circles Async",
"reset test result" : "Återställ testresultat",
"Test is currently running. Please wait." : "Ett test körs just nu. Vänligen vänta.",
"Allow Group Linking:" : "Tillåt grupplänkning:",
diff --git a/l10n/sv.json b/l10n/sv.json
index a288d96d..d8070ce8 100644
--- a/l10n/sv.json
+++ b/l10n/sv.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Circles is using its own way to async heavy process." : "Cirklar använder ett eget sätt att synkronisera tunga processer.",
"Are you sure you want to transfer your ownership?" : "Är du säker att du vill ändra ägare?",
"This action is irreversible" : "Handlingen kan inte ångras",
"Personal circle" : "Personlig cirkel",
@@ -137,6 +138,7 @@
"You have been removed from {circle} by {author}" : "Du har tagits bort från {circle} av {author}",
"{member} has been removed from {circle} by {author}" : "{member} har tagits bort från {circle} av {author}",
"You removed {external} from {circle}" : "Du tog bort {external} från {circle}",
+ "{external} has been removed from {circle} by {author}" : "{external} har tagits bort från {circle} av {author}",
"You cancelled {member}'s invitation to join {circle}" : "Du avbröt {member}s inbjudan att gå med i {circle}",
"Your invitation to join {circle} has been cancelled by {author}" : "Din inbjudan att gå med i {circle} har avbrutits av {author}",
"{author} cancelled {member}'s invitation to join {circle}" : "{author} avbröt {member}s inbjudan att gå med i {circle}",
@@ -166,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "Federerade cirklar är inte tillåtna på denna Nextcloud",
"Circle not found" : "Cirkel kunde inte hittas",
"A circle with that name exists" : "En cirkel med det namnet finns",
- "Sharing Frame does not exist" : "Delad Frame finns inte",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Du kan inte använda Cirkelappen förrän din administratör har tillåtit minst en typ av cirklar",
"Federated link not found" : "Federerad länk ej funnen",
"This member does not exist" : "Medlemmen finns inte",
"This user is already a member of the circle" : "Användaren är redan medlem i cirkeln",
+ "Sharing Frame does not exist" : "Delad Frame finns inte",
"This feature is not available for personal circles" : "Funktionen är inte tillgänglig för personliga cirklar",
"The circle is not Federated" : "Cirkeln är inte federerad",
"You cannot join this circle" : "Du kan inte gå med i denna cirkel",
@@ -252,6 +254,8 @@
"Automatically Accept Link Request" : "Automatisk acceptera länkförfrågan",
"Warning: enabling this will automatically accept new link requests from other circle." : "Varning: tillåta detta kommer automatiskt acceptera nya länkförfrågningar från andra cirklar.",
"Save settings" : "Spara inställningar",
+ "Async Testing:" : "Async test:",
+ "initiate test of Circles Async" : "starta test av Circles Async",
"reset test result" : "Återställ testresultat",
"Test is currently running. Please wait." : "Ett test körs just nu. Vänligen vänta.",
"Allow Group Linking:" : "Tillåt grupplänkning:",
diff --git a/l10n/tr.js b/l10n/tr.js
index 2ff84e12..02767864 100644
--- a/l10n/tr.js
+++ b/l10n/tr.js
@@ -170,11 +170,11 @@ OC.L10N.register(
"Federated circles are not allowed on this Nextcloud" : "Nextcloud üzerinde birleşmiş çevreler kullanılamaz",
"Circle not found" : "Çevre bulunamadı",
"A circle with that name exists" : "Aynı adlı bir çevre zaten var",
- "Sharing Frame does not exist" : "Paylaşım Çerçevesi bulunamadı",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Yöneticiniz en az bir çevre türüne izin verene kadar Çevreler uygulamasını kullanamazsınız",
"Federated link not found" : "Birleşmiş bağlantı bulunamadı",
"This member does not exist" : "Bu üye bulunamadı",
"This user is already a member of the circle" : "Bu kullanıcı zaten bu çevrenin üyesi",
+ "Sharing Frame does not exist" : "Paylaşım Çerçevesi bulunamadı",
"This feature is not available for personal circles" : "Bu özellik kişisel çevrelerde kullanılamaz",
"The circle is not Federated" : "Çevre birleşik değil",
"You cannot join this circle" : "Bu çevreye katılamazsınız",
diff --git a/l10n/tr.json b/l10n/tr.json
index 7a7c8eff..5a15ad87 100644
--- a/l10n/tr.json
+++ b/l10n/tr.json
@@ -168,11 +168,11 @@
"Federated circles are not allowed on this Nextcloud" : "Nextcloud üzerinde birleşmiş çevreler kullanılamaz",
"Circle not found" : "Çevre bulunamadı",
"A circle with that name exists" : "Aynı adlı bir çevre zaten var",
- "Sharing Frame does not exist" : "Paylaşım Çerçevesi bulunamadı",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "Yöneticiniz en az bir çevre türüne izin verene kadar Çevreler uygulamasını kullanamazsınız",
"Federated link not found" : "Birleşmiş bağlantı bulunamadı",
"This member does not exist" : "Bu üye bulunamadı",
"This user is already a member of the circle" : "Bu kullanıcı zaten bu çevrenin üyesi",
+ "Sharing Frame does not exist" : "Paylaşım Çerçevesi bulunamadı",
"This feature is not available for personal circles" : "Bu özellik kişisel çevrelerde kullanılamaz",
"The circle is not Federated" : "Çevre birleşik değil",
"You cannot join this circle" : "Bu çevreye katılamazsınız",
diff --git a/l10n/zh_CN.js b/l10n/zh_CN.js
index a5f81dfc..2353acb2 100644
--- a/l10n/zh_CN.js
+++ b/l10n/zh_CN.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"circles",
{
+ "Circles is using its own way to async heavy process." : "圈子正在使用自己的方式来异步繁重的过程。",
"Are you sure you want to transfer your ownership?" : "确定转让所有权?",
"This action is irreversible" : "操作不可逆",
"Personal circle" : "个人圈子",
@@ -38,6 +39,7 @@ OC.L10N.register(
"Are you sure you want to leave this circle?" : "您确定要离开这个圈子?",
"Are you sure you want to delete this circle?" : "您确定要删除这个圈子?",
"Mail Address" : "邮箱",
+ "Contact" : "联系",
"Kick this member" : "踢开这个成员",
"Accept the request" : "接受这个请求",
"Dismiss the request" : "取消此请求",
@@ -58,8 +60,34 @@ OC.L10N.register(
" {type} '{name}' could not be created" : " {type} '{name}' 无法创建",
"Issue while retrieving the details of this circle" : "同时检索此圈子的详细信息",
"Issue while retrieving the list of circles" : "同时检索圈子列表",
+ "Group '{name}' successfully added to the circle" : "成功添加 '{name}' 组到 circle",
+ "Group '{name}' could not be added to the circle" : "无法添加 '{name}' 组到 circle",
+ "Group '{name}' updated" : "已更新 '{name}' 组",
+ "Group '{name}' could not be updated" : "无法更新 '{name}' 组",
+ "Group '{name}' successfully removed from the circle" : "成功从 circle 中移除 '{name}' 组",
+ "Group '{name}' could not be removed from the circle" : "无法从 circle 中移除 '{name}' 组",
+ "A link to <b>{remote}</b> could not be initiated" : "指向<b>{远程}</b>的链接无法启动",
+ "A link to <b>{remote}</b> has been requested." : "指向<b>{远程}</b>已被要求",
+ "the link to <b>{remote}</b> is now up and running." : "指向<b>{远程}</b>现在正在运行。",
"The status of the link could not be updated" : "该链接的状态无法更新",
"The status of the link has been updated" : "该链接的状态已更新",
+ "Local User" : "本地用户",
+ "Local Group" : "本地组",
+ "The member '{name}' was added to the circle" : "成员 '{name}' 已被添加到 circle",
+ "The member '{name}' could not be added to the circle" : "成员 '{name}' 无法被添加到 circle",
+ "The email address '{email}' was added to the circle" : "E-mail '{email}' 已被添加到 circle",
+ "The email address '{email}' could not be added to the circle" : "E-mail '{email}' 无法被添加到 circle",
+ "The contact '{contact}' was added to the circle" : "联系人 '{contact}' 已被添加到 circle",
+ "The contact '{contact}' could not be added to the circle" : "联系人 '{contact}' 无法被添加到 circle",
+ "The member '{name}' was invited to the circle" : "成员 '{name}' 已被邀请到 circle",
+ "The member '{name}' could not be invited to the circle" : "成员 '{name}' 无法被邀请到 circle",
+ "Members of the group '{name}' were added to the circle" : "组员 '{name}' 已被添加到 circle",
+ "Members of the group '{name}' could not be added to the circle" : "组员 '{name}' 无法被添加到 circle",
+ "Members of the group '{name}' were invited to the circle" : "组员 '{name}' 已被邀请到 circle",
+ "Members of the group '{name}' could not be invited to the circle" : "组员 '{name}' 无法被邀请到 circle",
+ "The member '{name}' was removed from the circle" : "成员 '{name}' 已从 circle 中移除",
+ "The member '{name}' could not be removed from the circle" : "成员 '{name}' 无法从 circle 中移除",
+ "Member '{name}' updated" : "成员 '{name}' 已更新",
"The member '{name}' could not be updated" : "无法更新成员:'{name}'",
"Issue while saving settings" : "保存设置时出现问题",
"Settings saved." : "设置已保存",
@@ -68,29 +96,135 @@ OC.L10N.register(
"{author} created the circle {circle}" : "{author} 创建了圈子 {circle}",
"You deleted {circle}" : "你删除了 {circle}",
"{author} deleted {circle}" : "{author} 已删除{circle}",
+ "You linked {group} to {circle}" : "你已将 {group} 连接到 {circle}",
+ "{group} has been linked to {circle} by {author}" : "{author} 已将 {group}  连接到 {circle}",
+ "You unlinked {group} from {circle}" : "你已将 {group} 从 {circle} 中断开",
+ "{group} has been unlinked from {circle} by {author}" : "{author} 已将 {group} 从 {circle} 中断开",
+ "You changed the level of the linked group {group} in {circle} to %1$s" : "你已将 {circle} 中的组 {group} 的级别修改为 %1$s",
+ "{author} changed the level of the linked group {group} in {circle} to %1$s" : "{author} 已将 {circle} 中的组 {group} 的级别修改为 %1$s",
+ "You sent a request to link {circle} with {remote}" : "您发送了一个请求,将{circle}与{remote}链接",
+ "{author} sent a request to link {circle} with {remote}" : "{author}发送了一个请求,将{circle}与{remote}关联",
+ "{remote} requested a link with {circle}" : "{remote}要求与{circle}连结",
+ "The request to link {circle} with {remote} has been rejected" : "将{circle}与{remote}关联的请求已被拒绝",
+ "The request to link {remote} with {circle} has been canceled remotely" : "将{remote}与{circle}关联的请求已被远程取消",
+ "The request to link {circle} with {remote} has been accepted" : "{circle}与{remote}关联的请求已被接受",
+ "You dismissed the request to link {remote} with {circle}" : "您已将{remote}与{circle}关联的请求撤销",
+ "{author} dismissed the request to link {remote} with {circle}" : "{author}驳回了将{remote}与{circle}关联的请求",
+ "You canceled the request to link {circle} with {remote}" : "您取消了将{circle}与{remote}关联的请求",
+ "{author} canceled the request to link {circle} with {remote}" : "{author}取消了将{circle}与{remote}关联的请求",
+ "You accepted the request to link {remote} with {circle}" : "接受了{远程}与{圈子}链接的请求",
+ "{author} accepted the request to link {remote} with {circle}" : "{author}接受了{remote}与{circle}链接的请求",
+ "A link between {circle} and {remote} is now up and running" : "{circle}和{remote}之间的链接现已启动并运行",
+ "The link between {circle} and {remote} has been shutdown remotely" : "{circle}和{remote}之间的链接已被远程关闭",
+ "You closed the link between {circle} and {remote}" : "你关闭了{circle}和{remote}之间的链接",
+ "{author} closed the link between {circle} and {remote}" : "{author}关闭{circle}和{remote}之间的链接",
"You joined {circle}" : "你已经加入了 {circle}",
+ "{member} joined {circle}" : "{member}加入{circle}",
+ "You accepted the invitation to join {circle}" : "您接受邀请加入{circle}",
+ "{member} accepted the invitation to join {circle}" : "{member}接受邀请加入{circle}",
+ "You added {member} as member to {circle}" : "您已将{member}加入{circle}",
+ "You have been added as member to {circle} by {author}" : "您已被 {author}添加为{circle}的会员",
+ "{member} has been added as member to {circle} by {author}" : "{member}已被{author}添加为{circle}的成员",
+ "You added {external} to {circle}" : "您已将{external}添加到{circle}",
+ "{external} has been added to {circle} by {author}" : "{外部}已由{author}添加到{circle}",
+ "You accepted {member}'s request to join {circle}" : "您接受{member}的请求加入{circle}",
+ "Your request to join {circle} has been accepted by {author}" : "您加入{circle}的请求已被{author}接受",
+ "{member}'s request to join {circle} has been accepted by {author}" : "{member}的加入{circle}的请求已被{author}",
"You left {circle}" : "你离开了 {circle}",
+ "{member} left {circle}" : "{member} left {circle}",
+ "You declined the invitation to join {circle}" : "您拒绝加入{circle}的邀请",
+ "{member} declined an invitation to join {circle}" : "{member}拒绝加入{circle}",
+ "You cancelled your request to join {circle}" : "您取消了加入{circle}的请求",
+ "{member} cancelled his request to join {circle}" : "{member}取消了他加入{circle}",
+ "You removed {member} from {circle}" : "您已从{circle}删除{member}",
+ "You have been removed from {circle} by {author}" : "您已被{圈子}删除{author}",
+ "{member} has been removed from {circle} by {author}" : "{member}已从{circle}由{author}已移除",
+ "You removed {external} from {circle}" : "您已从{circle}已移除{外部}",
+ "{external} has been removed from {circle} by {author}" : "{外部}已从{circle}由{author}已移除",
+ "You cancelled {member}'s invitation to join {circle}" : "您已取消{member}的邀请加入{circle}",
+ "Your invitation to join {circle} has been cancelled by {author}" : "您邀请加入{circle}已被{author}取消",
+ "{author} cancelled {member}'s invitation to join {circle}" : "{author}已取消{member}的邀请加入{circle}",
+ "You dismissed {member}'s request to join {circle}" : "您已经{member}的请求加入{circle}",
+ "Your request to join {circle} has been dismissed by {author}" : "您加入{circle}的请求已被{author}驳回",
+ "{member}'s request to join {circle} has been dismissed by {author}" : "{member}的加入{circle}的请求已被{author}",
+ "You invited {member} to join {circle}" : "您邀请{member}加入{circle}",
+ "You have been invited to join {circle} by {author}" : "您已被邀请加入{circle}由{author}",
+ "{member} has been invited to join {circle} by {author}" : "{member}已被邀请参加{circle}由{author}",
+ "You changed {member}'s level in {circle} to %1$s" : "您将{circle}中的{member}的级别更改为%1$s",
+ "{author} changed your level in {circle} to %1$s" : "{author}将{circle}的级别更改为%1$s",
+ "{author} changed {member}'s level in {circle} to %1$s" : "{author}将{circle}的{member}的级别更改为%1$s",
+ "You sent a request to join {circle}" : "您发送了加入{circle}的请求",
+ "{member} sent a request to join {circle}" : "{member}发送了加入{circle}的请求",
+ "You are the new owner of {circle}" : "您是{circle}的新拥有者",
+ "{member} is the new owner of {circle}" : "{member}是{circle}的新拥有者",
+ "On events happening in a <strong>Circle</strong> you belong" : "对于您所属的<strong>圈子</strong>中发生的事件",
+ "Any important event in a <strong>Circle</strong> you are moderating" : "在<strong>圈子</strong>中的任何重要事件你正在主持",
+ "%s shared »%s« with you." : "%s已共享 »%s«和你一起",
+ "%s shared »%s« with '%s'." : "%s已共享 »%s«和 '%s'.",
+ "%s on %s" : "%s上%s",
+ "Click the button below to open it." : "点击下面的按钮打开它。",
+ "Open »%s«" : "打开»%s«",
+ "The name of your circle must contain at least 3 characters" : "您的圈子名称必须至少包含3个字符",
+ "The name of your circle must start with an alpha-numerical character" : "圈子的名称必须以字母数字字符开始",
+ "Linked Groups are not allowed on this Nextcloud" : "这个Nextcloud不允许链接的组",
+ "Federated circles are not allowed on this Nextcloud" : "这个Nextcloud不允许联合的圈子",
+ "Circle not found" : "查找不到圈子",
"A circle with that name exists" : "存在具有该名称的圈子",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "您的管理员至少允许一种类型的圈子,否则您不能使用“圈子”应用程序",
+ "Federated link not found" : "未找到联合链接",
"This member does not exist" : "此成员不存在",
"This user is already a member of the circle" : "此用户已经是圈子的成员",
+ "Sharing Frame does not exist" : "共享帧不存在",
+ "This feature is not available for personal circles" : "此功能不适用于个人圈子",
+ "The circle is not Federated" : "圈子不联合",
"You cannot join this circle" : "你不能加入此圈子",
"This member is not a moderator" : "此成员不是管理员",
+ "Not enough privileges" : "没有足够的权限",
"This member is not the owner of the circle" : "此成员不是圈子的所有者",
+ "This member is not admin of the circle" : "该成员不是该圈子的管理员",
"This member is the owner of the circle" : "此成员是圈子的所有者",
+ "Level cannot be changed for that type of member" : "对于该类型的成员,级别不能被更改",
"You are already a member of this circle" : "您已经是此圈子的成员",
"You have been blocked from this circle" : "您已被封锁在此圈子中",
+ "User is already a member of this circle" : "用户已经是此圈子的成员",
+ "User is already invited into this circle" : "用户已被邀请进入此圈子",
"You need a specify a type of circle" : "您需要指定一种类型的圈子",
"You cannot create this type of circle" : "你无法创建此类型的圈子",
"You cannot display this type of circle" : "你无法显示此类型的圈子",
+ "Federated link does not have a valid format" : "联合链接没有有效的格式",
+ "Federated circles are not allowed on the remote Nextcloud" : "远程Nextcloud不允许联合圈",
+ "Remote circle does not accept federated links" : "远程圈不接受联合链接",
+ "Trying to link a circle to itself" : "尝试将一个圈子链接到自己",
"This link exists already" : "链接已经存在!",
+ "The requested remote circle does not exist" : "请求的远程圈子不存在",
+ "The remote host is down or the Circles app is not installed on it" : "远程主机已关闭或圈子应用程序未安装在其上",
+ "Cannot proceed with this status update" : "无法继续此状态更新",
+ "This group does not exist" : "该分组不存在",
+ "This group is already linked to the circle" : "该分组已经链接到该圈子",
+ "You cannot edit level in a personal circle" : "您无法编辑个人圈子中的级别",
+ "Group cannot be set as owner of a circle" : "组不能设置为圈子的所有者",
"This user does not exist" : "此用户不存在",
+ "Email format is not valid" : "电子邮件格式无效",
+ "This contact is not available" : "此联系人不可用",
+ "Could not find share" : "查找不到共享",
"Create a new circle" : "创建一个新圈子",
"Select a type of circle" : "选择一个类型的圈子",
"Create a personal circle" : "创建一个个人的圈子",
"Create a public circle" : "创建一个公共的圈子",
+ "Create a closed circle" : "创建一个封闭的圆圈",
+ "Create a secret circle" : "创建一个秘密圈",
"A personal circle is a list of users known only to the owner." : "个人圈子是只有使用者者知道的用户列表。",
+ "This is the right option if you want to do recurrent sharing with the same list of local users." : "如果您想要使用相同的本地用户列表进行循环共享,则这是正确的选项。",
+ "A secret circle is an hidden group that can only be seen by its members or by people knowing the exact name of the circle." : "一个秘密圈子是一个隐藏的组织,只能由其成员或知道确切名称的人看到。",
+ "Non-members won't be able to find your secret circle using the search bar." : "非会员无法使用搜索栏找到您的秘密圈子。",
+ "Joining a closed circle requires an invitation or a confirmation by a moderator." : "加入封闭的圈子需要主持人的邀请或确认。",
+ "Anyone can find the circle and request an invitation; but only members will see who's in it and get access to shared items." : "任何人都可以找到圈子并请求邀请; 但只有成员才能看到谁在内,并可以访问共享项目。",
"A public circle is an open group visible to anyone willing to join." : "一个公开圈子是任何都可以加入的。",
+ "Anyone can see the circle, can join the circle and access the items shared to the circle." : "任何人都可以看到圈子,可以加入圈子并访问共享到圈子的项目。",
+ "Personal circles" : "个人圈子",
+ "Public circles" : "公共圈子",
+ "Closed circles" : "关闭圈子",
+ "Secret circles" : "秘密圈",
"All circles" : "所有的圈子",
"Search circles" : "搜索圈子",
"No filter" : "没有过滤器",
@@ -98,7 +232,10 @@ OC.L10N.register(
"Circles you own" : "你拥有的圈子",
"No circle selected" : "没有圈子被选择",
"Pending invitation to join this circle" : "等待加入这个圈子的邀请",
+ "You have a pending request to join this circle" : "您有一个未决请求加入此圈子",
"Add a member" : "加一个成员",
+ "Link a group" : "链接一个组",
+ "Link a circle" : "圈子链接",
"Join this circle" : "加入这个圈子",
"Delete circle" : "删除圈子",
"Edit circle" : "编辑圈子",
@@ -111,10 +248,21 @@ OC.L10N.register(
"Level" : "离开",
"Status" : "状态",
"Joined" : "已加入",
+ "Group Name" : "分组名称",
"Link" : "链接",
"Linked" : "已链接",
"Allow Federated Links" : "允许联合链接",
+ "Turns the circle as Federated and enable sharing between Federated Circles" : "将圆圈转为联合,并启用联合圈之间的共享",
"Automatically Accept Link Request" : "自动接受链接请求",
- "Save settings" : "保存设置"
+ "Warning: enabling this will automatically accept new link requests from other circle." : "警告:启用此功能将自动接受来自其他圈子的新链接请求。",
+ "Save settings" : "保存设置",
+ "Async Testing:" : "异步测试:",
+ "initiate test of Circles Async" : "启动圈子异步测试",
+ "reset test result" : "重置测试结果",
+ "Test is currently running. Please wait." : "测试正在运行。 请稍候。",
+ "Allow Group Linking:" : "允许分组链接:",
+ "Groups can be linked to Circles." : "群组可以链接到圈子。",
+ "Allow Federated Circles:" : "允许联合圈:",
+ "Circles from different Nextclouds can be linked together." : "来自不同Nextclouds的圈子可以链接在一起。"
},
"nplurals=1; plural=0;");
diff --git a/l10n/zh_CN.json b/l10n/zh_CN.json
index 87c78271..abb1fe88 100644
--- a/l10n/zh_CN.json
+++ b/l10n/zh_CN.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Circles is using its own way to async heavy process." : "圈子正在使用自己的方式来异步繁重的过程。",
"Are you sure you want to transfer your ownership?" : "确定转让所有权?",
"This action is irreversible" : "操作不可逆",
"Personal circle" : "个人圈子",
@@ -36,6 +37,7 @@
"Are you sure you want to leave this circle?" : "您确定要离开这个圈子?",
"Are you sure you want to delete this circle?" : "您确定要删除这个圈子?",
"Mail Address" : "邮箱",
+ "Contact" : "联系",
"Kick this member" : "踢开这个成员",
"Accept the request" : "接受这个请求",
"Dismiss the request" : "取消此请求",
@@ -56,8 +58,34 @@
" {type} '{name}' could not be created" : " {type} '{name}' 无法创建",
"Issue while retrieving the details of this circle" : "同时检索此圈子的详细信息",
"Issue while retrieving the list of circles" : "同时检索圈子列表",
+ "Group '{name}' successfully added to the circle" : "成功添加 '{name}' 组到 circle",
+ "Group '{name}' could not be added to the circle" : "无法添加 '{name}' 组到 circle",
+ "Group '{name}' updated" : "已更新 '{name}' 组",
+ "Group '{name}' could not be updated" : "无法更新 '{name}' 组",
+ "Group '{name}' successfully removed from the circle" : "成功从 circle 中移除 '{name}' 组",
+ "Group '{name}' could not be removed from the circle" : "无法从 circle 中移除 '{name}' 组",
+ "A link to <b>{remote}</b> could not be initiated" : "指向<b>{远程}</b>的链接无法启动",
+ "A link to <b>{remote}</b> has been requested." : "指向<b>{远程}</b>已被要求",
+ "the link to <b>{remote}</b> is now up and running." : "指向<b>{远程}</b>现在正在运行。",
"The status of the link could not be updated" : "该链接的状态无法更新",
"The status of the link has been updated" : "该链接的状态已更新",
+ "Local User" : "本地用户",
+ "Local Group" : "本地组",
+ "The member '{name}' was added to the circle" : "成员 '{name}' 已被添加到 circle",
+ "The member '{name}' could not be added to the circle" : "成员 '{name}' 无法被添加到 circle",
+ "The email address '{email}' was added to the circle" : "E-mail '{email}' 已被添加到 circle",
+ "The email address '{email}' could not be added to the circle" : "E-mail '{email}' 无法被添加到 circle",
+ "The contact '{contact}' was added to the circle" : "联系人 '{contact}' 已被添加到 circle",
+ "The contact '{contact}' could not be added to the circle" : "联系人 '{contact}' 无法被添加到 circle",
+ "The member '{name}' was invited to the circle" : "成员 '{name}' 已被邀请到 circle",
+ "The member '{name}' could not be invited to the circle" : "成员 '{name}' 无法被邀请到 circle",
+ "Members of the group '{name}' were added to the circle" : "组员 '{name}' 已被添加到 circle",
+ "Members of the group '{name}' could not be added to the circle" : "组员 '{name}' 无法被添加到 circle",
+ "Members of the group '{name}' were invited to the circle" : "组员 '{name}' 已被邀请到 circle",
+ "Members of the group '{name}' could not be invited to the circle" : "组员 '{name}' 无法被邀请到 circle",
+ "The member '{name}' was removed from the circle" : "成员 '{name}' 已从 circle 中移除",
+ "The member '{name}' could not be removed from the circle" : "成员 '{name}' 无法从 circle 中移除",
+ "Member '{name}' updated" : "成员 '{name}' 已更新",
"The member '{name}' could not be updated" : "无法更新成员:'{name}'",
"Issue while saving settings" : "保存设置时出现问题",
"Settings saved." : "设置已保存",
@@ -66,29 +94,135 @@
"{author} created the circle {circle}" : "{author} 创建了圈子 {circle}",
"You deleted {circle}" : "你删除了 {circle}",
"{author} deleted {circle}" : "{author} 已删除{circle}",
+ "You linked {group} to {circle}" : "你已将 {group} 连接到 {circle}",
+ "{group} has been linked to {circle} by {author}" : "{author} 已将 {group}  连接到 {circle}",
+ "You unlinked {group} from {circle}" : "你已将 {group} 从 {circle} 中断开",
+ "{group} has been unlinked from {circle} by {author}" : "{author} 已将 {group} 从 {circle} 中断开",
+ "You changed the level of the linked group {group} in {circle} to %1$s" : "你已将 {circle} 中的组 {group} 的级别修改为 %1$s",
+ "{author} changed the level of the linked group {group} in {circle} to %1$s" : "{author} 已将 {circle} 中的组 {group} 的级别修改为 %1$s",
+ "You sent a request to link {circle} with {remote}" : "您发送了一个请求,将{circle}与{remote}链接",
+ "{author} sent a request to link {circle} with {remote}" : "{author}发送了一个请求,将{circle}与{remote}关联",
+ "{remote} requested a link with {circle}" : "{remote}要求与{circle}连结",
+ "The request to link {circle} with {remote} has been rejected" : "将{circle}与{remote}关联的请求已被拒绝",
+ "The request to link {remote} with {circle} has been canceled remotely" : "将{remote}与{circle}关联的请求已被远程取消",
+ "The request to link {circle} with {remote} has been accepted" : "{circle}与{remote}关联的请求已被接受",
+ "You dismissed the request to link {remote} with {circle}" : "您已将{remote}与{circle}关联的请求撤销",
+ "{author} dismissed the request to link {remote} with {circle}" : "{author}驳回了将{remote}与{circle}关联的请求",
+ "You canceled the request to link {circle} with {remote}" : "您取消了将{circle}与{remote}关联的请求",
+ "{author} canceled the request to link {circle} with {remote}" : "{author}取消了将{circle}与{remote}关联的请求",
+ "You accepted the request to link {remote} with {circle}" : "接受了{远程}与{圈子}链接的请求",
+ "{author} accepted the request to link {remote} with {circle}" : "{author}接受了{remote}与{circle}链接的请求",
+ "A link between {circle} and {remote} is now up and running" : "{circle}和{remote}之间的链接现已启动并运行",
+ "The link between {circle} and {remote} has been shutdown remotely" : "{circle}和{remote}之间的链接已被远程关闭",
+ "You closed the link between {circle} and {remote}" : "你关闭了{circle}和{remote}之间的链接",
+ "{author} closed the link between {circle} and {remote}" : "{author}关闭{circle}和{remote}之间的链接",
"You joined {circle}" : "你已经加入了 {circle}",
+ "{member} joined {circle}" : "{member}加入{circle}",
+ "You accepted the invitation to join {circle}" : "您接受邀请加入{circle}",
+ "{member} accepted the invitation to join {circle}" : "{member}接受邀请加入{circle}",
+ "You added {member} as member to {circle}" : "您已将{member}加入{circle}",
+ "You have been added as member to {circle} by {author}" : "您已被 {author}添加为{circle}的会员",
+ "{member} has been added as member to {circle} by {author}" : "{member}已被{author}添加为{circle}的成员",
+ "You added {external} to {circle}" : "您已将{external}添加到{circle}",
+ "{external} has been added to {circle} by {author}" : "{外部}已由{author}添加到{circle}",
+ "You accepted {member}'s request to join {circle}" : "您接受{member}的请求加入{circle}",
+ "Your request to join {circle} has been accepted by {author}" : "您加入{circle}的请求已被{author}接受",
+ "{member}'s request to join {circle} has been accepted by {author}" : "{member}的加入{circle}的请求已被{author}",
"You left {circle}" : "你离开了 {circle}",
+ "{member} left {circle}" : "{member} left {circle}",
+ "You declined the invitation to join {circle}" : "您拒绝加入{circle}的邀请",
+ "{member} declined an invitation to join {circle}" : "{member}拒绝加入{circle}",
+ "You cancelled your request to join {circle}" : "您取消了加入{circle}的请求",
+ "{member} cancelled his request to join {circle}" : "{member}取消了他加入{circle}",
+ "You removed {member} from {circle}" : "您已从{circle}删除{member}",
+ "You have been removed from {circle} by {author}" : "您已被{圈子}删除{author}",
+ "{member} has been removed from {circle} by {author}" : "{member}已从{circle}由{author}已移除",
+ "You removed {external} from {circle}" : "您已从{circle}已移除{外部}",
+ "{external} has been removed from {circle} by {author}" : "{外部}已从{circle}由{author}已移除",
+ "You cancelled {member}'s invitation to join {circle}" : "您已取消{member}的邀请加入{circle}",
+ "Your invitation to join {circle} has been cancelled by {author}" : "您邀请加入{circle}已被{author}取消",
+ "{author} cancelled {member}'s invitation to join {circle}" : "{author}已取消{member}的邀请加入{circle}",
+ "You dismissed {member}'s request to join {circle}" : "您已经{member}的请求加入{circle}",
+ "Your request to join {circle} has been dismissed by {author}" : "您加入{circle}的请求已被{author}驳回",
+ "{member}'s request to join {circle} has been dismissed by {author}" : "{member}的加入{circle}的请求已被{author}",
+ "You invited {member} to join {circle}" : "您邀请{member}加入{circle}",
+ "You have been invited to join {circle} by {author}" : "您已被邀请加入{circle}由{author}",
+ "{member} has been invited to join {circle} by {author}" : "{member}已被邀请参加{circle}由{author}",
+ "You changed {member}'s level in {circle} to %1$s" : "您将{circle}中的{member}的级别更改为%1$s",
+ "{author} changed your level in {circle} to %1$s" : "{author}将{circle}的级别更改为%1$s",
+ "{author} changed {member}'s level in {circle} to %1$s" : "{author}将{circle}的{member}的级别更改为%1$s",
+ "You sent a request to join {circle}" : "您发送了加入{circle}的请求",
+ "{member} sent a request to join {circle}" : "{member}发送了加入{circle}的请求",
+ "You are the new owner of {circle}" : "您是{circle}的新拥有者",
+ "{member} is the new owner of {circle}" : "{member}是{circle}的新拥有者",
+ "On events happening in a <strong>Circle</strong> you belong" : "对于您所属的<strong>圈子</strong>中发生的事件",
+ "Any important event in a <strong>Circle</strong> you are moderating" : "在<strong>圈子</strong>中的任何重要事件你正在主持",
+ "%s shared »%s« with you." : "%s已共享 »%s«和你一起",
+ "%s shared »%s« with '%s'." : "%s已共享 »%s«和 '%s'.",
+ "%s on %s" : "%s上%s",
+ "Click the button below to open it." : "点击下面的按钮打开它。",
+ "Open »%s«" : "打开»%s«",
+ "The name of your circle must contain at least 3 characters" : "您的圈子名称必须至少包含3个字符",
+ "The name of your circle must start with an alpha-numerical character" : "圈子的名称必须以字母数字字符开始",
+ "Linked Groups are not allowed on this Nextcloud" : "这个Nextcloud不允许链接的组",
+ "Federated circles are not allowed on this Nextcloud" : "这个Nextcloud不允许联合的圈子",
+ "Circle not found" : "查找不到圈子",
"A circle with that name exists" : "存在具有该名称的圈子",
"You cannot use the Circles Application until your administrator has allowed at least one type of circles" : "您的管理员至少允许一种类型的圈子,否则您不能使用“圈子”应用程序",
+ "Federated link not found" : "未找到联合链接",
"This member does not exist" : "此成员不存在",
"This user is already a member of the circle" : "此用户已经是圈子的成员",
+ "Sharing Frame does not exist" : "共享帧不存在",
+ "This feature is not available for personal circles" : "此功能不适用于个人圈子",
+ "The circle is not Federated" : "圈子不联合",
"You cannot join this circle" : "你不能加入此圈子",
"This member is not a moderator" : "此成员不是管理员",
+ "Not enough privileges" : "没有足够的权限",
"This member is not the owner of the circle" : "此成员不是圈子的所有者",
+ "This member is not admin of the circle" : "该成员不是该圈子的管理员",
"This member is the owner of the circle" : "此成员是圈子的所有者",
+ "Level cannot be changed for that type of member" : "对于该类型的成员,级别不能被更改",
"You are already a member of this circle" : "您已经是此圈子的成员",
"You have been blocked from this circle" : "您已被封锁在此圈子中",
+ "User is already a member of this circle" : "用户已经是此圈子的成员",
+ "User is already invited into this circle" : "用户已被邀请进入此圈子",
"You need a specify a type of circle" : "您需要指定一种类型的圈子",
"You cannot create this type of circle" : "你无法创建此类型的圈子",
"You cannot display this type of circle" : "你无法显示此类型的圈子",
+ "Federated link does not have a valid format" : "联合链接没有有效的格式",
+ "Federated circles are not allowed on the remote Nextcloud" : "远程Nextcloud不允许联合圈",
+ "Remote circle does not accept federated links" : "远程圈不接受联合链接",
+ "Trying to link a circle to itself" : "尝试将一个圈子链接到自己",
"This link exists already" : "链接已经存在!",
+ "The requested remote circle does not exist" : "请求的远程圈子不存在",
+ "The remote host is down or the Circles app is not installed on it" : "远程主机已关闭或圈子应用程序未安装在其上",
+ "Cannot proceed with this status update" : "无法继续此状态更新",
+ "This group does not exist" : "该分组不存在",
+ "This group is already linked to the circle" : "该分组已经链接到该圈子",
+ "You cannot edit level in a personal circle" : "您无法编辑个人圈子中的级别",
+ "Group cannot be set as owner of a circle" : "组不能设置为圈子的所有者",
"This user does not exist" : "此用户不存在",
+ "Email format is not valid" : "电子邮件格式无效",
+ "This contact is not available" : "此联系人不可用",
+ "Could not find share" : "查找不到共享",
"Create a new circle" : "创建一个新圈子",
"Select a type of circle" : "选择一个类型的圈子",
"Create a personal circle" : "创建一个个人的圈子",
"Create a public circle" : "创建一个公共的圈子",
+ "Create a closed circle" : "创建一个封闭的圆圈",
+ "Create a secret circle" : "创建一个秘密圈",
"A personal circle is a list of users known only to the owner." : "个人圈子是只有使用者者知道的用户列表。",
+ "This is the right option if you want to do recurrent sharing with the same list of local users." : "如果您想要使用相同的本地用户列表进行循环共享,则这是正确的选项。",
+ "A secret circle is an hidden group that can only be seen by its members or by people knowing the exact name of the circle." : "一个秘密圈子是一个隐藏的组织,只能由其成员或知道确切名称的人看到。",
+ "Non-members won't be able to find your secret circle using the search bar." : "非会员无法使用搜索栏找到您的秘密圈子。",
+ "Joining a closed circle requires an invitation or a confirmation by a moderator." : "加入封闭的圈子需要主持人的邀请或确认。",
+ "Anyone can find the circle and request an invitation; but only members will see who's in it and get access to shared items." : "任何人都可以找到圈子并请求邀请; 但只有成员才能看到谁在内,并可以访问共享项目。",
"A public circle is an open group visible to anyone willing to join." : "一个公开圈子是任何都可以加入的。",
+ "Anyone can see the circle, can join the circle and access the items shared to the circle." : "任何人都可以看到圈子,可以加入圈子并访问共享到圈子的项目。",
+ "Personal circles" : "个人圈子",
+ "Public circles" : "公共圈子",
+ "Closed circles" : "关闭圈子",
+ "Secret circles" : "秘密圈",
"All circles" : "所有的圈子",
"Search circles" : "搜索圈子",
"No filter" : "没有过滤器",
@@ -96,7 +230,10 @@
"Circles you own" : "你拥有的圈子",
"No circle selected" : "没有圈子被选择",
"Pending invitation to join this circle" : "等待加入这个圈子的邀请",
+ "You have a pending request to join this circle" : "您有一个未决请求加入此圈子",
"Add a member" : "加一个成员",
+ "Link a group" : "链接一个组",
+ "Link a circle" : "圈子链接",
"Join this circle" : "加入这个圈子",
"Delete circle" : "删除圈子",
"Edit circle" : "编辑圈子",
@@ -109,10 +246,21 @@
"Level" : "离开",
"Status" : "状态",
"Joined" : "已加入",
+ "Group Name" : "分组名称",
"Link" : "链接",
"Linked" : "已链接",
"Allow Federated Links" : "允许联合链接",
+ "Turns the circle as Federated and enable sharing between Federated Circles" : "将圆圈转为联合,并启用联合圈之间的共享",
"Automatically Accept Link Request" : "自动接受链接请求",
- "Save settings" : "保存设置"
+ "Warning: enabling this will automatically accept new link requests from other circle." : "警告:启用此功能将自动接受来自其他圈子的新链接请求。",
+ "Save settings" : "保存设置",
+ "Async Testing:" : "异步测试:",
+ "initiate test of Circles Async" : "启动圈子异步测试",
+ "reset test result" : "重置测试结果",
+ "Test is currently running. Please wait." : "测试正在运行。 请稍候。",
+ "Allow Group Linking:" : "允许分组链接:",
+ "Groups can be linked to Circles." : "群组可以链接到圈子。",
+ "Allow Federated Circles:" : "允许联合圈:",
+ "Circles from different Nextclouds can be linked together." : "来自不同Nextclouds的圈子可以链接在一起。"
},"pluralForm" :"nplurals=1; plural=0;"
} \ No newline at end of file
diff --git a/lib/Activity/Provider.php b/lib/Activity/Provider.php
index 178a3447..44f6b134 100644
--- a/lib/Activity/Provider.php
+++ b/lib/Activity/Provider.php
@@ -39,6 +39,7 @@ use OCA\Circles\Service\MiscService;
use OCP\Activity\IEvent;
use OCP\Activity\IManager;
use OCP\Activity\IProvider;
+use OpenCloud\Common\Exceptions\InvalidArgumentError;
class Provider implements IProvider {
@@ -78,17 +79,14 @@ class Provider implements IProvider {
/**
- * @param string $lang
- * @param IEvent $event
- * @param IEvent|null $previousEvent
- *
- * @return IEvent
+ * {@inheritdoc}
*/
public function parse($lang, IEvent $event, IEvent $previousEvent = null) {
try {
$params = $event->getSubjectParameters();
$this->initActivityParser($event, $params);
+
$circle = Circle::fromJSON($params['circle']);
$this->setIcon($event, $circle);
@@ -101,7 +99,7 @@ class Provider implements IProvider {
return $event;
}
- throw new InvalidArgumentException();
+ return $event;
}
@@ -157,7 +155,7 @@ class Provider implements IProvider {
* @param Circle $circle
* @param array $params
*
- * @throws InvalidArgumentError
+ * @throws FakeException
*/
private function parseAsMember(IEvent &$event, Circle $circle, $params) {
if ($event->getType() !== 'circles_as_member') {
@@ -167,8 +165,6 @@ class Provider implements IProvider {
$this->parserCircle->parseSubjectCircleCreate($event, $circle);
$this->parserCircle->parseSubjectCircleDelete($event, $circle);
$this->parseMemberAsMember($event, $circle, $params);
-
- throw new InvalidArgumentError();
}
@@ -187,8 +183,6 @@ class Provider implements IProvider {
$this->parseMemberAsModerator($event, $circle, $params);
$this->parseGroupAsModerator($event, $circle, $params);
$this->parseLinkAsModerator($event, $circle, $params);
-
- throw new InvalidArgumentError();
}
@@ -211,8 +205,6 @@ class Provider implements IProvider {
$this->parserMember->parseSubjectMemberAdd($event, $circle, $member);
$this->parserMember->parseSubjectMemberLeft($event, $circle, $member);
$this->parserMember->parseSubjectMemberRemove($event, $circle, $member);
-
- throw new InvalidArgumentError();
}
@@ -231,8 +223,6 @@ class Provider implements IProvider {
$this->parserGroup->parseGroupLink($event, $circle, $group);
$this->parserGroup->parseGroupUnlink($event, $circle, $group);
$this->parserGroup->parseGroupLevel($event, $circle, $group);
-
- throw new InvalidArgumentException();
}
@@ -252,8 +242,6 @@ class Provider implements IProvider {
$this->parserMember->parseMemberLevel($event, $circle, $member);
$this->parserMember->parseMemberRequestInvitation($event, $circle, $member);
$this->parserMember->parseMemberOwner($event, $circle, $member);
-
- throw new InvalidArgumentException();
}
@@ -281,8 +269,6 @@ class Provider implements IProvider {
$this->parserLink->parseLinkUp($event, $circle, $remote);
$this->parserLink->parseLinkDown($event, $circle, $remote);
$this->parserLink->parseLinkRemove($event, $circle, $remote);
-
- throw new InvalidArgumentException();
}
diff --git a/lib/Activity/ProviderSubjectMember.php b/lib/Activity/ProviderSubjectMember.php
index 5ca24ad3..065b7afd 100644
--- a/lib/Activity/ProviderSubjectMember.php
+++ b/lib/Activity/ProviderSubjectMember.php
@@ -46,7 +46,7 @@ class ProviderSubjectMember extends ProviderParser {
* @throws FakeException
*/
public function parseSubjectMemberJoin(IEvent &$event, Circle $circle, Member $member) {
- if ($event->getSubject() !== 'member_request_invitation') {
+ if ($event->getSubject() !== 'member_join') {
return;
}
diff --git a/lib/Api/Sharees.php b/lib/Api/Sharees.php
index e6e68e0b..2755f93c 100644
--- a/lib/Api/Sharees.php
+++ b/lib/Api/Sharees.php
@@ -34,6 +34,14 @@ use OCA\Circles\Service\MiscService;
use OCP\Share;
+/**
+ * ############### WARNING #################
+ * ###
+ * ### This file is needed and used by Nextcloud 12 and lower.
+ * ###
+ *
+ * @package OCA\Circles\Api
+ */
class Sharees {
@@ -53,9 +61,12 @@ class Sharees {
// public static function search($search, $limit, $offset) {
public static function search($search) {
$c = self::getContainer();
+ $userId = \OC::$server->getUserSession()
+ ->getUser()
+ ->getUID();
$data = $c->query(CirclesService::class)
- ->listCircles(Circle::CIRCLES_ALL, $search, Member::LEVEL_MEMBER);
+ ->listCircles($userId, Circle::CIRCLES_ALL, $search, Member::LEVEL_MEMBER);
$result = array(
'exact' => ['circles'],
'circles' => []
diff --git a/lib/Api/v1/Circles.php b/lib/Api/v1/Circles.php
index bbb08d9e..104af315 100644
--- a/lib/Api/v1/Circles.php
+++ b/lib/Api/v1/Circles.php
@@ -167,14 +167,21 @@ class Circles {
* @param mixed $type
* @param string $name
* @param int $level
+ * @param string $userId
*
* @return Circle[]
*/
- public static function listCircles($type, $name = '', $level = 0) {
+ public static function listCircles($type, $name = '', $level = 0, $userId = '') {
$c = self::getContainer();
+ if ($userId === '') {
+ $userId = \OC::$server->getUserSession()
+ ->getUser()
+ ->getUID();
+ }
+
return $c->query(CirclesService::class)
- ->listCircles($type, $name, $level);
+ ->listCircles($userId, $type, $name, $level);
}
@@ -183,10 +190,32 @@ class Circles {
*
* Return all the circle the current user is a member.
*
+ * @param string $userId
+ *
* @return Circle[]
*/
- public static function joinedCircles() {
- return self::listCircles(Circle::CIRCLES_ALL, '', Member::LEVEL_MEMBER);
+ public static function joinedCircles($userId = '') {
+ return self::listCircles(Circle::CIRCLES_ALL, '', Member::LEVEL_MEMBER, $userId);
+ }
+
+
+ /**
+ * Circles::joinedCircleIds();
+ *
+ * Return all the circleIds the user is a member, if empty user, using current user.
+ *
+ * @param $userId
+ *
+ * @return array
+ */
+ public static function joinedCircleIds($userId = '') {
+ $circleIds = [];
+ $circles = self::listCircles(Circle::CIRCLES_ALL, '', Member::LEVEL_MEMBER, $userId);
+ foreach ($circles as $circle) {
+ $circleIds[] = $circle->getUniqueId();
+ }
+
+ return $circleIds;
}
@@ -358,6 +387,24 @@ class Circles {
/**
+ * Circles::getSharesFromCircle();
+ *
+ * This function will returns all item (array) shared to a specific circle identified by its Id,
+ * source and type. Limited to current user session.
+ *
+ * @param string $circleUniqueId
+ *
+ * @return mixed
+ */
+ public static function getSharesFromCircle($circleUniqueId) {
+ $c = self::getContainer();
+
+ return $c->query(SharingFrameService::class)
+ ->getFrameFromCircle($circleUniqueId);
+ }
+
+
+ /**
* Circles::linkCircle();
*
* Initiate a link procedure. Current user must be at least Admin of the circle.
diff --git a/lib/Api/v1/ShotgunCircles.php b/lib/Api/v1/ShotgunCircles.php
new file mode 100644
index 00000000..7ea575bc
--- /dev/null
+++ b/lib/Api/v1/ShotgunCircles.php
@@ -0,0 +1,79 @@
+<?php
+/**
+ * Circles - Bring cloud-users closer together.
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2017
+ * @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\Circles\Api\v1;
+
+
+use OCA\Circles\AppInfo\Application;
+use OCA\Circles\Exceptions\ApiVersionIncompatibleException;
+use OCA\Circles\Model\Circle;
+use OCA\Circles\Model\FederatedLink;
+use OCA\Circles\Model\Member;
+use OCA\Circles\Model\SharingFrame;
+use OCA\Circles\Service\CirclesService;
+use OCA\Circles\Service\FederatedLinkService;
+use OCA\Circles\Service\MembersService;
+use OCA\Circles\Service\MiscService;
+use OCA\Circles\Service\SharingFrameService;
+use OCP\Util;
+
+/**
+ * Better use the other one.
+ *
+ * This is a shotgun class; don't blow your foot.
+ */
+class ShotgunCircles {
+
+ protected static function getContainer() {
+ $app = new Application();
+
+ return $app->getContainer();
+ }
+
+
+ /**
+ * ShotgunCircles::getSharesFromCircle();
+ *
+ * This function will returns all item (array) shared to a specific circle identified by its Id,
+ * source and type.
+ *
+ * Warning - please use Circles::getSharesFromCircle for any interaction with the current user
+ * session.
+ *
+ * @param string $circleUniqueId
+ * @param string $userId
+ *
+ * @return SharingFrame[]
+ */
+ public static function getSharesFromCircle($circleUniqueId, $userId = '') {
+ $c = self::getContainer();
+
+ return $c->query(SharingFrameService::class)
+ ->forceGetFrameFromCircle($circleUniqueId, $userId);
+ }
+
+
+} \ No newline at end of file
diff --git a/lib/Circles/FileSharingBroadcaster.php b/lib/Circles/FileSharingBroadcaster.php
index d60d4ace..e945052d 100644
--- a/lib/Circles/FileSharingBroadcaster.php
+++ b/lib/Circles/FileSharingBroadcaster.php
@@ -204,9 +204,6 @@ class FileSharingBroadcaster implements IBroadcaster {
* @param string $author
* @param $circleName
* @param string $email
- *
- * @internal param string $filename
- * @internal param string $circle
*/
protected function sendMail($fileName, $link, $author, $circleName, $email) {
$message = $this->mailer->createMessage();
diff --git a/lib/Collaboration/v1/CollaboratorSearchPlugin.php b/lib/Collaboration/v1/CollaboratorSearchPlugin.php
new file mode 100644
index 00000000..0195266e
--- /dev/null
+++ b/lib/Collaboration/v1/CollaboratorSearchPlugin.php
@@ -0,0 +1,82 @@
+<?php
+/**
+ * Circles - Bring cloud-users closer together.
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Arthur Schiwon <blizzz@arthur-schiwon.de>
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2017
+ * @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\Circles\Collaboration\v1;
+
+use OCA\Circles\Api\v1\Circles;
+use OCA\Circles\Model\Circle;
+use OCA\Circles\Model\Member;
+use OCA\Circles\Service\MiscService;
+use OCP\Collaboration\Collaborators\ISearchPlugin;
+use OCP\Collaboration\Collaborators\ISearchResult;
+use OCP\Collaboration\Collaborators\SearchResultType;
+use OCP\Share;
+
+class CollaboratorSearchPlugin implements ISearchPlugin {
+
+ /**
+ * {@inheritdoc}
+ */
+ public function search($search, $limit, $offset, ISearchResult $searchResult) {
+ $wide = $exact = [];
+
+ $circles = Circles::listCircles(Circle::CIRCLES_ALL, $search, Member::LEVEL_MEMBER);
+ foreach ($circles as $circle) {
+ $entry = $this->addResultEntry($circle);
+ if (strtolower($circle->getName()) === strtolower($search)) {
+ $exact[] = $entry;
+ } else {
+ $wide[] = $entry;
+ }
+ }
+
+ $type = new SearchResultType('circles');
+ $searchResult->addResultSet($type, $wide, $exact);
+ }
+
+
+ /**
+ * @param Circle $circle
+ *
+ * @return array
+ */
+ private function addResultEntry(Circle $circle) {
+
+ return [
+ 'label' => $circle->getName(),
+ 'value' => [
+ 'shareType' => Share::SHARE_TYPE_CIRCLE,
+ 'shareWith' => $circle->getUniqueId(),
+ 'circleInfo' => $circle->getInfo(),
+ 'circleOwner' => MiscService::getDisplay(
+ $circle->getOwner()
+ ->getUserId(), Member::TYPE_USER
+ )
+ ],
+ ];
+ }
+} \ No newline at end of file
diff --git a/lib/Command/Clean.php b/lib/Command/Clean.php
new file mode 100644
index 00000000..2f55faab
--- /dev/null
+++ b/lib/Command/Clean.php
@@ -0,0 +1,132 @@
+<?php
+/**
+ * Circles - Bring cloud-users closer together.
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2017
+ * @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\Circles\Command;
+
+use Exception;
+use OC\Core\Command\Base;
+use OCA\Circles\Db\CirclesRequest;
+use OCA\Circles\Db\CoreRequestBuilder;
+use OCA\Circles\Db\MembersRequest;
+use OCA\Circles\Exceptions\CircleDoesNotExistException;
+use OCP\IDBConnection;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+
+class Clean extends Base {
+
+ /** @var IDBConnection */
+ private $dbConnection;
+
+ /** @var CirclesRequest */
+ private $circlesRequest;
+
+ /** @var MembersRequest */
+ private $membersRequest;
+
+
+ /**
+ * Clean constructor.
+ *
+ * @param IDBConnection $connection
+ * @param CirclesRequest $circlesRequest
+ * @param MembersRequest $membersRequest
+ */
+ public function __construct(
+ IDBConnection $connection, CirclesRequest $circlesRequest, MembersRequest $membersRequest
+ ) {
+ parent::__construct();
+ $this->dbConnection = $connection;
+ $this->circlesRequest = $circlesRequest;
+ $this->membersRequest = $membersRequest;
+
+ }
+
+ protected function configure() {
+ parent::configure();
+ $this->setName('circles:clean')
+ ->setDescription('remove all extra data from database');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+
+ try {
+ $this->fixUserType();
+ $this->removeCirclesWithNoOwner();
+ $this->removeMembersWithNoCircles();
+
+ $output->writeln('done');
+ } catch (Exception $e) {
+ $output->writeln($e->getMessage());
+ }
+ }
+
+
+ private function fixUserType() {
+ $qb = $this->dbConnection->getQueryBuilder();
+ $qb->update(CoreRequestBuilder::TABLE_MEMBERS)
+ ->set('user_type', $qb->createNamedParameter(1))
+ ->where(
+ $qb->expr()
+ ->eq('user_type', $qb->createNamedParameter(0))
+ );
+
+ return $qb->execute();
+ }
+
+
+ private function removeCirclesWithNoOwner() {
+
+ $circles = $this->circlesRequest->forceGetCircles();
+
+ foreach ($circles as $circle) {
+ if ($circle->getOwner()
+ ->getUserId() === null) {
+ $this->circlesRequest->destroyCircle($circle->getUniqueId());
+ }
+ }
+ }
+
+
+ private function removeMembersWithNoCircles() {
+
+ $members = $this->membersRequest->forceGetAllMembers();
+
+ foreach ($members as $member) {
+ try {
+ $this->circlesRequest->forceGetCircle($member->getCircleId());
+
+ } catch (CircleDoesNotExistException $e) {
+ $this->membersRequest->removeMember($member);
+ }
+ }
+
+ }
+}
+
+
+
diff --git a/lib/Command/FixUniqueId.php b/lib/Command/FixUniqueId.php
new file mode 100644
index 00000000..bb7ac131
--- /dev/null
+++ b/lib/Command/FixUniqueId.php
@@ -0,0 +1,148 @@
+<?php
+/**
+ * Circles - Bring cloud-users closer together.
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2017
+ * @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\Circles\Command;
+
+use Exception;
+use OC\Core\Command\Base;
+use OC\Share\Share;
+use OCA\Circles\Db\CirclesRequest;
+use OCA\Circles\Db\CoreRequestBuilder;
+use OCA\Circles\Model\Circle;
+use OCP\IDBConnection;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Output\OutputInterface;
+
+
+class FixUniqueId extends Base {
+
+ /** @var IDBConnection */
+ protected $connection;
+
+ /** @var CirclesRequest */
+ private $circlesRequest;
+
+ public function __construct(CirclesRequest $circlesRequest, IDBConnection $connection) {
+ parent::__construct();
+ $this->circlesRequest = $circlesRequest;
+ $this->connection = $connection;
+ }
+
+ protected function configure() {
+ parent::configure();
+ $this->setName('circles:fixuniqueid')
+ ->setDescription('fix Unique Id issue.');
+ }
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+
+ try {
+ $this->swapToShortenUniqueId();
+
+ $output->writeln('done');
+ } catch (Exception $e) {
+ $output->writeln($e->getMessage());
+ }
+ }
+
+
+ private function swapToShortenUniqueId() {
+
+ $qb = $this->connection->getQueryBuilder();
+
+ /** @noinspection PhpMethodParametersCountMismatchInspection */
+ $qb->select('id', 'unique_id')
+ ->from(CoreRequestBuilder::TABLE_CIRCLES);
+
+ $cursor = $qb->execute();
+ while ($data = $cursor->fetch()) {
+ $circleId = $data['id'];
+
+ $shortenUniqueId = substr($data['unique_id'], 0, Circle::SHORT_UNIQUE_ID_LENGTH);
+
+ $this->swapToShortenUniqueIdInTable(
+ $circleId, $shortenUniqueId, CoreRequestBuilder::TABLE_GROUPS
+ );
+ $this->swapToShortenUniqueIdInTable(
+ $circleId, $shortenUniqueId, CoreRequestBuilder::TABLE_LINKS
+ );
+//
+// $this->cleanBuggyDuplicateEntries(
+// $circleId, $shortenUniqueId, CoreRequestBuilder::TABLE_MEMBERS, 'user_id'
+// );
+
+ $this->swapToShortenUniqueIdInTable(
+ $circleId, $shortenUniqueId, CoreRequestBuilder::TABLE_MEMBERS
+ );
+
+ $this->swapToShortenUniqueIdInTable(
+ $circleId, $shortenUniqueId, CoreRequestBuilder::TABLE_LINKS
+ );
+
+ $this->swapToShortenUniqueIdInShares($circleId, $shortenUniqueId);
+ }
+ $cursor->closeCursor();
+ }
+
+
+ private function swapToShortenUniqueIdInTable($circleId, $shortenUniqueId, $table) {
+
+ $qb = $this->connection->getQueryBuilder();
+ $qb->update($table)
+ ->where(
+ $qb->expr()
+ ->eq('circle_id', $qb->createNamedParameter($circleId))
+ );
+
+ $qb->set('circle_id', $qb->createNamedParameter($shortenUniqueId));
+ $qb->execute();
+ }
+
+
+ private function swapToShortenUniqueIdInShares($circleId, $shortenUniqueId) {
+ $qb = $this->connection->getQueryBuilder();
+ $expr = $qb->expr();
+
+ /** @noinspection PhpMethodParametersCountMismatchInspection */
+ $qb->update('share')
+ ->where(
+ $expr->andX(
+ $expr->eq(
+ 'share_type', $qb->createNamedParameter(Share::SHARE_TYPE_CIRCLE)
+ ),
+ $expr->eq('share_with', $qb->createNamedParameter($circleId))
+ )
+ );
+
+ $qb->set('share_with', $qb->createNamedParameter($shortenUniqueId));
+ $qb->execute();
+ }
+
+
+}
+
+
+
diff --git a/lib/Command/Groups.php b/lib/Command/Groups.php
new file mode 100644
index 00000000..fe6505d3
--- /dev/null
+++ b/lib/Command/Groups.php
@@ -0,0 +1,153 @@
+<?php
+/**
+ * Circles - Bring cloud-users closer together.
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2017
+ * @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\Circles\Command;
+
+use Exception;
+use OC\Core\Command\Base;
+use OCA\Circles\Db\CirclesRequest;
+use OCA\Circles\Exceptions\CommandMissingArgumentException;
+use OCA\Circles\Exceptions\FakeException;
+use OCP\IL10N;
+use Symfony\Component\Console\Exception\InvalidArgumentException;
+use Symfony\Component\Console\Input\InputArgument;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
+use Symfony\Component\Console\Output\OutputInterface;
+
+class Groups extends Base {
+
+ /** @var IL10N */
+ private $l10n;
+
+ /** @var CirclesRequest */
+ private $circlesRequest;
+
+ /**
+ * Groups constructor.
+ *
+ * @param IL10N $l10n
+ * @param CirclesRequest $circlesRequest
+ */
+ public function __construct(IL10N $l10n, CirclesRequest $circlesRequest) {
+ parent::__construct();
+ $this->l10n = $l10n;
+ $this->circlesRequest = $circlesRequest;
+ }
+
+
+ protected function configure() {
+ parent::configure();
+ $this->setName('circles:groups')
+ ->setDescription('manage the linked groups')
+ ->addOption('list', 'l', InputOption::VALUE_NONE, 'list all linked group')
+ ->addOption('link', 'a', InputOption::VALUE_NONE, 'link a group to a circle')
+ ->addOption('unlink', 'd', InputOption::VALUE_NONE, 'unlink a group from a circle')
+ ->addArgument('circle_id', InputArgument::OPTIONAL, 'id of the circle')
+ ->addArgument('group', InputArgument::OPTIONAL, 'name of the group');
+ }
+
+
+ protected function execute(InputInterface $input, OutputInterface $output) {
+
+ try {
+ $this->listLinkedGroups($input, $output);
+ $this->addLinkedGroups($input, $output);
+ $this->delLinkedGroups($input, $output);
+
+ } catch (FakeException $e) {
+ $output->writeln('done');
+ } catch (Exception $e) {
+ $output->writeln($e->getMessage());
+ }
+ }
+
+
+ /**
+ * @param InputInterface $input
+ * @param OutputInterface $output
+ *
+ * @throws FakeException
+ */
+ private function listLinkedGroups(InputInterface $input, OutputInterface $output) {
+ if ($input->getOption('list') !== true) {
+ return;
+ }
+
+ throw new FakeException();
+ }
+
+
+ /**
+ * @param InputInterface $input
+ * @param OutputInterface $output
+ *
+ * @throws FakeException
+ */
+ private function addLinkedGroups(InputInterface $input, OutputInterface $output) {
+ if ($input->getOption('link') !== true) {
+ return;
+ }
+
+ list($circleId, $group) = $this->getCircleIdAndGroupFromArguments($input);
+
+ throw new FakeException();
+ }
+
+
+ /**
+ * @param InputInterface $input
+ * @param OutputInterface $output
+ *
+ * @throws FakeException
+ */
+ private function delLinkedGroups(InputInterface $input, OutputInterface $output) {
+ if ($input->getOption('unlink') !== true) {
+ return;
+ }
+
+ list($circleId, $group) = $this->getCircleIdAndGroupFromArguments($input);
+
+ throw new FakeException();
+ }
+
+
+ private function getCircleIdAndGroupFromArguments(InputInterface $input) {
+ if ($input->getArgument('circle_id') === null
+ || $input->getArgument('group') === null) {
+ throw new CommandMissingArgumentException(
+
+ );
+// $this->l10n->t(
+// 'Missing argument: {cmd} circle_id group', ['cmd' => './occ circles:link']
+// )
+ }
+
+ return [$input->getArgument('circle_id'), $input->getArgument('group')];
+ }
+
+}
+
diff --git a/lib/Controller/CirclesController.php b/lib/Controller/CirclesController.php
index 3fda607c..1ea2e3d2 100644
--- a/lib/Controller/CirclesController.php
+++ b/lib/Controller/CirclesController.php
@@ -73,7 +73,7 @@ class CirclesController extends BaseController {
public function listing($type, $name = '', $level = 0) {
try {
- $data = $this->circlesService->listCircles($type, $name, $level);
+ $data = $this->circlesService->listCircles($this->userId, $type, $name, $level);
return $this->success(['type' => $type, 'data' => $data]);
} catch (CircleTypeDisabledException $e) {
diff --git a/lib/Controller/NavigationController.php b/lib/Controller/NavigationController.php
index 95fa9f0b..b1ca633a 100644
--- a/lib/Controller/NavigationController.php
+++ b/lib/Controller/NavigationController.php
@@ -26,8 +26,10 @@
namespace OCA\Circles\Controller;
+use OCA\Circles\Api\v1\Circles;
+use OCA\Circles\Api\v1\ShotgunCircles;
use OCA\Circles\AppInfo\Application;
-use \OCA\Circles\Model\Circle;
+use OCA\Circles\Model\Circle;
use OCA\Circles\Service\ConfigService;
use OCA\Testing\Config;
use OCP\AppFramework\Http;
@@ -45,6 +47,7 @@ class NavigationController extends BaseController {
* @return TemplateResponse
*/
public function navigate() {
+
$data = [
'allowed_circles' => array(
Circle::CIRCLES_PERSONAL => $this->configService->isCircleAllowed(
diff --git a/lib/Db/CircleProviderRequestBuilder.php b/lib/Db/CircleProviderRequestBuilder.php
index 2fb98ad9..c12e0e9e 100644
--- a/lib/Db/CircleProviderRequestBuilder.php
+++ b/lib/Db/CircleProviderRequestBuilder.php
@@ -154,8 +154,6 @@ class CircleProviderRequestBuilder extends CoreRequestBuilder {
*
* @param IQueryBuilder $qb
* @param $files
- *
- * @internal param $fileId
*/
protected function limitToFiles(IQueryBuilder &$qb, $files) {
diff --git a/lib/Db/CirclesRequest.php b/lib/Db/CirclesRequest.php
index f51423d5..d2ae5ef4 100644
--- a/lib/Db/CirclesRequest.php
+++ b/lib/Db/CirclesRequest.php
@@ -30,12 +30,8 @@ namespace OCA\Circles\Db;
use OCA\Circles\Exceptions\CircleAlreadyExistsException;
use OCA\Circles\Exceptions\CircleDoesNotExistException;
-use OCA\Circles\Exceptions\FederatedLinkDoesNotExistException;
-use OCA\Circles\Exceptions\SharingFrameDoesNotExistException;
use OCA\Circles\Model\Circle;
-use OCA\Circles\Model\FederatedLink;
use OCA\Circles\Model\Member;
-use OCA\Circles\Model\SharingFrame;
class CirclesRequest extends CirclesRequestBuilder {
@@ -73,6 +69,32 @@ class CirclesRequest extends CirclesRequestBuilder {
/**
+ * forceGetCircles();
+ *
+ * returns data of a all circles.
+ *
+ * WARNING: This function does not filters data regarding the current user/viewer.
+ * In case of interaction with users, Please use getCircles() instead.
+ *
+ * @return Circle[]
+ */
+ public function forceGetCircles() {
+
+ $qb = $this->getCirclesSelectSql();
+ $this->leftJoinOwner($qb);
+
+ $circles = [];
+ $cursor = $qb->execute();
+ while ($data = $cursor->fetch()) {
+ $circles[] = $this->parseCirclesSelectSql($data);
+ }
+ $cursor->closeCursor();
+
+ return $circles;
+ }
+
+
+ /**
* forceGetCircleByName();
*
* returns data of a circle from its Name.
@@ -111,7 +133,7 @@ class CirclesRequest extends CirclesRequestBuilder {
* @param string $name
* @param int $level
*
- * @return array
+ * @return Circle[]
*/
public function getCircles($userId, $type = 0, $name = '', $level = 0) {
if ($type === 0) {
@@ -128,16 +150,16 @@ class CirclesRequest extends CirclesRequestBuilder {
}
$this->limitRegardingCircleType($qb, $userId, -1, $type, $name);
- $result = [];
+ $circles = [];
$cursor = $qb->execute();
while ($data = $cursor->fetch()) {
if ($name === '' || stripos(strtolower($data['name']), strtolower($name)) !== false) {
- $result[] = $this->parseCirclesSelectSql($data);
+ $circles[] = $this->parseCirclesSelectSql($data);
}
}
$cursor->closeCursor();
- return $result;
+ return $circles;
}
@@ -281,43 +303,6 @@ class CirclesRequest extends CirclesRequestBuilder {
}
- /**
- * saveFrame()
- *
- * Insert a new entry in the database to save the SharingFrame.
- *
- * @param SharingFrame $frame
- */
- public function saveFrame(SharingFrame $frame) {
- $qb = $this->getSharesInsertSql();
- $circle = $frame->getCircle();
- $qb->setValue('circle_id', $qb->createNamedParameter($circle->getUniqueId()))
- ->setValue('source', $qb->createNamedParameter($frame->getSource()))
- ->setValue('type', $qb->createNamedParameter($frame->getType()))
- ->setValue('headers', $qb->createNamedParameter($frame->getHeaders(true)))
- ->setValue('author', $qb->createNamedParameter($frame->getAuthor()))
- ->setValue('cloud_id', $qb->createNamedParameter($frame->getCloudId()))
- ->setValue('unique_id', $qb->createNamedParameter($frame->getUniqueId()))
- ->setValue('payload', $qb->createNamedParameter($frame->getPayload(true)));
-
- $qb->execute();
- }
-
-
- public function updateFrame(SharingFrame $frame) {
- $qb = $this->getSharesUpdateSql($frame->getUniqueId());
- $circle = $frame->getCircle();
- $qb->set('circle_id', $qb->createNamedParameter($circle->getUniqueId()))
- ->set('source', $qb->createNamedParameter($frame->getSource()))
- ->set('type', $qb->createNamedParameter($frame->getType()))
- ->set('headers', $qb->createNamedParameter($frame->getHeaders(true)))
- ->set('author', $qb->createNamedParameter($frame->getAuthor()))
- ->set('cloud_id', $qb->createNamedParameter($frame->getCloudId()))
- ->set('unique_id', $qb->createNamedParameter($frame->getUniqueId()))
- ->set('payload', $qb->createNamedParameter($frame->getPayload(true)));
-
- $qb->execute();
- }
public function updateCircle(Circle $circle) {
@@ -354,31 +339,6 @@ class CirclesRequest extends CirclesRequestBuilder {
}
- /**
- * @param string $circleUniqueId
- * @param string $frameUniqueId
- *
- * @return SharingFrame
- * @throws SharingFrameDoesNotExistException
- */
- public function getFrame($circleUniqueId, $frameUniqueId) {
- $qb = $this->getSharesSelectSql();
- $this->limitToUniqueId($qb, $frameUniqueId);
- $this->limitToCircleId($qb, $circleUniqueId);
- $this->leftJoinCircle($qb);
-
- $cursor = $qb->execute();
- $data = $cursor->fetch();
- $cursor->closeCursor();
-
- if ($data === false) {
- throw new SharingFrameDoesNotExistException($this->l10n->t('Sharing Frame does not exist'));
- }
-
- $entry = $this->parseSharesSelectSql($data);
-
- return $entry;
- }
} \ No newline at end of file
diff --git a/lib/Db/CirclesRequestBuilder.php b/lib/Db/CirclesRequestBuilder.php
index aad08c36..5cfbfd77 100644
--- a/lib/Db/CirclesRequestBuilder.php
+++ b/lib/Db/CirclesRequestBuilder.php
@@ -245,7 +245,7 @@ class CirclesRequestBuilder extends CoreRequestBuilder {
* @param IQueryBuilder $qb
* @param string $userId
*/
- protected function leftJoinUserIdAsViewer(IQueryBuilder &$qb, $userId) {
+ public function leftJoinUserIdAsViewer(IQueryBuilder &$qb, $userId) {
if ($qb->getType() !== QueryBuilder::SELECT) {
return;
@@ -274,12 +274,13 @@ class CirclesRequestBuilder extends CoreRequestBuilder {
);
}
+
/**
* Left Join members table to get the owner of the circle.
*
* @param IQueryBuilder $qb
*/
- protected function leftJoinOwner(IQueryBuilder &$qb) {
+ public function leftJoinOwner(IQueryBuilder &$qb) {
if ($qb->getType() !== QueryBuilder::SELECT) {
return;
@@ -309,88 +310,6 @@ class CirclesRequestBuilder extends CoreRequestBuilder {
}
- /**
- * Left Join circle table to get more information about the circle.
- *
- * @param IQueryBuilder $qb
- */
- protected function leftJoinCircle(IQueryBuilder &$qb) {
-
- if ($qb->getType() !== QueryBuilder::SELECT) {
- return;
- }
-
- $expr = $qb->expr();
- $pf = $this->default_select_alias . '.';
-
- /** @noinspection PhpMethodParametersCountMismatchInspection */
- $qb->selectAlias('lc.type', 'circle_type')
- ->selectAlias('lc.name', 'circle_name')
- ->leftJoin(
- $this->default_select_alias, CoreRequestBuilder::TABLE_CIRCLES, 'lc',
- $expr->eq(
- $pf . 'circle_id',
- $qb->createFunction(
- 'SUBSTR(`lc`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')'
- )
- )
- );
- }
-
-
- /**
- * Base of the Sql Select request for Shares
- *
- * @return IQueryBuilder
- */
- protected function getSharesSelectSql() {
- $qb = $this->dbConnection->getQueryBuilder();
-
- /** @noinspection PhpMethodParametersCountMismatchInspection */
- $qb->select(
- 's.circle_id', 's.source', 's.type', 's.author', 's.cloud_id', 's.payload',
- 's.creation', 's.headers', 's.unique_id'
- )
- ->from(self::TABLE_SHARES, 's');
-
- $this->default_select_alias = 's';
-
- return $qb;
- }
-
-
- /**
- * Base of the Sql Insert request for Shares
- *
- * @return IQueryBuilder
- */
- protected function getSharesInsertSql() {
- $qb = $this->dbConnection->getQueryBuilder();
- $qb->insert(self::TABLE_SHARES)
- ->setValue('creation', $qb->createFunction('NOW()'));
-
- return $qb;
- }
-
-
- /**
- * Base of the Sql Update request for Shares
- *
- * @param string $uniqueId
- *
- * @return IQueryBuilder
- */
- protected function getSharesUpdateSql($uniqueId) {
- $qb = $this->dbConnection->getQueryBuilder();
- $qb->update(self::TABLE_SHARES)
- ->where(
- $qb->expr()
- ->eq('unique_id', $qb->createNamedParameter((string)$uniqueId))
- );
-
- return $qb;
- }
-
/**
* Base of the Sql Insert request for Shares
@@ -502,32 +421,4 @@ class CirclesRequestBuilder extends CoreRequestBuilder {
}
- /**
- * @param array $data
- *
- * @return SharingFrame
- */
- protected function parseSharesSelectSql($data) {
- $frame = new SharingFrame($data['source'], $data['type']);
-
- $circle = new Circle();
- $circle->setUniqueId($data['circle_id']);
- if (key_exists('circle_type', $data)) {
- $circle->setType($data['circle_type']);
- $circle->setName($data['circle_name']);
- }
-
- $frame->setCircle($circle);
-
- $frame->setAuthor($data['author']);
- $frame->setCloudId($data['cloud_id']);
- $frame->setPayload(json_decode($data['payload'], true));
- $frame->setCreation($data['creation']);
- $frame->setHeaders(json_decode($data['headers'], true));
- $frame->setUniqueId($data['unique_id']);
-
- return $frame;
- }
-
-
} \ No newline at end of file
diff --git a/lib/Db/CoreRequestBuilder.php b/lib/Db/CoreRequestBuilder.php
index 2e569590..307dfdb2 100644
--- a/lib/Db/CoreRequestBuilder.php
+++ b/lib/Db/CoreRequestBuilder.php
@@ -103,8 +103,6 @@ class CoreRequestBuilder {
*
* @param IQueryBuilder $qb
* @param $userId
- *
- * @internal param int $circleId
*/
protected function limitToUserId(IQueryBuilder &$qb, $userId) {
$this->limitToDBField($qb, 'user_id', $userId);
@@ -116,8 +114,6 @@ class CoreRequestBuilder {
*
* @param IQueryBuilder $qb
* @param int $type
- *
- * @internal param int $circleId
*/
protected function limitToUserType(IQueryBuilder &$qb, $type) {
$this->limitToDBField($qb, 'user_type', $type);
@@ -329,6 +325,37 @@ class CoreRequestBuilder {
}
+
+ /**
+ * Left Join circle table to get more information about the circle.
+ *
+ * @param IQueryBuilder $qb
+ */
+ protected function leftJoinCircle(IQueryBuilder &$qb) {
+
+ if ($qb->getType() !== QueryBuilder::SELECT) {
+ return;
+ }
+
+ $expr = $qb->expr();
+ $pf = $this->default_select_alias . '.';
+
+ /** @noinspection PhpMethodParametersCountMismatchInspection */
+ $qb->selectAlias('lc.type', 'circle_type')
+ ->selectAlias('lc.name', 'circle_name')
+ ->leftJoin(
+ $this->default_select_alias, CoreRequestBuilder::TABLE_CIRCLES, 'lc',
+ $expr->eq(
+ $pf . 'circle_id',
+ $qb->createFunction(
+ 'SUBSTR(`lc`.`unique_id`, 1, ' . Circle::SHORT_UNIQUE_ID_LENGTH . ')'
+ )
+ )
+ );
+ }
+
+
+
/**
* link to the groupId/UserId of the NC DB.
*
diff --git a/lib/Db/MembersRequest.php b/lib/Db/MembersRequest.php
index 5de7d142..55a52627 100644
--- a/lib/Db/MembersRequest.php
+++ b/lib/Db/MembersRequest.php
@@ -88,6 +88,7 @@ class MembersRequest extends MembersRequestBuilder {
$qb = $this->getMembersSelectSql();
$this->limitToMembersAndAlmost($qb);
$this->limitToLevel($qb, $level);
+
$this->limitToCircleId($qb, $circleUniqueId);
$members = [];
@@ -106,6 +107,30 @@ class MembersRequest extends MembersRequestBuilder {
/**
+ * Returns all members.
+ *
+ * WARNING: This function does not filters data regarding the current user/viewer.
+ * In case of interaction with users, Please use getMembers() instead.
+ *
+ *
+ * @return Member[]
+ */
+ public function forceGetAllMembers() {
+
+ $qb = $this->getMembersSelectSql();
+
+ $members = [];
+ $cursor = $qb->execute();
+ while ($data = $cursor->fetch()) {
+ $members[] = $this->parseMembersSelectSql($data);
+ }
+ $cursor->closeCursor();
+
+ return $members;
+ }
+
+
+ /**
* @param string $circleUniqueId
* @param Member $viewer
*
@@ -452,29 +477,56 @@ class MembersRequest extends MembersRequestBuilder {
* @param string $uniqueCircleId
*/
public function removeAllFromCircle($uniqueCircleId) {
- $qb = $this->getMembersDeleteSql($uniqueCircleId);
+ $qb = $this->getMembersDeleteSql();
+ $expr = $qb->expr();
+
+ $qb->where($expr->eq('circle_id', $qb->createNamedParameter($uniqueCircleId)));
$qb->execute();
}
/**
- * removeAllFromUser();
+ * removeAllMembershipsFromUser();
*
* remove All membership from a User. Used when removing a User from the Cloud.
*
- * @param $userId
+ * @param string $userId
*/
- public function removeAllFromUser($userId) {
+ public function removeAllMembershipsFromUser($userId) {
if ($userId === '') {
return;
}
- $qb = $this->getMembersDeleteSql('', Member::TYPE_USER, $userId);
+ $qb = $this->getMembersDeleteSql();
+ $expr = $qb->expr();
+
+ /** @noinspection PhpMethodParametersCountMismatchInspection */
+ $qb->where(
+ $expr->andX(
+ $expr->eq('user_id', $qb->createNamedParameter($userId)),
+ $expr->eq('user_type', $qb->createNamedParameter(Member::TYPE_USER))
+ )
+ );
+
$qb->execute();
}
/**
+ * remove member, identified by its id, type and circleId
+ *
+ * @param Member $member
+ */
+ public function removeMember(Member $member) {
+ $qb = $this->getMembersDeleteSql();
+ $this->limitToCircleId($qb, $member->getCircleId());
+ $this->limitToUserId($qb, $member->getUserId());
+ $this->limitToUserType($qb, $member->getType());
+
+ $qb->execute();
+ }
+
+ /**
* update database entry for a specific Group.
*
* @param Member $member
diff --git a/lib/Db/MembersRequestBuilder.php b/lib/Db/MembersRequestBuilder.php
index 0279a624..5d6530d5 100644
--- a/lib/Db/MembersRequestBuilder.php
+++ b/lib/Db/MembersRequestBuilder.php
@@ -81,7 +81,8 @@ class MembersRequestBuilder extends CoreRequestBuilder {
$qb->select(
'm.user_id', 'm.user_type', 'm.circle_id', 'm.level', 'm.status', 'm.note', 'm.joined'
)
- ->from(self::TABLE_MEMBERS, 'm');
+ ->from(self::TABLE_MEMBERS, 'm')
+ ->orderBy('m.joined');
$this->default_select_alias = 'm';
@@ -188,27 +189,11 @@ class MembersRequestBuilder extends CoreRequestBuilder {
/**
* Base of the Sql Delete request for Members
*
- * @param string $uniqueCircleId
- * @param string $userId
- * @param int $type
- *
* @return IQueryBuilder
*/
- protected function getMembersDeleteSql($uniqueCircleId, $type = 0, $userId = '') {
+ protected function getMembersDeleteSql() {
$qb = $this->dbConnection->getQueryBuilder();
- $expr = $qb->expr();
-
- $and = $expr->andX();
- if ($uniqueCircleId !== '') {
- $and->add($expr->eq('circle_id', $qb->createNamedParameter($uniqueCircleId)));
- }
- if ($type > 0) {
- $and->add($expr->eq('user_id', $qb->createNamedParameter($userId)));
- $and->add($expr->eq('user_type', $qb->createNamedParameter($type)));
- }
-
- $qb->delete(CoreRequestBuilder::TABLE_MEMBERS)
- ->where($and);
+ $qb->delete(CoreRequestBuilder::TABLE_MEMBERS);
return $qb;
}
diff --git a/lib/Db/SharingFrameRequest.php b/lib/Db/SharingFrameRequest.php
new file mode 100644
index 00000000..7882bd46
--- /dev/null
+++ b/lib/Db/SharingFrameRequest.php
@@ -0,0 +1,129 @@
+<?php
+/**
+ * Circles - Bring cloud-users closer together.
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2017
+ * @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\Circles\Db;
+
+
+use OCA\Circles\Exceptions\CircleAlreadyExistsException;
+use OCA\Circles\Exceptions\CircleDoesNotExistException;
+use OCA\Circles\Exceptions\FederatedLinkDoesNotExistException;
+use OCA\Circles\Exceptions\SharingFrameDoesNotExistException;
+use OCA\Circles\Model\Circle;
+use OCA\Circles\Model\FederatedLink;
+use OCA\Circles\Model\Member;
+use OCA\Circles\Model\SharingFrame;
+
+class SharingFrameRequest extends SharingFrameRequestBuilder {
+
+
+ /**
+ * @param string $circleUniqueId
+ * @param string $frameUniqueId
+ *
+ * @return SharingFrame
+ * @throws SharingFrameDoesNotExistException
+ */
+ public function getSharingFrame($circleUniqueId, $frameUniqueId) {
+ $qb = $this->getSharesSelectSql();
+ $this->limitToUniqueId($qb, $frameUniqueId);
+ $this->limitToCircleId($qb, $circleUniqueId);
+ $this->leftJoinCircle($qb);
+
+ $cursor = $qb->execute();
+ $data = $cursor->fetch();
+ $cursor->closeCursor();
+
+ if ($data === false) {
+ throw new SharingFrameDoesNotExistException($this->l10n->t('Sharing Frame does not exist'));
+ }
+
+ $entry = $this->parseSharesSelectSql($data);
+
+ return $entry;
+ }
+
+
+ /**
+ * @param string $circleUniqueId
+ *
+ * @return SharingFrame[]
+ */
+ public function getSharingFramesFromCircle($circleUniqueId) {
+ $qb = $this->getSharesSelectSql();
+ $this->limitToCircleId($qb, $circleUniqueId);
+
+ $frames = [];
+ $cursor = $qb->execute();
+ while ($data = $cursor->fetch()) {
+ $frames[] = $this->parseSharesSelectSql($data);
+ }
+ $cursor->closeCursor();
+
+ return $frames;
+ }
+
+
+ /**
+ * saveFrame()
+ *
+ * Insert a new entry in the database to save the SharingFrame.
+ *
+ * @param SharingFrame $frame
+ */
+ public function saveSharingFrame(SharingFrame $frame) {
+ $qb = $this->getSharesInsertSql();
+ $circle = $frame->getCircle();
+ $qb->setValue('circle_id', $qb->createNamedParameter($circle->getUniqueId()))
+ ->setValue('source', $qb->createNamedParameter($frame->getSource()))
+ ->setValue('type', $qb->createNamedParameter($frame->getType()))
+ ->setValue('headers', $qb->createNamedParameter($frame->getHeaders(true)))
+ ->setValue('author', $qb->createNamedParameter($frame->getAuthor()))
+ ->setValue('cloud_id', $qb->createNamedParameter($frame->getCloudId()))
+ ->setValue('unique_id', $qb->createNamedParameter($frame->getUniqueId()))
+ ->setValue('payload', $qb->createNamedParameter($frame->getPayload(true)));
+
+ $qb->execute();
+ }
+
+
+ public function updateSharingFrame(SharingFrame $frame) {
+ $qb = $this->getSharesUpdateSql($frame->getUniqueId());
+ $circle = $frame->getCircle();
+ $qb->set('circle_id', $qb->createNamedParameter($circle->getUniqueId()))
+ ->set('source', $qb->createNamedParameter($frame->getSource()))
+ ->set('type', $qb->createNamedParameter($frame->getType()))
+ ->set('headers', $qb->createNamedParameter($frame->getHeaders(true)))
+ ->set('author', $qb->createNamedParameter($frame->getAuthor()))
+ ->set('cloud_id', $qb->createNamedParameter($frame->getCloudId()))
+ ->set('unique_id', $qb->createNamedParameter($frame->getUniqueId()))
+ ->set('payload', $qb->createNamedParameter($frame->getPayload(true)));
+
+ $qb->execute();
+ }
+
+
+} \ No newline at end of file
diff --git a/lib/Db/SharingFrameRequestBuilder.php b/lib/Db/SharingFrameRequestBuilder.php
new file mode 100644
index 00000000..82d002cb
--- /dev/null
+++ b/lib/Db/SharingFrameRequestBuilder.php
@@ -0,0 +1,145 @@
+<?php
+
+/**
+ * Circles - Bring cloud-users closer together.
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2017
+ * @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\Circles\Db;
+
+
+use OCA\Circles\Model\Circle;
+use OCA\Circles\Model\SharingFrame;
+use OCA\Circles\Service\ConfigService;
+use OCA\Circles\Service\MiscService;
+use OCP\DB\QueryBuilder\IQueryBuilder;
+use OCP\IDBConnection;
+use OCP\IL10N;
+
+class SharingFrameRequestBuilder extends CoreRequestBuilder {
+
+ /** @var CirclesRequest */
+ protected $circlesRequest;
+
+ /** @var MembersRequest */
+ protected $membersRequest;
+
+ /**
+ * CirclesRequestBuilder constructor.
+ *
+ * {@inheritdoc}
+ * @param MembersRequest $membersRequest
+ */
+ public function __construct(
+ IL10N $l10n, IDBConnection $connection, CirclesRequest $circlesRequest,
+ MembersRequest $membersRequest, ConfigService $configService, MiscService $miscService
+ ) {
+ parent::__construct($l10n, $connection, $configService, $miscService);
+ $this->circlesRequest = $circlesRequest;
+ $this->membersRequest = $membersRequest;
+ }
+
+
+ /**
+ * Base of the Sql Select request for Shares
+ *
+ * @return IQueryBuilder
+ */
+ protected function getSharesSelectSql() {
+ $qb = $this->dbConnection->getQueryBuilder();
+
+ /** @noinspection PhpMethodParametersCountMismatchInspection */
+ $qb->select(
+ 's.circle_id', 's.source', 's.type', 's.author', 's.cloud_id', 's.payload',
+ 's.creation', 's.headers', 's.unique_id'
+ )
+ ->from(self::TABLE_SHARES, 's');
+
+ $this->default_select_alias = 's';
+
+ return $qb;
+ }
+
+
+ /**
+ * Base of the Sql Insert request for Shares
+ *
+ * @return IQueryBuilder
+ */
+ protected function getSharesInsertSql() {
+ $qb = $this->dbConnection->getQueryBuilder();
+ $qb->insert(self::TABLE_SHARES)
+ ->setValue('creation', $qb->createFunction('NOW()'));
+
+ return $qb;
+ }
+
+
+ /**
+ * Base of the Sql Update request for Shares
+ *
+ * @param string $uniqueId
+ *
+ * @return IQueryBuilder
+ */
+ protected function getSharesUpdateSql($uniqueId) {
+ $qb = $this->dbConnection->getQueryBuilder();
+ $qb->update(self::TABLE_SHARES)
+ ->where(
+ $qb->expr()
+ ->eq('unique_id', $qb->createNamedParameter((string)$uniqueId))
+ );
+
+ return $qb;
+ }
+
+
+ /**
+ * @param array $data
+ *
+ * @return SharingFrame
+ */
+ protected function parseSharesSelectSql($data) {
+ $frame = new SharingFrame($data['source'], $data['type']);
+
+ $circle = new Circle();
+ $circle->setUniqueId($data['circle_id']);
+ if (key_exists('circle_type', $data)) {
+ $circle->setType($data['circle_type']);
+ $circle->setName($data['circle_name']);
+ }
+
+ $frame->setCircle($circle);
+
+ $frame->setAuthor($data['author']);
+ $frame->setCloudId($data['cloud_id']);
+ $frame->setPayload(json_decode($data['payload'], true));
+ $frame->setCreation($data['creation']);
+ $frame->setHeaders(json_decode($data['headers'], true));
+ $frame->setUniqueId($data['unique_id']);
+
+ return $frame;
+ }
+
+
+} \ No newline at end of file
diff --git a/lib/Events/UserEvents.php b/lib/Events/UserEvents.php
index f9041e18..8b8986a9 100644
--- a/lib/Events/UserEvents.php
+++ b/lib/Events/UserEvents.php
@@ -4,12 +4,16 @@
namespace OCA\Circles\Events;
+use OCA\Circles\Service\CirclesService;
use OCA\Circles\Service\GroupsService;
use OCA\Circles\Service\MembersService;
use OCA\Circles\Service\MiscService;
class UserEvents {
+ /** @var CirclesService */
+ private $circlesService;
+
/** @var MembersService */
private $membersService;
@@ -19,9 +23,19 @@ class UserEvents {
/** @var MiscService */
private $miscService;
+ /**
+ * UserEvents constructor.
+ *
+ * @param CirclesService $circlesService
+ * @param MembersService $membersService
+ * @param GroupsService $groupsService
+ * @param MiscService $miscService
+ */
public function __construct(
- MembersService $membersService, GroupsService $groupsService, MiscService $miscService
+ CirclesService $circlesService, MembersService $membersService, GroupsService $groupsService,
+ MiscService $miscService
) {
+ $this->circlesService = $circlesService;
$this->membersService = $membersService;
$this->groupsService = $groupsService;
$this->miscService = $miscService;
@@ -33,6 +47,7 @@ class UserEvents {
*/
public function onUserDeleted(array $params) {
$userId = $params['uid'];
+ $this->circlesService->onUserRemoved($userId);
$this->membersService->onUserRemoved($userId);
}
diff --git a/lib/Exceptions/CommandMissingArgumentException.php b/lib/Exceptions/CommandMissingArgumentException.php
new file mode 100644
index 00000000..5f5a6c75
--- /dev/null
+++ b/lib/Exceptions/CommandMissingArgumentException.php
@@ -0,0 +1,34 @@
+<?php
+/**
+ * Circles - Bring cloud-users closer together.
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2017
+ * @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\Circles\Exceptions;
+
+
+class CommandMissingArgumentException extends \Exception {
+
+}
+
+
diff --git a/lib/Migration/SetMemberTypeToDefault.php b/lib/Migration/SetMemberTypeToDefault.php
new file mode 100644
index 00000000..982b27b2
--- /dev/null
+++ b/lib/Migration/SetMemberTypeToDefault.php
@@ -0,0 +1,52 @@
+<?php
+/**
+ * Circles - Bring cloud-users closer together.
+ *
+ * This file is licensed under the Affero General Public License version 3 or
+ * later. See the COPYING file.
+ *
+ * @author Maxence Lange <maxence@artificial-owl.com>
+ * @copyright 2017
+ * @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\Circles\Migration;
+
+use OCP\Migration\IOutput;
+use OCP\Migration\IRepairStep;
+
+/**
+ * @package OCA\Circles\Migration
+ */
+class SetMemberTypeToDefault implements IRepairStep {
+
+
+ public function __construct() {
+ }
+
+ public function getName() {
+ return '';
+ }
+
+ /**
+ * @param IOutput $output
+ */
+ public function run(IOutput $output) {
+ }
+
+
+}
diff --git a/lib/Migration/UpdateShareTimeToTimestamp.php b/lib/Migration/UpdateShareTimeToTimestamp.php
index dc93f129..8156f613 100644
--- a/lib/Migration/UpdateShareTimeToTimestamp.php
+++ b/lib/Migration/UpdateShareTimeToTimestamp.php
@@ -86,7 +86,7 @@ class UpdateShareTimeToTimestamp implements IRepairStep {
$select = $this->connection->getQueryBuilder();
$select->select('*')
->from('share')
- ->where($select->expr()->eq('share_type', $select->createNamedParameter(Share::SHARE_TYPE_CIRCLE)));
+ ->where($select->expr()->eq('share_type', $select->createNamedParameter(7)));
$update = $this->connection->getQueryBuilder();
$update->update('share')
diff --git a/lib/Migration/UsingShortenUniqueIdInsteadOfCircleId.php b/lib/Migration/UsingShortenUniqueIdInsteadOfCircleId.php
index 3dac45d2..fb806b98 100644
--- a/lib/Migration/UsingShortenUniqueIdInsteadOfCircleId.php
+++ b/lib/Migration/UsingShortenUniqueIdInsteadOfCircleId.php
@@ -27,7 +27,6 @@
namespace OCA\Circles\Migration;
use OC\Share\Share;
-use OCA\Circles\AppInfo\Application;
use OCA\Circles\Db\CoreRequestBuilder;
use OCA\Circles\Model\Circle;
use OCP\IConfig;
@@ -69,7 +68,7 @@ class UsingShortenUniqueIdInsteadOfCircleId implements IRepairStep {
public function run(IOutput $output) {
$oldVersion = explode(
'.', \OC::$server->getConfig()
- ->getAppValue(Application::APP_NAME, 'installed_version', '')
+ ->getAppValue('circles', 'installed_version', '')
);
if ((int)$oldVersion[0] === 0
@@ -90,24 +89,24 @@ class UsingShortenUniqueIdInsteadOfCircleId implements IRepairStep {
$cursor = $qb->execute();
while ($data = $cursor->fetch()) {
$circleId = $data['id'];
- $shortenUniqueId = substr($data['unique_id'], 0, Circle::SHORT_UNIQUE_ID_LENGTH);
+ $shortenUniqueId = substr($data['unique_id'], 0, 14);
$this->swapToShortenUniqueIdInTable(
- $circleId, $shortenUniqueId, CoreRequestBuilder::TABLE_GROUPS
+ $circleId, $shortenUniqueId, 'circles_groups'
);
$this->swapToShortenUniqueIdInTable(
- $circleId, $shortenUniqueId, CoreRequestBuilder::TABLE_LINKS
+ $circleId, $shortenUniqueId, 'circles_links'
);
// $this->cleanBuggyDuplicateEntries(
// $circleId, $shortenUniqueId, CoreRequestBuilder::TABLE_MEMBERS, 'user_id'
// );
$this->swapToShortenUniqueIdInTable(
- $circleId, $shortenUniqueId, CoreRequestBuilder::TABLE_MEMBERS
+ $circleId, $shortenUniqueId, 'circles_members'
);
$this->swapToShortenUniqueIdInTable(
- $circleId, $shortenUniqueId, CoreRequestBuilder::TABLE_LINKS
+ $circleId, $shortenUniqueId, 'circles_links'
);
$this->swapToShortenUniqueIdInShares($circleId, $shortenUniqueId);
}
@@ -138,7 +137,7 @@ class UsingShortenUniqueIdInsteadOfCircleId implements IRepairStep {
->where(
$expr->andX(
$expr->eq(
- 'share_type', $qb->createNamedParameter(Share::SHARE_TYPE_CIRCLE)
+ 'share_type', $qb->createNamedParameter(7)
),
$expr->eq('share_with', $qb->createNamedParameter($circleId))
)
diff --git a/lib/Model/SharingFrame.php b/lib/Model/SharingFrame.php
index 33a14f79..988897e4 100644
--- a/lib/Model/SharingFrame.php
+++ b/lib/Model/SharingFrame.php
@@ -327,10 +327,6 @@ class SharingFrame implements \JsonSerializable {
private static function getCircleFromArray($arr) {
$circle = Circle::fromArray(MiscService::get($arr, 'circle', null));
- $circle->setType(MiscService::get($arr, 'circle_type'));
- $circle->setName(MiscService::get($arr, 'circle_name'));
- $circle->setId(MiscService::get($arr, 'circle_id'));
-
return $circle;
}
}
diff --git a/lib/Service/CirclesService.php b/lib/Service/CirclesService.php
index ecf0097d..29016ff3 100644
--- a/lib/Service/CirclesService.php
+++ b/lib/Service/CirclesService.php
@@ -30,6 +30,7 @@
namespace OCA\Circles\Service;
+use Exception;
use OCA\Circles\AppInfo\Application;
use OCA\Circles\Db\CircleProviderRequest;
use OCA\Circles\Db\CirclesRequest;
@@ -121,7 +122,7 @@ class CirclesService {
* @throws \Exception
*/
public function createCircle($type, $name) {
- self::convertTypeStringToBitValue($type);
+ $type = $this->convertTypeStringToBitValue($type);
$type = (int)$type;
if ($type === '') {
@@ -154,15 +155,21 @@ class CirclesService {
/**
* list Circles depends on type (or all) and name (parts) and minimum level.
*
+ * @param string $userId
* @param mixed $type
* @param string $name
* @param int $level
*
* @return Circle[]
* @throws CircleTypeDisabledException
+ * @throws Exception
*/
- public function listCircles($type, $name = '', $level = 0) {
- self::convertTypeStringToBitValue($type);
+ public function listCircles($userId, $type, $name = '', $level = 0) {
+ $type = $this->convertTypeStringToBitValue($type);
+
+ if ($userId === '') {
+ throw new Exception('UserID cannot be null');
+ }
if (!$this->configService->isCircleAllowed((int)$type)) {
throw new CircleTypeDisabledException(
@@ -171,7 +178,7 @@ class CirclesService {
}
$data = [];
- $result = $this->circlesRequest->getCircles($this->userId, $type, $name, $level);
+ $result = $this->circlesRequest->getCircles($userId, $type, $name, $level);
foreach ($result as $item) {
$data[] = $item;
}
@@ -383,27 +390,73 @@ class CirclesService {
return $this->circlesRequest->forceGetCircleByName($circleName);
}
+
/**
- * Convert a Type in String to its Bit Value
+ * When a user is removed.
+ * Before deleting a user from the cloud, we assign a new owner to his Circles.
+ * Remove the Circle if it has no admin.
*
- * @param string $type
+ * @param string $userId
*/
- public static function convertTypeStringToBitValue(&$type) {
- if (strtolower($type) === 'personal') {
- $type = Circle::CIRCLES_PERSONAL;
- }
- if (strtolower($type) === 'secret') {
- $type = Circle::CIRCLES_SECRET;
- }
- if (strtolower($type) === 'closed') {
- $type = Circle::CIRCLES_CLOSED;
+ public function onUserRemoved($userId) {
+ $circles = $this->circlesRequest->getCircles($userId, 0, '', Member::LEVEL_OWNER);
+
+ foreach ($circles as $circle) {
+
+ $members =
+ $this->membersRequest->forceGetMembers($circle->getUniqueId(), Member::LEVEL_ADMIN);
+
+ if (sizeof($members) === 1) {
+ $this->circlesRequest->destroyCircle($circle->getUniqueId());
+ continue;
+ }
+
+ $this->switchOlderAdminToOwner($circle, $members);
}
- if (strtolower($type) === 'public') {
- $type = Circle::CIRCLES_PUBLIC;
+ }
+
+
+ /**
+ * switchOlderAdminToOwner();
+ *
+ * @param Member[] $members
+ */
+ private function switchOlderAdminToOwner($circle, $members) {
+
+ foreach ($members as $member) {
+ if ($member->getLevel() === Member::LEVEL_ADMIN) {
+ $member->setLevel(Member::LEVEL_OWNER);
+ $this->membersRequest->updateMember($member);
+ $this->eventsService->onMemberOwner($circle, $member);
+
+ return;
+ }
}
- if (strtolower($type) === 'all') {
- $type = Circle::CIRCLES_ALL;
+
+ }
+
+
+ /**
+ * Convert a Type in String to its Bit Value
+ *
+ * @param string $type
+ *
+ * @return int|mixed
+ */
+ public function convertTypeStringToBitValue($type) {
+ $strings = [
+ 'personal' => Circle::CIRCLES_PERSONAL,
+ 'secret' => Circle::CIRCLES_SECRET,
+ 'closed' => Circle::CIRCLES_CLOSED,
+ 'public' => Circle::CIRCLES_PUBLIC,
+ 'all' => Circle::CIRCLES_ALL
+ ];
+
+ if (!key_exists(strtolower($type), $strings)) {
+ return $type;
}
+
+ return $strings[strtolower($type)];
}
diff --git a/lib/Service/ConfigService.php b/lib/Service/ConfigService.php
index 6e3f36c0..347b745e 100644
--- a/lib/Service/ConfigService.php
+++ b/lib/Service/ConfigService.php
@@ -47,6 +47,7 @@ class ConfigService {
private $defaults = [
self::CIRCLES_ALLOW_CIRCLES => Circle::CIRCLES_ALL,
+ self::CIRCLES_TEST_ASYNC_INIT => '0',
self::CIRCLES_SWAP_TO_TEAMS => '0',
self::CIRCLES_ALLOW_LINKED_GROUPS => '0',
self::CIRCLES_ALLOW_FEDERATED_CIRCLES => '0',
@@ -219,10 +220,7 @@ class ConfigService {
*
* @return void
*/
- public
- function setAppValue(
- $key, $value
- ) {
+ public function setAppValue($key, $value) {
$this->config->setAppValue($this->appName, $key, $value);
}
@@ -233,10 +231,7 @@ class ConfigService {
*
* @return string
*/
- public
- function deleteAppValue(
- $key
- ) {
+ public function deleteAppValue($key) {
return $this->config->deleteAppValue($this->appName, $key);
}
@@ -247,10 +242,7 @@ class ConfigService {
*
* @return string
*/
- public
- function getUserValue(
- $key
- ) {
+ public function getUserValue($key) {
return $this->config->getUserValue($this->userId, $this->appName, $key);
}
@@ -262,10 +254,7 @@ class ConfigService {
*
* @return string
*/
- public
- function setUserValue(
- $key, $value
- ) {
+ public function setUserValue($key, $value) {
return $this->config->setUserValue($this->userId, $this->appName, $key, $value);
}
@@ -277,10 +266,7 @@ class ConfigService {
*
* @return string
*/
- public
- function getValueForUser(
- $userId, $key
- ) {
+ public function getValueForUser($userId, $key) {
return $this->config->getUserValue($userId, $this->appName, $key);
}
@@ -293,10 +279,7 @@ class ConfigService {
*
* @return string
*/
- public
- function setValueForUser(
- $userId, $key, $value
- ) {
+ public function setValueForUser($userId, $key, $value) {
return $this->config->setUserValue($userId, $this->appName, $key, $value);
}
@@ -308,10 +291,7 @@ class ConfigService {
*
* @return string|integer
*/
- public
- function getCloudVersion(
- $complete = false
- ) {
+ public function getCloudVersion($complete = false) {
$ver = Util::getVersion();
if ($complete) {
diff --git a/lib/Service/EventsService.php b/lib/Service/EventsService.php
index 001e3e5b..4e491769 100644
--- a/lib/Service/EventsService.php
+++ b/lib/Service/EventsService.php
@@ -115,6 +115,7 @@ class EventsService {
$this->publishEvent($event, [$user]);
}
);
+
$this->dispatch('\OCA\Circles::onCircleCreation', ['circle' => $circle]);
}
@@ -351,7 +352,7 @@ class EventsService {
* @param Circle $circle
* @param Member $member
*/
- private function onMemberOwner(Circle $circle, Member $member) {
+ public function onMemberOwner(Circle $circle, Member $member) {
$event = $this->generateEvent('circles_as_moderator');
$event->setSubject(
'member_owner',
@@ -728,9 +729,9 @@ class EventsService {
$event->setApp(Application::APP_NAME)
->setType($type);
- if ($this->userId === null) {
+ // if ($this->userId === null) {
// $event->setAuthor($this->userId);
- }
+ // }
return $event;
}
@@ -756,7 +757,11 @@ class EventsService {
$this->activityManager->publish($event);
}
}
-
+
+ /**
+ * @param string $context
+ * @param array $arguments
+ */
private function dispatch($context, $arguments) {
$this->eventDispatcher->dispatch($context, new GenericEvent(null,$arguments));
}
diff --git a/lib/Service/MembersService.php b/lib/Service/MembersService.php
index cfedb2b2..4f9a10e8 100644
--- a/lib/Service/MembersService.php
+++ b/lib/Service/MembersService.php
@@ -506,7 +506,7 @@ class MembersService {
* @param $userId
*/
public function onUserRemoved($userId) {
- $this->membersRequest->removeAllFromUser($userId);
+ $this->membersRequest->removeAllMembershipsFromUser($userId);
}
diff --git a/lib/Service/MiscService.php b/lib/Service/MiscService.php
index aba3e9d8..27765c1b 100644
--- a/lib/Service/MiscService.php
+++ b/lib/Service/MiscService.php
@@ -53,7 +53,7 @@ class MiscService {
$this->userManager = $userManager;
}
- public function log($message, $level = 2) {
+ public function log($message, $level = 4) {
$data = array(
'app' => $this->appName,
'level' => $level
diff --git a/lib/Service/SharingFrameService.php b/lib/Service/SharingFrameService.php
index 4aa17e7a..c633f04e 100644
--- a/lib/Service/SharingFrameService.php
+++ b/lib/Service/SharingFrameService.php
@@ -32,6 +32,7 @@ use OCA\Circles\Api\v1\Circles;
use OCA\Circles\AppInfo\Application;
use OCA\Circles\Db\CirclesRequest;
use OCA\Circles\Db\FederatedLinksRequest;
+use OCA\Circles\Db\SharingFrameRequest;
use OCA\Circles\Exceptions\CircleDoesNotExistException;
use OCA\Circles\Exceptions\MemberDoesNotExistException;
use OCA\Circles\Exceptions\PayloadDeliveryException;
@@ -52,6 +53,9 @@ class SharingFrameService {
/** @var ConfigService */
private $configService;
+ /** @var SharingFrameRequest */
+ private $sharingFrameRequest;
+
/** @var CirclesRequest */
private $circlesRequest;
@@ -76,6 +80,7 @@ class SharingFrameService {
*
* @param string $userId
* @param ConfigService $configService
+ * @param SharingFrameRequest $sharingFrameRequest
* @param CirclesRequest $circlesRequest
* @param FederatedLinksRequest $federatedLinksRequest
* @param BroadcastService $broadcastService
@@ -86,6 +91,7 @@ class SharingFrameService {
public function __construct(
$userId,
ConfigService $configService,
+ SharingFrameRequest $sharingFrameRequest,
CirclesRequest $circlesRequest,
FederatedLinksRequest $federatedLinksRequest,
BroadcastService $broadcastService,
@@ -95,6 +101,7 @@ class SharingFrameService {
) {
$this->userId = $userId;
$this->configService = $configService;
+ $this->sharingFrameRequest = $sharingFrameRequest;
$this->circlesRequest = $circlesRequest;
$this->federatedLinksRequest = $federatedLinksRequest;
$this->broadcastService = $broadcastService;
@@ -128,7 +135,7 @@ class SharingFrameService {
$frame->setCircle($circle);
$this->generateHeaders($frame, $circle, $broadcast);
- $this->circlesRequest->saveFrame($frame);
+ $this->sharingFrameRequest->saveSharingFrame($frame);
$this->initiateShare($circle->getUniqueId(), $frame->getUniqueId());
} catch (Exception $e) {
@@ -162,6 +169,42 @@ class SharingFrameService {
}
}
+
+ /**
+ * return all SharingFrame from a circle regarding a userId.
+ *
+ * @param string $circleUniqueId
+ *
+ * @return SharingFrame[]
+ */
+ public function getFrameFromCircle($circleUniqueId) {
+ return $this->forceGetFrameFromCircle($circleUniqueId, $this->userId);
+ }
+
+
+ /**
+ * return all SharingFrame from a circle.
+ *
+ * Warning, result won't be filtered regarding current user session.
+ * Please use getFrameFromCircle();
+ *
+ * @param string $circleUniqueId
+ * @param $viewerId
+ *
+ * @return SharingFrame[]
+ */
+ public function forceGetFrameFromCircle($circleUniqueId, $viewerId) {
+
+ if ($viewerId !== '') {
+ $circle = $this->circlesRequest->getCircle($circleUniqueId, $viewerId);
+ $circle->getViewer()
+ ->hasToBeMember();
+ }
+
+ return $this->sharingFrameRequest->getSharingFramesFromCircle($circleUniqueId);
+ }
+
+
/**
* @param string $circleUniqueId
* @param string $frameUniqueId
@@ -176,7 +219,7 @@ class SharingFrameService {
}
try {
- $frame = $this->circlesRequest->getFrame($circleUniqueId, $frameUniqueId);
+ $frame = $this->sharingFrameRequest->getSharingFrame($circleUniqueId, $frameUniqueId);
if ($frame->getCloudId() !== null) {
throw new SharingFrameAlreadyDeliveredException('share_already_delivered');
}
@@ -207,13 +250,13 @@ class SharingFrameService {
}
try {
- $this->circlesRequest->getFrame($link->getCircleId(), $frame->getUniqueId());
+ $this->sharingFrameRequest->getSharingFrame($link->getCircleId(), $frame->getUniqueId());
throw new SharingFrameAlreadyExistException('shares_is_already_known');
} catch (SharingFrameDoesNotExistException $e) {
}
$frame->setCircle($circle);
- $this->circlesRequest->saveFrame($frame);
+ $this->sharingFrameRequest->saveSharingFrame($frame);
return true;
}
@@ -235,11 +278,13 @@ class SharingFrameService {
$client = $this->clientService->newClient();
try {
$client->post(
- $this->generatePayloadDeliveryURL($this->configService->getLocalAddress()), [
- 'body' => $args,
- 'timeout' => Application::CLIENT_TIMEOUT,
- 'connect_timeout' => Application::CLIENT_TIMEOUT,
- ]
+ $this->generatePayloadDeliveryURL(
+ $this->configService->getLocalAddress() . \OC::$WEBROOT
+ ), [
+ 'body' => $args,
+ 'timeout' => Application::CLIENT_TIMEOUT,
+ 'connect_timeout' => Application::CLIENT_TIMEOUT,
+ ]
);
return true;
@@ -340,7 +385,7 @@ class SharingFrameService {
*/
public function updateFrameWithCloudId(SharingFrame $frame) {
$frame->setCloudId($this->configService->getLocalAddress());
- $this->circlesRequest->updateFrame($frame);
+ $this->sharingFrameRequest->updateSharingFrame($frame);
}
diff --git a/lib/ShareByCircleProvider.php b/lib/ShareByCircleProvider.php
index 4a4e710b..b2025502 100644
--- a/lib/ShareByCircleProvider.php
+++ b/lib/ShareByCircleProvider.php
@@ -657,7 +657,7 @@ class ShareByCircleProvider extends CircleProviderRequest implements IShareProvi
$message = 'Sharing %s failed, this item is already shared with this circle';
$message_t = $this->l10n->t($message, array($share_src));
$this->logger->debug(
- sprintf($message, $share_src, $share->getSharedWith()), ['app' => Application::APP_NAME]
+ sprintf($message, $share_src, $share->getSharedWith()), ['app' => 'circles']
);
return new \Exception($message_t);