diff options
author | Vinicius Cubas Brand <viniciuscb@gmail.com> | 2017-10-25 18:38:13 +0300 |
---|---|---|
committer | Vinicius Cubas Brand <viniciuscb@gmail.com> | 2017-10-25 18:38:13 +0300 |
commit | a7458c3e73f468198a6725d0b29683ea40e908d4 (patch) | |
tree | c761ac7fcd15139efccfc297e80ed2ff3014b608 | |
parent | 200422b2ffe2bd5b6014f42c5296ce808c9a96f5 (diff) | |
parent | 6e34dea0c8fe0b2e9cd9f07ec85923b7c8097db4 (diff) |
Merge branch 'master' into circles-files-panel
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 @@ -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); }) @@ -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", @@ -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 @@ -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", @@ -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", @@ -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", @@ -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 @@ -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 @@ -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", @@ -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 @@ -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", @@ -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 @@ -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", @@ -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 @@ -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", @@ -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 @@ -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:", @@ -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); |