From f0c4356392a7ab9998eb10a99743767c77323156 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Tue, 2 Oct 2012 02:06:08 +0200 Subject: [PATCH 01/13] [tx-robot] updated from transifex --- apps/files/l10n/ca.php | 13 +++++ apps/files/l10n/sk_SK.php | 13 +++++ apps/files_sharing/l10n/ca.php | 2 + apps/files_sharing/l10n/sk_SK.php | 2 + apps/files_versions/l10n/ca.php | 1 + apps/user_ldap/l10n/ja_JP.php | 2 +- core/l10n/ca.php | 27 +++++++++ core/l10n/es_AR.php | 6 ++ core/l10n/ja_JP.php | 2 +- l10n/ca/core.po | 88 ++++++++++++++--------------- l10n/ca/files.po | 70 +++++++++++------------ l10n/ca/files_sharing.po | 10 ++-- l10n/ca/files_versions.po | 8 +-- l10n/de/lib.po | 4 +- l10n/es_AR/core.po | 46 +++++++-------- l10n/ja_JP/core.po | 30 +++++----- l10n/ja_JP/user_ldap.po | 8 +-- l10n/sk_SK/files.po | 70 +++++++++++------------ l10n/sk_SK/files_sharing.po | 11 ++-- l10n/sk_SK/settings.po | 10 ++-- l10n/templates/core.pot | 24 ++++---- l10n/templates/files.pot | 2 +- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 2 +- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- settings/l10n/sk_SK.php | 3 + 30 files changed, 267 insertions(+), 199 deletions(-) diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php index e86c1960753..17432f72a1e 100644 --- a/apps/files/l10n/ca.php +++ b/apps/files/l10n/ca.php @@ -9,6 +9,7 @@ "Files" => "Fitxers", "Unshare" => "Deixa de compartir", "Delete" => "Suprimeix", +"Rename" => "Reanomena", "already exists" => "ja existeix", "replace" => "substitueix", "suggest name" => "sugereix un nom", @@ -22,6 +23,8 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "No es pot pujar el fitxer perquè és una carpeta o té 0 bytes", "Upload Error" => "Error en la pujada", "Pending" => "Pendents", +"1 file uploading" => "1 fitxer pujant", +"files uploading" => "fitxers pujant", "Upload cancelled." => "La pujada s'ha cancel·lat.", "File upload is in progress. Leaving the page now will cancel the upload." => "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.", "Invalid name, '/' is not allowed." => "El nom no és vàlid, no es permet '/'.", @@ -34,6 +37,16 @@ "folders" => "carpetes", "file" => "fitxer", "files" => "fitxers", +"seconds ago" => "segons enrere", +"minute ago" => "minut enrere", +"minutes ago" => "minuts enrere", +"today" => "avui", +"yesterday" => "ahir", +"days ago" => "dies enrere", +"last month" => "el mes passat", +"months ago" => "mesos enrere", +"last year" => "l'any passat", +"years ago" => "anys enrere", "File handling" => "Gestió de fitxers", "Maximum upload size" => "Mida màxima de pujada", "max. possible: " => "màxim possible:", diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php index f25e6bb9bb7..7f8c35650dd 100644 --- a/apps/files/l10n/sk_SK.php +++ b/apps/files/l10n/sk_SK.php @@ -9,6 +9,7 @@ "Files" => "Súbory", "Unshare" => "Nezdielať", "Delete" => "Odstrániť", +"Rename" => "Premenovať", "already exists" => "už existuje", "replace" => "nahradiť", "suggest name" => "pomôcť s menom", @@ -22,6 +23,8 @@ "Unable to upload your file as it is a directory or has 0 bytes" => "Nemôžem nahrať súbor lebo je to priečinok alebo má 0 bajtov.", "Upload Error" => "Chyba nahrávania", "Pending" => "Čaká sa", +"1 file uploading" => "1 súbor sa posiela ", +"files uploading" => "súbory sa posielajú", "Upload cancelled." => "Nahrávanie zrušené", "File upload is in progress. Leaving the page now will cancel the upload." => "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.", "Invalid name, '/' is not allowed." => "Chybný názov, \"/\" nie je povolené", @@ -34,6 +37,16 @@ "folders" => "priečinky", "file" => "súbor", "files" => "súbory", +"seconds ago" => "pred sekundami", +"minute ago" => "pred minútou", +"minutes ago" => "pred minútami", +"today" => "dnes", +"yesterday" => "včera", +"days ago" => "pred pár dňami", +"last month" => "minulý mesiac", +"months ago" => "pred mesiacmi", +"last year" => "minulý rok", +"years ago" => "pred rokmi", "File handling" => "Nastavenie správanie k súborom", "Maximum upload size" => "Maximálna veľkosť odosielaného súboru", "max. possible: " => "najväčšie možné:", diff --git a/apps/files_sharing/l10n/ca.php b/apps/files_sharing/l10n/ca.php index f00d0d72632..223495455f0 100644 --- a/apps/files_sharing/l10n/ca.php +++ b/apps/files_sharing/l10n/ca.php @@ -1,6 +1,8 @@ "Contrasenya", "Submit" => "Envia", +"%s shared the folder %s with you" => "%s ha compartit la carpeta %s amb vós", +"%s shared the file %s with you" => "%s ha compartit el fitxer %s amb vós", "Download" => "Baixa", "No preview available for" => "No hi ha vista prèvia disponible per a", "web services under your control" => "controleu els vostres serveis web" diff --git a/apps/files_sharing/l10n/sk_SK.php b/apps/files_sharing/l10n/sk_SK.php index ec9fc31c878..2e781f76f38 100644 --- a/apps/files_sharing/l10n/sk_SK.php +++ b/apps/files_sharing/l10n/sk_SK.php @@ -1,6 +1,8 @@ "Heslo", "Submit" => "Odoslať", +"%s shared the folder %s with you" => "%s zdieľa s vami priečinok %s", +"%s shared the file %s with you" => "%s zdieľa s vami súbor %s", "Download" => "Stiahnuť", "No preview available for" => "Žiaden náhľad k dispozícii pre", "web services under your control" => "webové služby pod Vašou kontrolou" diff --git a/apps/files_versions/l10n/ca.php b/apps/files_versions/l10n/ca.php index d9d966fc7af..f81fdc6c4a5 100644 --- a/apps/files_versions/l10n/ca.php +++ b/apps/files_versions/l10n/ca.php @@ -1,5 +1,6 @@ "Expira totes les versions", +"History" => "Historial", "Versions" => "Versions", "This will delete all existing backup versions of your files" => "Això eliminarà totes les versions de còpia de seguretat dels vostres fitxers", "Files Versioning" => "Fitxers de Versions", diff --git a/apps/user_ldap/l10n/ja_JP.php b/apps/user_ldap/l10n/ja_JP.php index c8599f56362..ffaae4e9bd2 100644 --- a/apps/user_ldap/l10n/ja_JP.php +++ b/apps/user_ldap/l10n/ja_JP.php @@ -32,6 +32,6 @@ "The LDAP attribute to use to generate the groups`s ownCloud name." => "グループのownCloud名の生成に利用するLDAP属性。", "in bytes" => "バイト", "in seconds. A change empties the cache." => "秒。変更後にキャッシュがクリアされます。", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください.", +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください。", "Help" => "ヘルプ" ); diff --git a/core/l10n/ca.php b/core/l10n/ca.php index 11f93d5fbbf..70286040bfd 100644 --- a/core/l10n/ca.php +++ b/core/l10n/ca.php @@ -15,13 +15,40 @@ "October" => "Octubre", "November" => "Novembre", "December" => "Desembre", +"Choose" => "Escull", "Cancel" => "Cancel·la", "No" => "No", "Yes" => "Sí", "Ok" => "D'acord", "No categories selected for deletion." => "No hi ha categories per eliminar.", "Error" => "Error", +"Error while sharing" => "Error en compartir", +"Error while unsharing" => "Error en deixar de compartir", +"Error while changing permissions" => "Error en canviar els permisos", +"Shared with you and the group" => "Compartit amb vós i amb el grup", +"by" => "per", +"Shared with you by" => "compartit amb vós per", +"Share with" => "Comparteix amb", +"Share with link" => "Comparteix amb enllaç", +"Password protect" => "Protegir amb contrasenya", "Password" => "Contrasenya", +"Set expiration date" => "Estableix la data d'expiració", +"Expiration date" => "Data d'expiració", +"Share via email:" => "Comparteix per correu electrònic", +"No people found" => "No s'ha trobat ningú", +"Resharing is not allowed" => "No es permet compartir de nou", +"Shared in" => "Compartit en", +"with" => "amb", +"Unshare" => "Deixa de compartir", +"can edit" => "pot editar", +"access control" => "control d'accés", +"create" => "crea", +"update" => "actualitza", +"delete" => "elimina", +"share" => "comparteix", +"Password protected" => "Protegeix amb contrasenya", +"Error unsetting expiration date" => "Error en eliminar la data d'expiració", +"Error setting expiration date" => "Error en establir la data d'expiració", "ownCloud password reset" => "estableix de nou la contrasenya Owncloud", "Use the following link to reset your password: {link}" => "Useu l'enllaç següent per restablir la contrasenya: {link}", "You will receive a link to reset your password via Email." => "Rebreu un enllaç al correu electrònic per reiniciar la contrasenya.", diff --git a/core/l10n/es_AR.php b/core/l10n/es_AR.php index ea8b2aae78e..7cea266d14b 100644 --- a/core/l10n/es_AR.php +++ b/core/l10n/es_AR.php @@ -25,14 +25,20 @@ "Error while sharing" => "Error al compartir", "Error while unsharing" => "Error en el procedimiento de ", "Error while changing permissions" => "Error al cambiar permisos", +"Shared with you and the group" => "Compartido con vos y con el grupo", +"by" => "por", +"Shared with you by" => "Compartido con vos por", "Share with" => "Compartir con", "Share with link" => "Compartir con link", "Password protect" => "Proteger con contraseña ", "Password" => "Contraseña", "Set expiration date" => "Asignar fecha de vencimiento", "Expiration date" => "Fecha de vencimiento", +"Share via email:" => "compartido a través de e-mail:", "No people found" => "No se encontraron usuarios", "Resharing is not allowed" => "No se permite volver a compartir", +"Shared in" => "Compartido en", +"with" => "con", "Unshare" => "Remover compartir", "can edit" => "puede editar", "access control" => "control de acceso", diff --git a/core/l10n/ja_JP.php b/core/l10n/ja_JP.php index 089098c2d22..94e1d4dd4fb 100644 --- a/core/l10n/ja_JP.php +++ b/core/l10n/ja_JP.php @@ -34,7 +34,7 @@ "Password" => "パスワード", "Set expiration date" => "有効期限を設定", "Expiration date" => "有効期限", -"Share via email:" => "メール経由で共有: %s", +"Share via email:" => "メール経由で共有:", "No people found" => "ユーザーが見つかりません", "Resharing is not allowed" => "再共有は許可されていません", "Shared in" => "の中で共有中", diff --git a/l10n/ca/core.po b/l10n/ca/core.po index 30b391463b5..dcfd7d3d0c3 100644 --- a/l10n/ca/core.po +++ b/l10n/ca/core.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" -"PO-Revision-Date: 2012-09-28 21:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"PO-Revision-Date: 2012-10-01 08:49+0000\n" +"Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -85,7 +85,7 @@ msgstr "Desembre" #: js/oc-dialogs.js:123 msgid "Choose" -msgstr "" +msgstr "Escull" #: js/oc-dialogs.js:143 js/oc-dialogs.js:163 msgid "Cancel" @@ -107,46 +107,46 @@ msgstr "D'acord" msgid "No categories selected for deletion." msgstr "No hi ha categories per eliminar." -#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489 -#: js/share.js:501 +#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:493 +#: js/share.js:505 msgid "Error" msgstr "Error" #: js/share.js:103 msgid "Error while sharing" -msgstr "" +msgstr "Error en compartir" #: js/share.js:114 msgid "Error while unsharing" -msgstr "" +msgstr "Error en deixar de compartir" #: js/share.js:121 msgid "Error while changing permissions" -msgstr "" +msgstr "Error en canviar els permisos" #: js/share.js:130 msgid "Shared with you and the group" -msgstr "" +msgstr "Compartit amb vós i amb el grup" #: js/share.js:130 msgid "by" -msgstr "" +msgstr "per" #: js/share.js:132 msgid "Shared with you by" -msgstr "" +msgstr "compartit amb vós per" #: js/share.js:137 msgid "Share with" -msgstr "" +msgstr "Comparteix amb" #: js/share.js:142 msgid "Share with link" -msgstr "" +msgstr "Comparteix amb enllaç" #: js/share.js:143 msgid "Password protect" -msgstr "" +msgstr "Protegir amb contrasenya" #: js/share.js:147 templates/installation.php:30 templates/login.php:13 msgid "Password" @@ -154,71 +154,71 @@ msgstr "Contrasenya" #: js/share.js:152 msgid "Set expiration date" -msgstr "" +msgstr "Estableix la data d'expiració" #: js/share.js:153 msgid "Expiration date" -msgstr "" +msgstr "Data d'expiració" #: js/share.js:185 msgid "Share via email:" -msgstr "" +msgstr "Comparteix per correu electrònic" #: js/share.js:187 msgid "No people found" -msgstr "" +msgstr "No s'ha trobat ningú" #: js/share.js:214 msgid "Resharing is not allowed" -msgstr "" +msgstr "No es permet compartir de nou" #: js/share.js:250 msgid "Shared in" -msgstr "" +msgstr "Compartit en" #: js/share.js:250 msgid "with" -msgstr "" +msgstr "amb" #: js/share.js:271 msgid "Unshare" -msgstr "" +msgstr "Deixa de compartir" -#: js/share.js:279 +#: js/share.js:283 msgid "can edit" -msgstr "" +msgstr "pot editar" -#: js/share.js:281 +#: js/share.js:285 msgid "access control" -msgstr "" +msgstr "control d'accés" -#: js/share.js:284 +#: js/share.js:288 msgid "create" -msgstr "" +msgstr "crea" -#: js/share.js:287 +#: js/share.js:291 msgid "update" -msgstr "" +msgstr "actualitza" -#: js/share.js:290 +#: js/share.js:294 msgid "delete" -msgstr "" +msgstr "elimina" -#: js/share.js:293 +#: js/share.js:297 msgid "share" -msgstr "" +msgstr "comparteix" -#: js/share.js:317 js/share.js:476 +#: js/share.js:321 js/share.js:480 msgid "Password protected" -msgstr "" +msgstr "Protegeix amb contrasenya" -#: js/share.js:489 +#: js/share.js:493 msgid "Error unsetting expiration date" -msgstr "" +msgstr "Error en eliminar la data d'expiració" -#: js/share.js:501 +#: js/share.js:505 msgid "Error setting expiration date" -msgstr "" +msgstr "Error en establir la data d'expiració" #: lostpassword/index.php:26 msgid "ownCloud password reset" @@ -245,7 +245,7 @@ msgstr "No s'ha pogut iniciar la sessió" msgid "Username" msgstr "Nom d'usuari" -#: lostpassword/templates/lostpassword.php:15 +#: lostpassword/templates/lostpassword.php:14 msgid "Request reset" msgstr "Sol·licita reinicialització" @@ -358,11 +358,11 @@ msgstr "Surt" msgid "Lost your password?" msgstr "Heu perdut la contrasenya?" -#: templates/login.php:17 +#: templates/login.php:16 msgid "remember" msgstr "recorda'm" -#: templates/login.php:18 +#: templates/login.php:17 msgid "Log in" msgstr "Inici de sessió" diff --git a/l10n/ca/files.po b/l10n/ca/files.po index b98f8b4ffe7..b78da53d8b9 100644 --- a/l10n/ca/files.po +++ b/l10n/ca/files.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-26 13:19+0200\n" -"PO-Revision-Date: 2012-09-26 11:20+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 02:02+0200\n" +"PO-Revision-Date: 2012-10-01 08:52+0000\n" +"Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -65,7 +65,7 @@ msgstr "Suprimeix" #: js/fileactions.js:182 msgid "Rename" -msgstr "" +msgstr "Reanomena" #: js/filelist.js:190 js/filelist.js:192 msgid "already exists" @@ -121,11 +121,11 @@ msgstr "Pendents" #: js/files.js:256 msgid "1 file uploading" -msgstr "" +msgstr "1 fitxer pujant" #: js/files.js:259 js/files.js:304 js/files.js:319 msgid "files uploading" -msgstr "" +msgstr "fitxers pujant" #: js/files.js:322 js/files.js:355 msgid "Upload cancelled." @@ -140,81 +140,81 @@ msgstr "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·l msgid "Invalid name, '/' is not allowed." msgstr "El nom no és vàlid, no es permet '/'." -#: js/files.js:667 +#: js/files.js:668 msgid "files scanned" msgstr "arxius escanejats" -#: js/files.js:675 +#: js/files.js:676 msgid "error while scanning" msgstr "error durant l'escaneig" -#: js/files.js:748 templates/index.php:48 +#: js/files.js:749 templates/index.php:48 msgid "Name" msgstr "Nom" -#: js/files.js:749 templates/index.php:56 +#: js/files.js:750 templates/index.php:56 msgid "Size" msgstr "Mida" -#: js/files.js:750 templates/index.php:58 +#: js/files.js:751 templates/index.php:58 msgid "Modified" msgstr "Modificat" -#: js/files.js:777 +#: js/files.js:778 msgid "folder" msgstr "carpeta" -#: js/files.js:779 +#: js/files.js:780 msgid "folders" msgstr "carpetes" -#: js/files.js:787 +#: js/files.js:788 msgid "file" msgstr "fitxer" -#: js/files.js:789 +#: js/files.js:790 msgid "files" msgstr "fitxers" -#: js/files.js:833 +#: js/files.js:834 msgid "seconds ago" -msgstr "" +msgstr "segons enrere" -#: js/files.js:834 +#: js/files.js:835 msgid "minute ago" -msgstr "" +msgstr "minut enrere" -#: js/files.js:835 +#: js/files.js:836 msgid "minutes ago" -msgstr "" +msgstr "minuts enrere" -#: js/files.js:838 +#: js/files.js:839 msgid "today" -msgstr "" +msgstr "avui" -#: js/files.js:839 +#: js/files.js:840 msgid "yesterday" -msgstr "" +msgstr "ahir" -#: js/files.js:840 +#: js/files.js:841 msgid "days ago" -msgstr "" +msgstr "dies enrere" -#: js/files.js:841 +#: js/files.js:842 msgid "last month" -msgstr "" +msgstr "el mes passat" -#: js/files.js:843 +#: js/files.js:844 msgid "months ago" -msgstr "" +msgstr "mesos enrere" -#: js/files.js:844 +#: js/files.js:845 msgid "last year" -msgstr "" +msgstr "l'any passat" -#: js/files.js:845 +#: js/files.js:846 msgid "years ago" -msgstr "" +msgstr "anys enrere" #: templates/admin.php:5 msgid "File handling" diff --git a/l10n/ca/files_sharing.po b/l10n/ca/files_sharing.po index 1bf9e7771c1..682f63bb56b 100644 --- a/l10n/ca/files_sharing.po +++ b/l10n/ca/files_sharing.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-22 01:14+0200\n" -"PO-Revision-Date: 2012-09-21 23:15+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 02:02+0200\n" +"PO-Revision-Date: 2012-10-01 08:50+0000\n" +"Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -29,12 +29,12 @@ msgstr "Envia" #: templates/public.php:9 #, php-format msgid "%s shared the folder %s with you" -msgstr "" +msgstr "%s ha compartit la carpeta %s amb vós" #: templates/public.php:11 #, php-format msgid "%s shared the file %s with you" -msgstr "" +msgstr "%s ha compartit el fitxer %s amb vós" #: templates/public.php:14 templates/public.php:30 msgid "Download" diff --git a/l10n/ca/files_versions.po b/l10n/ca/files_versions.po index 5a70c6947cf..a4d8639a09e 100644 --- a/l10n/ca/files_versions.po +++ b/l10n/ca/files_versions.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-22 01:14+0200\n" -"PO-Revision-Date: 2012-09-21 23:15+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"PO-Revision-Date: 2012-10-01 08:52+0000\n" +"Last-Translator: rogerc \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -25,7 +25,7 @@ msgstr "Expira totes les versions" #: js/versions.js:16 msgid "History" -msgstr "" +msgstr "Historial" #: templates/settings-personal.php:4 msgid "Versions" diff --git a/l10n/de/lib.po b/l10n/de/lib.po index d1d17eec25b..edc1f6056a0 100644 --- a/l10n/de/lib.po +++ b/l10n/de/lib.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-28 02:03+0200\n" -"PO-Revision-Date: 2012-09-27 22:40+0000\n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"PO-Revision-Date: 2012-10-01 23:58+0000\n" "Last-Translator: Mirodin \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" diff --git a/l10n/es_AR/core.po b/l10n/es_AR/core.po index ef8c5200cb4..fdae03f14c3 100644 --- a/l10n/es_AR/core.po +++ b/l10n/es_AR/core.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" -"PO-Revision-Date: 2012-09-28 21:34+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"PO-Revision-Date: 2012-10-01 14:58+0000\n" +"Last-Translator: cjtess \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -106,8 +106,8 @@ msgstr "Aceptar" msgid "No categories selected for deletion." msgstr "No hay categorías seleccionadas para borrar." -#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489 -#: js/share.js:501 +#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:493 +#: js/share.js:505 msgid "Error" msgstr "Error" @@ -125,15 +125,15 @@ msgstr "Error al cambiar permisos" #: js/share.js:130 msgid "Shared with you and the group" -msgstr "" +msgstr "Compartido con vos y con el grupo" #: js/share.js:130 msgid "by" -msgstr "" +msgstr "por" #: js/share.js:132 msgid "Shared with you by" -msgstr "" +msgstr "Compartido con vos por" #: js/share.js:137 msgid "Share with" @@ -161,7 +161,7 @@ msgstr "Fecha de vencimiento" #: js/share.js:185 msgid "Share via email:" -msgstr "" +msgstr "compartido a través de e-mail:" #: js/share.js:187 msgid "No people found" @@ -173,49 +173,49 @@ msgstr "No se permite volver a compartir" #: js/share.js:250 msgid "Shared in" -msgstr "" +msgstr "Compartido en" #: js/share.js:250 msgid "with" -msgstr "" +msgstr "con" #: js/share.js:271 msgid "Unshare" msgstr "Remover compartir" -#: js/share.js:279 +#: js/share.js:283 msgid "can edit" msgstr "puede editar" -#: js/share.js:281 +#: js/share.js:285 msgid "access control" msgstr "control de acceso" -#: js/share.js:284 +#: js/share.js:288 msgid "create" msgstr "crear" -#: js/share.js:287 +#: js/share.js:291 msgid "update" msgstr "actualizar" -#: js/share.js:290 +#: js/share.js:294 msgid "delete" msgstr "remover" -#: js/share.js:293 +#: js/share.js:297 msgid "share" msgstr "compartir" -#: js/share.js:317 js/share.js:476 +#: js/share.js:321 js/share.js:480 msgid "Password protected" msgstr "Protegido por contraseña" -#: js/share.js:489 +#: js/share.js:493 msgid "Error unsetting expiration date" msgstr "Error al remover la fecha de caducidad" -#: js/share.js:501 +#: js/share.js:505 msgid "Error setting expiration date" msgstr "Error al asignar fecha de vencimiento" @@ -244,7 +244,7 @@ msgstr "¡Fallo al iniciar sesión!" msgid "Username" msgstr "Nombre de usuario" -#: lostpassword/templates/lostpassword.php:15 +#: lostpassword/templates/lostpassword.php:14 msgid "Request reset" msgstr "Solicitar restablecimiento" @@ -357,11 +357,11 @@ msgstr "Cerrar la sesión" msgid "Lost your password?" msgstr "¿Perdiste tu contraseña?" -#: templates/login.php:17 +#: templates/login.php:16 msgid "remember" msgstr "recordame" -#: templates/login.php:18 +#: templates/login.php:17 msgid "Log in" msgstr "Entrar" diff --git a/l10n/ja_JP/core.po b/l10n/ja_JP/core.po index 5f15311627f..9ab3f59c8b3 100644 --- a/l10n/ja_JP/core.po +++ b/l10n/ja_JP/core.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-10-01 02:04+0200\n" -"PO-Revision-Date: 2012-09-30 12:40+0000\n" -"Last-Translator: ttyn \n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"PO-Revision-Date: 2012-10-01 08:51+0000\n" +"Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -107,8 +107,8 @@ msgstr "OK" msgid "No categories selected for deletion." msgstr "削除するカテゴリが選択されていません。" -#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489 -#: js/share.js:501 +#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:493 +#: js/share.js:505 msgid "Error" msgstr "エラー" @@ -162,7 +162,7 @@ msgstr "有効期限" #: js/share.js:185 msgid "Share via email:" -msgstr "メール経由で共有: %s" +msgstr "メール経由で共有:" #: js/share.js:187 msgid "No people found" @@ -184,39 +184,39 @@ msgstr "と" msgid "Unshare" msgstr "共有解除" -#: js/share.js:279 +#: js/share.js:283 msgid "can edit" msgstr "編集可能" -#: js/share.js:281 +#: js/share.js:285 msgid "access control" msgstr "アクセス権限" -#: js/share.js:284 +#: js/share.js:288 msgid "create" msgstr "作成" -#: js/share.js:287 +#: js/share.js:291 msgid "update" msgstr "更新" -#: js/share.js:290 +#: js/share.js:294 msgid "delete" msgstr "削除" -#: js/share.js:293 +#: js/share.js:297 msgid "share" msgstr "共有" -#: js/share.js:317 js/share.js:476 +#: js/share.js:321 js/share.js:480 msgid "Password protected" msgstr "パスワード保護" -#: js/share.js:489 +#: js/share.js:493 msgid "Error unsetting expiration date" msgstr "有効期限の未設定エラー" -#: js/share.js:501 +#: js/share.js:505 msgid "Error setting expiration date" msgstr "有効期限の設定でエラー発生" diff --git a/l10n/ja_JP/user_ldap.po b/l10n/ja_JP/user_ldap.po index 4c9265d368b..bd04cb5c537 100644 --- a/l10n/ja_JP/user_ldap.po +++ b/l10n/ja_JP/user_ldap.po @@ -9,15 +9,15 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-30 02:02+0200\n" -"PO-Revision-Date: 2012-08-29 01:55+0000\n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"PO-Revision-Date: 2012-10-01 08:48+0000\n" "Last-Translator: Daisuke Deguchi \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ja_JP\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" #: templates/settings.php:8 msgid "Host" @@ -165,7 +165,7 @@ msgstr "秒。変更後にキャッシュがクリアされます。" msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." -msgstr "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください." +msgstr "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください。" #: templates/settings.php:32 msgid "Help" diff --git a/l10n/sk_SK/files.po b/l10n/sk_SK/files.po index 282acf836c0..471364ef5e6 100644 --- a/l10n/sk_SK/files.po +++ b/l10n/sk_SK/files.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-26 13:19+0200\n" -"PO-Revision-Date: 2012-09-26 11:20+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 02:02+0200\n" +"PO-Revision-Date: 2012-10-01 08:38+0000\n" +"Last-Translator: martinb \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -64,7 +64,7 @@ msgstr "Odstrániť" #: js/fileactions.js:182 msgid "Rename" -msgstr "" +msgstr "Premenovať" #: js/filelist.js:190 js/filelist.js:192 msgid "already exists" @@ -120,11 +120,11 @@ msgstr "Čaká sa" #: js/files.js:256 msgid "1 file uploading" -msgstr "" +msgstr "1 súbor sa posiela " #: js/files.js:259 js/files.js:304 js/files.js:319 msgid "files uploading" -msgstr "" +msgstr "súbory sa posielajú" #: js/files.js:322 js/files.js:355 msgid "Upload cancelled." @@ -139,81 +139,81 @@ msgstr "Opustenie stránky zruší práve prebiehajúce odosielanie súboru." msgid "Invalid name, '/' is not allowed." msgstr "Chybný názov, \"/\" nie je povolené" -#: js/files.js:667 +#: js/files.js:668 msgid "files scanned" msgstr "skontrolovaných súborov" -#: js/files.js:675 +#: js/files.js:676 msgid "error while scanning" msgstr "chyba počas kontroly" -#: js/files.js:748 templates/index.php:48 +#: js/files.js:749 templates/index.php:48 msgid "Name" msgstr "Meno" -#: js/files.js:749 templates/index.php:56 +#: js/files.js:750 templates/index.php:56 msgid "Size" msgstr "Veľkosť" -#: js/files.js:750 templates/index.php:58 +#: js/files.js:751 templates/index.php:58 msgid "Modified" msgstr "Upravené" -#: js/files.js:777 +#: js/files.js:778 msgid "folder" msgstr "priečinok" -#: js/files.js:779 +#: js/files.js:780 msgid "folders" msgstr "priečinky" -#: js/files.js:787 +#: js/files.js:788 msgid "file" msgstr "súbor" -#: js/files.js:789 +#: js/files.js:790 msgid "files" msgstr "súbory" -#: js/files.js:833 +#: js/files.js:834 msgid "seconds ago" -msgstr "" +msgstr "pred sekundami" -#: js/files.js:834 +#: js/files.js:835 msgid "minute ago" -msgstr "" +msgstr "pred minútou" -#: js/files.js:835 +#: js/files.js:836 msgid "minutes ago" -msgstr "" +msgstr "pred minútami" -#: js/files.js:838 +#: js/files.js:839 msgid "today" -msgstr "" +msgstr "dnes" -#: js/files.js:839 +#: js/files.js:840 msgid "yesterday" -msgstr "" +msgstr "včera" -#: js/files.js:840 +#: js/files.js:841 msgid "days ago" -msgstr "" +msgstr "pred pár dňami" -#: js/files.js:841 +#: js/files.js:842 msgid "last month" -msgstr "" +msgstr "minulý mesiac" -#: js/files.js:843 +#: js/files.js:844 msgid "months ago" -msgstr "" +msgstr "pred mesiacmi" -#: js/files.js:844 +#: js/files.js:845 msgid "last year" -msgstr "" +msgstr "minulý rok" -#: js/files.js:845 +#: js/files.js:846 msgid "years ago" -msgstr "" +msgstr "pred rokmi" #: templates/admin.php:5 msgid "File handling" diff --git a/l10n/sk_SK/files_sharing.po b/l10n/sk_SK/files_sharing.po index 86f025ad218..b964369a8b0 100644 --- a/l10n/sk_SK/files_sharing.po +++ b/l10n/sk_SK/files_sharing.po @@ -4,13 +4,14 @@ # # Translators: # , 2012. +# , 2012. msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-22 01:14+0200\n" -"PO-Revision-Date: 2012-09-21 23:15+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 02:02+0200\n" +"PO-Revision-Date: 2012-10-01 08:36+0000\n" +"Last-Translator: martinb \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -29,12 +30,12 @@ msgstr "Odoslať" #: templates/public.php:9 #, php-format msgid "%s shared the folder %s with you" -msgstr "" +msgstr "%s zdieľa s vami priečinok %s" #: templates/public.php:11 #, php-format msgid "%s shared the file %s with you" -msgstr "" +msgstr "%s zdieľa s vami súbor %s" #: templates/public.php:14 templates/public.php:30 msgid "Download" diff --git a/l10n/sk_SK/settings.po b/l10n/sk_SK/settings.po index 2089e7b7c5d..ba623992f13 100644 --- a/l10n/sk_SK/settings.po +++ b/l10n/sk_SK/settings.po @@ -11,8 +11,8 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-22 01:14+0200\n" -"PO-Revision-Date: 2012-09-21 10:33+0000\n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"PO-Revision-Date: 2012-10-01 08:34+0000\n" "Last-Translator: martinb \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" @@ -115,7 +115,7 @@ msgstr "" #: templates/admin.php:37 msgid "Execute one task with each page loaded" -msgstr "" +msgstr "Vykonať jednu úlohu každým nahraním stránky" #: templates/admin.php:43 msgid "" @@ -127,7 +127,7 @@ msgstr "" msgid "" "Use systems cron service. Call the cron.php file in the owncloud folder via " "a system cronjob once a minute." -msgstr "" +msgstr "Používať systémovú službu cron. Každú minútu bude spustený súbor cron.php v priečinku owncloud pomocou systémového programu cronjob." #: templates/admin.php:56 msgid "Sharing" @@ -155,7 +155,7 @@ msgstr "Povoliť opakované zdieľanie" #: templates/admin.php:74 msgid "Allow users to share items shared with them again" -msgstr "" +msgstr "Povoliť zdieľanie zdielaného obsahu iného užívateľa" #: templates/admin.php:79 msgid "Allow users to share with anyone" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index 77c0ffb1450..14356ac7623 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-01 02:04+0200\n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -105,8 +105,8 @@ msgstr "" msgid "No categories selected for deletion." msgstr "" -#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489 -#: js/share.js:501 +#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:493 +#: js/share.js:505 msgid "Error" msgstr "" @@ -182,39 +182,39 @@ msgstr "" msgid "Unshare" msgstr "" -#: js/share.js:279 +#: js/share.js:283 msgid "can edit" msgstr "" -#: js/share.js:281 +#: js/share.js:285 msgid "access control" msgstr "" -#: js/share.js:284 +#: js/share.js:288 msgid "create" msgstr "" -#: js/share.js:287 +#: js/share.js:291 msgid "update" msgstr "" -#: js/share.js:290 +#: js/share.js:294 msgid "delete" msgstr "" -#: js/share.js:293 +#: js/share.js:297 msgid "share" msgstr "" -#: js/share.js:317 js/share.js:476 +#: js/share.js:321 js/share.js:480 msgid "Password protected" msgstr "" -#: js/share.js:489 +#: js/share.js:493 msgid "Error unsetting expiration date" msgstr "" -#: js/share.js:501 +#: js/share.js:505 msgid "Error setting expiration date" msgstr "" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index 135b2176f91..a08d079f73b 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-01 02:04+0200\n" +"POT-Creation-Date: 2012-10-02 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index dba46b52fcf..abd9cbe5272 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-01 02:04+0200\n" +"POT-Creation-Date: 2012-10-02 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index 11e45d75b19..fca63397e50 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-01 02:04+0200\n" +"POT-Creation-Date: 2012-10-02 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 0379150c9d9..5647d82d18a 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-01 02:04+0200\n" +"POT-Creation-Date: 2012-10-02 02:02+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 9d7a47dea6b..9684185a802 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-01 02:04+0200\n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index b3406472fc3..bae28897e05 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-01 02:05+0200\n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 2a44dd79f99..598343e95e8 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-01 02:05+0200\n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 0ca250288ff..456281a460c 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-01 02:04+0200\n" +"POT-Creation-Date: 2012-10-02 02:03+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/settings/l10n/sk_SK.php b/settings/l10n/sk_SK.php index ebbd495df7b..c1f2f88b364 100644 --- a/settings/l10n/sk_SK.php +++ b/settings/l10n/sk_SK.php @@ -18,12 +18,15 @@ "Saving..." => "Ukladám...", "__language_name__" => "Slovensky", "Security Warning" => "Bezpečnostné varovanie", +"Execute one task with each page loaded" => "Vykonať jednu úlohu každým nahraním stránky", +"Use systems cron service. Call the cron.php file in the owncloud folder via a system cronjob once a minute." => "Používať systémovú službu cron. Každú minútu bude spustený súbor cron.php v priečinku owncloud pomocou systémového programu cronjob.", "Sharing" => "Zdieľanie", "Enable Share API" => "Zapnúť API zdieľania", "Allow apps to use the Share API" => "Povoliť aplikáciam používať API pre zdieľanie", "Allow links" => "Povoliť odkazy", "Allow users to share items to the public with links" => "Povoliť užívateľom zdieľať obsah pomocou verejných odkazov", "Allow resharing" => "Povoliť opakované zdieľanie", +"Allow users to share items shared with them again" => "Povoliť zdieľanie zdielaného obsahu iného užívateľa", "Allow users to share with anyone" => "Povoliť užívateľom zdieľať s každým", "Allow users to only share with users in their groups" => "Povoliť užívateľom zdieľanie iba s užívateľmi ich vlastnej skupiny", "Log" => "Záznam", From 550813ce411daa5f3665f9e8a4cec111d04ff486 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 2 Oct 2012 11:28:19 +0200 Subject: [PATCH 02/13] don't use the complete path but the basename if the file/foder has no extension. Otherwise we can end up with different items in the shared directory with the same name (Also folder names can contain dots) --- apps/files_sharing/lib/share/file.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php index 074ca9928d4..9a880505926 100644 --- a/apps/files_sharing/lib/share/file.php +++ b/apps/files_sharing/lib/share/file.php @@ -53,7 +53,7 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent { $name = substr($target, 0, $pos); $ext = substr($target, $pos); } else { - $name = $filePath; + $name = $target; $ext = ''; } $i = 2; From c6c0fcc7c896e8c95bea021e2c91ed6a07917389 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 2 Oct 2012 11:37:26 +0200 Subject: [PATCH 03/13] We can't rely on the assumption that if the matching target is from the same owner that the share type will be different. Files in different folders can have the same name. Therefore also a unique name has to be generated if the matching target it from the same user. Also for folders and files with the same name a unique target name has to be generated If matching target is from the same owner, use the same target. The share type will be different so this isn't the sa --- lib/public/share.php | 40 ++++++++++++++++++++++++++++++---------- 1 file changed, 30 insertions(+), 10 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index 1039d6f0dbf..8b3e5581d7b 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1002,8 +1002,22 @@ class Share { } } // Check if target already exists - $checkTarget = self::getItems($itemType, $target, $shareType, $shareWith); - if (!empty($checkTarget)) { + $targetConflict = false; + + if( $itemType == "file" or $itemType == "folder") { + $itemList1 = self::getItems("file", $target, $shareType, $shareWith); + $itemList2 = self::getItems("folder", $target, $shareType, $shareWith); + if ( !empty($itemList1) or !empty($itemList2)) { + $targetConflict = true; + } + } else { + $itemList = self::getItems($itemType, $target, $shareType, $shareWith); + if ( !empty($itemList) ) { + $targetConflict = true; + } + } + + if ($targetConflict) { foreach ($checkTarget as $item) { // Skip item if it is the group parent row if (isset($groupParent) && $item['id'] == $groupParent) { @@ -1013,21 +1027,27 @@ class Share { continue; } } - // If matching target is from the same owner, use the same target. The share type will be different so this isn't the same share. - if ($item['uid_owner'] == $uidOwner) { - return $target; - } } if (!isset($exclude)) { $exclude = array(); } // Find similar targets to improve backend's chances to generate a unqiue target if ($userAndGroups) { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\') AND `'.$column.'` LIKE ?'); - $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique, '%'.$target.'%')); + if ($column == 'file_target') { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` IN (\'file\', \'folder\') AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); + $result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); + } else { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); + $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); + } } else { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ? AND `'.$column.'` LIKE ?'); - $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith, '%'.$target.'%')); + if ($column == 'file_target') { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` IN (\'file\', \'folder\') AND `share_type` = ? AND `share_with` = ?'); + $result = $checkTargets->execute(array(self::SHARE_TYPE_GROUP, $shareWith)); + } else { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?'); + $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith)); + } } while ($row = $result->fetchRow()) { $exclude[] = $row[$column]; From 783c02eda917cef549135103876a30bebcb89b23 Mon Sep 17 00:00:00 2001 From: Arthur Schiwon Date: Tue, 2 Oct 2012 11:44:55 +0200 Subject: [PATCH 04/13] fix create folder and upload file issue on win, fixes oc-1747, solution follows suggestion from bug tracker --- lib/connector/sabre/node.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/connector/sabre/node.php b/lib/connector/sabre/node.php index bdedc030c88..72de9723774 100644 --- a/lib/connector/sabre/node.php +++ b/lib/connector/sabre/node.php @@ -24,7 +24,7 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IProperties { const GETETAG_PROPERTYNAME = '{DAV:}getetag'; const LASTMODIFIED_PROPERTYNAME = '{DAV:}lastmodified'; - + /** * The path to the current node * @@ -235,7 +235,7 @@ abstract class OC_Connector_Sabre_Node implements Sabre_DAV_INode, Sabre_DAV_IPr static public function removeETagPropertyForPath($path) { // remove tags from this and parent paths $paths = array(); - while ($path != '/' && $path != '.' && $path != '') { + while ($path != '/' && $path != '.' && $path != '' && $path != '\\') { $paths[] = $path; $path = dirname($path); } From 3fdebaa5dc4a903e9db64f8bafe11929c5f50304 Mon Sep 17 00:00:00 2001 From: Frank Karlitschek Date: Tue, 2 Oct 2012 12:10:45 +0200 Subject: [PATCH 05/13] automatically remove and prevent installation of apps with a require version less than the current one. We check now the first ad second part of the version number. Also increase the require tags of the core apps to 4.9 Please note that 4.9 is the internal versionnumber of the upcoming 4.5 release. You have to pu a 4.9 into the info.xml of your app to make it as compatible with 4.5 --- apps/files/appinfo/info.xml | 2 +- apps/files_encryption/appinfo/info.xml | 2 +- apps/files_external/appinfo/info.xml | 2 +- apps/files_sharing/appinfo/info.xml | 2 +- apps/files_versions/appinfo/info.xml | 2 +- apps/user_ldap/appinfo/info.xml | 2 +- apps/user_webdavauth/appinfo/info.xml | 2 +- lib/app.php | 4 ++-- lib/util.php | 4 ++-- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/apps/files/appinfo/info.xml b/apps/files/appinfo/info.xml index e58f83c5a01..0a1b196b06f 100644 --- a/apps/files/appinfo/info.xml +++ b/apps/files/appinfo/info.xml @@ -5,7 +5,7 @@ File Management AGPL Robin Appelman - 4 + 4.9 true diff --git a/apps/files_encryption/appinfo/info.xml b/apps/files_encryption/appinfo/info.xml index 419bdb1b120..48a28fde78a 100644 --- a/apps/files_encryption/appinfo/info.xml +++ b/apps/files_encryption/appinfo/info.xml @@ -5,7 +5,7 @@ Server side encryption of files. DEPRECATED. This app is no longer supported and will be replaced with an improved version in ownCloud 5. Only enable this features if you want to read old encrypted data. Warning: You will lose your data if you enable this App and forget your password. Encryption is not yet compatible with LDAP. AGPL Robin Appelman - 4 + 4.9 true diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml index e0301365d16..3da1913c5fc 100644 --- a/apps/files_external/appinfo/info.xml +++ b/apps/files_external/appinfo/info.xml @@ -5,7 +5,7 @@ Mount external storage sources AGPL Robin Appelman, Michael Gapczynski - 4 + 4.9 true diff --git a/apps/files_sharing/appinfo/info.xml b/apps/files_sharing/appinfo/info.xml index 6a8fc89adae..a44d0338bb6 100644 --- a/apps/files_sharing/appinfo/info.xml +++ b/apps/files_sharing/appinfo/info.xml @@ -5,7 +5,7 @@ File sharing between users AGPL Michael Gapczynski - 4 + 4.9 true diff --git a/apps/files_versions/appinfo/info.xml b/apps/files_versions/appinfo/info.xml index d806291ed1d..e4e5a365d51 100644 --- a/apps/files_versions/appinfo/info.xml +++ b/apps/files_versions/appinfo/info.xml @@ -4,7 +4,7 @@ Versions AGPL Frank Karlitschek - 4 + 4.9 true Versioning of files diff --git a/apps/user_ldap/appinfo/info.xml b/apps/user_ldap/appinfo/info.xml index de0daf146e3..30fbf687dbe 100644 --- a/apps/user_ldap/appinfo/info.xml +++ b/apps/user_ldap/appinfo/info.xml @@ -5,7 +5,7 @@ Authenticate Users by LDAP AGPL Dominik Schmidt and Arthur Schiwon - 4 + 4.9 true diff --git a/apps/user_webdavauth/appinfo/info.xml b/apps/user_webdavauth/appinfo/info.xml index dc555739f46..9a8027daee6 100755 --- a/apps/user_webdavauth/appinfo/info.xml +++ b/apps/user_webdavauth/appinfo/info.xml @@ -6,6 +6,6 @@ 1.0 AGPL Frank Karlitschek - 3 + 4.9 true diff --git a/lib/app.php b/lib/app.php index 7889339e420..90b5c58a448 100755 --- a/lib/app.php +++ b/lib/app.php @@ -664,8 +664,8 @@ class OC_App{ $version = OC_Util::getVersion(); foreach($apps as $app) { // check if the app is compatible with this version of ownCloud - $info = OC_App::getAppInfo($app); - if(!isset($info['require']) or ($version[0]>$info['require'])) { + $info = OC_App::getAppInfo($app); + if(!isset($info['require']) or (($version[0].'.'.$version[1])>$info['require'])) { OC_Log::write('core', 'App "'.$info['name'].'" ('.$app.') can\'t be used because it is not compatible with this version of ownCloud', OC_Log::ERROR); OC_App::disable( $app ); } diff --git a/lib/util.php b/lib/util.php index db715a7a0f3..255faf8df76 100755 --- a/lib/util.php +++ b/lib/util.php @@ -80,8 +80,8 @@ class OC_Util { * @return array */ public static function getVersion() { - // hint: We only can count up. So the internal version number of ownCloud 4.5 will be 4,9,0. This is not visible to the user - return array(4,85,11); + // hint: We only can count up. So the internal version number of ownCloud 4.5 will be 4.9.0. This is not visible to the user + return array(4,86,11); } /** From 3e3038cafc727649293d5eaf55ec21d84391ff24 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 2 Oct 2012 13:09:34 +0200 Subject: [PATCH 06/13] merge all possible conflicts into on array --- lib/public/share.php | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index 8b3e5581d7b..61b1a571d84 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1002,22 +1002,21 @@ class Share { } } // Check if target already exists - $targetConflict = false; - + $checkTarget = array(); if( $itemType == "file" or $itemType == "folder") { $itemList1 = self::getItems("file", $target, $shareType, $shareWith); $itemList2 = self::getItems("folder", $target, $shareType, $shareWith); - if ( !empty($itemList1) or !empty($itemList2)) { - $targetConflict = true; - } - } else { - $itemList = self::getItems($itemType, $target, $shareType, $shareWith); - if ( !empty($itemList) ) { - $targetConflict = true; + if ( !empty($itemList1) ) { + $checkTarget = array_merge($checkTarget, $itemList1); + } + if ( !empty($itemList2) ) { + $checkTarget = array_merge($checkTarget, $itemList2); } + } else { + $checkTarget = self::getItems($itemType, $target, $shareType, $shareWith); } - if ($targetConflict) { + if ( !empty($checkTarget) ) { foreach ($checkTarget as $item) { // Skip item if it is the group parent row if (isset($groupParent) && $item['id'] == $groupParent) { From 39735721ec880e6fbf29c9773f0003c5aaa37454 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Tue, 2 Oct 2012 14:10:44 +0200 Subject: [PATCH 07/13] escape identifiers in queries --- apps/files/appinfo/update.php | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/apps/files/appinfo/update.php b/apps/files/appinfo/update.php index d963b754772..bcbbc6035fa 100644 --- a/apps/files/appinfo/update.php +++ b/apps/files/appinfo/update.php @@ -1,16 +1,16 @@ execute(); +// fix webdav properties,add namespace in front of the property, update for OC4.5 +$installedVersion=OCP\Config::getAppValue('files', 'installed_version'); +if (version_compare($installedVersion, '1.1.6', '<')) { + $query = OC_DB::prepare( "SELECT `propertyname`, `propertypath`, `userid` FROM `*PREFIX*properties`" ); + $result = $query->execute(); while( $row = $result->fetchRow()){ - if ( $row["propertyname"][0] != '{' ) { - $query = OC_DB::prepare( 'UPDATE *PREFIX*properties SET propertyname = ? WHERE userid = ? AND propertypath = ?' ); + if ( $row["propertyname"][0] != '{' ) { + $query = OC_DB::prepare( 'UPDATE `*PREFIX*properties` SET `propertyname` = ? WHERE `userid` = ? AND `propertypath` = ?' ); $query->execute( array( '{DAV:}' + $row["propertyname"], $row["userid"], $row["propertypath"] )); - } - } + } + } } //update from OC 3 From 92b37119e36a6c7d418e56d7c6d73fd4625210b7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 2 Oct 2012 18:38:17 +0200 Subject: [PATCH 08/13] remove textbox after pressing "enter" even if the name is the same --- apps/files/js/filelist.js | 31 +++++++++++++++---------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 683f7db8678..4bce4a624ef 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -157,22 +157,21 @@ var FileList={ }); } - - tr.attr('data-file', newname); - var path = td.children('a.name').attr('href'); - td.children('a.name').attr('href', path.replace(encodeURIComponent(name), encodeURIComponent(newname))); - if (newname.indexOf('.') > 0 && tr.data('type') != 'dir') { - var basename=newname.substr(0,newname.lastIndexOf('.')); - } else { - var basename=newname; - } - td.children('a.name').empty(); - var span=$(''); - span.text(basename); - td.children('a.name').append(span); - if (newname.indexOf('.') > 0 && tr.data('type') != 'dir') { - span.append($(''+newname.substr(newname.lastIndexOf('.'))+'')); - } + } + tr.attr('data-file', newname); + var path = td.children('a.name').attr('href'); + td.children('a.name').attr('href', path.replace(encodeURIComponent(name), encodeURIComponent(newname))); + if (newname.indexOf('.') > 0 && tr.data('type') != 'dir') { + var basename=newname.substr(0,newname.lastIndexOf('.')); + } else { + var basename=newname; + } + td.children('a.name').empty(); + var span=$(''); + span.text(basename); + td.children('a.name').append(span); + if (newname.indexOf('.') > 0 && tr.data('type') != 'dir') { + span.append($(''+newname.substr(newname.lastIndexOf('.'))+'')); } return false; }); From db954f5aba94318280953fdd8a1af087680c1e2b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 2 Oct 2012 18:59:20 +0200 Subject: [PATCH 09/13] remove unnecessary code and add missing items to select statement --- lib/public/share.php | 16 ++-------------- 1 file changed, 2 insertions(+), 14 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index 61b1a571d84..2f06dcb8641 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1002,19 +1002,7 @@ class Share { } } // Check if target already exists - $checkTarget = array(); - if( $itemType == "file" or $itemType == "folder") { - $itemList1 = self::getItems("file", $target, $shareType, $shareWith); - $itemList2 = self::getItems("folder", $target, $shareType, $shareWith); - if ( !empty($itemList1) ) { - $checkTarget = array_merge($checkTarget, $itemList1); - } - if ( !empty($itemList2) ) { - $checkTarget = array_merge($checkTarget, $itemList2); - } - } else { - $checkTarget = self::getItems($itemType, $target, $shareType, $shareWith); - } + $checkTarget = self::getItems($itemType, $target, $shareType, $shareWith); if ( !empty($checkTarget) ) { foreach ($checkTarget as $item) { @@ -1074,7 +1062,7 @@ class Share { $parents = "'".implode("','", $parents)."'"; // Check the owner on the first search of reshares, useful for finding and deleting the reshares by a single user of a group share if (count($ids) == 1 && isset($uidOwner)) { - $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?'); + $query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?'); $result = $query->execute(array($uidOwner)); } else { $query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); From 431d92e7b2f59e905b3388052c6998e5c4772690 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schie=C3=9Fle?= Date: Tue, 2 Oct 2012 21:37:10 +0200 Subject: [PATCH 10/13] we are sharing the same file again if item_source of the already shared file and the newly shared file is the same. Therefore we can use the same target name --- lib/public/share.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/public/share.php b/lib/public/share.php index 2f06dcb8641..42c4db61521 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1014,6 +1014,9 @@ class Share { continue; } } + if ($item['uid_owner'] == $uidOwner && $item['item_source'] == \OC_FileCache::getId($itemSource) ) { + return $target; + } } if (!isset($exclude)) { $exclude = array(); From 68c8faf39ca02d1de260836ea67d6468d7a2064f Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Tue, 2 Oct 2012 16:37:39 -0400 Subject: [PATCH 11/13] Correct checking item source for share from same owner when generating item target --- lib/public/share.php | 2483 +++++++++++++++++++++--------------------- 1 file changed, 1242 insertions(+), 1241 deletions(-) diff --git a/lib/public/share.php b/lib/public/share.php index 42c4db61521..e0488b8faf6 100644 --- a/lib/public/share.php +++ b/lib/public/share.php @@ -1,1243 +1,1244 @@ -. -*/ -namespace OCP; - -\OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser'); -\OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup'); -\OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup'); -\OC_Hook::connect('OC_User', 'post_deleteGroup', 'OCP\Share', 'post_deleteGroup'); - -/** -* This class provides the ability for apps to share their content between users. -* Apps must create a backend class that implements OCP\Share_Backend and register it with this class. -*/ -class Share { - - const SHARE_TYPE_USER = 0; - const SHARE_TYPE_GROUP = 1; - const SHARE_TYPE_LINK = 3; - const SHARE_TYPE_EMAIL = 4; - const SHARE_TYPE_CONTACT = 5; - const SHARE_TYPE_REMOTE = 6; - - /** CRUDS permissions (Create, Read, Update, Delete, Share) using a bitmask - * Construct permissions for share() and setPermissions with Or (|) e.g. Give user read and update permissions: PERMISSION_READ | PERMISSION_UPDATE - * Check if permission is granted with And (&) e.g. Check if delete is granted: if ($permissions & PERMISSION_DELETE) - * Remove permissions with And (&) and Not (~) e.g. Remove the update permission: $permissions &= ~PERMISSION_UPDATE - * Apps are required to handle permissions on their own, this class only stores and manages the permissions of shares - */ - const PERMISSION_CREATE = 4; - const PERMISSION_READ = 1; - const PERMISSION_UPDATE = 2; - const PERMISSION_DELETE = 8; - const PERMISSION_SHARE = 16; - - const FORMAT_NONE = -1; - const FORMAT_STATUSES = -2; - const FORMAT_SOURCES = -3; - - private static $shareTypeUserAndGroups = -1; - private static $shareTypeGroupUserUnique = 2; - private static $backends = array(); - private static $backendTypes = array(); - - /** - * @brief Register a sharing backend class that implements OCP\Share_Backend for an item type - * @param string Item type - * @param string Backend class - * @param string (optional) Depends on item type - * @param array (optional) List of supported file extensions if this item type depends on files - * @return Returns true if backend is registered or false if error - */ - public static function registerBackend($itemType, $class, $collectionOf = null, $supportedFileExtensions = null) { - if (self::isEnabled()) { - if (!isset(self::$backendTypes[$itemType])) { - self::$backendTypes[$itemType] = array('class' => $class, 'collectionOf' => $collectionOf, 'supportedFileExtensions' => $supportedFileExtensions); - if(count(self::$backendTypes) === 1) { - \OC_Util::addScript('core', 'share'); - \OC_Util::addStyle('core', 'share'); - } - return true; - } - \OC_Log::write('OCP\Share', 'Sharing backend '.$class.' not registered, '.self::$backendTypes[$itemType]['class'].' is already registered for '.$itemType, \OC_Log::WARN); - } - return false; - } - - /** - * @brief Check if the Share API is enabled - * @return Returns true if enabled or false - * - * The Share API is enabled by default if not configured - * - */ - public static function isEnabled() { - if (\OC_Appconfig::getValue('core', 'shareapi_enabled', 'yes') == 'yes') { - return true; - } - return false; - } - - /** - * @brief Get the items of item type shared with the current user - * @param string Item type - * @param int Format (optional) Format type must be defined by the backend - * @param int Number of items to return (optional) Returns all by default - * @return Return depends on format - */ - public static function getItemsSharedWith($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { - return self::getItems($itemType, null, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, $limit, $includeCollections); - } - - /** - * @brief Get the item of item type shared with the current user - * @param string Item type - * @param string Item target - * @param int Format (optional) Format type must be defined by the backend - * @return Return depends on format - */ - public static function getItemSharedWith($itemType, $itemTarget, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { - return self::getItems($itemType, $itemTarget, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, 1, $includeCollections); - } - - /** - * @brief Get the item of item type shared with the current user by source - * @param string Item type - * @param string Item source - * @param int Format (optional) Format type must be defined by the backend - * @return Return depends on format - */ - public static function getItemSharedWithBySource($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { - return self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, 1, $includeCollections, true); - } - - /** - * @brief Get the item of item type shared by a link - * @param string Item type - * @param string Item source - * @param string Owner of link - * @return Item - */ - public static function getItemSharedWithByLink($itemType, $itemSource, $uidOwner) { - return self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, null, 1); - } - - /** - * @brief Get the shared items of item type owned by the current user - * @param string Item type - * @param int Format (optional) Format type must be defined by the backend - * @param int Number of items to return (optional) Returns all by default - * @return Return depends on format - */ - public static function getItemsShared($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { - return self::getItems($itemType, null, null, null, \OC_User::getUser(), $format, $parameters, $limit, $includeCollections); - } - - /** - * @brief Get the shared item of item type owned by the current user - * @param string Item type - * @param string Item source - * @param int Format (optional) Format type must be defined by the backend - * @return Return depends on format - */ - public static function getItemShared($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { - return self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), $format, $parameters, -1, $includeCollections); - } - - /** - * @brief Share an item with a user, group, or via private link - * @param string Item type - * @param string Item source - * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK - * @param string User or group the item is being shared with - * @param int CRUDS permissions - * @return bool Returns true on success or false on failure - */ - public static function shareItem($itemType, $itemSource, $shareType, $shareWith, $permissions) { - $uidOwner = \OC_User::getUser(); - // Verify share type and sharing conditions are met - if ($shareType === self::SHARE_TYPE_USER) { - if ($shareWith == $uidOwner) { - $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' is the item owner'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - if (!\OC_User::userExists($shareWith)) { - $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' does not exist'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - if (\OC_Appconfig::getValue('core', 'shareapi_share_policy', 'global') == 'groups_only') { - $inGroup = array_intersect(\OC_Group::getUserGroups($uidOwner), \OC_Group::getUserGroups($shareWith)); - if (empty($inGroup)) { - $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' is not a member of any groups that '.$uidOwner.' is a member of'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - // Check if the item source is already shared with the user, either from the same owner or a different user - if ($checkExists = self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { - // Only allow the same share to occur again if it is the same owner and is not a user share, this use case is for increasing permissions for a specific user - if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { - $message = 'Sharing '.$itemSource.' failed, because this item is already shared with '.$shareWith; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - } else if ($shareType === self::SHARE_TYPE_GROUP) { - if (!\OC_Group::groupExists($shareWith)) { - $message = 'Sharing '.$itemSource.' failed, because the group '.$shareWith.' does not exist'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - if (!\OC_Group::inGroup($uidOwner, $shareWith)) { - $message = 'Sharing '.$itemSource.' failed, because '.$uidOwner.' is not a member of the group '.$shareWith; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - // Check if the item source is already shared with the group, either from the same owner or a different user - // The check for each user in the group is done inside the put() function - if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_GROUP, $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { - // Only allow the same share to occur again if it is the same owner and is not a group share, this use case is for increasing permissions for a specific user - if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { - $message = 'Sharing '.$itemSource.' failed, because this item is already shared with '.$shareWith; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - // Convert share with into an array with the keys group and users - $group = $shareWith; - $shareWith = array(); - $shareWith['group'] = $group; - $shareWith['users'] = array_diff(\OC_Group::usersInGroup($group), array($uidOwner)); - } else if ($shareType === self::SHARE_TYPE_LINK) { - if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') == 'yes') { - if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, null, 1)) { - // If password is set delete the old link - if (isset($shareWith)) { - self::delete($checkExists['id']); - } else { - $message = 'Sharing '.$itemSource.' failed, because this item is already shared with a link'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - // Generate hash of password - same method as user passwords - if (isset($shareWith)) { - $forcePortable = (CRYPT_BLOWFISH != 1); - $hasher = new \PasswordHash(8, $forcePortable); - $shareWith = $hasher->HashPassword($shareWith.\OC_Config::getValue('passwordsalt', '')); - } - return self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions); - } - $message = 'Sharing '.$itemSource.' failed, because sharing with links is not allowed'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - return false; -// } else if ($shareType === self::SHARE_TYPE_CONTACT) { -// if (!\OC_App::isEnabled('contacts')) { -// $message = 'Sharing '.$itemSource.' failed, because the contacts app is not enabled'; -// \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); -// return false; -// } -// $vcard = \OC_Contacts_App::getContactVCard($shareWith); -// if (!isset($vcard)) { -// $message = 'Sharing '.$itemSource.' failed, because the contact does not exist'; -// \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); -// throw new \Exception($message); -// } -// $details = \OC_Contacts_VCard::structureContact($vcard); -// // TODO Add ownCloud user to contacts vcard -// if (!isset($details['EMAIL'])) { -// $message = 'Sharing '.$itemSource.' failed, because no email address is associated with the contact'; -// \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); -// throw new \Exception($message); -// } -// return self::shareItem($itemType, $itemSource, self::SHARE_TYPE_EMAIL, $details['EMAIL'], $permissions); - } else { - // Future share types need to include their own conditions - $message = 'Share type '.$shareType.' is not valid for '.$itemSource; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - // If the item is a folder, scan through the folder looking for equivalent item types - if ($itemType == 'folder') { - $parentFolder = self::put('folder', $itemSource, $shareType, $shareWith, $uidOwner, $permissions, true); - if ($parentFolder && $files = \OC_Files::getDirectoryContent($itemSource)) { - for ($i = 0; $i < count($files); $i++) { - $name = substr($files[$i]['name'], strpos($files[$i]['name'], $itemSource) - strlen($itemSource)); - if ($files[$i]['mimetype'] == 'httpd/unix-directory' && $children = \OC_Files::getDirectoryContent($name, '/')) { - // Continue scanning into child folders - array_push($files, $children); - } else { - // Check file extension for an equivalent item type to convert to - $extension = strtolower(substr($itemSource, strrpos($itemSource, '.') + 1)); - foreach (self::$backends as $type => $backend) { - if (isset($backend->dependsOn) && $backend->dependsOn == 'file' && isset($backend->supportedFileExtensions) && in_array($extension, $backend->supportedFileExtensions)) { - $itemType = $type; - break; - } - } - // Pass on to put() to check if this item should be converted, the item won't be inserted into the database unless it can be converted - self::put($itemType, $name, $shareType, $shareWith, $uidOwner, $permissions, $parentFolder); - } - } - return true; - } - return false; - } else { - // Put the item into the database - return self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions); - } - } - - /** - * @brief Unshare an item from a user, group, or delete a private link - * @param string Item type - * @param string Item source - * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK - * @param string User or group the item is being shared with - * @return Returns true on success or false on failure - */ - public static function unshare($itemType, $itemSource, $shareType, $shareWith) { - if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(), self::FORMAT_NONE, null, 1)) { - self::delete($item['id']); - return true; - } - return false; - } - - /** - * @brief Unshare an item shared with the current user - * @param string Item type - * @param string Item target - * @return Returns true on success or false on failure - * - * Unsharing from self is not allowed for items inside collections - * - */ - public static function unshareFromSelf($itemType, $itemTarget) { - if ($item = self::getItemSharedWith($itemType, $itemTarget)) { - if ((int)$item['share_type'] === self::SHARE_TYPE_GROUP) { - // Insert an extra row for the group share and set permission to 0 to prevent it from showing up for the user - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - $query->execute(array($item['item_type'], $item['item_source'], $item['item_target'], $item['id'], self::$shareTypeGroupUserUnique, \OC_User::getUser(), $item['uid_owner'], 0, $item['stime'], $item['file_source'], $item['file_target'])); - \OC_DB::insertid('*PREFIX*share'); - // Delete all reshares by this user of the group share - self::delete($item['id'], true, \OC_User::getUser()); - } else if ((int)$item['share_type'] === self::$shareTypeGroupUserUnique) { - // Set permission to 0 to prevent it from showing up for the user - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = ? WHERE `id` = ?'); - $query->execute(array(0, $item['id'])); - self::delete($item['id'], true); - } else { - self::delete($item['id']); - } - return true; - } - return false; - } - - /** - * @brief Set the permissions of an item for a specific user or group - * @param string Item type - * @param string Item source - * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK - * @param string User or group the item is being shared with - * @param int CRUDS permissions - * @return Returns true on success or false on failure - */ - public static function setPermissions($itemType, $itemSource, $shareType, $shareWith, $permissions) { - if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(), self::FORMAT_NONE, null, 1, false)) { - // Check if this item is a reshare and verify that the permissions granted don't exceed the parent shared item - if (isset($item['parent'])) { - $query = \OC_DB::prepare('SELECT `permissions` FROM `*PREFIX*share` WHERE `id` = ?', 1); - $result = $query->execute(array($item['parent']))->fetchRow(); - if (~(int)$result['permissions'] & $permissions) { - $message = 'Setting permissions for '.$itemSource.' failed, because the permissions exceed permissions granted to '.\OC_User::getUser(); - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = ? WHERE `id` = ?'); - $query->execute(array($permissions, $item['id'])); - // Check if permissions were removed - if ($item['permissions'] & ~$permissions) { - // If share permission is removed all reshares must be deleted - if (($item['permissions'] & self::PERMISSION_SHARE) && (~$permissions & self::PERMISSION_SHARE)) { - self::delete($item['id'], true); - } else { - $ids = array(); - $parents = array($item['id']); - while (!empty($parents)) { - $parents = "'".implode("','", $parents)."'"; - $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); - $result = $query->execute(); - // Reset parents array, only go through loop again if items are found that need permissions removed - $parents = array(); - while ($item = $result->fetchRow()) { - // Check if permissions need to be removed - if ($item['permissions'] & ~$permissions) { - // Add to list of items that need permissions removed - $ids[] = $item['id']; - $parents[] = $item['id']; - } - } - } - // Remove the permissions for all reshares of this item - if (!empty($ids)) { - $ids = "'".implode("','", $ids)."'"; - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = `permissions` & ? WHERE `id` IN ('.$ids.')'); - $query->execute(array($permissions)); - } - } - } - return true; - } - $message = 'Setting permissions for '.$itemSource.' failed, because the item was not found'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - - public static function setExpirationDate($itemType, $itemSource, $date) { - if ($items = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), self::FORMAT_NONE, null, -1, false)) { - if (!empty($items)) { - if ($date == '') { - $date = null; - } else { - $date = new \DateTime($date); - $date = date('Y-m-d H:i', $date->format('U') - $date->getOffset()); - } - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `expiration` = ? WHERE `id` = ?'); - foreach ($items as $item) { - $query->execute(array($date, $item['id'])); - } - return true; - } - } - return false; - } - - /** - * @brief Get the backend class for the specified item type - * @param string Item type - * @return Sharing backend object - */ - private static function getBackend($itemType) { - if (isset(self::$backends[$itemType])) { - return self::$backends[$itemType]; - } else if (isset(self::$backendTypes[$itemType]['class'])) { - $class = self::$backendTypes[$itemType]['class']; - if (class_exists($class)) { - self::$backends[$itemType] = new $class; - if (!(self::$backends[$itemType] instanceof Share_Backend)) { - $message = 'Sharing backend '.$class.' must implement the interface OCP\Share_Backend'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - return self::$backends[$itemType]; - } else { - $message = 'Sharing backend '.$class.' not found'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } - $message = 'Sharing backend for '.$itemType.' not found'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - - /** - * @brief Get a list of collection item types for the specified item type - * @param string Item type - * @return array - */ - private static function getCollectionItemTypes($itemType) { - $collectionTypes = array($itemType); - foreach (self::$backendTypes as $type => $backend) { - if (in_array($backend['collectionOf'], $collectionTypes)) { - $collectionTypes[] = $type; - } - } - if (!self::getBackend($itemType) instanceof Share_Backend_Collection) { - unset($collectionTypes[0]); - } - // Return array if collections were found or the item type is a collection itself - collections can be inside collections - if (count($collectionTypes) > 0) { - return $collectionTypes; - } - return false; - } - - /** - * @brief Get shared items from the database - * @param string Item type - * @param string Item source or target (optional) - * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, SHARE_TYPE_LINK, $shareTypeUserAndGroups, or $shareTypeGroupUserUnique - * @param string User or group the item is being shared with - * @param string User that is the owner of shared items (optional) - * @param int Format to convert items to with formatItems() - * @param mixed Parameters to pass to formatItems() - * @param int Number of items to return, -1 to return all matches (optional) - * @param bool Include collection item types (optional) - * @return mixed - * - * See public functions getItem(s)... for parameter usage - * - */ - private static function getItems($itemType, $item = null, $shareType = null, $shareWith = null, $uidOwner = null, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false, $itemShareWithBySource = false) { - if (!self::isEnabled()) { - if ($limit == 1 || (isset($uidOwner) && isset($item))) { - return false; - } else { - return array(); - } - } - $backend = self::getBackend($itemType); - // Get filesystem root to add it to the file target and remove from the file source, match file_source with the file cache - if ($itemType == 'file' || $itemType == 'folder') { - $root = \OC_Filesystem::getRoot(); - $where = 'INNER JOIN `*PREFIX*fscache` ON `file_source` = `*PREFIX*fscache`.`id`'; - if (!isset($item)) { - $where .= ' WHERE `file_target` IS NOT NULL'; - } - $fileDependent = true; - $queryArgs = array(); - } else { - $fileDependent = false; - $root = ''; - if ($includeCollections && !isset($item) && ($collectionTypes = self::getCollectionItemTypes($itemType))) { - // If includeCollections is true, find collections of this item type, e.g. a music album contains songs - if (!in_array($itemType, $collectionTypes)) { - $itemTypes = array_merge(array($itemType), $collectionTypes); - } else { - $itemTypes = $collectionTypes; - } - $placeholders = join(',', array_fill(0, count($itemTypes), '?')); - $where .= ' WHERE item_type IN ('.$placeholders.'))'; - $queryArgs = $itemTypes; - } else { - $where = ' WHERE `item_type` = ?'; - $queryArgs = array($itemType); - } - } - if (isset($shareType)) { - // Include all user and group items - if ($shareType == self::$shareTypeUserAndGroups && isset($shareWith)) { - $where .= ' AND `share_type` IN (?,?,?)'; - $queryArgs[] = self::SHARE_TYPE_USER; - $queryArgs[] = self::SHARE_TYPE_GROUP; - $queryArgs[] = self::$shareTypeGroupUserUnique; - $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith)); - $placeholders = join(',', array_fill(0, count($userAndGroups), '?')); - $where .= ' AND `share_with` IN ('.$placeholders.')'; - $queryArgs = array_merge($queryArgs, $userAndGroups); - // Don't include own group shares - $where .= ' AND `uid_owner` != ?'; - $queryArgs[] = $shareWith; - } else { - $where .= ' AND `share_type` = ?'; - $queryArgs[] = $shareType; - if (isset($shareWith)) { - $where .= ' AND `share_with` = ?'; - $queryArgs[] = $shareWith; - } - } - } - if (isset($uidOwner)) { - $where .= ' AND `uid_owner` = ?'; - $queryArgs[] = $uidOwner; - if (!isset($shareType)) { - // Prevent unique user targets for group shares from being selected - $where .= ' AND `share_type` != ?'; - $queryArgs[] = self::$shareTypeGroupUserUnique; - } - if ($itemType == 'file' || $itemType == 'folder') { - $column = 'file_source'; - } else { - $column = 'item_source'; - } - } else { - if ($itemType == 'file' || $itemType == 'folder') { - $column = 'file_target'; - } else { - $column = 'item_target'; - } - } - if (isset($item)) { - if ($includeCollections && $collectionTypes = self::getCollectionItemTypes($itemType)) { - $where .= ' AND ('; - } else { - $where .= ' AND'; - } - // If looking for own shared items, check item_source else check item_target - if (isset($uidOwner) || $itemShareWithBySource) { - // If item type is a file, file source needs to be checked in case the item was converted - if ($itemType == 'file' || $itemType == 'folder') { - $where .= ' `file_source` = ?'; - $column = 'file_source'; - } else { - $where .= ' `item_source` = ?'; - $column = 'item_source'; - } - } else { - if ($itemType == 'file' || $itemType == 'folder') { - $where .= ' `file_target` = ?'; - $item = \OC_Filesystem::normalizePath($item); - } else { - $where .= ' `item_target` = ?'; - } - } - $queryArgs[] = $item; - if ($includeCollections && $collectionTypes) { - $placeholders = join(',', array_fill(0, count($collectionTypes), '?')); - $where .= ' OR item_type IN ('.$placeholders.'))'; - $queryArgs = array_merge($queryArgs, $collectionTypes); - } - } - if ($limit != -1 && !$includeCollections) { - if ($shareType == self::$shareTypeUserAndGroups) { - // Make sure the unique user target is returned if it exists, unique targets should follow the group share in the database - // If the limit is not 1, the filtering can be done later - $where .= ' ORDER BY `*PREFIX*share`.`id` DESC'; - } - // The limit must be at least 3, because filtering needs to be done - if ($limit < 3) { - $queryLimit = 3; - } else { - $queryLimit = $limit; - } - } else { - $queryLimit = null; - } - // TODO Optimize selects - if ($format == self::FORMAT_STATUSES) { - if ($itemType == 'file' || $itemType == 'folder') { - $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `file_source`, `path`, `expiration`'; - } else { - $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `expiration`'; - } - } else { - if (isset($uidOwner)) { - if ($itemType == 'file' || $itemType == 'folder') { - $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `file_source`, `path`, `permissions`, `stime`, `expiration`'; - } else { - $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `share_with`, `permissions`, `stime`, `file_source`, `expiration`'; - } - } else { - if ($fileDependent) { - if (($itemType == 'file' || $itemType == 'folder') && $format == \OC_Share_Backend_File::FORMAT_FILE_APP || $format == \OC_Share_Backend_File::FORMAT_FILE_APP_ROOT) { - $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `file_source`, `path`, `file_target`, `permissions`, `expiration`, `name`, `ctime`, `mtime`, `mimetype`, `size`, `encrypted`, `versioned`, `writable`'; - } else { - $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `item_target`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `uid_owner`, `file_source`, `path`, `file_target`, `permissions`, `stime`, `expiration`'; - } - } else { - $select = '*'; - } - } - } - $root = strlen($root); - $query = \OC_DB::prepare('SELECT '.$select.' FROM `*PREFIX*share` '.$where, $queryLimit); - $result = $query->execute($queryArgs); - $items = array(); - $targets = array(); - while ($row = $result->fetchRow()) { - // Filter out duplicate group shares for users with unique targets - if ($row['share_type'] == self::$shareTypeGroupUserUnique && isset($items[$row['parent']])) { - $row['share_type'] = self::SHARE_TYPE_GROUP; - $row['share_with'] = $items[$row['parent']]['share_with']; - // Remove the parent group share - unset($items[$row['parent']]); - if ($row['permissions'] == 0) { - continue; - } - } else if (!isset($uidOwner)) { - // Check if the same target already exists - if (isset($targets[$row[$column]])) { - // Check if the same owner shared with the user twice through a group and user share - this is allowed - $id = $targets[$row[$column]]; - if ($items[$id]['uid_owner'] == $row['uid_owner']) { - // Switch to group share type to ensure resharing conditions aren't bypassed - if ($items[$id]['share_type'] != self::SHARE_TYPE_GROUP) { - $items[$id]['share_type'] = self::SHARE_TYPE_GROUP; - $items[$id]['share_with'] = $row['share_with']; - } - // Switch ids if sharing permission is granted on only one share to ensure correct parent is used if resharing - if (~(int)$items[$id]['permissions'] & self::PERMISSION_SHARE && (int)$row['permissions'] & self::PERMISSION_SHARE) { - $items[$row['id']] = $items[$id]; - unset($items[$id]); - $id = $row['id']; - } - // Combine the permissions for the item - $items[$id]['permissions'] |= (int)$row['permissions']; - continue; - } - } else { - $targets[$row[$column]] = $row['id']; - } - } - // Remove root from file source paths if retrieving own shared items - if (isset($uidOwner) && isset($row['path'])) { - if (isset($row['parent'])) { - $row['path'] = '/Shared/'.basename($row['path']); - } else { - $row['path'] = substr($row['path'], $root); - } - } - if (isset($row['expiration'])) { - $time = new \DateTime(); - if ($row['expiration'] < date('Y-m-d H:i', $time->format('U') - $time->getOffset())) { - self::delete($row['id']); - continue; - } - } - $items[$row['id']] = $row; - } - if (!empty($items)) { - $collectionItems = array(); - foreach ($items as &$row) { - // Return only the item instead of a 2-dimensional array - if ($limit == 1 && $row['item_type'] == $itemType && $row[$column] == $item) { - if ($format == self::FORMAT_NONE) { - return $row; - } else { - break; - } - } - // Check if this is a collection of the requested item type - if ($includeCollections && $collectionTypes && in_array($row['item_type'], $collectionTypes)) { - if (($collectionBackend = self::getBackend($row['item_type'])) && $collectionBackend instanceof Share_Backend_Collection) { - // Collections can be inside collections, check if the item is a collection - if (isset($item) && $row['item_type'] == $itemType && $row[$column] == $item) { - $collectionItems[] = $row; - } else { - $collection = array(); - $collection['item_type'] = $row['item_type']; - if ($row['item_type'] == 'file' || $row['item_type'] == 'folder') { - $collection['path'] = basename($row['path']); - } - $row['collection'] = $collection; - // Fetch all of the children sources - $children = $collectionBackend->getChildren($row[$column]); - foreach ($children as $child) { - $childItem = $row; - $childItem['item_type'] = $itemType; - if ($row['item_type'] != 'file' && $row['item_type'] != 'folder') { - $childItem['item_source'] = $child['source']; - $childItem['item_target'] = $child['target']; - } - if ($backend instanceof Share_Backend_File_Dependent) { - if ($row['item_type'] == 'file' || $row['item_type'] == 'folder') { - $childItem['file_source'] = $child['source']; - } else { - $childItem['file_source'] = \OC_FileCache::getId($child['file_path']); - } - $childItem['file_target'] = \OC_Filesystem::normalizePath($child['file_path']); - } - if (isset($item)) { - if ($childItem[$column] == $item) { - // Return only the item instead of a 2-dimensional array - if ($limit == 1) { - if ($format == self::FORMAT_NONE) { - return $childItem; - } else { - // Unset the items array and break out of both loops - $items = array(); - $items[] = $childItem; - break 2; - } - } else { - $collectionItems[] = $childItem; - } - } - } else { - $collectionItems[] = $childItem; - } - } - } - } - // Remove collection item - unset($items[$row['id']]); - } - } - if (!empty($collectionItems)) { - $items = array_merge($items, $collectionItems); - } - if ($format == self::FORMAT_NONE) { - return $items; - } else if ($format == self::FORMAT_STATUSES) { - $statuses = array(); - // Switch column to path for files and folders, used for determining statuses inside of folders - if ($itemType == 'file' || $itemType == 'folder') { - $column = 'path'; - } - foreach ($items as $item) { - if ($item['share_type'] == self::SHARE_TYPE_LINK) { - $statuses[$item[$column]] = true; - } else if (!isset($statuses[$item[$column]])) { - $statuses[$item[$column]] = false; - } - } - return $statuses; - } else { - return $backend->formatItems($items, $format, $parameters); - } - } else if ($limit == 1 || (isset($uidOwner) && isset($item))) { - return false; - } - return array(); - } - - /** - * @brief Put shared item into the database - * @param string Item type - * @param string Item source - * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK - * @param string User or group the item is being shared with - * @param int CRUDS permissions - * @param bool|array Parent folder target (optional) - * @return bool Returns true on success or false on failure - */ - private static function put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, $parentFolder = null) { - $backend = self::getBackend($itemType); - // Check if this is a reshare - if ($checkReshare = self::getItemSharedWithBySource($itemType, $itemSource, self::FORMAT_NONE, null, true)) { - // Check if attempting to share back to owner - if ($checkReshare['uid_owner'] == $shareWith && $shareType == self::SHARE_TYPE_USER) { - $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' is the original sharer'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - // Check if share permissions is granted - if ((int)$checkReshare['permissions'] & self::PERMISSION_SHARE) { - if (~(int)$checkReshare['permissions'] & $permissions) { - $message = 'Sharing '.$itemSource.' failed, because the permissions exceed permissions granted to '.$uidOwner; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } else { - // TODO Don't check if inside folder - $parent = $checkReshare['id']; - $itemSource = $checkReshare['item_source']; - $fileSource = $checkReshare['file_source']; - $suggestedItemTarget = $checkReshare['item_target']; - $suggestedFileTarget = $checkReshare['file_target']; - $filePath = $checkReshare['file_target']; - } - } else { - $message = 'Sharing '.$itemSource.' failed, because resharing is not allowed'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } else { - $parent = null; - $suggestedItemTarget = null; - $suggestedFileTarget = null; - if (!$backend->isValidSource($itemSource, $uidOwner)) { - $message = 'Sharing '.$itemSource.' failed, because the sharing backend for '.$itemType.' could not find its source'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - $parent = null; - if ($backend instanceof Share_Backend_File_Dependent) { - $filePath = $backend->getFilePath($itemSource, $uidOwner); - if ($itemType == 'file' || $itemType == 'folder') { - $fileSource = $itemSource; - } else { - $fileSource = \OC_FileCache::getId($filePath); - } - if ($fileSource == -1) { - $message = 'Sharing '.$itemSource.' failed, because the file could not be found in the file cache'; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - } else { - $filePath = null; - $fileSource = null; - } - } - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - // Share with a group - if ($shareType == self::SHARE_TYPE_GROUP) { - $groupItemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith['group'], $uidOwner, $suggestedItemTarget); - if (isset($fileSource)) { - if ($parentFolder) { - if ($parentFolder === true) { - $groupFileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith['group'], $uidOwner, $suggestedFileTarget); - // Set group default file target for future use - $parentFolders[0]['folder'] = $groupFileTarget; - } else { - // Get group default file target - $groupFileTarget = $parentFolder[0]['folder'].$itemSource; - $parent = $parentFolder[0]['id']; - } - } else { - $groupFileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith['group'], $uidOwner, $suggestedFileTarget); - } - } else { - $groupFileTarget = null; - } - $query->execute(array($itemType, $itemSource, $groupItemTarget, $parent, $shareType, $shareWith['group'], $uidOwner, $permissions, time(), $fileSource, $groupFileTarget)); - // Save this id, any extra rows for this group share will need to reference it - $parent = \OC_DB::insertid('*PREFIX*share'); - // Loop through all users of this group in case we need to add an extra row - foreach ($shareWith['users'] as $uid) { - $itemTarget = self::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedItemTarget, $parent); - if (isset($fileSource)) { - if ($parentFolder) { - if ($parentFolder === true) { - $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedFileTarget, $parent); - if ($fileTarget != $groupFileTarget) { - $parentFolders[$uid]['folder'] = $fileTarget; - } - } else if (isset($parentFolder[$uid])) { - $fileTarget = $parentFolder[$uid]['folder'].$itemSource; - $parent = $parentFolder[$uid]['id']; - } - } else { - $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedFileTarget, $parent); - } - } else { - $fileTarget = null; - } - // Insert an extra row for the group share if the item or file target is unique for this user - if ($itemTarget != $groupItemTarget || (isset($fileSource) && $fileTarget != $groupFileTarget)) { - $query->execute(array($itemType, $itemSource, $itemTarget, $parent, self::$shareTypeGroupUserUnique, $uid, $uidOwner, $permissions, time(), $fileSource, $fileTarget)); - \OC_DB::insertid('*PREFIX*share'); - } - } - if ($parentFolder === true) { - // Return parent folders to preserve file target paths for potential children - return $parentFolders; - } - } else { - $itemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedItemTarget); - if (isset($fileSource)) { - if ($parentFolder) { - if ($parentFolder === true) { - $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, $suggestedFileTarget); - $parentFolders['folder'] = $fileTarget; - } else { - $fileTarget = $parentFolder['folder'].$itemSource; - $parent = $parentFolder['id']; - } - } else { - $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, $suggestedFileTarget); - } - } else { - $fileTarget = null; - } - $query->execute(array($itemType, $itemSource, $itemTarget, $parent, $shareType, $shareWith, $uidOwner, $permissions, time(), $fileSource, $fileTarget)); - $id = \OC_DB::insertid('*PREFIX*share'); - if ($parentFolder === true) { - $parentFolders['id'] = $id; - // Return parent folder to preserve file target paths for potential children - return $parentFolders; - } - } - return true; - } - - /** - * @brief Generate a unique target for the item - * @param string Item type - * @param string Item source - * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK - * @param string User or group the item is being shared with - * @param string The suggested target originating from a reshare (optional) - * @param int The id of the parent group share (optional) - * @return string Item target - */ - private static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedTarget = null, $groupParent = null) { - $backend = self::getBackend($itemType); - if ($shareType == self::SHARE_TYPE_LINK) { - if (isset($suggestedTarget)) { - return $suggestedTarget; - } - return $backend->generateTarget($itemSource, false); - } else { - if ($itemType == 'file' || $itemType == 'folder') { - $column = 'file_target'; - } else { - $column = 'item_target'; - } - if ($shareType == self::SHARE_TYPE_USER) { - // Share with is a user, so set share type to user and groups - $shareType = self::$shareTypeUserAndGroups; - $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith)); - } else { - $userAndGroups = false; - } - $exclude = null; - // Backend has 3 opportunities to generate a unique target - for ($i = 0; $i < 2; $i++) { - // Check if suggested target exists first - if ($i == 0 && isset($suggestedTarget)) { - $target = $suggestedTarget; - } else { - if ($shareType == self::SHARE_TYPE_GROUP) { - $target = $backend->generateTarget($itemSource, false, $exclude); - } else { - $target = $backend->generateTarget($itemSource, $shareWith, $exclude); - } - if (is_array($exclude) && in_array($target, $exclude)) { - break; - } - } - // Check if target already exists - $checkTarget = self::getItems($itemType, $target, $shareType, $shareWith); - - if ( !empty($checkTarget) ) { - foreach ($checkTarget as $item) { - // Skip item if it is the group parent row - if (isset($groupParent) && $item['id'] == $groupParent) { - if (count($checkTarget) == 1) { - return $target; - } else { - continue; - } - } - if ($item['uid_owner'] == $uidOwner && $item['item_source'] == \OC_FileCache::getId($itemSource) ) { +. +*/ +namespace OCP; + +\OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser'); +\OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup'); +\OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup'); +\OC_Hook::connect('OC_User', 'post_deleteGroup', 'OCP\Share', 'post_deleteGroup'); + +/** +* This class provides the ability for apps to share their content between users. +* Apps must create a backend class that implements OCP\Share_Backend and register it with this class. +*/ +class Share { + + const SHARE_TYPE_USER = 0; + const SHARE_TYPE_GROUP = 1; + const SHARE_TYPE_LINK = 3; + const SHARE_TYPE_EMAIL = 4; + const SHARE_TYPE_CONTACT = 5; + const SHARE_TYPE_REMOTE = 6; + + /** CRUDS permissions (Create, Read, Update, Delete, Share) using a bitmask + * Construct permissions for share() and setPermissions with Or (|) e.g. Give user read and update permissions: PERMISSION_READ | PERMISSION_UPDATE + * Check if permission is granted with And (&) e.g. Check if delete is granted: if ($permissions & PERMISSION_DELETE) + * Remove permissions with And (&) and Not (~) e.g. Remove the update permission: $permissions &= ~PERMISSION_UPDATE + * Apps are required to handle permissions on their own, this class only stores and manages the permissions of shares + */ + const PERMISSION_CREATE = 4; + const PERMISSION_READ = 1; + const PERMISSION_UPDATE = 2; + const PERMISSION_DELETE = 8; + const PERMISSION_SHARE = 16; + + const FORMAT_NONE = -1; + const FORMAT_STATUSES = -2; + const FORMAT_SOURCES = -3; + + private static $shareTypeUserAndGroups = -1; + private static $shareTypeGroupUserUnique = 2; + private static $backends = array(); + private static $backendTypes = array(); + + /** + * @brief Register a sharing backend class that implements OCP\Share_Backend for an item type + * @param string Item type + * @param string Backend class + * @param string (optional) Depends on item type + * @param array (optional) List of supported file extensions if this item type depends on files + * @return Returns true if backend is registered or false if error + */ + public static function registerBackend($itemType, $class, $collectionOf = null, $supportedFileExtensions = null) { + if (self::isEnabled()) { + if (!isset(self::$backendTypes[$itemType])) { + self::$backendTypes[$itemType] = array('class' => $class, 'collectionOf' => $collectionOf, 'supportedFileExtensions' => $supportedFileExtensions); + if(count(self::$backendTypes) === 1) { + \OC_Util::addScript('core', 'share'); + \OC_Util::addStyle('core', 'share'); + } + return true; + } + \OC_Log::write('OCP\Share', 'Sharing backend '.$class.' not registered, '.self::$backendTypes[$itemType]['class'].' is already registered for '.$itemType, \OC_Log::WARN); + } + return false; + } + + /** + * @brief Check if the Share API is enabled + * @return Returns true if enabled or false + * + * The Share API is enabled by default if not configured + * + */ + public static function isEnabled() { + if (\OC_Appconfig::getValue('core', 'shareapi_enabled', 'yes') == 'yes') { + return true; + } + return false; + } + + /** + * @brief Get the items of item type shared with the current user + * @param string Item type + * @param int Format (optional) Format type must be defined by the backend + * @param int Number of items to return (optional) Returns all by default + * @return Return depends on format + */ + public static function getItemsSharedWith($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { + return self::getItems($itemType, null, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, $limit, $includeCollections); + } + + /** + * @brief Get the item of item type shared with the current user + * @param string Item type + * @param string Item target + * @param int Format (optional) Format type must be defined by the backend + * @return Return depends on format + */ + public static function getItemSharedWith($itemType, $itemTarget, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemTarget, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, 1, $includeCollections); + } + + /** + * @brief Get the item of item type shared with the current user by source + * @param string Item type + * @param string Item source + * @param int Format (optional) Format type must be defined by the backend + * @return Return depends on format + */ + public static function getItemSharedWithBySource($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, \OC_User::getUser(), null, $format, $parameters, 1, $includeCollections, true); + } + + /** + * @brief Get the item of item type shared by a link + * @param string Item type + * @param string Item source + * @param string Owner of link + * @return Item + */ + public static function getItemSharedWithByLink($itemType, $itemSource, $uidOwner) { + return self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, null, 1); + } + + /** + * @brief Get the shared items of item type owned by the current user + * @param string Item type + * @param int Format (optional) Format type must be defined by the backend + * @param int Number of items to return (optional) Returns all by default + * @return Return depends on format + */ + public static function getItemsShared($itemType, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false) { + return self::getItems($itemType, null, null, null, \OC_User::getUser(), $format, $parameters, $limit, $includeCollections); + } + + /** + * @brief Get the shared item of item type owned by the current user + * @param string Item type + * @param string Item source + * @param int Format (optional) Format type must be defined by the backend + * @return Return depends on format + */ + public static function getItemShared($itemType, $itemSource, $format = self::FORMAT_NONE, $parameters = null, $includeCollections = false) { + return self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), $format, $parameters, -1, $includeCollections); + } + + /** + * @brief Share an item with a user, group, or via private link + * @param string Item type + * @param string Item source + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string User or group the item is being shared with + * @param int CRUDS permissions + * @return bool Returns true on success or false on failure + */ + public static function shareItem($itemType, $itemSource, $shareType, $shareWith, $permissions) { + $uidOwner = \OC_User::getUser(); + // Verify share type and sharing conditions are met + if ($shareType === self::SHARE_TYPE_USER) { + if ($shareWith == $uidOwner) { + $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' is the item owner'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + if (!\OC_User::userExists($shareWith)) { + $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' does not exist'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + if (\OC_Appconfig::getValue('core', 'shareapi_share_policy', 'global') == 'groups_only') { + $inGroup = array_intersect(\OC_Group::getUserGroups($uidOwner), \OC_Group::getUserGroups($shareWith)); + if (empty($inGroup)) { + $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' is not a member of any groups that '.$uidOwner.' is a member of'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + // Check if the item source is already shared with the user, either from the same owner or a different user + if ($checkExists = self::getItems($itemType, $itemSource, self::$shareTypeUserAndGroups, $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { + // Only allow the same share to occur again if it is the same owner and is not a user share, this use case is for increasing permissions for a specific user + if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { + $message = 'Sharing '.$itemSource.' failed, because this item is already shared with '.$shareWith; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + } else if ($shareType === self::SHARE_TYPE_GROUP) { + if (!\OC_Group::groupExists($shareWith)) { + $message = 'Sharing '.$itemSource.' failed, because the group '.$shareWith.' does not exist'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + if (!\OC_Group::inGroup($uidOwner, $shareWith)) { + $message = 'Sharing '.$itemSource.' failed, because '.$uidOwner.' is not a member of the group '.$shareWith; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + // Check if the item source is already shared with the group, either from the same owner or a different user + // The check for each user in the group is done inside the put() function + if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_GROUP, $shareWith, null, self::FORMAT_NONE, null, 1, true, true)) { + // Only allow the same share to occur again if it is the same owner and is not a group share, this use case is for increasing permissions for a specific user + if ($checkExists['uid_owner'] != $uidOwner || $checkExists['share_type'] == $shareType) { + $message = 'Sharing '.$itemSource.' failed, because this item is already shared with '.$shareWith; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + // Convert share with into an array with the keys group and users + $group = $shareWith; + $shareWith = array(); + $shareWith['group'] = $group; + $shareWith['users'] = array_diff(\OC_Group::usersInGroup($group), array($uidOwner)); + } else if ($shareType === self::SHARE_TYPE_LINK) { + if (\OC_Appconfig::getValue('core', 'shareapi_allow_links', 'yes') == 'yes') { + if ($checkExists = self::getItems($itemType, $itemSource, self::SHARE_TYPE_LINK, null, $uidOwner, self::FORMAT_NONE, null, 1)) { + // If password is set delete the old link + if (isset($shareWith)) { + self::delete($checkExists['id']); + } else { + $message = 'Sharing '.$itemSource.' failed, because this item is already shared with a link'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + // Generate hash of password - same method as user passwords + if (isset($shareWith)) { + $forcePortable = (CRYPT_BLOWFISH != 1); + $hasher = new \PasswordHash(8, $forcePortable); + $shareWith = $hasher->HashPassword($shareWith.\OC_Config::getValue('passwordsalt', '')); + } + return self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions); + } + $message = 'Sharing '.$itemSource.' failed, because sharing with links is not allowed'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + return false; +// } else if ($shareType === self::SHARE_TYPE_CONTACT) { +// if (!\OC_App::isEnabled('contacts')) { +// $message = 'Sharing '.$itemSource.' failed, because the contacts app is not enabled'; +// \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); +// return false; +// } +// $vcard = \OC_Contacts_App::getContactVCard($shareWith); +// if (!isset($vcard)) { +// $message = 'Sharing '.$itemSource.' failed, because the contact does not exist'; +// \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); +// throw new \Exception($message); +// } +// $details = \OC_Contacts_VCard::structureContact($vcard); +// // TODO Add ownCloud user to contacts vcard +// if (!isset($details['EMAIL'])) { +// $message = 'Sharing '.$itemSource.' failed, because no email address is associated with the contact'; +// \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); +// throw new \Exception($message); +// } +// return self::shareItem($itemType, $itemSource, self::SHARE_TYPE_EMAIL, $details['EMAIL'], $permissions); + } else { + // Future share types need to include their own conditions + $message = 'Share type '.$shareType.' is not valid for '.$itemSource; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + // If the item is a folder, scan through the folder looking for equivalent item types + if ($itemType == 'folder') { + $parentFolder = self::put('folder', $itemSource, $shareType, $shareWith, $uidOwner, $permissions, true); + if ($parentFolder && $files = \OC_Files::getDirectoryContent($itemSource)) { + for ($i = 0; $i < count($files); $i++) { + $name = substr($files[$i]['name'], strpos($files[$i]['name'], $itemSource) - strlen($itemSource)); + if ($files[$i]['mimetype'] == 'httpd/unix-directory' && $children = \OC_Files::getDirectoryContent($name, '/')) { + // Continue scanning into child folders + array_push($files, $children); + } else { + // Check file extension for an equivalent item type to convert to + $extension = strtolower(substr($itemSource, strrpos($itemSource, '.') + 1)); + foreach (self::$backends as $type => $backend) { + if (isset($backend->dependsOn) && $backend->dependsOn == 'file' && isset($backend->supportedFileExtensions) && in_array($extension, $backend->supportedFileExtensions)) { + $itemType = $type; + break; + } + } + // Pass on to put() to check if this item should be converted, the item won't be inserted into the database unless it can be converted + self::put($itemType, $name, $shareType, $shareWith, $uidOwner, $permissions, $parentFolder); + } + } + return true; + } + return false; + } else { + // Put the item into the database + return self::put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions); + } + } + + /** + * @brief Unshare an item from a user, group, or delete a private link + * @param string Item type + * @param string Item source + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string User or group the item is being shared with + * @return Returns true on success or false on failure + */ + public static function unshare($itemType, $itemSource, $shareType, $shareWith) { + if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(), self::FORMAT_NONE, null, 1)) { + self::delete($item['id']); + return true; + } + return false; + } + + /** + * @brief Unshare an item shared with the current user + * @param string Item type + * @param string Item target + * @return Returns true on success or false on failure + * + * Unsharing from self is not allowed for items inside collections + * + */ + public static function unshareFromSelf($itemType, $itemTarget) { + if ($item = self::getItemSharedWith($itemType, $itemTarget)) { + if ((int)$item['share_type'] === self::SHARE_TYPE_GROUP) { + // Insert an extra row for the group share and set permission to 0 to prevent it from showing up for the user + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + $query->execute(array($item['item_type'], $item['item_source'], $item['item_target'], $item['id'], self::$shareTypeGroupUserUnique, \OC_User::getUser(), $item['uid_owner'], 0, $item['stime'], $item['file_source'], $item['file_target'])); + \OC_DB::insertid('*PREFIX*share'); + // Delete all reshares by this user of the group share + self::delete($item['id'], true, \OC_User::getUser()); + } else if ((int)$item['share_type'] === self::$shareTypeGroupUserUnique) { + // Set permission to 0 to prevent it from showing up for the user + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = ? WHERE `id` = ?'); + $query->execute(array(0, $item['id'])); + self::delete($item['id'], true); + } else { + self::delete($item['id']); + } + return true; + } + return false; + } + + /** + * @brief Set the permissions of an item for a specific user or group + * @param string Item type + * @param string Item source + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string User or group the item is being shared with + * @param int CRUDS permissions + * @return Returns true on success or false on failure + */ + public static function setPermissions($itemType, $itemSource, $shareType, $shareWith, $permissions) { + if ($item = self::getItems($itemType, $itemSource, $shareType, $shareWith, \OC_User::getUser(), self::FORMAT_NONE, null, 1, false)) { + // Check if this item is a reshare and verify that the permissions granted don't exceed the parent shared item + if (isset($item['parent'])) { + $query = \OC_DB::prepare('SELECT `permissions` FROM `*PREFIX*share` WHERE `id` = ?', 1); + $result = $query->execute(array($item['parent']))->fetchRow(); + if (~(int)$result['permissions'] & $permissions) { + $message = 'Setting permissions for '.$itemSource.' failed, because the permissions exceed permissions granted to '.\OC_User::getUser(); + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = ? WHERE `id` = ?'); + $query->execute(array($permissions, $item['id'])); + // Check if permissions were removed + if ($item['permissions'] & ~$permissions) { + // If share permission is removed all reshares must be deleted + if (($item['permissions'] & self::PERMISSION_SHARE) && (~$permissions & self::PERMISSION_SHARE)) { + self::delete($item['id'], true); + } else { + $ids = array(); + $parents = array($item['id']); + while (!empty($parents)) { + $parents = "'".implode("','", $parents)."'"; + $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); + $result = $query->execute(); + // Reset parents array, only go through loop again if items are found that need permissions removed + $parents = array(); + while ($item = $result->fetchRow()) { + // Check if permissions need to be removed + if ($item['permissions'] & ~$permissions) { + // Add to list of items that need permissions removed + $ids[] = $item['id']; + $parents[] = $item['id']; + } + } + } + // Remove the permissions for all reshares of this item + if (!empty($ids)) { + $ids = "'".implode("','", $ids)."'"; + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `permissions` = `permissions` & ? WHERE `id` IN ('.$ids.')'); + $query->execute(array($permissions)); + } + } + } + return true; + } + $message = 'Setting permissions for '.$itemSource.' failed, because the item was not found'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + + public static function setExpirationDate($itemType, $itemSource, $date) { + if ($items = self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), self::FORMAT_NONE, null, -1, false)) { + if (!empty($items)) { + if ($date == '') { + $date = null; + } else { + $date = new \DateTime($date); + $date = date('Y-m-d H:i', $date->format('U') - $date->getOffset()); + } + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `expiration` = ? WHERE `id` = ?'); + foreach ($items as $item) { + $query->execute(array($date, $item['id'])); + } + return true; + } + } + return false; + } + + /** + * @brief Get the backend class for the specified item type + * @param string Item type + * @return Sharing backend object + */ + private static function getBackend($itemType) { + if (isset(self::$backends[$itemType])) { + return self::$backends[$itemType]; + } else if (isset(self::$backendTypes[$itemType]['class'])) { + $class = self::$backendTypes[$itemType]['class']; + if (class_exists($class)) { + self::$backends[$itemType] = new $class; + if (!(self::$backends[$itemType] instanceof Share_Backend)) { + $message = 'Sharing backend '.$class.' must implement the interface OCP\Share_Backend'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + return self::$backends[$itemType]; + } else { + $message = 'Sharing backend '.$class.' not found'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } + $message = 'Sharing backend for '.$itemType.' not found'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + + /** + * @brief Get a list of collection item types for the specified item type + * @param string Item type + * @return array + */ + private static function getCollectionItemTypes($itemType) { + $collectionTypes = array($itemType); + foreach (self::$backendTypes as $type => $backend) { + if (in_array($backend['collectionOf'], $collectionTypes)) { + $collectionTypes[] = $type; + } + } + if (!self::getBackend($itemType) instanceof Share_Backend_Collection) { + unset($collectionTypes[0]); + } + // Return array if collections were found or the item type is a collection itself - collections can be inside collections + if (count($collectionTypes) > 0) { + return $collectionTypes; + } + return false; + } + + /** + * @brief Get shared items from the database + * @param string Item type + * @param string Item source or target (optional) + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, SHARE_TYPE_LINK, $shareTypeUserAndGroups, or $shareTypeGroupUserUnique + * @param string User or group the item is being shared with + * @param string User that is the owner of shared items (optional) + * @param int Format to convert items to with formatItems() + * @param mixed Parameters to pass to formatItems() + * @param int Number of items to return, -1 to return all matches (optional) + * @param bool Include collection item types (optional) + * @return mixed + * + * See public functions getItem(s)... for parameter usage + * + */ + private static function getItems($itemType, $item = null, $shareType = null, $shareWith = null, $uidOwner = null, $format = self::FORMAT_NONE, $parameters = null, $limit = -1, $includeCollections = false, $itemShareWithBySource = false) { + if (!self::isEnabled()) { + if ($limit == 1 || (isset($uidOwner) && isset($item))) { + return false; + } else { + return array(); + } + } + $backend = self::getBackend($itemType); + // Get filesystem root to add it to the file target and remove from the file source, match file_source with the file cache + if ($itemType == 'file' || $itemType == 'folder') { + $root = \OC_Filesystem::getRoot(); + $where = 'INNER JOIN `*PREFIX*fscache` ON `file_source` = `*PREFIX*fscache`.`id`'; + if (!isset($item)) { + $where .= ' WHERE `file_target` IS NOT NULL'; + } + $fileDependent = true; + $queryArgs = array(); + } else { + $fileDependent = false; + $root = ''; + if ($includeCollections && !isset($item) && ($collectionTypes = self::getCollectionItemTypes($itemType))) { + // If includeCollections is true, find collections of this item type, e.g. a music album contains songs + if (!in_array($itemType, $collectionTypes)) { + $itemTypes = array_merge(array($itemType), $collectionTypes); + } else { + $itemTypes = $collectionTypes; + } + $placeholders = join(',', array_fill(0, count($itemTypes), '?')); + $where .= ' WHERE item_type IN ('.$placeholders.'))'; + $queryArgs = $itemTypes; + } else { + $where = ' WHERE `item_type` = ?'; + $queryArgs = array($itemType); + } + } + if (isset($shareType)) { + // Include all user and group items + if ($shareType == self::$shareTypeUserAndGroups && isset($shareWith)) { + $where .= ' AND `share_type` IN (?,?,?)'; + $queryArgs[] = self::SHARE_TYPE_USER; + $queryArgs[] = self::SHARE_TYPE_GROUP; + $queryArgs[] = self::$shareTypeGroupUserUnique; + $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith)); + $placeholders = join(',', array_fill(0, count($userAndGroups), '?')); + $where .= ' AND `share_with` IN ('.$placeholders.')'; + $queryArgs = array_merge($queryArgs, $userAndGroups); + // Don't include own group shares + $where .= ' AND `uid_owner` != ?'; + $queryArgs[] = $shareWith; + } else { + $where .= ' AND `share_type` = ?'; + $queryArgs[] = $shareType; + if (isset($shareWith)) { + $where .= ' AND `share_with` = ?'; + $queryArgs[] = $shareWith; + } + } + } + if (isset($uidOwner)) { + $where .= ' AND `uid_owner` = ?'; + $queryArgs[] = $uidOwner; + if (!isset($shareType)) { + // Prevent unique user targets for group shares from being selected + $where .= ' AND `share_type` != ?'; + $queryArgs[] = self::$shareTypeGroupUserUnique; + } + if ($itemType == 'file' || $itemType == 'folder') { + $column = 'file_source'; + } else { + $column = 'item_source'; + } + } else { + if ($itemType == 'file' || $itemType == 'folder') { + $column = 'file_target'; + } else { + $column = 'item_target'; + } + } + if (isset($item)) { + if ($includeCollections && $collectionTypes = self::getCollectionItemTypes($itemType)) { + $where .= ' AND ('; + } else { + $where .= ' AND'; + } + // If looking for own shared items, check item_source else check item_target + if (isset($uidOwner) || $itemShareWithBySource) { + // If item type is a file, file source needs to be checked in case the item was converted + if ($itemType == 'file' || $itemType == 'folder') { + $where .= ' `file_source` = ?'; + $column = 'file_source'; + } else { + $where .= ' `item_source` = ?'; + $column = 'item_source'; + } + } else { + if ($itemType == 'file' || $itemType == 'folder') { + $where .= ' `file_target` = ?'; + $item = \OC_Filesystem::normalizePath($item); + } else { + $where .= ' `item_target` = ?'; + } + } + $queryArgs[] = $item; + if ($includeCollections && $collectionTypes) { + $placeholders = join(',', array_fill(0, count($collectionTypes), '?')); + $where .= ' OR item_type IN ('.$placeholders.'))'; + $queryArgs = array_merge($queryArgs, $collectionTypes); + } + } + if ($limit != -1 && !$includeCollections) { + if ($shareType == self::$shareTypeUserAndGroups) { + // Make sure the unique user target is returned if it exists, unique targets should follow the group share in the database + // If the limit is not 1, the filtering can be done later + $where .= ' ORDER BY `*PREFIX*share`.`id` DESC'; + } + // The limit must be at least 3, because filtering needs to be done + if ($limit < 3) { + $queryLimit = 3; + } else { + $queryLimit = $limit; + } + } else { + $queryLimit = null; + } + // TODO Optimize selects + if ($format == self::FORMAT_STATUSES) { + if ($itemType == 'file' || $itemType == 'folder') { + $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `file_source`, `path`, `expiration`'; + } else { + $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `expiration`'; + } + } else { + if (isset($uidOwner)) { + if ($itemType == 'file' || $itemType == 'folder') { + $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `file_source`, `path`, `permissions`, `stime`, `expiration`'; + } else { + $select = '`id`, `item_type`, `item_source`, `parent`, `share_type`, `share_with`, `permissions`, `stime`, `file_source`, `expiration`'; + } + } else { + if ($fileDependent) { + if (($itemType == 'file' || $itemType == 'folder') && $format == \OC_Share_Backend_File::FORMAT_FILE_APP || $format == \OC_Share_Backend_File::FORMAT_FILE_APP_ROOT) { + $select = '`*PREFIX*share`.`id`, `item_type`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `file_source`, `path`, `file_target`, `permissions`, `expiration`, `name`, `ctime`, `mtime`, `mimetype`, `size`, `encrypted`, `versioned`, `writable`'; + } else { + $select = '`*PREFIX*share`.`id`, `item_type`, `item_source`, `item_target`, `*PREFIX*share`.`parent`, `share_type`, `share_with`, `uid_owner`, `file_source`, `path`, `file_target`, `permissions`, `stime`, `expiration`'; + } + } else { + $select = '*'; + } + } + } + $root = strlen($root); + $query = \OC_DB::prepare('SELECT '.$select.' FROM `*PREFIX*share` '.$where, $queryLimit); + $result = $query->execute($queryArgs); + $items = array(); + $targets = array(); + while ($row = $result->fetchRow()) { + // Filter out duplicate group shares for users with unique targets + if ($row['share_type'] == self::$shareTypeGroupUserUnique && isset($items[$row['parent']])) { + $row['share_type'] = self::SHARE_TYPE_GROUP; + $row['share_with'] = $items[$row['parent']]['share_with']; + // Remove the parent group share + unset($items[$row['parent']]); + if ($row['permissions'] == 0) { + continue; + } + } else if (!isset($uidOwner)) { + // Check if the same target already exists + if (isset($targets[$row[$column]])) { + // Check if the same owner shared with the user twice through a group and user share - this is allowed + $id = $targets[$row[$column]]; + if ($items[$id]['uid_owner'] == $row['uid_owner']) { + // Switch to group share type to ensure resharing conditions aren't bypassed + if ($items[$id]['share_type'] != self::SHARE_TYPE_GROUP) { + $items[$id]['share_type'] = self::SHARE_TYPE_GROUP; + $items[$id]['share_with'] = $row['share_with']; + } + // Switch ids if sharing permission is granted on only one share to ensure correct parent is used if resharing + if (~(int)$items[$id]['permissions'] & self::PERMISSION_SHARE && (int)$row['permissions'] & self::PERMISSION_SHARE) { + $items[$row['id']] = $items[$id]; + unset($items[$id]); + $id = $row['id']; + } + // Combine the permissions for the item + $items[$id]['permissions'] |= (int)$row['permissions']; + continue; + } + } else { + $targets[$row[$column]] = $row['id']; + } + } + // Remove root from file source paths if retrieving own shared items + if (isset($uidOwner) && isset($row['path'])) { + if (isset($row['parent'])) { + $row['path'] = '/Shared/'.basename($row['path']); + } else { + $row['path'] = substr($row['path'], $root); + } + } + if (isset($row['expiration'])) { + $time = new \DateTime(); + if ($row['expiration'] < date('Y-m-d H:i', $time->format('U') - $time->getOffset())) { + self::delete($row['id']); + continue; + } + } + $items[$row['id']] = $row; + } + if (!empty($items)) { + $collectionItems = array(); + foreach ($items as &$row) { + // Return only the item instead of a 2-dimensional array + if ($limit == 1 && $row['item_type'] == $itemType && $row[$column] == $item) { + if ($format == self::FORMAT_NONE) { + return $row; + } else { + break; + } + } + // Check if this is a collection of the requested item type + if ($includeCollections && $collectionTypes && in_array($row['item_type'], $collectionTypes)) { + if (($collectionBackend = self::getBackend($row['item_type'])) && $collectionBackend instanceof Share_Backend_Collection) { + // Collections can be inside collections, check if the item is a collection + if (isset($item) && $row['item_type'] == $itemType && $row[$column] == $item) { + $collectionItems[] = $row; + } else { + $collection = array(); + $collection['item_type'] = $row['item_type']; + if ($row['item_type'] == 'file' || $row['item_type'] == 'folder') { + $collection['path'] = basename($row['path']); + } + $row['collection'] = $collection; + // Fetch all of the children sources + $children = $collectionBackend->getChildren($row[$column]); + foreach ($children as $child) { + $childItem = $row; + $childItem['item_type'] = $itemType; + if ($row['item_type'] != 'file' && $row['item_type'] != 'folder') { + $childItem['item_source'] = $child['source']; + $childItem['item_target'] = $child['target']; + } + if ($backend instanceof Share_Backend_File_Dependent) { + if ($row['item_type'] == 'file' || $row['item_type'] == 'folder') { + $childItem['file_source'] = $child['source']; + } else { + $childItem['file_source'] = \OC_FileCache::getId($child['file_path']); + } + $childItem['file_target'] = \OC_Filesystem::normalizePath($child['file_path']); + } + if (isset($item)) { + if ($childItem[$column] == $item) { + // Return only the item instead of a 2-dimensional array + if ($limit == 1) { + if ($format == self::FORMAT_NONE) { + return $childItem; + } else { + // Unset the items array and break out of both loops + $items = array(); + $items[] = $childItem; + break 2; + } + } else { + $collectionItems[] = $childItem; + } + } + } else { + $collectionItems[] = $childItem; + } + } + } + } + // Remove collection item + unset($items[$row['id']]); + } + } + if (!empty($collectionItems)) { + $items = array_merge($items, $collectionItems); + } + if ($format == self::FORMAT_NONE) { + return $items; + } else if ($format == self::FORMAT_STATUSES) { + $statuses = array(); + // Switch column to path for files and folders, used for determining statuses inside of folders + if ($itemType == 'file' || $itemType == 'folder') { + $column = 'path'; + } + foreach ($items as $item) { + if ($item['share_type'] == self::SHARE_TYPE_LINK) { + $statuses[$item[$column]] = true; + } else if (!isset($statuses[$item[$column]])) { + $statuses[$item[$column]] = false; + } + } + return $statuses; + } else { + return $backend->formatItems($items, $format, $parameters); + } + } else if ($limit == 1 || (isset($uidOwner) && isset($item))) { + return false; + } + return array(); + } + + /** + * @brief Put shared item into the database + * @param string Item type + * @param string Item source + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string User or group the item is being shared with + * @param int CRUDS permissions + * @param bool|array Parent folder target (optional) + * @return bool Returns true on success or false on failure + */ + private static function put($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $permissions, $parentFolder = null) { + $backend = self::getBackend($itemType); + // Check if this is a reshare + if ($checkReshare = self::getItemSharedWithBySource($itemType, $itemSource, self::FORMAT_NONE, null, true)) { + // Check if attempting to share back to owner + if ($checkReshare['uid_owner'] == $shareWith && $shareType == self::SHARE_TYPE_USER) { + $message = 'Sharing '.$itemSource.' failed, because the user '.$shareWith.' is the original sharer'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + // Check if share permissions is granted + if ((int)$checkReshare['permissions'] & self::PERMISSION_SHARE) { + if (~(int)$checkReshare['permissions'] & $permissions) { + $message = 'Sharing '.$itemSource.' failed, because the permissions exceed permissions granted to '.$uidOwner; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } else { + // TODO Don't check if inside folder + $parent = $checkReshare['id']; + $itemSource = $checkReshare['item_source']; + $fileSource = $checkReshare['file_source']; + $suggestedItemTarget = $checkReshare['item_target']; + $suggestedFileTarget = $checkReshare['file_target']; + $filePath = $checkReshare['file_target']; + } + } else { + $message = 'Sharing '.$itemSource.' failed, because resharing is not allowed'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } else { + $parent = null; + $suggestedItemTarget = null; + $suggestedFileTarget = null; + if (!$backend->isValidSource($itemSource, $uidOwner)) { + $message = 'Sharing '.$itemSource.' failed, because the sharing backend for '.$itemType.' could not find its source'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + $parent = null; + if ($backend instanceof Share_Backend_File_Dependent) { + $filePath = $backend->getFilePath($itemSource, $uidOwner); + if ($itemType == 'file' || $itemType == 'folder') { + $fileSource = $itemSource; + } else { + $fileSource = \OC_FileCache::getId($filePath); + } + if ($fileSource == -1) { + $message = 'Sharing '.$itemSource.' failed, because the file could not be found in the file cache'; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + } else { + $filePath = null; + $fileSource = null; + } + } + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + // Share with a group + if ($shareType == self::SHARE_TYPE_GROUP) { + $groupItemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith['group'], $uidOwner, $suggestedItemTarget); + if (isset($fileSource)) { + if ($parentFolder) { + if ($parentFolder === true) { + $groupFileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith['group'], $uidOwner, $suggestedFileTarget); + // Set group default file target for future use + $parentFolders[0]['folder'] = $groupFileTarget; + } else { + // Get group default file target + $groupFileTarget = $parentFolder[0]['folder'].$itemSource; + $parent = $parentFolder[0]['id']; + } + } else { + $groupFileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith['group'], $uidOwner, $suggestedFileTarget); + } + } else { + $groupFileTarget = null; + } + $query->execute(array($itemType, $itemSource, $groupItemTarget, $parent, $shareType, $shareWith['group'], $uidOwner, $permissions, time(), $fileSource, $groupFileTarget)); + // Save this id, any extra rows for this group share will need to reference it + $parent = \OC_DB::insertid('*PREFIX*share'); + // Loop through all users of this group in case we need to add an extra row + foreach ($shareWith['users'] as $uid) { + $itemTarget = self::generateTarget($itemType, $itemSource, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedItemTarget, $parent); + if (isset($fileSource)) { + if ($parentFolder) { + if ($parentFolder === true) { + $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedFileTarget, $parent); + if ($fileTarget != $groupFileTarget) { + $parentFolders[$uid]['folder'] = $fileTarget; + } + } else if (isset($parentFolder[$uid])) { + $fileTarget = $parentFolder[$uid]['folder'].$itemSource; + $parent = $parentFolder[$uid]['id']; + } + } else { + $fileTarget = self::generateTarget('file', $filePath, self::SHARE_TYPE_USER, $uid, $uidOwner, $suggestedFileTarget, $parent); + } + } else { + $fileTarget = null; + } + // Insert an extra row for the group share if the item or file target is unique for this user + if ($itemTarget != $groupItemTarget || (isset($fileSource) && $fileTarget != $groupFileTarget)) { + $query->execute(array($itemType, $itemSource, $itemTarget, $parent, self::$shareTypeGroupUserUnique, $uid, $uidOwner, $permissions, time(), $fileSource, $fileTarget)); + \OC_DB::insertid('*PREFIX*share'); + } + } + if ($parentFolder === true) { + // Return parent folders to preserve file target paths for potential children + return $parentFolders; + } + } else { + $itemTarget = self::generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedItemTarget); + if (isset($fileSource)) { + if ($parentFolder) { + if ($parentFolder === true) { + $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, $suggestedFileTarget); + $parentFolders['folder'] = $fileTarget; + } else { + $fileTarget = $parentFolder['folder'].$itemSource; + $parent = $parentFolder['id']; + } + } else { + $fileTarget = self::generateTarget('file', $filePath, $shareType, $shareWith, $uidOwner, $suggestedFileTarget); + } + } else { + $fileTarget = null; + } + $query->execute(array($itemType, $itemSource, $itemTarget, $parent, $shareType, $shareWith, $uidOwner, $permissions, time(), $fileSource, $fileTarget)); + $id = \OC_DB::insertid('*PREFIX*share'); + if ($parentFolder === true) { + $parentFolders['id'] = $id; + // Return parent folder to preserve file target paths for potential children + return $parentFolders; + } + } + return true; + } + + /** + * @brief Generate a unique target for the item + * @param string Item type + * @param string Item source + * @param int SHARE_TYPE_USER, SHARE_TYPE_GROUP, or SHARE_TYPE_LINK + * @param string User or group the item is being shared with + * @param string The suggested target originating from a reshare (optional) + * @param int The id of the parent group share (optional) + * @return string Item target + */ + private static function generateTarget($itemType, $itemSource, $shareType, $shareWith, $uidOwner, $suggestedTarget = null, $groupParent = null) { + $backend = self::getBackend($itemType); + if ($shareType == self::SHARE_TYPE_LINK) { + if (isset($suggestedTarget)) { + return $suggestedTarget; + } + return $backend->generateTarget($itemSource, false); + } else { + if ($itemType == 'file' || $itemType == 'folder') { + $column = 'file_target'; + $columnSource = 'file_source'; + } else { + $column = 'item_target'; + $columnSource = 'item_source'; + } + if ($shareType == self::SHARE_TYPE_USER) { + // Share with is a user, so set share type to user and groups + $shareType = self::$shareTypeUserAndGroups; + $userAndGroups = array_merge(array($shareWith), \OC_Group::getUserGroups($shareWith)); + } else { + $userAndGroups = false; + } + $exclude = null; + // Backend has 3 opportunities to generate a unique target + for ($i = 0; $i < 2; $i++) { + // Check if suggested target exists first + if ($i == 0 && isset($suggestedTarget)) { + $target = $suggestedTarget; + } else { + if ($shareType == self::SHARE_TYPE_GROUP) { + $target = $backend->generateTarget($itemSource, false, $exclude); + } else { + $target = $backend->generateTarget($itemSource, $shareWith, $exclude); + } + if (is_array($exclude) && in_array($target, $exclude)) { + break; + } + } + // Check if target already exists + $checkTarget = self::getItems($itemType, $target, $shareType, $shareWith); + if (!empty($checkTarget)) { + foreach ($checkTarget as $item) { + // Skip item if it is the group parent row + if (isset($groupParent) && $item['id'] == $groupParent) { + if (count($checkTarget) == 1) { + return $target; + } else { + continue; + } + } + if ($item['uid_owner'] == $uidOwner && $item[$columnSource] == $itemSource) { return $target; - } - } - if (!isset($exclude)) { - $exclude = array(); - } - // Find similar targets to improve backend's chances to generate a unqiue target - if ($userAndGroups) { - if ($column == 'file_target') { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` IN (\'file\', \'folder\') AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); - $result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); - } else { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); - $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); - } - } else { - if ($column == 'file_target') { + } + } + if (!isset($exclude)) { + $exclude = array(); + } + // Find similar targets to improve backend's chances to generate a unqiue target + if ($userAndGroups) { + if ($column == 'file_target') { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` IN (\'file\', \'folder\') AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); + $result = $checkTargets->execute(array(self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); + } else { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\')'); + $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique)); + } + } else { + if ($column == 'file_target') { $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` IN (\'file\', \'folder\') AND `share_type` = ? AND `share_with` = ?'); - $result = $checkTargets->execute(array(self::SHARE_TYPE_GROUP, $shareWith)); - } else { - $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?'); - $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith)); - } - } - while ($row = $result->fetchRow()) { - $exclude[] = $row[$column]; - } - } else { - return $target; - } - } - } - $message = 'Sharing backend registered for '.$itemType.' did not generate a unique target for '.$itemSource; - \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); - throw new \Exception($message); - } - - /** - * @brief Delete all reshares of an item - * @param int Id of item to delete - * @param bool If true, exclude the parent from the delete (optional) - * @param string The user that the parent was shared with (optinal) - */ - private static function delete($parent, $excludeParent = false, $uidOwner = null) { - $ids = array($parent); - $parents = array($parent); - while (!empty($parents)) { - $parents = "'".implode("','", $parents)."'"; - // Check the owner on the first search of reshares, useful for finding and deleting the reshares by a single user of a group share - if (count($ids) == 1 && isset($uidOwner)) { - $query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?'); - $result = $query->execute(array($uidOwner)); - } else { - $query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); - $result = $query->execute(); - } - // Reset parents array, only go through loop again if items are found - $parents = array(); - while ($item = $result->fetchRow()) { - // Search for a duplicate parent share, this occurs when an item is shared to the same user through a group and user or the same item is shared by different users - $userAndGroups = array_merge(array($item['uid_owner']), \OC_Group::getUserGroups($item['uid_owner'])); - $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share` WHERE `item_type` = ? AND `item_target` = ? AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\') AND `uid_owner` != ? AND `id` != ?'); - $duplicateParent = $query->execute(array($item['item_type'], $item['item_target'], self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique, $item['uid_owner'], $item['parent']))->fetchRow(); - if ($duplicateParent) { - // Change the parent to the other item id if share permission is granted - if ($duplicateParent['permissions'] & self::PERMISSION_SHARE) { - $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `parent` = ? WHERE `id` = ?'); - $query->execute(array($duplicateParent['id'], $item['id'])); - continue; - } - } - $ids[] = $item['id']; - $parents[] = $item['id']; - } - } - if ($excludeParent) { - unset($ids[0]); - } - if (!empty($ids)) { - $ids = "'".implode("','", $ids)."'"; - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `id` IN ('.$ids.')'); - $query->execute(); - } - } - - /** - * Hook Listeners - */ - - public static function post_deleteUser($arguments) { - // Delete any items shared with the deleted user - $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `share_with` = ? AND `share_type` = ? OR `share_type` = ?'); - $result = $query->execute(array($arguments['uid'], self::SHARE_TYPE_USER, self::$shareTypeGroupUserUnique)); - // Delete any items the deleted user shared - $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `uid_owner` = ?'); - $result = $query->execute(array($arguments['uid'])); - while ($item = $result->fetchRow()) { - self::delete($item['id']); - } - } - - public static function post_addToGroup($arguments) { - // Find the group shares and check if the user needs a unique target - $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); - $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); - $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); - while ($item = $result->fetchRow()) { - if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { - $itemTarget = null; - } else { - $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); - } - if (isset($item['file_source'])) { - $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); - } else { - $fileTarget = null; - } - // Insert an extra row for the group share if the item or file target is unique for this user - if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { - $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], $item['stime'], $item['file_source'], $fileTarget)); - \OC_DB::insertid('*PREFIX*share'); - } - } - } - - public static function post_removeFromGroup($arguments) { - // TODO Don't call if user deleted? - $query = \OC_DB::prepare('SELECT `id`, `share_type` FROM `*PREFIX*share` WHERE (`share_type` = ? AND `share_with` = ?) OR (`share_type` = ? AND `share_with` = ?)'); - $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'], self::$shareTypeGroupUserUnique, $arguments['uid'])); - while ($item = $result->fetchRow()) { - if ($item['share_type'] == self::SHARE_TYPE_GROUP) { - // Delete all reshares by this user of the group share - self::delete($item['id'], true, $arguments['uid']); - } else { - self::delete($item['id']); - } - } - } - - public static function post_deleteGroup($arguments) { - $query = \OC_DB::prepare('SELECT id FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); - $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); - while ($item = $result->fetchRow()) { - self::delete($item['id']); - } - } - -} - -/** -* Interface that apps must implement to share content. -*/ -interface Share_Backend { - - /** - * @brief Get the source of the item to be stored in the database - * @param string Item source - * @param string Owner of the item - * @return mixed|array|false Source - * - * Return an array if the item is file dependent, the array needs two keys: 'item' and 'file' - * Return false if the item does not exist for the user - * - * The formatItems() function will translate the source returned back into the item - */ - public function isValidSource($itemSource, $uidOwner); - - /** - * @brief Get a unique name of the item for the specified user - * @param string Item source - * @param string|false User the item is being shared with - * @param array|null List of similar item names already existing as shared items - * @return string Target name - * - * This function needs to verify that the user does not already have an item with this name. - * If it does generate a new name e.g. name_# - */ - public function generateTarget($itemSource, $shareWith, $exclude = null); - - /** - * @brief Converts the shared item sources back into the item in the specified format - * @param array Shared items - * @param int Format - * @return ? - * - * The items array is a 3-dimensional array with the item_source as the first key and the share id as the second key to an array with the share info. - * The key/value pairs included in the share info depend on the function originally called: - * If called by getItem(s)Shared: id, item_type, item, item_source, share_type, share_with, permissions, stime, file_source - * If called by getItem(s)SharedWith: id, item_type, item, item_source, item_target, share_type, share_with, permissions, stime, file_source, file_target - * This function allows the backend to control the output of shared items with custom formats. - * It is only called through calls to the public getItem(s)Shared(With) functions. - */ - public function formatItems($items, $format, $parameters = null); - -} - -/** -* Interface for share backends that share content that is dependent on files. -* Extends the Share_Backend interface. -*/ -interface Share_Backend_File_Dependent extends Share_Backend { - - /** - * @brief Get the file path of the item - * @param - * @param - * @return - */ - public function getFilePath($itemSource, $uidOwner); - -} - -/** -* Interface for collections of of items implemented by another share backend. -* Extends the Share_Backend interface. -*/ -interface Share_Backend_Collection extends Share_Backend { - - /** - * @brief Get the sources of the children of the item - * @param string Item source - * @return array Returns an array of children each inside an array with the keys: source, target, and file_path if applicable - */ - public function getChildren($itemSource); - -} + $result = $checkTargets->execute(array(self::SHARE_TYPE_GROUP, $shareWith)); + } else { + $checkTargets = \OC_DB::prepare('SELECT `'.$column.'` FROM `*PREFIX*share` WHERE `item_type` = ? AND `share_type` = ? AND `share_with` = ?'); + $result = $checkTargets->execute(array($itemType, self::SHARE_TYPE_GROUP, $shareWith)); + } + } + while ($row = $result->fetchRow()) { + $exclude[] = $row[$column]; + } + } else { + return $target; + } + } + } + $message = 'Sharing backend registered for '.$itemType.' did not generate a unique target for '.$itemSource; + \OC_Log::write('OCP\Share', $message, \OC_Log::ERROR); + throw new \Exception($message); + } + + /** + * @brief Delete all reshares of an item + * @param int Id of item to delete + * @param bool If true, exclude the parent from the delete (optional) + * @param string The user that the parent was shared with (optinal) + */ + private static function delete($parent, $excludeParent = false, $uidOwner = null) { + $ids = array($parent); + $parents = array($parent); + while (!empty($parents)) { + $parents = "'".implode("','", $parents)."'"; + // Check the owner on the first search of reshares, useful for finding and deleting the reshares by a single user of a group share + if (count($ids) == 1 && isset($uidOwner)) { + $query = \OC_DB::prepare('SELECT `id`, `uid_owner`, `item_type`, `item_target`, `parent` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.') AND `uid_owner` = ?'); + $result = $query->execute(array($uidOwner)); + } else { + $query = \OC_DB::prepare('SELECT `id`, `item_type`, `item_target`, `parent`, `uid_owner` FROM `*PREFIX*share` WHERE `parent` IN ('.$parents.')'); + $result = $query->execute(); + } + // Reset parents array, only go through loop again if items are found + $parents = array(); + while ($item = $result->fetchRow()) { + // Search for a duplicate parent share, this occurs when an item is shared to the same user through a group and user or the same item is shared by different users + $userAndGroups = array_merge(array($item['uid_owner']), \OC_Group::getUserGroups($item['uid_owner'])); + $query = \OC_DB::prepare('SELECT `id`, `permissions` FROM `*PREFIX*share` WHERE `item_type` = ? AND `item_target` = ? AND `share_type` IN (?,?,?) AND `share_with` IN (\''.implode('\',\'', $userAndGroups).'\') AND `uid_owner` != ? AND `id` != ?'); + $duplicateParent = $query->execute(array($item['item_type'], $item['item_target'], self::SHARE_TYPE_USER, self::SHARE_TYPE_GROUP, self::$shareTypeGroupUserUnique, $item['uid_owner'], $item['parent']))->fetchRow(); + if ($duplicateParent) { + // Change the parent to the other item id if share permission is granted + if ($duplicateParent['permissions'] & self::PERMISSION_SHARE) { + $query = \OC_DB::prepare('UPDATE `*PREFIX*share` SET `parent` = ? WHERE `id` = ?'); + $query->execute(array($duplicateParent['id'], $item['id'])); + continue; + } + } + $ids[] = $item['id']; + $parents[] = $item['id']; + } + } + if ($excludeParent) { + unset($ids[0]); + } + if (!empty($ids)) { + $ids = "'".implode("','", $ids)."'"; + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `id` IN ('.$ids.')'); + $query->execute(); + } + } + + /** + * Hook Listeners + */ + + public static function post_deleteUser($arguments) { + // Delete any items shared with the deleted user + $query = \OC_DB::prepare('DELETE FROM `*PREFIX*share` WHERE `share_with` = ? AND `share_type` = ? OR `share_type` = ?'); + $result = $query->execute(array($arguments['uid'], self::SHARE_TYPE_USER, self::$shareTypeGroupUserUnique)); + // Delete any items the deleted user shared + $query = \OC_DB::prepare('SELECT `id` FROM `*PREFIX*share` WHERE `uid_owner` = ?'); + $result = $query->execute(array($arguments['uid'])); + while ($item = $result->fetchRow()) { + self::delete($item['id']); + } + } + + public static function post_addToGroup($arguments) { + // Find the group shares and check if the user needs a unique target + $query = \OC_DB::prepare('SELECT * FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); + $query = \OC_DB::prepare('INSERT INTO `*PREFIX*share` (`item_type`, `item_source`, `item_target`, `parent`, `share_type`, `share_with`, `uid_owner`, `permissions`, `stime`, `file_source`, `file_target`) VALUES (?,?,?,?,?,?,?,?,?,?,?)'); + while ($item = $result->fetchRow()) { + if ($item['item_type'] == 'file' || $item['item_type'] == 'file') { + $itemTarget = null; + } else { + $itemTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, $arguments['uid'], $item['uid_owner'], $item['item_target'], $item['id']); + } + if (isset($item['file_source'])) { + $fileTarget = self::generateTarget($item['item_type'], $item['item_source'], self::SHARE_TYPE_USER, $arguments['uid'], $item['uid_owner'], $item['file_target'], $item['id']); + } else { + $fileTarget = null; + } + // Insert an extra row for the group share if the item or file target is unique for this user + if ($itemTarget != $item['item_target'] || $fileTarget != $item['file_target']) { + $query->execute(array($item['item_type'], $item['item_source'], $itemTarget, $item['id'], self::$shareTypeGroupUserUnique, $arguments['uid'], $item['uid_owner'], $item['permissions'], $item['stime'], $item['file_source'], $fileTarget)); + \OC_DB::insertid('*PREFIX*share'); + } + } + } + + public static function post_removeFromGroup($arguments) { + // TODO Don't call if user deleted? + $query = \OC_DB::prepare('SELECT `id`, `share_type` FROM `*PREFIX*share` WHERE (`share_type` = ? AND `share_with` = ?) OR (`share_type` = ? AND `share_with` = ?)'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'], self::$shareTypeGroupUserUnique, $arguments['uid'])); + while ($item = $result->fetchRow()) { + if ($item['share_type'] == self::SHARE_TYPE_GROUP) { + // Delete all reshares by this user of the group share + self::delete($item['id'], true, $arguments['uid']); + } else { + self::delete($item['id']); + } + } + } + + public static function post_deleteGroup($arguments) { + $query = \OC_DB::prepare('SELECT id FROM `*PREFIX*share` WHERE `share_type` = ? AND `share_with` = ?'); + $result = $query->execute(array(self::SHARE_TYPE_GROUP, $arguments['gid'])); + while ($item = $result->fetchRow()) { + self::delete($item['id']); + } + } + +} + +/** +* Interface that apps must implement to share content. +*/ +interface Share_Backend { + + /** + * @brief Get the source of the item to be stored in the database + * @param string Item source + * @param string Owner of the item + * @return mixed|array|false Source + * + * Return an array if the item is file dependent, the array needs two keys: 'item' and 'file' + * Return false if the item does not exist for the user + * + * The formatItems() function will translate the source returned back into the item + */ + public function isValidSource($itemSource, $uidOwner); + + /** + * @brief Get a unique name of the item for the specified user + * @param string Item source + * @param string|false User the item is being shared with + * @param array|null List of similar item names already existing as shared items + * @return string Target name + * + * This function needs to verify that the user does not already have an item with this name. + * If it does generate a new name e.g. name_# + */ + public function generateTarget($itemSource, $shareWith, $exclude = null); + + /** + * @brief Converts the shared item sources back into the item in the specified format + * @param array Shared items + * @param int Format + * @return ? + * + * The items array is a 3-dimensional array with the item_source as the first key and the share id as the second key to an array with the share info. + * The key/value pairs included in the share info depend on the function originally called: + * If called by getItem(s)Shared: id, item_type, item, item_source, share_type, share_with, permissions, stime, file_source + * If called by getItem(s)SharedWith: id, item_type, item, item_source, item_target, share_type, share_with, permissions, stime, file_source, file_target + * This function allows the backend to control the output of shared items with custom formats. + * It is only called through calls to the public getItem(s)Shared(With) functions. + */ + public function formatItems($items, $format, $parameters = null); + +} + +/** +* Interface for share backends that share content that is dependent on files. +* Extends the Share_Backend interface. +*/ +interface Share_Backend_File_Dependent extends Share_Backend { + + /** + * @brief Get the file path of the item + * @param + * @param + * @return + */ + public function getFilePath($itemSource, $uidOwner); + +} + +/** +* Interface for collections of of items implemented by another share backend. +* Extends the Share_Backend interface. +*/ +interface Share_Backend_Collection extends Share_Backend { + + /** + * @brief Get the sources of the children of the item + * @param string Item source + * @return array Returns an array of children each inside an array with the keys: source, target, and file_path if applicable + */ + public function getChildren($itemSource); + +} From 7abe1360b2426c87d32ea5beeb3e7adf31955060 Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Tue, 2 Oct 2012 23:09:28 +0200 Subject: [PATCH 12/13] l18n support added to files_external/js --- apps/files_external/js/dropbox.js | 26 ++++++++++++++++++-------- apps/files_external/js/google.js | 22 +++++++++++++++------- 2 files changed, 33 insertions(+), 15 deletions(-) diff --git a/apps/files_external/js/dropbox.js b/apps/files_external/js/dropbox.js index 6082fdd2cb7..c1e38640708 100644 --- a/apps/files_external/js/dropbox.js +++ b/apps/files_external/js/dropbox.js @@ -4,7 +4,7 @@ $(document).ready(function() { var configured = $(this).find('[data-parameter="configured"]'); if ($(configured).val() == 'true') { $(this).find('.configuration input').attr('disabled', 'disabled'); - $(this).find('.configuration').append('Access granted'); + $(this).find('.configuration').append(''+t('files_external', 'Access granted')+''); } else { var app_key = $(this).find('.configuration [data-parameter="app_key"]').val(); var app_secret = $(this).find('.configuration [data-parameter="app_secret"]').val(); @@ -22,14 +22,16 @@ $(document).ready(function() { $(configured).val('true'); OC.MountConfig.saveStorage(tr); $(tr).find('.configuration input').attr('disabled', 'disabled'); - $(tr).find('.configuration').append('Access granted'); + $(tr).find('.configuration').append(''+t('files_external', 'Access granted')+''); } else { - OC.dialogs.alert(result.data.message, 'Error configuring Dropbox storage'); + OC.dialogs.alert(result.data.message, + t('files_external', 'Error configuring Dropbox storage') + ); } }); } } else if ($(this).find('.mountPoint input').val() != '' && $(config).find('[data-parameter="app_key"]').val() != '' && $(config).find('[data-parameter="app_secret"]').val() != '' && $(this).find('.dropbox').length == 0) { - $(this).find('.configuration').append('Grant access'); + $(this).find('.configuration').append(''+t('files_external', 'Grant access')+''); } } }); @@ -40,7 +42,7 @@ $(document).ready(function() { var config = $(tr).find('.configuration'); if ($(tr).find('.mountPoint input').val() != '' && $(config).find('[data-parameter="app_key"]').val() != '' && $(config).find('[data-parameter="app_secret"]').val() != '') { if ($(tr).find('.dropbox').length == 0) { - $(config).append('Grant access'); + $(config).append(''+t('files_external', 'Grant access')+''); } else { $(tr).find('.dropbox').show(); } @@ -67,14 +69,22 @@ $(document).ready(function() { if (OC.MountConfig.saveStorage(tr)) { window.location = result.data.url; } else { - OC.dialogs.alert('Fill out all required fields', 'Error configuring Dropbox storage'); + OC.dialogs.alert( + t('files_external', 'Fill out all required fields'), + t('files_external', 'Error configuring Dropbox storage') + ); } } else { - OC.dialogs.alert(result.data.message, 'Error configuring Dropbox storage'); + OC.dialogs.alert(result.data.message, + t('files_external', 'Error configuring Dropbox storage') + ); } }); } else { - OC.dialogs.alert('Please provide a valid Dropbox app key and secret.', 'Error configuring Dropbox storage'); + OC.dialogs.alert( + t('files_external', 'Please provide a valid Dropbox app key and secret.'), + t('files_external', 'Error configuring Dropbox storage') + ); } }); diff --git a/apps/files_external/js/google.js b/apps/files_external/js/google.js index 7c62297df4d..0b3c314eb5d 100644 --- a/apps/files_external/js/google.js +++ b/apps/files_external/js/google.js @@ -3,7 +3,8 @@ $(document).ready(function() { $('#externalStorage tbody tr.OC_Filestorage_Google').each(function() { var configured = $(this).find('[data-parameter="configured"]'); if ($(configured).val() == 'true') { - $(this).find('.configuration').append('Access granted'); + $(this).find('.configuration') + .append(''+t('files_external', 'Access granted')+''); } else { var token = $(this).find('[data-parameter="token"]'); var token_secret = $(this).find('[data-parameter="token_secret"]'); @@ -19,13 +20,15 @@ $(document).ready(function() { $(token_secret).val(result.access_token_secret); $(configured).val('true'); OC.MountConfig.saveStorage(tr); - $(tr).find('.configuration').append('Access granted'); + $(tr).find('.configuration').append(''+t('files_external', 'Access granted')+''); } else { - OC.dialogs.alert(result.data.message, 'Error configuring Google Drive storage'); + OC.dialogs.alert(result.data.message, + t('files_external', 'Error configuring Google Drive storage') + ); } }); } else if ($(this).find('.google').length == 0) { - $(this).find('.configuration').append('Grant access'); + $(this).find('.configuration').append(''+t('files_external', 'Grant access')+''); } } }); @@ -34,7 +37,7 @@ $(document).ready(function() { if ($(this).hasClass('OC_Filestorage_Google') && $(this).find('[data-parameter="configured"]').val() != 'true') { if ($(this).find('.mountPoint input').val() != '') { if ($(this).find('.google').length == 0) { - $(this).find('.configuration').append('Grant access'); + $(this).find('.configuration').append(''+t('files_external', 'Grant access')+''); } } } @@ -65,10 +68,15 @@ $(document).ready(function() { if (OC.MountConfig.saveStorage(tr)) { window.location = result.data.url; } else { - OC.dialogs.alert('Fill out all required fields', 'Error configuring Google Drive storage'); + OC.dialogs.alert( + t('files_external', 'Fill out all required fields'), + t('files_external', 'Error configuring Google Drive storage') + ); } } else { - OC.dialogs.alert(result.data.message, 'Error configuring Google Drive storage'); + OC.dialogs.alert(result.data.message, + t('files_external', 'Error configuring Google Drive storage') + ); } }); }); From 32a6b3b8626041a6bd7eb259629273ee8feaba55 Mon Sep 17 00:00:00 2001 From: Jenkins for ownCloud Date: Tue, 2 Oct 2012 23:18:26 +0200 Subject: [PATCH 13/13] [tx-robot] updated from transifex --- apps/files/l10n/pt_PT.php | 20 +++++ apps/files_external/l10n/ca.php | 6 +- apps/files_external/l10n/cs_CZ.php | 6 +- apps/files_external/l10n/de.php | 6 +- apps/files_external/l10n/el.php | 6 +- apps/files_external/l10n/eo.php | 6 +- apps/files_external/l10n/es.php | 6 +- apps/files_external/l10n/es_AR.php | 6 +- apps/files_external/l10n/et_EE.php | 6 +- apps/files_external/l10n/eu.php | 6 +- apps/files_external/l10n/fi_FI.php | 6 +- apps/files_external/l10n/fr.php | 6 +- apps/files_external/l10n/gl.php | 6 +- apps/files_external/l10n/he.php | 6 +- apps/files_external/l10n/it.php | 6 +- apps/files_external/l10n/ja_JP.php | 6 +- apps/files_external/l10n/nl.php | 6 +- apps/files_external/l10n/pl.php | 6 +- apps/files_external/l10n/pt_BR.php | 6 +- apps/files_external/l10n/pt_PT.php | 8 ++ apps/files_external/l10n/ro.php | 6 +- apps/files_external/l10n/ru.php | 6 +- apps/files_external/l10n/ru_RU.php | 6 +- apps/files_external/l10n/sk_SK.php | 6 +- apps/files_external/l10n/sl.php | 6 +- apps/files_external/l10n/sv.php | 6 +- apps/files_external/l10n/th_TH.php | 6 +- apps/files_external/l10n/vi.php | 6 +- apps/files_external/l10n/zh_CN.GB2312.php | 6 +- apps/files_sharing/l10n/de.php | 6 +- apps/files_versions/l10n/de.php | 2 +- apps/user_ldap/l10n/de.php | 12 +-- apps/user_ldap/l10n/el.php | 2 +- core/l10n/de.php | 4 +- l10n/af/files_external.po | 50 ++++++++--- l10n/ar/files_external.po | 50 ++++++++--- l10n/ar_SA/files_external.po | 50 ++++++++--- l10n/bg_BG/files_external.po | 50 ++++++++--- l10n/ca/files_external.po | 52 ++++++++--- l10n/cs_CZ/files_external.po | 50 ++++++++--- l10n/da/files_external.po | 30 ++++++- l10n/de/core.po | 38 ++++---- l10n/de/files_encryption.po | 8 +- l10n/de/files_external.po | 52 ++++++++--- l10n/de/files_sharing.po | 13 +-- l10n/de/files_versions.po | 9 +- l10n/de/user_ldap.po | 19 ++-- l10n/el/files_external.po | 50 ++++++++--- l10n/el/user_ldap.po | 8 +- l10n/eo/files_external.po | 52 ++++++++--- l10n/es/files_external.po | 52 ++++++++--- l10n/es_AR/files_external.po | 50 ++++++++--- l10n/et_EE/files_external.po | 50 ++++++++--- l10n/eu/files_external.po | 50 ++++++++--- l10n/eu_ES/files_external.po | 50 ++++++++--- l10n/fa/files_external.po | 50 ++++++++--- l10n/fi/files_external.po | 50 ++++++++--- l10n/fi_FI/files_external.po | 50 ++++++++--- l10n/fr/files_external.po | 52 ++++++++--- l10n/gl/files_external.po | 50 ++++++++--- l10n/he/files_external.po | 50 ++++++++--- l10n/hi/files_external.po | 50 ++++++++--- l10n/hr/files_external.po | 50 ++++++++--- l10n/hu_HU/files_external.po | 50 ++++++++--- l10n/hy/files_external.po | 50 ++++++++--- l10n/ia/files_external.po | 50 ++++++++--- l10n/id/files_external.po | 50 ++++++++--- l10n/id_ID/files_external.po | 50 ++++++++--- l10n/it/files_external.po | 50 ++++++++--- l10n/ja_JP/files_external.po | 52 ++++++++--- l10n/ko/files_external.po | 50 ++++++++--- l10n/lb/files_external.po | 50 ++++++++--- l10n/lt_LT/files_external.po | 50 ++++++++--- l10n/lv/files_external.po | 50 ++++++++--- l10n/mk/files_external.po | 50 ++++++++--- l10n/ms_MY/files_external.po | 50 ++++++++--- l10n/nb_NO/files_external.po | 50 ++++++++--- l10n/nl/files_external.po | 52 ++++++++--- l10n/nn_NO/files_external.po | 50 ++++++++--- l10n/oc/files_external.po | 48 +++++++--- l10n/pl/files_external.po | 52 ++++++++--- l10n/pl_PL/files_external.po | 50 ++++++++--- l10n/pt_BR/files_external.po | 50 ++++++++--- l10n/pt_PT/files.po | 103 +++++++++++----------- l10n/pt_PT/files_external.po | 46 +++++++--- l10n/pt_PT/settings.po | 19 ++-- l10n/ro/files_external.po | 50 ++++++++--- l10n/ru/files_external.po | 52 ++++++++--- l10n/ru_RU/files_external.po | 50 ++++++++--- l10n/sk_SK/files_external.po | 50 ++++++++--- l10n/sl/files_external.po | 52 ++++++++--- l10n/so/files_external.po | 50 ++++++++--- l10n/sr/files_external.po | 50 ++++++++--- l10n/sr@latin/files_external.po | 50 ++++++++--- l10n/sv/files_external.po | 52 ++++++++--- l10n/templates/core.pot | 2 +- l10n/templates/files.pot | 20 ++--- l10n/templates/files_encryption.pot | 2 +- l10n/templates/files_external.pot | 26 +++++- l10n/templates/files_sharing.pot | 2 +- l10n/templates/files_versions.pot | 2 +- l10n/templates/lib.pot | 2 +- l10n/templates/settings.pot | 2 +- l10n/templates/user_ldap.pot | 2 +- l10n/th_TH/files_external.po | 52 ++++++++--- l10n/tr/files_external.po | 50 ++++++++--- l10n/uk/files_external.po | 48 +++++++--- l10n/vi/files_external.po | 50 ++++++++--- l10n/zh_CN.GB2312/files_external.po | 50 ++++++++--- l10n/zh_CN/files_external.po | 50 ++++++++--- l10n/zh_TW/files_external.po | 50 ++++++++--- settings/l10n/pt_PT.php | 6 ++ 112 files changed, 2499 insertions(+), 996 deletions(-) diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php index ffd15ae1d06..a2b53824e8f 100644 --- a/apps/files/l10n/pt_PT.php +++ b/apps/files/l10n/pt_PT.php @@ -7,20 +7,29 @@ "Missing a temporary folder" => "Falta uma pasta temporária", "Failed to write to disk" => "Falhou a escrita no disco", "Files" => "Ficheiros", +"Unshare" => "Deixar de partilhar", "Delete" => "Apagar", +"Rename" => "Renomear", "already exists" => "Já existe", "replace" => "substituir", +"suggest name" => "Sugira um nome", "cancel" => "cancelar", "replaced" => "substituido", "undo" => "desfazer", "with" => "com", +"unshared" => "não partilhado", "deleted" => "apagado", "generating ZIP-file, it may take some time." => "a gerar o ficheiro ZIP, poderá demorar algum tempo.", "Unable to upload your file as it is a directory or has 0 bytes" => "Não é possivel fazer o upload do ficheiro devido a ser uma pasta ou ter 0 bytes", "Upload Error" => "Erro no upload", "Pending" => "Pendente", +"1 file uploading" => "A enviar 1 ficheiro", +"files uploading" => "ficheiros a serem enviados", "Upload cancelled." => "O upload foi cancelado.", +"File upload is in progress. Leaving the page now will cancel the upload." => "Envio de ficheiro em progresso. Irá cancelar o envio se sair da página agora.", "Invalid name, '/' is not allowed." => "nome inválido, '/' não permitido.", +"files scanned" => "ficheiros analisados", +"error while scanning" => "erro ao analisar", "Name" => "Nome", "Size" => "Tamanho", "Modified" => "Modificado", @@ -28,6 +37,16 @@ "folders" => "pastas", "file" => "ficheiro", "files" => "ficheiros", +"seconds ago" => "à segundos", +"minute ago" => "à um minuto", +"minutes ago" => "à minutos", +"today" => "hoje", +"yesterday" => "ontem", +"days ago" => "à dias", +"last month" => "mês passado", +"months ago" => "à meses", +"last year" => "ano passado", +"years ago" => "à anos", "File handling" => "Manuseamento de ficheiros", "Maximum upload size" => "Tamanho máximo de envio", "max. possible: " => "max. possivel: ", @@ -35,6 +54,7 @@ "Enable ZIP-download" => "Ativar dowload de ficheiros ZIP", "0 is unlimited" => "0 é ilimitado", "Maximum input size for ZIP files" => "Tamanho máximo para ficheiros ZIP", +"Save" => "Guardar", "New" => "Novo", "Text file" => "Ficheiro de texto", "Folder" => "Pasta", diff --git a/apps/files_external/l10n/ca.php b/apps/files_external/l10n/ca.php index aa93379c358..43163ce953b 100644 --- a/apps/files_external/l10n/ca.php +++ b/apps/files_external/l10n/ca.php @@ -11,8 +11,8 @@ "Groups" => "Grups", "Users" => "Usuaris", "Delete" => "Elimina", -"SSL root certificates" => "Certificats SSL root", -"Import Root Certificate" => "Importa certificat root", "Enable User External Storage" => "Habilita l'emmagatzemament extern d'usuari", -"Allow users to mount their own external storage" => "Permet als usuaris muntar el seu emmagatzemament extern propi" +"Allow users to mount their own external storage" => "Permet als usuaris muntar el seu emmagatzemament extern propi", +"SSL root certificates" => "Certificats SSL root", +"Import Root Certificate" => "Importa certificat root" ); diff --git a/apps/files_external/l10n/cs_CZ.php b/apps/files_external/l10n/cs_CZ.php index 75899603349..13263b9b550 100644 --- a/apps/files_external/l10n/cs_CZ.php +++ b/apps/files_external/l10n/cs_CZ.php @@ -11,8 +11,8 @@ "Groups" => "Skupiny", "Users" => "Uživatelé", "Delete" => "Smazat", -"SSL root certificates" => "Kořenové certifikáty SSL", -"Import Root Certificate" => "Importovat kořenového certifikátu", "Enable User External Storage" => "Zapnout externí uživatelské úložiště", -"Allow users to mount their own external storage" => "Povolit uživatelům připojení jejich vlastních externích úložišť" +"Allow users to mount their own external storage" => "Povolit uživatelům připojení jejich vlastních externích úložišť", +"SSL root certificates" => "Kořenové certifikáty SSL", +"Import Root Certificate" => "Importovat kořenového certifikátu" ); diff --git a/apps/files_external/l10n/de.php b/apps/files_external/l10n/de.php index 4306ad33dc3..948b4a50bd9 100644 --- a/apps/files_external/l10n/de.php +++ b/apps/files_external/l10n/de.php @@ -11,8 +11,8 @@ "Groups" => "Gruppen", "Users" => "Benutzer", "Delete" => "Löschen", -"SSL root certificates" => "SSL-Root-Zertifikate", -"Import Root Certificate" => "Root-Zertifikate importieren", "Enable User External Storage" => "Externen Speicher für Benutzer aktivieren", -"Allow users to mount their own external storage" => "Erlaubt Benutzern ihre eigenen externen Speicher einzubinden" +"Allow users to mount their own external storage" => "Erlaubt Benutzern ihre eigenen externen Speicher einzubinden", +"SSL root certificates" => "SSL-Root-Zertifikate", +"Import Root Certificate" => "Root-Zertifikate importieren" ); diff --git a/apps/files_external/l10n/el.php b/apps/files_external/l10n/el.php index 3de151eb751..c518fca149e 100644 --- a/apps/files_external/l10n/el.php +++ b/apps/files_external/l10n/el.php @@ -11,8 +11,8 @@ "Groups" => "Ομάδες", "Users" => "Χρήστες", "Delete" => "Διαγραφή", -"SSL root certificates" => "Πιστοποιητικά SSL root", -"Import Root Certificate" => "Εισαγωγή Πιστοποιητικού Root", "Enable User External Storage" => "Ενεργοποίηση Εξωτερικού Αποθηκευτικού Χώρου Χρήστη", -"Allow users to mount their own external storage" => "Να επιτρέπεται στους χρήστες να προσαρτούν δικό τους εξωτερικό αποθηκευτικό χώρο" +"Allow users to mount their own external storage" => "Να επιτρέπεται στους χρήστες να προσαρτούν δικό τους εξωτερικό αποθηκευτικό χώρο", +"SSL root certificates" => "Πιστοποιητικά SSL root", +"Import Root Certificate" => "Εισαγωγή Πιστοποιητικού Root" ); diff --git a/apps/files_external/l10n/eo.php b/apps/files_external/l10n/eo.php index 3cb8255c522..90819e3352c 100644 --- a/apps/files_external/l10n/eo.php +++ b/apps/files_external/l10n/eo.php @@ -11,8 +11,8 @@ "Groups" => "Grupoj", "Users" => "Uzantoj", "Delete" => "Forigi", -"SSL root certificates" => "Radikaj SSL-atestoj", -"Import Root Certificate" => "Enporti radikan ateston", "Enable User External Storage" => "Kapabligi malenan memorilon de uzanto", -"Allow users to mount their own external storage" => "Permesi al uzantoj surmeti siajn proprajn malenajn memorilojn" +"Allow users to mount their own external storage" => "Permesi al uzantoj surmeti siajn proprajn malenajn memorilojn", +"SSL root certificates" => "Radikaj SSL-atestoj", +"Import Root Certificate" => "Enporti radikan ateston" ); diff --git a/apps/files_external/l10n/es.php b/apps/files_external/l10n/es.php index 004c352c199..2a81deffee7 100644 --- a/apps/files_external/l10n/es.php +++ b/apps/files_external/l10n/es.php @@ -11,8 +11,8 @@ "Groups" => "Grupos", "Users" => "Usuarios", "Delete" => "Eliiminar", -"SSL root certificates" => "Raíz de certificados SSL ", -"Import Root Certificate" => "Importar certificado raíz", "Enable User External Storage" => "Habilitar almacenamiento de usuario externo", -"Allow users to mount their own external storage" => "Permitir a los usuarios montar su propio almacenamiento externo" +"Allow users to mount their own external storage" => "Permitir a los usuarios montar su propio almacenamiento externo", +"SSL root certificates" => "Raíz de certificados SSL ", +"Import Root Certificate" => "Importar certificado raíz" ); diff --git a/apps/files_external/l10n/es_AR.php b/apps/files_external/l10n/es_AR.php index 52ed44556ab..80d5729af42 100644 --- a/apps/files_external/l10n/es_AR.php +++ b/apps/files_external/l10n/es_AR.php @@ -11,8 +11,8 @@ "Groups" => "Grupos", "Users" => "Usuarios", "Delete" => "Borrar", -"SSL root certificates" => "certificados SSL raíz", -"Import Root Certificate" => "Importar certificado raíz", "Enable User External Storage" => "Habilitar almacenamiento de usuario externo", -"Allow users to mount their own external storage" => "Permitir a los usuarios montar su propio almacenamiento externo" +"Allow users to mount their own external storage" => "Permitir a los usuarios montar su propio almacenamiento externo", +"SSL root certificates" => "certificados SSL raíz", +"Import Root Certificate" => "Importar certificado raíz" ); diff --git a/apps/files_external/l10n/et_EE.php b/apps/files_external/l10n/et_EE.php index f47ebc936b5..280e2664336 100644 --- a/apps/files_external/l10n/et_EE.php +++ b/apps/files_external/l10n/et_EE.php @@ -11,8 +11,8 @@ "Groups" => "Grupid", "Users" => "Kasutajad", "Delete" => "Kustuta", -"SSL root certificates" => "SSL root sertifikaadid", -"Import Root Certificate" => "Impordi root sertifikaadid", "Enable User External Storage" => "Luba kasutajatele väline salvestamine", -"Allow users to mount their own external storage" => "Luba kasutajatel ühendada külge nende enda välised salvestusseadmed" +"Allow users to mount their own external storage" => "Luba kasutajatel ühendada külge nende enda välised salvestusseadmed", +"SSL root certificates" => "SSL root sertifikaadid", +"Import Root Certificate" => "Impordi root sertifikaadid" ); diff --git a/apps/files_external/l10n/eu.php b/apps/files_external/l10n/eu.php index 6299390c266..9d6f833ffc2 100644 --- a/apps/files_external/l10n/eu.php +++ b/apps/files_external/l10n/eu.php @@ -11,8 +11,8 @@ "Groups" => "Taldeak", "Users" => "Erabiltzaileak", "Delete" => "Ezabatu", -"SSL root certificates" => "SSL erro ziurtagiriak", -"Import Root Certificate" => "Inportatu Erro Ziurtagiria", "Enable User External Storage" => "Gaitu erabiltzaileentzako Kanpo Biltegiratzea", -"Allow users to mount their own external storage" => "Baimendu erabiltzaileak bere kanpo biltegiratzeak muntatzen" +"Allow users to mount their own external storage" => "Baimendu erabiltzaileak bere kanpo biltegiratzeak muntatzen", +"SSL root certificates" => "SSL erro ziurtagiriak", +"Import Root Certificate" => "Inportatu Erro Ziurtagiria" ); diff --git a/apps/files_external/l10n/fi_FI.php b/apps/files_external/l10n/fi_FI.php index cea671368ed..c8c93306e1f 100644 --- a/apps/files_external/l10n/fi_FI.php +++ b/apps/files_external/l10n/fi_FI.php @@ -11,8 +11,8 @@ "Groups" => "Ryhmät", "Users" => "Käyttäjät", "Delete" => "Poista", -"SSL root certificates" => "SSL-juurivarmenteet", -"Import Root Certificate" => "Tuo juurivarmenne", "Enable User External Storage" => "Ota käyttöön ulkopuoliset tallennuspaikat", -"Allow users to mount their own external storage" => "Salli käyttäjien liittää omia erillisiä tallennusvälineitä" +"Allow users to mount their own external storage" => "Salli käyttäjien liittää omia erillisiä tallennusvälineitä", +"SSL root certificates" => "SSL-juurivarmenteet", +"Import Root Certificate" => "Tuo juurivarmenne" ); diff --git a/apps/files_external/l10n/fr.php b/apps/files_external/l10n/fr.php index b3e76c63500..409c66031e9 100644 --- a/apps/files_external/l10n/fr.php +++ b/apps/files_external/l10n/fr.php @@ -11,8 +11,8 @@ "Groups" => "Groupes", "Users" => "Utilisateurs", "Delete" => "Supprimer", -"SSL root certificates" => "Certificats racine SSL", -"Import Root Certificate" => "Importer un certificat racine", "Enable User External Storage" => "Activer le stockage externe pour les utilisateurs", -"Allow users to mount their own external storage" => "Autoriser les utilisateurs à monter leur propre stockage externe" +"Allow users to mount their own external storage" => "Autoriser les utilisateurs à monter leur propre stockage externe", +"SSL root certificates" => "Certificats racine SSL", +"Import Root Certificate" => "Importer un certificat racine" ); diff --git a/apps/files_external/l10n/gl.php b/apps/files_external/l10n/gl.php index c6de7b837a6..3830efb70bf 100644 --- a/apps/files_external/l10n/gl.php +++ b/apps/files_external/l10n/gl.php @@ -11,8 +11,8 @@ "Groups" => "Grupos", "Users" => "Usuarios", "Delete" => "Eliminar", -"SSL root certificates" => "Certificados raíz SSL", -"Import Root Certificate" => "Importar Certificado Raíz", "Enable User External Storage" => "Habilitar almacenamento externo do usuario", -"Allow users to mount their own external storage" => "Permitir aos usuarios montar os seus propios almacenamentos externos" +"Allow users to mount their own external storage" => "Permitir aos usuarios montar os seus propios almacenamentos externos", +"SSL root certificates" => "Certificados raíz SSL", +"Import Root Certificate" => "Importar Certificado Raíz" ); diff --git a/apps/files_external/l10n/he.php b/apps/files_external/l10n/he.php index edfa9aa85f0..12dfa62e7c8 100644 --- a/apps/files_external/l10n/he.php +++ b/apps/files_external/l10n/he.php @@ -6,8 +6,8 @@ "Groups" => "קבוצות", "Users" => "משתמשים", "Delete" => "מחיקה", -"SSL root certificates" => "שורש אישורי אבטחת SSL ", -"Import Root Certificate" => "ייבוא אישור אבטחת שורש", "Enable User External Storage" => "הפעלת אחסון חיצוני למשתמשים", -"Allow users to mount their own external storage" => "יאפשר למשתמשים לעגן את האחסון החיצוני שלהם" +"Allow users to mount their own external storage" => "יאפשר למשתמשים לעגן את האחסון החיצוני שלהם", +"SSL root certificates" => "שורש אישורי אבטחת SSL ", +"Import Root Certificate" => "ייבוא אישור אבטחת שורש" ); diff --git a/apps/files_external/l10n/it.php b/apps/files_external/l10n/it.php index 5c5d32b214c..8ff5df9309a 100644 --- a/apps/files_external/l10n/it.php +++ b/apps/files_external/l10n/it.php @@ -11,8 +11,8 @@ "Groups" => "Gruppi", "Users" => "Utenti", "Delete" => "Elimina", -"SSL root certificates" => "Certificati SSL radice", -"Import Root Certificate" => "Importa certificato radice", "Enable User External Storage" => "Abilita la memoria esterna dell'utente", -"Allow users to mount their own external storage" => "Consenti agli utenti di montare la propria memoria esterna" +"Allow users to mount their own external storage" => "Consenti agli utenti di montare la propria memoria esterna", +"SSL root certificates" => "Certificati SSL radice", +"Import Root Certificate" => "Importa certificato radice" ); diff --git a/apps/files_external/l10n/ja_JP.php b/apps/files_external/l10n/ja_JP.php index c7d38d88321..81c6207775b 100644 --- a/apps/files_external/l10n/ja_JP.php +++ b/apps/files_external/l10n/ja_JP.php @@ -11,8 +11,8 @@ "Groups" => "グループ", "Users" => "ユーザ", "Delete" => "削除", -"SSL root certificates" => "SSLルート証明書", -"Import Root Certificate" => "ルート証明書をインポート", "Enable User External Storage" => "ユーザの外部ストレージを有効にする", -"Allow users to mount their own external storage" => "ユーザに外部ストレージのマウントを許可する" +"Allow users to mount their own external storage" => "ユーザに外部ストレージのマウントを許可する", +"SSL root certificates" => "SSLルート証明書", +"Import Root Certificate" => "ルート証明書をインポート" ); diff --git a/apps/files_external/l10n/nl.php b/apps/files_external/l10n/nl.php index f3f38260a8a..fee60e66aa5 100644 --- a/apps/files_external/l10n/nl.php +++ b/apps/files_external/l10n/nl.php @@ -11,8 +11,8 @@ "Groups" => "Groepen", "Users" => "Gebruikers", "Delete" => "Verwijder", -"SSL root certificates" => "SSL root certificaten", -"Import Root Certificate" => "Importeer root certificaat", "Enable User External Storage" => "Zet gebruiker's externe opslag aan", -"Allow users to mount their own external storage" => "Sta gebruikers toe om hun eigen externe opslag aan te koppelen" +"Allow users to mount their own external storage" => "Sta gebruikers toe om hun eigen externe opslag aan te koppelen", +"SSL root certificates" => "SSL root certificaten", +"Import Root Certificate" => "Importeer root certificaat" ); diff --git a/apps/files_external/l10n/pl.php b/apps/files_external/l10n/pl.php index df0ed54e80f..06f41ba4815 100644 --- a/apps/files_external/l10n/pl.php +++ b/apps/files_external/l10n/pl.php @@ -11,8 +11,8 @@ "Groups" => "Grupy", "Users" => "Użytkownicy", "Delete" => "Usuń", -"SSL root certificates" => "Główny certyfikat SSL", -"Import Root Certificate" => "Importuj główny certyfikat", "Enable User External Storage" => "Włącz zewnętrzne zasoby dyskowe użytkownika", -"Allow users to mount their own external storage" => "Zezwalaj użytkownikom na montowanie ich własnych zewnętrznych zasobów dyskowych" +"Allow users to mount their own external storage" => "Zezwalaj użytkownikom na montowanie ich własnych zewnętrznych zasobów dyskowych", +"SSL root certificates" => "Główny certyfikat SSL", +"Import Root Certificate" => "Importuj główny certyfikat" ); diff --git a/apps/files_external/l10n/pt_BR.php b/apps/files_external/l10n/pt_BR.php index 3251e4561a1..0f1d39e5930 100644 --- a/apps/files_external/l10n/pt_BR.php +++ b/apps/files_external/l10n/pt_BR.php @@ -11,8 +11,8 @@ "Groups" => "Grupos", "Users" => "Usuários", "Delete" => "Remover", -"SSL root certificates" => "Certificados SSL raíz", -"Import Root Certificate" => "Importar Certificado Raíz", "Enable User External Storage" => "Habilitar Armazenamento Externo do Usuário", -"Allow users to mount their own external storage" => "Permitir usuários a montar seus próprios armazenamentos externos" +"Allow users to mount their own external storage" => "Permitir usuários a montar seus próprios armazenamentos externos", +"SSL root certificates" => "Certificados SSL raíz", +"Import Root Certificate" => "Importar Certificado Raíz" ); diff --git a/apps/files_external/l10n/pt_PT.php b/apps/files_external/l10n/pt_PT.php index 8b4680b3711..f2618a14cee 100644 --- a/apps/files_external/l10n/pt_PT.php +++ b/apps/files_external/l10n/pt_PT.php @@ -1,10 +1,18 @@ "Armazenamento Externo", +"Mount point" => "Ponto de montagem", +"Backend" => "Backend", "Configuration" => "Configuração", "Options" => "Opções", "Applicable" => "Aplicável", +"Add mount point" => "Adicionar ponto de montagem", +"None set" => "Nenhum configurado", "All Users" => "Todos os utilizadores", "Groups" => "Grupos", "Users" => "Utilizadores", "Delete" => "Apagar", +"Enable User External Storage" => "Activar Armazenamento Externo para o Utilizador", +"Allow users to mount their own external storage" => "Permitir que os utilizadores montem o seu próprio armazenamento externo", +"SSL root certificates" => "Certificados SSL de raiz", "Import Root Certificate" => "Importar Certificado Root" ); diff --git a/apps/files_external/l10n/ro.php b/apps/files_external/l10n/ro.php index f5114f61791..6a152786808 100644 --- a/apps/files_external/l10n/ro.php +++ b/apps/files_external/l10n/ro.php @@ -11,8 +11,8 @@ "Groups" => "Grupuri", "Users" => "Utilizatori", "Delete" => "Șterge", -"SSL root certificates" => "Certificate SSL root", -"Import Root Certificate" => "Importă certificat root", "Enable User External Storage" => "Permite stocare externă pentru utilizatori", -"Allow users to mount their own external storage" => "Permite utilizatorilor să monteze stocare externă proprie" +"Allow users to mount their own external storage" => "Permite utilizatorilor să monteze stocare externă proprie", +"SSL root certificates" => "Certificate SSL root", +"Import Root Certificate" => "Importă certificat root" ); diff --git a/apps/files_external/l10n/ru.php b/apps/files_external/l10n/ru.php index 7ee43786621..eeef416a848 100644 --- a/apps/files_external/l10n/ru.php +++ b/apps/files_external/l10n/ru.php @@ -11,8 +11,8 @@ "Groups" => "Группы", "Users" => "Пользователи", "Delete" => "Удалить", -"SSL root certificates" => "Корневые сертификаты SSL", -"Import Root Certificate" => "Импортировать корневые сертификаты", "Enable User External Storage" => "Включить пользовательские внешние носители", -"Allow users to mount their own external storage" => "Разрешить пользователям монтировать их собственные внешние носители" +"Allow users to mount their own external storage" => "Разрешить пользователям монтировать их собственные внешние носители", +"SSL root certificates" => "Корневые сертификаты SSL", +"Import Root Certificate" => "Импортировать корневые сертификаты" ); diff --git a/apps/files_external/l10n/ru_RU.php b/apps/files_external/l10n/ru_RU.php index 5b0cf1b6aaa..69cf7544dd9 100644 --- a/apps/files_external/l10n/ru_RU.php +++ b/apps/files_external/l10n/ru_RU.php @@ -11,8 +11,8 @@ "Groups" => "Группы", "Users" => "Пользователи", "Delete" => "Удалить", -"SSL root certificates" => "Корневые сертификаты SSL", -"Import Root Certificate" => "Импортировать корневые сертификаты", "Enable User External Storage" => "Включить пользовательскую внешнюю систему хранения данных", -"Allow users to mount their own external storage" => "Разрешить пользователям монтировать их собственную внешнюю систему хранения данных" +"Allow users to mount their own external storage" => "Разрешить пользователям монтировать их собственную внешнюю систему хранения данных", +"SSL root certificates" => "Корневые сертификаты SSL", +"Import Root Certificate" => "Импортировать корневые сертификаты" ); diff --git a/apps/files_external/l10n/sk_SK.php b/apps/files_external/l10n/sk_SK.php index 24087ea7feb..0b351d306ef 100644 --- a/apps/files_external/l10n/sk_SK.php +++ b/apps/files_external/l10n/sk_SK.php @@ -11,8 +11,8 @@ "Groups" => "Skupiny", "Users" => "Užívatelia", "Delete" => "Odstrániť", -"SSL root certificates" => "Koreňové SSL certifikáty", -"Import Root Certificate" => "Importovať koreňový certifikát", "Enable User External Storage" => "Povoliť externé úložisko", -"Allow users to mount their own external storage" => "Povoliť užívateľom pripojiť ich vlastné externé úložisko" +"Allow users to mount their own external storage" => "Povoliť užívateľom pripojiť ich vlastné externé úložisko", +"SSL root certificates" => "Koreňové SSL certifikáty", +"Import Root Certificate" => "Importovať koreňový certifikát" ); diff --git a/apps/files_external/l10n/sl.php b/apps/files_external/l10n/sl.php index d588844467e..f455f8c56fa 100644 --- a/apps/files_external/l10n/sl.php +++ b/apps/files_external/l10n/sl.php @@ -11,8 +11,8 @@ "Groups" => "Skupine", "Users" => "Uporabniki", "Delete" => "Izbriši", -"SSL root certificates" => "SSL korenski certifikati", -"Import Root Certificate" => "Uvozi korenski certifikat", "Enable User External Storage" => "Omogoči uporabo zunanje podatkovne shrambe za uporabnike", -"Allow users to mount their own external storage" => "Dovoli uporabnikom priklop lastne zunanje podatkovne shrambe" +"Allow users to mount their own external storage" => "Dovoli uporabnikom priklop lastne zunanje podatkovne shrambe", +"SSL root certificates" => "SSL korenski certifikati", +"Import Root Certificate" => "Uvozi korenski certifikat" ); diff --git a/apps/files_external/l10n/sv.php b/apps/files_external/l10n/sv.php index 0838df6a32b..43a93961d55 100644 --- a/apps/files_external/l10n/sv.php +++ b/apps/files_external/l10n/sv.php @@ -11,8 +11,8 @@ "Groups" => "Grupper", "Users" => "Användare", "Delete" => "Radera", -"SSL root certificates" => "SSL rotcertifikat", -"Import Root Certificate" => "Importera rotcertifikat", "Enable User External Storage" => "Aktivera extern lagring för användare", -"Allow users to mount their own external storage" => "Tillåt användare att montera egen extern lagring" +"Allow users to mount their own external storage" => "Tillåt användare att montera egen extern lagring", +"SSL root certificates" => "SSL rotcertifikat", +"Import Root Certificate" => "Importera rotcertifikat" ); diff --git a/apps/files_external/l10n/th_TH.php b/apps/files_external/l10n/th_TH.php index 84a233046eb..322345a88ae 100644 --- a/apps/files_external/l10n/th_TH.php +++ b/apps/files_external/l10n/th_TH.php @@ -11,8 +11,8 @@ "Groups" => "กลุ่ม", "Users" => "ผู้ใช้งาน", "Delete" => "ลบ", -"SSL root certificates" => "ใบรับรองความปลอดภัยด้วยระบบ SSL จาก Root", -"Import Root Certificate" => "นำเข้าข้อมูลใบรับรองความปลอดภัยจาก Root", "Enable User External Storage" => "เปิดให้มีการใช้พื้นที่จัดเก็บข้อมูลของผู้ใช้งานจากภายนอกได้", -"Allow users to mount their own external storage" => "อนุญาตให้ผู้ใช้งานสามารถชี้ตำแหน่งไปที่พื้นที่จัดเก็บข้อมูลภายนอกของตนเองได้" +"Allow users to mount their own external storage" => "อนุญาตให้ผู้ใช้งานสามารถชี้ตำแหน่งไปที่พื้นที่จัดเก็บข้อมูลภายนอกของตนเองได้", +"SSL root certificates" => "ใบรับรองความปลอดภัยด้วยระบบ SSL จาก Root", +"Import Root Certificate" => "นำเข้าข้อมูลใบรับรองความปลอดภัยจาก Root" ); diff --git a/apps/files_external/l10n/vi.php b/apps/files_external/l10n/vi.php index 35312329da1..dd616e91153 100644 --- a/apps/files_external/l10n/vi.php +++ b/apps/files_external/l10n/vi.php @@ -11,8 +11,8 @@ "Groups" => "Nhóm", "Users" => "Người dùng", "Delete" => "Xóa", -"SSL root certificates" => "Chứng chỉ SSL root", -"Import Root Certificate" => "Nhập Root Certificate", "Enable User External Storage" => "Kích hoạt tính năng lưu trữ ngoài", -"Allow users to mount their own external storage" => "Cho phép người dùng kết nối với lưu trữ riêng bên ngoài của họ" +"Allow users to mount their own external storage" => "Cho phép người dùng kết nối với lưu trữ riêng bên ngoài của họ", +"SSL root certificates" => "Chứng chỉ SSL root", +"Import Root Certificate" => "Nhập Root Certificate" ); diff --git a/apps/files_external/l10n/zh_CN.GB2312.php b/apps/files_external/l10n/zh_CN.GB2312.php index 6a6d1c6d12f..62ac77ada04 100644 --- a/apps/files_external/l10n/zh_CN.GB2312.php +++ b/apps/files_external/l10n/zh_CN.GB2312.php @@ -11,8 +11,8 @@ "Groups" => "群组", "Users" => "用户", "Delete" => "删除", -"SSL root certificates" => "SSL 根证书", -"Import Root Certificate" => "导入根证书", "Enable User External Storage" => "启用用户外部存储", -"Allow users to mount their own external storage" => "允许用户挂载他们的外部存储" +"Allow users to mount their own external storage" => "允许用户挂载他们的外部存储", +"SSL root certificates" => "SSL 根证书", +"Import Root Certificate" => "导入根证书" ); diff --git a/apps/files_sharing/l10n/de.php b/apps/files_sharing/l10n/de.php index b9a50387aa0..c2fec215451 100644 --- a/apps/files_sharing/l10n/de.php +++ b/apps/files_sharing/l10n/de.php @@ -1,9 +1,9 @@ "Passwort", "Submit" => "Absenden", -"%s shared the folder %s with you" => "%s hat mit Ihnen den Ordner %s geteilt", -"%s shared the file %s with you" => "%s hat mit Ihnen die Datei %s geteilt", +"%s shared the folder %s with you" => "%s hat den Ordner %s für dich freigegeben", +"%s shared the file %s with you" => "%s hat die Datei %s für dich freigegeben", "Download" => "Download", "No preview available for" => "Es ist keine Vorschau verfügbar für", -"web services under your control" => "Web-Services unter Ihrer Kontrolle" +"web services under your control" => "Web-Services unter Deiner Kontrolle" ); diff --git a/apps/files_versions/l10n/de.php b/apps/files_versions/l10n/de.php index a568112d02d..092bbfbff70 100644 --- a/apps/files_versions/l10n/de.php +++ b/apps/files_versions/l10n/de.php @@ -2,7 +2,7 @@ "Expire all versions" => "Alle Versionen löschen", "History" => "Historie", "Versions" => "Versionen", -"This will delete all existing backup versions of your files" => "Dies löscht alle vorhandenen Sicherungsversionen Ihrer Dateien.", +"This will delete all existing backup versions of your files" => "Dies löscht alle vorhandenen Sicherungsversionen Deiner Dateien.", "Files Versioning" => "Dateiversionierung", "Enable" => "Aktivieren" ); diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php index df676711792..97debcbab60 100644 --- a/apps/user_ldap/l10n/de.php +++ b/apps/user_ldap/l10n/de.php @@ -1,12 +1,12 @@ "Host", -"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://", +"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://", "Base DN" => "Basis-DN", -"You can specify Base DN for users and groups in the Advanced tab" => "Sie können Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren", +"You can specify Base DN for users and groups in the Advanced tab" => "Du kannst Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren", "User DN" => "Benutzer-DN", -"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lassen Sie DN und Passwort leer.", +"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lasse DN und Passwort leer.", "Password" => "Passwort", -"For anonymous access, leave DN and Password empty." => "Lassen Sie die Felder von DN und Passwort für anonymen Zugang leer.", +"For anonymous access, leave DN and Password empty." => "Lasse die Felder von DN und Passwort für anonymen Zugang leer.", "User Login Filter" => "Benutzer-Login-Filter", "Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Bestimmt den angewendeten Filter, wenn eine Anmeldung versucht wird. %%uid ersetzt den Benutzernamen bei dem Anmeldeversuch.", "use %%uid placeholder, e.g. \"uid=%%uid\"" => "verwende %%uid Platzhalter, z. B. \"uid=%%uid\"", @@ -21,7 +21,7 @@ "Base Group Tree" => "Basis-Gruppenbaum", "Group-Member association" => "Assoziation zwischen Gruppe und Benutzer", "Use TLS" => "Nutze TLS", -"Do not use it for SSL connections, it will fail." => "Verwenden Sie es nicht für SSL-Verbindungen, es wird fehlschlagen.", +"Do not use it for SSL connections, it will fail." => "Verwende dies nicht für SSL-Verbindungen, es wird fehlschlagen.", "Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)", "Turn off SSL certificate validation." => "Schalte die SSL-Zertifikatsprüfung aus.", "If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Falls die Verbindung es erfordert, muss das SSL-Zertifikat des LDAP-Server importiert werden.", @@ -32,6 +32,6 @@ "The LDAP attribute to use to generate the groups`s ownCloud name." => "Das LDAP-Attribut für die Generierung des Gruppennamens in ownCloud. ", "in bytes" => "in Bytes", "in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.", -"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfalls geben Sie ein LDAP/AD-Attribut an.", +"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein.", "Help" => "Hilfe" ); diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php index 4ed7ab1f081..e973eaac0a9 100644 --- a/apps/user_ldap/l10n/el.php +++ b/apps/user_ldap/l10n/el.php @@ -11,7 +11,7 @@ "Group-Member association" => "Group-Member association", "Use TLS" => "Χρήση TLS", "Not recommended, use for testing only." => "Δεν προτείνεται, χρήση μόνο για δοκιμές.", -"User Display Name Field" => "User Display Name Field", +"User Display Name Field" => "Πεδίο Ονόματος Χρήστη", "Group Display Name Field" => "Group Display Name Field", "in bytes" => "σε bytes", "Help" => "Βοήθεια" diff --git a/core/l10n/de.php b/core/l10n/de.php index 8697967274f..31cfa764f98 100644 --- a/core/l10n/de.php +++ b/core/l10n/de.php @@ -25,7 +25,7 @@ "Error while sharing" => "Fehler beim Freigeben", "Error while unsharing" => "Fehler beim Aufheben der Freigabe", "Error while changing permissions" => "Fehler beim Ändern der Rechte", -"Shared with you and the group" => "Mit Dir und der Gruppe geteilt", +"Shared with you and the group" => "Für Dich und folgende Gruppe freigegeben", "by" => "mit", "Shared with you by" => "Dies wurde mit dir geteilt von", "Share with" => "Freigeben für", @@ -37,7 +37,7 @@ "Share via email:" => "Über eine E-Mail freigeben:", "No people found" => "Niemand gefunden", "Resharing is not allowed" => "Weiterverteilen ist nicht erlaubt", -"Shared in" => "Geteilt mit", +"Shared in" => "Freigegeben in", "with" => "mit", "Unshare" => "Freigabe aufheben", "can edit" => "kann bearbeiten", diff --git a/l10n/af/files_external.po b/l10n/af/files_external.po index 3818f8ed56b..1c1530dd031 100644 --- a/l10n/af/files_external.po +++ b/l10n/af/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Afrikaans (http://www.transifex.com/projects/p/owncloud/language/af/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: af\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/ar/files_external.po b/l10n/ar/files_external.po index c0dcac27be9..3d3199bfb81 100644 --- a/l10n/ar/files_external.po +++ b/l10n/ar/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Arabic (http://www.transifex.com/projects/p/owncloud/language/ar/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ar\n" -"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5\n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/ar_SA/files_external.po b/l10n/ar_SA/files_external.po index faa597d0f4c..1cbea064639 100644 --- a/l10n/ar_SA/files_external.po +++ b/l10n/ar_SA/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Arabic (Saudi Arabia) (http://www.transifex.com/projects/p/owncloud/language/ar_SA/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ar_SA\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/bg_BG/files_external.po b/l10n/bg_BG/files_external.po index fcc676908d2..adf4447b42e 100644 --- a/l10n/bg_BG/files_external.po +++ b/l10n/bg_BG/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Bulgarian (Bulgaria) (http://www.transifex.com/projects/p/owncloud/language/bg_BG/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: bg_BG\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/ca/files_external.po b/l10n/ca/files_external.po index 8bc7ba3b00f..9756e656c8f 100644 --- a/l10n/ca/files_external.po +++ b/l10n/ca/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-13 18:33+0000\n" -"Last-Translator: rogerc \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Catalan (http://www.transifex.com/projects/p/owncloud/language/ca/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ca\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "Grups" msgid "Users" msgstr "Usuaris" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Elimina" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Habilita l'emmagatzemament extern d'usuari" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Permet als usuaris muntar el seu emmagatzemament extern propi" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Certificats SSL root" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importa certificat root" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Habilita l'emmagatzemament extern d'usuari" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Permet als usuaris muntar el seu emmagatzemament extern propi" diff --git a/l10n/cs_CZ/files_external.po b/l10n/cs_CZ/files_external.po index 90f40c4ffc7..df08fa0cc88 100644 --- a/l10n/cs_CZ/files_external.po +++ b/l10n/cs_CZ/files_external.po @@ -11,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-06 02:01+0200\n" -"PO-Revision-Date: 2012-09-05 13:37+0000\n" -"Last-Translator: Tomáš Chvátal \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Czech (Czech Republic) (http://www.transifex.com/projects/p/owncloud/language/cs_CZ/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -21,6 +21,30 @@ msgstr "" "Language: cs_CZ\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Externí úložiště" @@ -65,22 +89,22 @@ msgstr "Skupiny" msgid "Users" msgstr "Uživatelé" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Smazat" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Zapnout externí uživatelské úložiště" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Povolit uživatelům připojení jejich vlastních externích úložišť" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Kořenové certifikáty SSL" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importovat kořenového certifikátu" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Zapnout externí uživatelské úložiště" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Povolit uživatelům připojení jejich vlastních externích úložišť" diff --git a/l10n/da/files_external.po b/l10n/da/files_external.po index a37fa55a6fb..fbc363140f1 100644 --- a/l10n/da/files_external.po +++ b/l10n/da/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-26 02:02+0200\n" -"PO-Revision-Date: 2012-09-25 14:09+0000\n" -"Last-Translator: Morten Juhl-Johansen Zölde-Fejér \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Danish (http://www.transifex.com/projects/p/owncloud/language/da/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: da\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Ekstern opbevaring" diff --git a/l10n/de/core.po b/l10n/de/core.po index 66450ff6920..27511ab1ee1 100644 --- a/l10n/de/core.po +++ b/l10n/de/core.po @@ -20,9 +20,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-29 02:02+0200\n" -"PO-Revision-Date: 2012-09-28 21:40+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 07:55+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -118,8 +118,8 @@ msgstr "OK" msgid "No categories selected for deletion." msgstr "Es wurde keine Kategorien zum Löschen ausgewählt." -#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:489 -#: js/share.js:501 +#: js/oc-vcategories.js:68 js/share.js:114 js/share.js:121 js/share.js:493 +#: js/share.js:505 msgid "Error" msgstr "Fehler" @@ -137,7 +137,7 @@ msgstr "Fehler beim Ändern der Rechte" #: js/share.js:130 msgid "Shared with you and the group" -msgstr "Mit Dir und der Gruppe geteilt" +msgstr "Für Dich und folgende Gruppe freigegeben" #: js/share.js:130 msgid "by" @@ -185,7 +185,7 @@ msgstr "Weiterverteilen ist nicht erlaubt" #: js/share.js:250 msgid "Shared in" -msgstr "Geteilt mit" +msgstr "Freigegeben in" #: js/share.js:250 msgid "with" @@ -195,39 +195,39 @@ msgstr "mit" msgid "Unshare" msgstr "Freigabe aufheben" -#: js/share.js:279 +#: js/share.js:283 msgid "can edit" msgstr "kann bearbeiten" -#: js/share.js:281 +#: js/share.js:285 msgid "access control" msgstr "Zugriffskontrolle" -#: js/share.js:284 +#: js/share.js:288 msgid "create" msgstr "erstellen" -#: js/share.js:287 +#: js/share.js:291 msgid "update" msgstr "aktualisieren" -#: js/share.js:290 +#: js/share.js:294 msgid "delete" msgstr "löschen" -#: js/share.js:293 +#: js/share.js:297 msgid "share" msgstr "teilen" -#: js/share.js:317 js/share.js:476 +#: js/share.js:321 js/share.js:480 msgid "Password protected" msgstr "Durch ein Passwort geschützt" -#: js/share.js:489 +#: js/share.js:493 msgid "Error unsetting expiration date" msgstr "Fehler beim entfernen des Ablaufdatums" -#: js/share.js:501 +#: js/share.js:505 msgid "Error setting expiration date" msgstr "Fehler beim Setzen des Ablaufdatums" @@ -256,7 +256,7 @@ msgstr "Login fehlgeschlagen!" msgid "Username" msgstr "Benutzername" -#: lostpassword/templates/lostpassword.php:15 +#: lostpassword/templates/lostpassword.php:14 msgid "Request reset" msgstr "Beantrage Zurücksetzung" @@ -369,11 +369,11 @@ msgstr "Abmelden" msgid "Lost your password?" msgstr "Passwort vergessen?" -#: templates/login.php:17 +#: templates/login.php:16 msgid "remember" msgstr "merken" -#: templates/login.php:18 +#: templates/login.php:17 msgid "Log in" msgstr "Einloggen" diff --git a/l10n/de/files_encryption.po b/l10n/de/files_encryption.po index 38b9a4bc055..2231e6ffdf9 100644 --- a/l10n/de/files_encryption.po +++ b/l10n/de/files_encryption.po @@ -8,15 +8,15 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-13 20:21+0000\n" -"Last-Translator: driz \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 09:06+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" #: templates/settings.php:3 msgid "Encryption" diff --git a/l10n/de/files_external.po b/l10n/de/files_external.po index 49a5cc39b05..c95ce04a11c 100644 --- a/l10n/de/files_external.po +++ b/l10n/de/files_external.po @@ -9,15 +9,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-24 02:02+0200\n" -"PO-Revision-Date: 2012-08-23 10:07+0000\n" -"Last-Translator: traductor \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: de\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -63,22 +87,22 @@ msgstr "Gruppen" msgid "Users" msgstr "Benutzer" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Löschen" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Externen Speicher für Benutzer aktivieren" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Erlaubt Benutzern ihre eigenen externen Speicher einzubinden" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "SSL-Root-Zertifikate" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Root-Zertifikate importieren" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Externen Speicher für Benutzer aktivieren" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Erlaubt Benutzern ihre eigenen externen Speicher einzubinden" diff --git a/l10n/de/files_sharing.po b/l10n/de/files_sharing.po index 64990416394..c3fe25897e1 100644 --- a/l10n/de/files_sharing.po +++ b/l10n/de/files_sharing.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2012. # I Robot , 2012. # , 2012. # , 2012. @@ -11,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-22 02:00+0200\n" -"PO-Revision-Date: 2012-09-21 23:22+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 09:08+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -32,12 +33,12 @@ msgstr "Absenden" #: templates/public.php:9 #, php-format msgid "%s shared the folder %s with you" -msgstr "%s hat mit Ihnen den Ordner %s geteilt" +msgstr "%s hat den Ordner %s für dich freigegeben" #: templates/public.php:11 #, php-format msgid "%s shared the file %s with you" -msgstr "%s hat mit Ihnen die Datei %s geteilt" +msgstr "%s hat die Datei %s für dich freigegeben" #: templates/public.php:14 templates/public.php:30 msgid "Download" @@ -49,4 +50,4 @@ msgstr "Es ist keine Vorschau verfügbar für" #: templates/public.php:37 msgid "web services under your control" -msgstr "Web-Services unter Ihrer Kontrolle" +msgstr "Web-Services unter Deiner Kontrolle" diff --git a/l10n/de/files_versions.po b/l10n/de/files_versions.po index d6e541868da..464f1fe302c 100644 --- a/l10n/de/files_versions.po +++ b/l10n/de/files_versions.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2012. # I Robot , 2012. # , 2012. # , 2012. @@ -11,9 +12,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-22 02:00+0200\n" -"PO-Revision-Date: 2012-09-21 23:21+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 09:08+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -35,7 +36,7 @@ msgstr "Versionen" #: templates/settings-personal.php:7 msgid "This will delete all existing backup versions of your files" -msgstr "Dies löscht alle vorhandenen Sicherungsversionen Ihrer Dateien." +msgstr "Dies löscht alle vorhandenen Sicherungsversionen Deiner Dateien." #: templates/settings.php:3 msgid "Files Versioning" diff --git a/l10n/de/user_ldap.po b/l10n/de/user_ldap.po index 951faf6839a..71044b0d502 100644 --- a/l10n/de/user_ldap.po +++ b/l10n/de/user_ldap.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# , 2012. # I Robot , 2012. # Maurice Preuß <>, 2012. # , 2012. @@ -12,9 +13,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-18 02:01+0200\n" -"PO-Revision-Date: 2012-09-17 20:49+0000\n" -"Last-Translator: traductor \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 09:13+0000\n" +"Last-Translator: Mirodin \n" "Language-Team: German (http://www.transifex.com/projects/p/owncloud/language/de/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -29,7 +30,7 @@ msgstr "Host" #: templates/settings.php:8 msgid "" "You can omit the protocol, except you require SSL. Then start with ldaps://" -msgstr "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://" +msgstr "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://" #: templates/settings.php:9 msgid "Base DN" @@ -37,7 +38,7 @@ msgstr "Basis-DN" #: templates/settings.php:9 msgid "You can specify Base DN for users and groups in the Advanced tab" -msgstr "Sie können Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren" +msgstr "Du kannst Basis-DN für Benutzer und Gruppen in dem \"Erweitert\"-Reiter konfigurieren" #: templates/settings.php:10 msgid "User DN" @@ -48,7 +49,7 @@ msgid "" "The DN of the client user with which the bind shall be done, e.g. " "uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password " "empty." -msgstr "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lassen Sie DN und Passwort leer." +msgstr "Der DN des Benutzers für LDAP-Bind, z.B.: uid=agent,dc=example,dc=com. Für anonymen Zugriff lasse DN und Passwort leer." #: templates/settings.php:11 msgid "Password" @@ -56,7 +57,7 @@ msgstr "Passwort" #: templates/settings.php:11 msgid "For anonymous access, leave DN and Password empty." -msgstr "Lassen Sie die Felder von DN und Passwort für anonymen Zugang leer." +msgstr "Lasse die Felder von DN und Passwort für anonymen Zugang leer." #: templates/settings.php:12 msgid "User Login Filter" @@ -120,7 +121,7 @@ msgstr "Nutze TLS" #: templates/settings.php:21 msgid "Do not use it for SSL connections, it will fail." -msgstr "Verwenden Sie es nicht für SSL-Verbindungen, es wird fehlschlagen." +msgstr "Verwende dies nicht für SSL-Verbindungen, es wird fehlschlagen." #: templates/settings.php:22 msgid "Case insensitve LDAP server (Windows)" @@ -168,7 +169,7 @@ msgstr "in Sekunden. Eine Änderung leert den Cache." msgid "" "Leave empty for user name (default). Otherwise, specify an LDAP/AD " "attribute." -msgstr "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfalls geben Sie ein LDAP/AD-Attribut an." +msgstr "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein." #: templates/settings.php:32 msgid "Help" diff --git a/l10n/el/files_external.po b/l10n/el/files_external.po index 26acbf9da90..6bb867891c0 100644 --- a/l10n/el/files_external.po +++ b/l10n/el/files_external.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-18 02:01+0200\n" -"PO-Revision-Date: 2012-09-17 20:07+0000\n" -"Last-Translator: Efstathios Iosifidis \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -20,6 +20,30 @@ msgstr "" "Language: el\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Εξωτερικό Αποθηκευτικό Μέσο" @@ -64,22 +88,22 @@ msgstr "Ομάδες" msgid "Users" msgstr "Χρήστες" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Διαγραφή" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Ενεργοποίηση Εξωτερικού Αποθηκευτικού Χώρου Χρήστη" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Να επιτρέπεται στους χρήστες να προσαρτούν δικό τους εξωτερικό αποθηκευτικό χώρο" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Πιστοποιητικά SSL root" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Εισαγωγή Πιστοποιητικού Root" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Ενεργοποίηση Εξωτερικού Αποθηκευτικού Χώρου Χρήστη" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Να επιτρέπεται στους χρήστες να προσαρτούν δικό τους εξωτερικό αποθηκευτικό χώρο" diff --git a/l10n/el/user_ldap.po b/l10n/el/user_ldap.po index 86f0cd18819..4712df12fdd 100644 --- a/l10n/el/user_ldap.po +++ b/l10n/el/user_ldap.po @@ -10,9 +10,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-28 23:34+0200\n" -"PO-Revision-Date: 2012-09-28 01:27+0000\n" -"Last-Translator: Dimitris M. \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 06:46+0000\n" +"Last-Translator: Efstathios Iosifidis \n" "Language-Team: Greek (http://www.transifex.com/projects/p/owncloud/language/el/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -140,7 +140,7 @@ msgstr "Δεν προτείνεται, χρήση μόνο για δοκιμές #: templates/settings.php:24 msgid "User Display Name Field" -msgstr "User Display Name Field" +msgstr "Πεδίο Ονόματος Χρήστη" #: templates/settings.php:24 msgid "The LDAP attribute to use to generate the user`s ownCloud name." diff --git a/l10n/eo/files_external.po b/l10n/eo/files_external.po index 11e4211e707..2ef114a330c 100644 --- a/l10n/eo/files_external.po +++ b/l10n/eo/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-16 02:04+0200\n" -"PO-Revision-Date: 2012-08-15 22:09+0000\n" -"Last-Translator: Mariano \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Esperanto (http://www.transifex.com/projects/p/owncloud/language/eo/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: eo\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "Grupoj" msgid "Users" msgstr "Uzantoj" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Forigi" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Kapabligi malenan memorilon de uzanto" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Permesi al uzantoj surmeti siajn proprajn malenajn memorilojn" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Radikaj SSL-atestoj" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Enporti radikan ateston" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Kapabligi malenan memorilon de uzanto" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Permesi al uzantoj surmeti siajn proprajn malenajn memorilojn" diff --git a/l10n/es/files_external.po b/l10n/es/files_external.po index b8da8c77251..58d0699cdfe 100644 --- a/l10n/es/files_external.po +++ b/l10n/es/files_external.po @@ -9,15 +9,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-31 02:02+0200\n" -"PO-Revision-Date: 2012-08-30 20:26+0000\n" -"Last-Translator: pedro.navia \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Spanish (http://www.transifex.com/projects/p/owncloud/language/es/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: es\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -63,22 +87,22 @@ msgstr "Grupos" msgid "Users" msgstr "Usuarios" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Eliiminar" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Habilitar almacenamiento de usuario externo" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Permitir a los usuarios montar su propio almacenamiento externo" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Raíz de certificados SSL " -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importar certificado raíz" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Habilitar almacenamiento de usuario externo" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Permitir a los usuarios montar su propio almacenamiento externo" diff --git a/l10n/es_AR/files_external.po b/l10n/es_AR/files_external.po index d5d7f2b6fbf..94225975950 100644 --- a/l10n/es_AR/files_external.po +++ b/l10n/es_AR/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-25 02:02+0200\n" -"PO-Revision-Date: 2012-09-24 04:43+0000\n" -"Last-Translator: cjtess \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Spanish (Argentina) (http://www.transifex.com/projects/p/owncloud/language/es_AR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: es_AR\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Almacenamiento externo" @@ -62,22 +86,22 @@ msgstr "Grupos" msgid "Users" msgstr "Usuarios" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Borrar" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Habilitar almacenamiento de usuario externo" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Permitir a los usuarios montar su propio almacenamiento externo" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "certificados SSL raíz" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importar certificado raíz" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Habilitar almacenamiento de usuario externo" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Permitir a los usuarios montar su propio almacenamiento externo" diff --git a/l10n/et_EE/files_external.po b/l10n/et_EE/files_external.po index e8e4379ae09..b1353d14f41 100644 --- a/l10n/et_EE/files_external.po +++ b/l10n/et_EE/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-10 02:02+0200\n" -"PO-Revision-Date: 2012-09-09 20:19+0000\n" -"Last-Translator: Rivo Zängov \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Estonian (Estonia) (http://www.transifex.com/projects/p/owncloud/language/et_EE/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: et_EE\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Väline salvestuskoht" @@ -62,22 +86,22 @@ msgstr "Grupid" msgid "Users" msgstr "Kasutajad" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Kustuta" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Luba kasutajatele väline salvestamine" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Luba kasutajatel ühendada külge nende enda välised salvestusseadmed" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "SSL root sertifikaadid" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Impordi root sertifikaadid" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Luba kasutajatele väline salvestamine" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Luba kasutajatel ühendada külge nende enda välised salvestusseadmed" diff --git a/l10n/eu/files_external.po b/l10n/eu/files_external.po index 5ba75efacda..fa501c421a3 100644 --- a/l10n/eu/files_external.po +++ b/l10n/eu/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-09 02:01+0200\n" -"PO-Revision-Date: 2012-09-08 19:25+0000\n" -"Last-Translator: asieriko \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Basque (http://www.transifex.com/projects/p/owncloud/language/eu/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: eu\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Kanpoko Biltegiratzea" @@ -62,22 +86,22 @@ msgstr "Taldeak" msgid "Users" msgstr "Erabiltzaileak" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Ezabatu" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Gaitu erabiltzaileentzako Kanpo Biltegiratzea" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Baimendu erabiltzaileak bere kanpo biltegiratzeak muntatzen" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "SSL erro ziurtagiriak" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Inportatu Erro Ziurtagiria" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Gaitu erabiltzaileentzako Kanpo Biltegiratzea" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Baimendu erabiltzaileak bere kanpo biltegiratzeak muntatzen" diff --git a/l10n/eu_ES/files_external.po b/l10n/eu_ES/files_external.po index 37af2e3b7fa..834d0a9c295 100644 --- a/l10n/eu_ES/files_external.po +++ b/l10n/eu_ES/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Basque (Spain) (http://www.transifex.com/projects/p/owncloud/language/eu_ES/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: eu_ES\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/fa/files_external.po b/l10n/fa/files_external.po index 7e4183a71b1..90b7be97d29 100644 --- a/l10n/fa/files_external.po +++ b/l10n/fa/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Persian (http://www.transifex.com/projects/p/owncloud/language/fa/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fa\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/fi/files_external.po b/l10n/fi/files_external.po index 6b036592f0c..d37cbbef378 100644 --- a/l10n/fi/files_external.po +++ b/l10n/fi/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Finnish (http://www.transifex.com/projects/p/owncloud/language/fi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fi\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/fi_FI/files_external.po b/l10n/fi_FI/files_external.po index 404c33a0143..9da2ca47ee7 100644 --- a/l10n/fi_FI/files_external.po +++ b/l10n/fi_FI/files_external.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-06 02:01+0200\n" -"PO-Revision-Date: 2012-09-05 16:30+0000\n" -"Last-Translator: teho \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Finnish (Finland) (http://www.transifex.com/projects/p/owncloud/language/fi_FI/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,6 +19,30 @@ msgstr "" "Language: fi_FI\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Erillinen tallennusväline" @@ -63,22 +87,22 @@ msgstr "Ryhmät" msgid "Users" msgstr "Käyttäjät" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Poista" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Ota käyttöön ulkopuoliset tallennuspaikat" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Salli käyttäjien liittää omia erillisiä tallennusvälineitä" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "SSL-juurivarmenteet" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Tuo juurivarmenne" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Ota käyttöön ulkopuoliset tallennuspaikat" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Salli käyttäjien liittää omia erillisiä tallennusvälineitä" diff --git a/l10n/fr/files_external.po b/l10n/fr/files_external.po index 488a6924a4d..963258516fc 100644 --- a/l10n/fr/files_external.po +++ b/l10n/fr/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-15 02:02+0200\n" -"PO-Revision-Date: 2012-08-14 16:35+0000\n" -"Last-Translator: Romain DEP. \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: French (http://www.transifex.com/projects/p/owncloud/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: fr\n" -"Plural-Forms: nplurals=2; plural=(n > 1)\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "Groupes" msgid "Users" msgstr "Utilisateurs" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Supprimer" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Activer le stockage externe pour les utilisateurs" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Autoriser les utilisateurs à monter leur propre stockage externe" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Certificats racine SSL" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importer un certificat racine" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Activer le stockage externe pour les utilisateurs" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Autoriser les utilisateurs à monter leur propre stockage externe" diff --git a/l10n/gl/files_external.po b/l10n/gl/files_external.po index d700ed9f805..27bf750eeb0 100644 --- a/l10n/gl/files_external.po +++ b/l10n/gl/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-19 02:02+0200\n" -"PO-Revision-Date: 2012-09-18 10:13+0000\n" -"Last-Translator: Xosé M. Lamas \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Galician (http://www.transifex.com/projects/p/owncloud/language/gl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: gl\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Almacenamento externo" @@ -62,22 +86,22 @@ msgstr "Grupos" msgid "Users" msgstr "Usuarios" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Eliminar" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Habilitar almacenamento externo do usuario" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Permitir aos usuarios montar os seus propios almacenamentos externos" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Certificados raíz SSL" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importar Certificado Raíz" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Habilitar almacenamento externo do usuario" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Permitir aos usuarios montar os seus propios almacenamentos externos" diff --git a/l10n/he/files_external.po b/l10n/he/files_external.po index 78e36b4a5ab..0b3be3a33b9 100644 --- a/l10n/he/files_external.po +++ b/l10n/he/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-05 02:01+0200\n" -"PO-Revision-Date: 2012-09-04 23:27+0000\n" -"Last-Translator: Tomer Cohen \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Hebrew (http://www.transifex.com/projects/p/owncloud/language/he/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: he\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "אחסון חיצוני" @@ -62,22 +86,22 @@ msgstr "קבוצות" msgid "Users" msgstr "משתמשים" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "מחיקה" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "הפעלת אחסון חיצוני למשתמשים" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "יאפשר למשתמשים לעגן את האחסון החיצוני שלהם" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "שורש אישורי אבטחת SSL " -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "ייבוא אישור אבטחת שורש" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "הפעלת אחסון חיצוני למשתמשים" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "יאפשר למשתמשים לעגן את האחסון החיצוני שלהם" diff --git a/l10n/hi/files_external.po b/l10n/hi/files_external.po index e27f4710d08..ffd95d40968 100644 --- a/l10n/hi/files_external.po +++ b/l10n/hi/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-29 02:01+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Hindi (http://www.transifex.com/projects/p/owncloud/language/hi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hi\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/hr/files_external.po b/l10n/hr/files_external.po index 3406e426af5..1fdf2d38104 100644 --- a/l10n/hr/files_external.po +++ b/l10n/hr/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Croatian (http://www.transifex.com/projects/p/owncloud/language/hr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hr\n" -"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2\n" +"Plural-Forms: nplurals=3; plural=n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/hu_HU/files_external.po b/l10n/hu_HU/files_external.po index b08622b2d9b..8ba04f10846 100644 --- a/l10n/hu_HU/files_external.po +++ b/l10n/hu_HU/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Hungarian (Hungary) (http://www.transifex.com/projects/p/owncloud/language/hu_HU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hu_HU\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/hy/files_external.po b/l10n/hy/files_external.po index 964bc85d34b..3ad25c76e79 100644 --- a/l10n/hy/files_external.po +++ b/l10n/hy/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Armenian (http://www.transifex.com/projects/p/owncloud/language/hy/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hy\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/ia/files_external.po b/l10n/ia/files_external.po index 4cb49f32d3d..e8fbb159c34 100644 --- a/l10n/ia/files_external.po +++ b/l10n/ia/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Interlingua (http://www.transifex.com/projects/p/owncloud/language/ia/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ia\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/id/files_external.po b/l10n/id/files_external.po index 812c0c97ee5..f9773aeb643 100644 --- a/l10n/id/files_external.po +++ b/l10n/id/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Indonesian (http://www.transifex.com/projects/p/owncloud/language/id/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: id\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/id_ID/files_external.po b/l10n/id_ID/files_external.po index 1cdaed8b985..c3a03ec7a57 100644 --- a/l10n/id_ID/files_external.po +++ b/l10n/id_ID/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Indonesian (Indonesia) (http://www.transifex.com/projects/p/owncloud/language/id_ID/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: id_ID\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/it/files_external.po b/l10n/it/files_external.po index 1875987bf4b..824884a8f07 100644 --- a/l10n/it/files_external.po +++ b/l10n/it/files_external.po @@ -9,9 +9,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-07 02:04+0200\n" -"PO-Revision-Date: 2012-09-06 05:03+0000\n" -"Last-Translator: Vincenzo Reale \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Italian (http://www.transifex.com/projects/p/owncloud/language/it/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -19,6 +19,30 @@ msgstr "" "Language: it\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Archiviazione esterna" @@ -63,22 +87,22 @@ msgstr "Gruppi" msgid "Users" msgstr "Utenti" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Elimina" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Abilita la memoria esterna dell'utente" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Consenti agli utenti di montare la propria memoria esterna" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Certificati SSL radice" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importa certificato radice" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Abilita la memoria esterna dell'utente" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Consenti agli utenti di montare la propria memoria esterna" diff --git a/l10n/ja_JP/files_external.po b/l10n/ja_JP/files_external.po index 1de6cdac432..91487015dcf 100644 --- a/l10n/ja_JP/files_external.po +++ b/l10n/ja_JP/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-16 02:04+0200\n" -"PO-Revision-Date: 2012-08-15 02:46+0000\n" -"Last-Translator: Daisuke Deguchi \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Japanese (Japan) (http://www.transifex.com/projects/p/owncloud/language/ja_JP/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ja_JP\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "グループ" msgid "Users" msgstr "ユーザ" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "削除" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "ユーザの外部ストレージを有効にする" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "ユーザに外部ストレージのマウントを許可する" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "SSLルート証明書" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "ルート証明書をインポート" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "ユーザの外部ストレージを有効にする" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "ユーザに外部ストレージのマウントを許可する" diff --git a/l10n/ko/files_external.po b/l10n/ko/files_external.po index a2ca063a69b..ada8ee0b468 100644 --- a/l10n/ko/files_external.po +++ b/l10n/ko/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Korean (http://www.transifex.com/projects/p/owncloud/language/ko/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ko\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/lb/files_external.po b/l10n/lb/files_external.po index 0ea90478bd8..4a00f6bb30d 100644 --- a/l10n/lb/files_external.po +++ b/l10n/lb/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Luxembourgish (http://www.transifex.com/projects/p/owncloud/language/lb/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lb\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/lt_LT/files_external.po b/l10n/lt_LT/files_external.po index d4208432fa4..db97f6a46ad 100644 --- a/l10n/lt_LT/files_external.po +++ b/l10n/lt_LT/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-23 02:03+0200\n" -"PO-Revision-Date: 2012-08-22 12:31+0000\n" -"Last-Translator: Dr. ROX \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Lithuanian (Lithuania) (http://www.transifex.com/projects/p/owncloud/language/lt_LT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lt_LT\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "Grupės" msgid "Users" msgstr "Vartotojai" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Ištrinti" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/lv/files_external.po b/l10n/lv/files_external.po index 5004aadaab7..81da66c0791 100644 --- a/l10n/lv/files_external.po +++ b/l10n/lv/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Latvian (http://www.transifex.com/projects/p/owncloud/language/lv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: lv\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2)\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/mk/files_external.po b/l10n/mk/files_external.po index 25166e22cca..21928cfd6f0 100644 --- a/l10n/mk/files_external.po +++ b/l10n/mk/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Macedonian (http://www.transifex.com/projects/p/owncloud/language/mk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: mk\n" -"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1\n" +"Plural-Forms: nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/ms_MY/files_external.po b/l10n/ms_MY/files_external.po index 98ff53cf444..42da08f27e4 100644 --- a/l10n/ms_MY/files_external.po +++ b/l10n/ms_MY/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Malay (Malaysia) (http://www.transifex.com/projects/p/owncloud/language/ms_MY/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ms_MY\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/nb_NO/files_external.po b/l10n/nb_NO/files_external.po index 629e0c4d28c..95af4ebb24d 100644 --- a/l10n/nb_NO/files_external.po +++ b/l10n/nb_NO/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-28 02:01+0200\n" -"PO-Revision-Date: 2012-08-27 15:43+0000\n" -"Last-Translator: anjar \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Norwegian Bokmål (Norway) (http://www.transifex.com/projects/p/owncloud/language/nb_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nb_NO\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "Grupper" msgid "Users" msgstr "Brukere" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Slett" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/nl/files_external.po b/l10n/nl/files_external.po index 2256b17cd67..d217f4796ba 100644 --- a/l10n/nl/files_external.po +++ b/l10n/nl/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-28 02:01+0200\n" -"PO-Revision-Date: 2012-08-27 18:45+0000\n" -"Last-Translator: Richard Bos \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Dutch (http://www.transifex.com/projects/p/owncloud/language/nl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nl\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "Groepen" msgid "Users" msgstr "Gebruikers" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Verwijder" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Zet gebruiker's externe opslag aan" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Sta gebruikers toe om hun eigen externe opslag aan te koppelen" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "SSL root certificaten" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importeer root certificaat" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Zet gebruiker's externe opslag aan" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Sta gebruikers toe om hun eigen externe opslag aan te koppelen" diff --git a/l10n/nn_NO/files_external.po b/l10n/nn_NO/files_external.po index c89d2fd6309..ec4986c92e1 100644 --- a/l10n/nn_NO/files_external.po +++ b/l10n/nn_NO/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Norwegian Nynorsk (Norway) (http://www.transifex.com/projects/p/owncloud/language/nn_NO/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nn_NO\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/oc/files_external.po b/l10n/oc/files_external.po index 5ddc431f8ca..926c07eac68 100644 --- a/l10n/oc/files_external.po +++ b/l10n/oc/files_external.po @@ -7,9 +7,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-08 02:02+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Occitan (post 1500) (http://www.transifex.com/projects/p/owncloud/language/oc/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -17,6 +17,30 @@ msgstr "" "Language: oc\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/pl/files_external.po b/l10n/pl/files_external.po index 6257d725994..cccd37cc47e 100644 --- a/l10n/pl/files_external.po +++ b/l10n/pl/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-21 02:03+0200\n" -"PO-Revision-Date: 2012-08-20 09:06+0000\n" -"Last-Translator: Cyryl Sochacki <>\n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Polish (http://www.transifex.com/projects/p/owncloud/language/pl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "Grupy" msgid "Users" msgstr "Użytkownicy" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Usuń" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Włącz zewnętrzne zasoby dyskowe użytkownika" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Zezwalaj użytkownikom na montowanie ich własnych zewnętrznych zasobów dyskowych" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Główny certyfikat SSL" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importuj główny certyfikat" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Włącz zewnętrzne zasoby dyskowe użytkownika" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Zezwalaj użytkownikom na montowanie ich własnych zewnętrznych zasobów dyskowych" diff --git a/l10n/pl_PL/files_external.po b/l10n/pl_PL/files_external.po index 3006debaa44..e6dff5b09a9 100644 --- a/l10n/pl_PL/files_external.po +++ b/l10n/pl_PL/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-31 02:02+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Polish (Poland) (http://www.transifex.com/projects/p/owncloud/language/pl_PL/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: pl_PL\n" -"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/pt_BR/files_external.po b/l10n/pt_BR/files_external.po index 93784eea4e6..aa72e18605a 100644 --- a/l10n/pt_BR/files_external.po +++ b/l10n/pt_BR/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-24 02:01+0200\n" -"PO-Revision-Date: 2012-09-23 16:48+0000\n" -"Last-Translator: sedir \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/owncloud/language/pt_BR/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: pt_BR\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Armazenamento Externo" @@ -62,22 +86,22 @@ msgstr "Grupos" msgid "Users" msgstr "Usuários" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Remover" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Habilitar Armazenamento Externo do Usuário" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Permitir usuários a montar seus próprios armazenamentos externos" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Certificados SSL raíz" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importar Certificado Raíz" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Habilitar Armazenamento Externo do Usuário" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Permitir usuários a montar seus próprios armazenamentos externos" diff --git a/l10n/pt_PT/files.po b/l10n/pt_PT/files.po index 0a5a7eb073e..07f2e642ea3 100644 --- a/l10n/pt_PT/files.po +++ b/l10n/pt_PT/files.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Duarte Velez Grilo , 2012. # , 2012. # Helder Meneses , 2012. # , 2012. @@ -10,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-26 13:19+0200\n" -"PO-Revision-Date: 2012-09-26 11:20+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 10:37+0000\n" +"Last-Translator: Duarte Velez Grilo \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -56,7 +57,7 @@ msgstr "Ficheiros" #: js/fileactions.js:108 templates/index.php:62 msgid "Unshare" -msgstr "" +msgstr "Deixar de partilhar" #: js/fileactions.js:110 templates/index.php:64 msgid "Delete" @@ -64,41 +65,41 @@ msgstr "Apagar" #: js/fileactions.js:182 msgid "Rename" -msgstr "" +msgstr "Renomear" -#: js/filelist.js:190 js/filelist.js:192 +#: js/filelist.js:189 js/filelist.js:191 msgid "already exists" msgstr "Já existe" -#: js/filelist.js:190 js/filelist.js:192 +#: js/filelist.js:189 js/filelist.js:191 msgid "replace" msgstr "substituir" -#: js/filelist.js:190 +#: js/filelist.js:189 msgid "suggest name" -msgstr "" +msgstr "Sugira um nome" -#: js/filelist.js:190 js/filelist.js:192 +#: js/filelist.js:189 js/filelist.js:191 msgid "cancel" msgstr "cancelar" -#: js/filelist.js:239 js/filelist.js:241 +#: js/filelist.js:238 js/filelist.js:240 msgid "replaced" msgstr "substituido" -#: js/filelist.js:239 js/filelist.js:241 js/filelist.js:273 js/filelist.js:275 +#: js/filelist.js:238 js/filelist.js:240 js/filelist.js:272 js/filelist.js:274 msgid "undo" msgstr "desfazer" -#: js/filelist.js:241 +#: js/filelist.js:240 msgid "with" msgstr "com" -#: js/filelist.js:273 +#: js/filelist.js:272 msgid "unshared" -msgstr "" +msgstr "não partilhado" -#: js/filelist.js:275 +#: js/filelist.js:274 msgid "deleted" msgstr "apagado" @@ -120,11 +121,11 @@ msgstr "Pendente" #: js/files.js:256 msgid "1 file uploading" -msgstr "" +msgstr "A enviar 1 ficheiro" #: js/files.js:259 js/files.js:304 js/files.js:319 msgid "files uploading" -msgstr "" +msgstr "ficheiros a serem enviados" #: js/files.js:322 js/files.js:355 msgid "Upload cancelled." @@ -133,87 +134,87 @@ msgstr "O upload foi cancelado." #: js/files.js:424 msgid "" "File upload is in progress. Leaving the page now will cancel the upload." -msgstr "" +msgstr "Envio de ficheiro em progresso. Irá cancelar o envio se sair da página agora." #: js/files.js:494 msgid "Invalid name, '/' is not allowed." msgstr "nome inválido, '/' não permitido." -#: js/files.js:667 +#: js/files.js:668 msgid "files scanned" -msgstr "" +msgstr "ficheiros analisados" -#: js/files.js:675 +#: js/files.js:676 msgid "error while scanning" -msgstr "" +msgstr "erro ao analisar" -#: js/files.js:748 templates/index.php:48 +#: js/files.js:749 templates/index.php:48 msgid "Name" msgstr "Nome" -#: js/files.js:749 templates/index.php:56 +#: js/files.js:750 templates/index.php:56 msgid "Size" msgstr "Tamanho" -#: js/files.js:750 templates/index.php:58 +#: js/files.js:751 templates/index.php:58 msgid "Modified" msgstr "Modificado" -#: js/files.js:777 +#: js/files.js:778 msgid "folder" msgstr "pasta" -#: js/files.js:779 +#: js/files.js:780 msgid "folders" msgstr "pastas" -#: js/files.js:787 +#: js/files.js:788 msgid "file" msgstr "ficheiro" -#: js/files.js:789 +#: js/files.js:790 msgid "files" msgstr "ficheiros" -#: js/files.js:833 +#: js/files.js:834 msgid "seconds ago" -msgstr "" +msgstr "à segundos" -#: js/files.js:834 +#: js/files.js:835 msgid "minute ago" -msgstr "" +msgstr "à um minuto" -#: js/files.js:835 +#: js/files.js:836 msgid "minutes ago" -msgstr "" +msgstr "à minutos" -#: js/files.js:838 +#: js/files.js:839 msgid "today" -msgstr "" +msgstr "hoje" -#: js/files.js:839 +#: js/files.js:840 msgid "yesterday" -msgstr "" +msgstr "ontem" -#: js/files.js:840 +#: js/files.js:841 msgid "days ago" -msgstr "" +msgstr "à dias" -#: js/files.js:841 +#: js/files.js:842 msgid "last month" -msgstr "" +msgstr "mês passado" -#: js/files.js:843 +#: js/files.js:844 msgid "months ago" -msgstr "" +msgstr "à meses" -#: js/files.js:844 +#: js/files.js:845 msgid "last year" -msgstr "" +msgstr "ano passado" -#: js/files.js:845 +#: js/files.js:846 msgid "years ago" -msgstr "" +msgstr "à anos" #: templates/admin.php:5 msgid "File handling" @@ -245,7 +246,7 @@ msgstr "Tamanho máximo para ficheiros ZIP" #: templates/admin.php:14 msgid "Save" -msgstr "" +msgstr "Guardar" #: templates/index.php:7 msgid "New" diff --git a/l10n/pt_PT/files_external.po b/l10n/pt_PT/files_external.po index bac559da630..b2410ff7239 100644 --- a/l10n/pt_PT/files_external.po +++ b/l10n/pt_PT/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-27 02:01+0200\n" -"PO-Revision-Date: 2012-09-26 13:10+0000\n" -"Last-Translator: Duarte Velez Grilo \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,17 +18,41 @@ msgstr "" "Language: pt_PT\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" -msgstr "" +msgstr "Armazenamento Externo" #: templates/settings.php:7 templates/settings.php:19 msgid "Mount point" -msgstr "" +msgstr "Ponto de montagem" #: templates/settings.php:8 msgid "Backend" -msgstr "" +msgstr "Backend" #: templates/settings.php:9 msgid "Configuration" @@ -44,11 +68,11 @@ msgstr "Aplicável" #: templates/settings.php:23 msgid "Add mount point" -msgstr "" +msgstr "Adicionar ponto de montagem" #: templates/settings.php:54 templates/settings.php:62 msgid "None set" -msgstr "" +msgstr "Nenhum configurado" #: templates/settings.php:63 msgid "All Users" @@ -68,15 +92,15 @@ msgstr "Apagar" #: templates/settings.php:87 msgid "Enable User External Storage" -msgstr "" +msgstr "Activar Armazenamento Externo para o Utilizador" #: templates/settings.php:88 msgid "Allow users to mount their own external storage" -msgstr "" +msgstr "Permitir que os utilizadores montem o seu próprio armazenamento externo" #: templates/settings.php:99 msgid "SSL root certificates" -msgstr "" +msgstr "Certificados SSL de raiz" #: templates/settings.php:113 msgid "Import Root Certificate" diff --git a/l10n/pt_PT/settings.po b/l10n/pt_PT/settings.po index f81755fd9c0..98768f2191d 100644 --- a/l10n/pt_PT/settings.po +++ b/l10n/pt_PT/settings.po @@ -3,6 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: +# Duarte Velez Grilo , 2012. # , 2012. # Helder Meneses , 2012. # , 2012. @@ -10,9 +11,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-19 02:02+0200\n" -"PO-Revision-Date: 2012-09-19 00:03+0000\n" -"Last-Translator: I Robot \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 11:15+0000\n" +"Last-Translator: Duarte Velez Grilo \n" "Language-Team: Portuguese (Portugal) (http://www.transifex.com/projects/p/owncloud/language/pt_PT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -31,11 +32,11 @@ msgstr "Erro de autenticação" #: ajax/creategroup.php:19 msgid "Group already exists" -msgstr "" +msgstr "O grupo já existe" #: ajax/creategroup.php:28 msgid "Unable to add group" -msgstr "" +msgstr "Impossível acrescentar o grupo" #: ajax/enableapp.php:14 msgid "Could not enable app. " @@ -59,7 +60,7 @@ msgstr "Pedido inválido" #: ajax/removegroup.php:16 msgid "Unable to delete group" -msgstr "" +msgstr "Impossível apagar grupo" #: ajax/removeuser.php:22 msgid "Unable to delete user" @@ -142,7 +143,7 @@ msgstr "" #: templates/admin.php:67 msgid "Allow links" -msgstr "" +msgstr "Permitir ligações" #: templates/admin.php:68 msgid "Allow users to share items to the public with links" @@ -150,7 +151,7 @@ msgstr "" #: templates/admin.php:73 msgid "Allow resharing" -msgstr "" +msgstr "Permitir voltar a partilhar" #: templates/admin.php:74 msgid "Allow users to share items shared with them again" @@ -237,7 +238,7 @@ msgstr "Transferir" #: templates/personal.php:19 msgid "Your password was changed" -msgstr "" +msgstr "A sua palavra-passe foi alterada" #: templates/personal.php:20 msgid "Unable to change your password" diff --git a/l10n/ro/files_external.po b/l10n/ro/files_external.po index 17931832c6a..a248d72af34 100644 --- a/l10n/ro/files_external.po +++ b/l10n/ro/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-19 02:02+0200\n" -"PO-Revision-Date: 2012-09-18 12:38+0000\n" -"Last-Translator: g.ciprian \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Romanian (http://www.transifex.com/projects/p/owncloud/language/ro/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: ro\n" "Plural-Forms: nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Stocare externă" @@ -62,22 +86,22 @@ msgstr "Grupuri" msgid "Users" msgstr "Utilizatori" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Șterge" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Permite stocare externă pentru utilizatori" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Permite utilizatorilor să monteze stocare externă proprie" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Certificate SSL root" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importă certificat root" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Permite stocare externă pentru utilizatori" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Permite utilizatorilor să monteze stocare externă proprie" diff --git a/l10n/ru/files_external.po b/l10n/ru/files_external.po index 7e2f7fe8610..44fcf5c2446 100644 --- a/l10n/ru/files_external.po +++ b/l10n/ru/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-25 02:04+0200\n" -"PO-Revision-Date: 2012-08-24 07:35+0000\n" -"Last-Translator: Denis \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Russian (http://www.transifex.com/projects/p/owncloud/language/ru/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: ru\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "Группы" msgid "Users" msgstr "Пользователи" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Удалить" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Включить пользовательские внешние носители" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Разрешить пользователям монтировать их собственные внешние носители" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Корневые сертификаты SSL" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Импортировать корневые сертификаты" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Включить пользовательские внешние носители" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Разрешить пользователям монтировать их собственные внешние носители" diff --git a/l10n/ru_RU/files_external.po b/l10n/ru_RU/files_external.po index 225f0f78ffc..0ba1faa0abb 100644 --- a/l10n/ru_RU/files_external.po +++ b/l10n/ru_RU/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-20 02:05+0200\n" -"PO-Revision-Date: 2012-09-19 13:11+0000\n" -"Last-Translator: AnnaSch \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Russian (Russia) (http://www.transifex.com/projects/p/owncloud/language/ru_RU/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: ru_RU\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Внешние системы хранения данных" @@ -62,22 +86,22 @@ msgstr "Группы" msgid "Users" msgstr "Пользователи" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Удалить" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Включить пользовательскую внешнюю систему хранения данных" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Разрешить пользователям монтировать их собственную внешнюю систему хранения данных" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Корневые сертификаты SSL" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Импортировать корневые сертификаты" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Включить пользовательскую внешнюю систему хранения данных" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Разрешить пользователям монтировать их собственную внешнюю систему хранения данных" diff --git a/l10n/sk_SK/files_external.po b/l10n/sk_SK/files_external.po index 5c0dd5a8c76..867efe7bb6e 100644 --- a/l10n/sk_SK/files_external.po +++ b/l10n/sk_SK/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-07 02:04+0200\n" -"PO-Revision-Date: 2012-09-06 17:51+0000\n" -"Last-Translator: intense \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Slovak (Slovakia) (http://www.transifex.com/projects/p/owncloud/language/sk_SK/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: sk_SK\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Externé úložisko" @@ -62,22 +86,22 @@ msgstr "Skupiny" msgid "Users" msgstr "Užívatelia" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Odstrániť" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Povoliť externé úložisko" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Povoliť užívateľom pripojiť ich vlastné externé úložisko" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Koreňové SSL certifikáty" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importovať koreňový certifikát" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Povoliť externé úložisko" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Povoliť užívateľom pripojiť ich vlastné externé úložisko" diff --git a/l10n/sl/files_external.po b/l10n/sl/files_external.po index 19d395b99dd..59cb0964490 100644 --- a/l10n/sl/files_external.po +++ b/l10n/sl/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-16 02:04+0200\n" -"PO-Revision-Date: 2012-08-15 00:14+0000\n" -"Last-Translator: Peter Peroša \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Slovenian (http://www.transifex.com/projects/p/owncloud/language/sl/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sl\n" -"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3)\n" +"Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "Skupine" msgid "Users" msgstr "Uporabniki" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Izbriši" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Omogoči uporabo zunanje podatkovne shrambe za uporabnike" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Dovoli uporabnikom priklop lastne zunanje podatkovne shrambe" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "SSL korenski certifikati" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Uvozi korenski certifikat" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Omogoči uporabo zunanje podatkovne shrambe za uporabnike" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Dovoli uporabnikom priklop lastne zunanje podatkovne shrambe" diff --git a/l10n/so/files_external.po b/l10n/so/files_external.po index 668e7833888..6b6592e62d9 100644 --- a/l10n/so/files_external.po +++ b/l10n/so/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Somali (http://www.transifex.com/projects/p/owncloud/language/so/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: so\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/sr/files_external.po b/l10n/sr/files_external.po index 4dd07191910..e6b612a1bd1 100644 --- a/l10n/sr/files_external.po +++ b/l10n/sr/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Serbian (http://www.transifex.com/projects/p/owncloud/language/sr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sr\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/sr@latin/files_external.po b/l10n/sr@latin/files_external.po index 639f9f143bf..f21d86b6b07 100644 --- a/l10n/sr@latin/files_external.po +++ b/l10n/sr@latin/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Serbian (Latin) (http://www.transifex.com/projects/p/owncloud/language/sr@latin/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sr@latin\n" -"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2)\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/sv/files_external.po b/l10n/sv/files_external.po index a010550da65..17588e54b71 100644 --- a/l10n/sv/files_external.po +++ b/l10n/sv/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-13 10:31+0000\n" -"Last-Translator: Magnus Höglund \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Swedish (http://www.transifex.com/projects/p/owncloud/language/sv/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: sv\n" -"Plural-Forms: nplurals=2; plural=(n != 1)\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "Grupper" msgid "Users" msgstr "Användare" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Radera" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Aktivera extern lagring för användare" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Tillåt användare att montera egen extern lagring" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "SSL rotcertifikat" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Importera rotcertifikat" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Aktivera extern lagring för användare" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Tillåt användare att montera egen extern lagring" diff --git a/l10n/templates/core.pot b/l10n/templates/core.pot index 14356ac7623..1f0217cb98a 100644 --- a/l10n/templates/core.pot +++ b/l10n/templates/core.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files.pot b/l10n/templates/files.pot index a08d079f73b..d56e7f40309 100644 --- a/l10n/templates/files.pot +++ b/l10n/templates/files.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-02 02:02+0200\n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -63,39 +63,39 @@ msgstr "" msgid "Rename" msgstr "" -#: js/filelist.js:190 js/filelist.js:192 +#: js/filelist.js:189 js/filelist.js:191 msgid "already exists" msgstr "" -#: js/filelist.js:190 js/filelist.js:192 +#: js/filelist.js:189 js/filelist.js:191 msgid "replace" msgstr "" -#: js/filelist.js:190 +#: js/filelist.js:189 msgid "suggest name" msgstr "" -#: js/filelist.js:190 js/filelist.js:192 +#: js/filelist.js:189 js/filelist.js:191 msgid "cancel" msgstr "" -#: js/filelist.js:239 js/filelist.js:241 +#: js/filelist.js:238 js/filelist.js:240 msgid "replaced" msgstr "" -#: js/filelist.js:239 js/filelist.js:241 js/filelist.js:273 js/filelist.js:275 +#: js/filelist.js:238 js/filelist.js:240 js/filelist.js:272 js/filelist.js:274 msgid "undo" msgstr "" -#: js/filelist.js:241 +#: js/filelist.js:240 msgid "with" msgstr "" -#: js/filelist.js:273 +#: js/filelist.js:272 msgid "unshared" msgstr "" -#: js/filelist.js:275 +#: js/filelist.js:274 msgid "deleted" msgstr "" diff --git a/l10n/templates/files_encryption.pot b/l10n/templates/files_encryption.pot index abd9cbe5272..579bc995bd8 100644 --- a/l10n/templates/files_encryption.pot +++ b/l10n/templates/files_encryption.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-02 02:02+0200\n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_external.pot b/l10n/templates/files_external.pot index fca63397e50..d08d4a6ad17 100644 --- a/l10n/templates/files_external.pot +++ b/l10n/templates/files_external.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-02 02:02+0200\n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -17,6 +17,30 @@ msgstr "" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "" diff --git a/l10n/templates/files_sharing.pot b/l10n/templates/files_sharing.pot index 5647d82d18a..2c3be0a3a8b 100644 --- a/l10n/templates/files_sharing.pot +++ b/l10n/templates/files_sharing.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-02 02:02+0200\n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/files_versions.pot b/l10n/templates/files_versions.pot index 9684185a802..afe7a1d59f6 100644 --- a/l10n/templates/files_versions.pot +++ b/l10n/templates/files_versions.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/lib.pot b/l10n/templates/lib.pot index bae28897e05..0a56a1f48b5 100644 --- a/l10n/templates/lib.pot +++ b/l10n/templates/lib.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/settings.pot b/l10n/templates/settings.pot index 598343e95e8..fbeae1f7eb5 100644 --- a/l10n/templates/settings.pot +++ b/l10n/templates/settings.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/templates/user_ldap.pot b/l10n/templates/user_ldap.pot index 456281a460c..8544ca48167 100644 --- a/l10n/templates/user_ldap.pot +++ b/l10n/templates/user_ldap.pot @@ -8,7 +8,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2012-10-02 02:03+0200\n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" diff --git a/l10n/th_TH/files_external.po b/l10n/th_TH/files_external.po index 2ba0dcb2652..cb9f2fc34ba 100644 --- a/l10n/th_TH/files_external.po +++ b/l10n/th_TH/files_external.po @@ -8,15 +8,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-15 02:02+0200\n" -"PO-Revision-Date: 2012-08-14 13:35+0000\n" -"Last-Translator: AriesAnywhere Anywhere \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Thai (Thailand) (http://www.transifex.com/projects/p/owncloud/language/th_TH/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: th_TH\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -62,22 +86,22 @@ msgstr "กลุ่ม" msgid "Users" msgstr "ผู้ใช้งาน" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "ลบ" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "เปิดให้มีการใช้พื้นที่จัดเก็บข้อมูลของผู้ใช้งานจากภายนอกได้" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "อนุญาตให้ผู้ใช้งานสามารถชี้ตำแหน่งไปที่พื้นที่จัดเก็บข้อมูลภายนอกของตนเองได้" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "ใบรับรองความปลอดภัยด้วยระบบ SSL จาก Root" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "นำเข้าข้อมูลใบรับรองความปลอดภัยจาก Root" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "เปิดให้มีการใช้พื้นที่จัดเก็บข้อมูลของผู้ใช้งานจากภายนอกได้" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "อนุญาตให้ผู้ใช้งานสามารถชี้ตำแหน่งไปที่พื้นที่จัดเก็บข้อมูลภายนอกของตนเองได้" diff --git a/l10n/tr/files_external.po b/l10n/tr/files_external.po index f72e8d229bc..e8236b8b4b7 100644 --- a/l10n/tr/files_external.po +++ b/l10n/tr/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Turkish (http://www.transifex.com/projects/p/owncloud/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: tr\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/uk/files_external.po b/l10n/uk/files_external.po index c40b94e138c..dfbecbecbac 100644 --- a/l10n/uk/files_external.po +++ b/l10n/uk/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-11 02:02+0200\n" -"PO-Revision-Date: 2012-09-10 10:46+0000\n" -"Last-Translator: VicDeo \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Ukrainian (http://www.transifex.com/projects/p/owncloud/language/uk/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: uk\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "" @@ -62,22 +86,22 @@ msgstr "Групи" msgid "Users" msgstr "Користувачі" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Видалити" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/vi/files_external.po b/l10n/vi/files_external.po index d91134daff1..fc128d8cd3f 100644 --- a/l10n/vi/files_external.po +++ b/l10n/vi/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-08 02:02+0200\n" -"PO-Revision-Date: 2012-09-07 15:39+0000\n" -"Last-Translator: Sơn Nguyễn \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Vietnamese (http://www.transifex.com/projects/p/owncloud/language/vi/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: vi\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "Lưu trữ ngoài" @@ -62,22 +86,22 @@ msgstr "Nhóm" msgid "Users" msgstr "Người dùng" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "Xóa" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "Kích hoạt tính năng lưu trữ ngoài" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "Cho phép người dùng kết nối với lưu trữ riêng bên ngoài của họ" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "Chứng chỉ SSL root" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "Nhập Root Certificate" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "Kích hoạt tính năng lưu trữ ngoài" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "Cho phép người dùng kết nối với lưu trữ riêng bên ngoài của họ" diff --git a/l10n/zh_CN.GB2312/files_external.po b/l10n/zh_CN.GB2312/files_external.po index 4573b7bbddf..6cf08d86498 100644 --- a/l10n/zh_CN.GB2312/files_external.po +++ b/l10n/zh_CN.GB2312/files_external.po @@ -8,9 +8,9 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-09-18 02:01+0200\n" -"PO-Revision-Date: 2012-09-17 12:25+0000\n" -"Last-Translator: marguerite su \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Chinese (China) (GB2312) (http://www.transifex.com/projects/p/owncloud/language/zh_CN.GB2312/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -18,6 +18,30 @@ msgstr "" "Language: zh_CN.GB2312\n" "Plural-Forms: nplurals=1; plural=0;\n" +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" + #: templates/settings.php:3 msgid "External Storage" msgstr "外部存储" @@ -62,22 +86,22 @@ msgstr "群组" msgid "Users" msgstr "用户" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "删除" +#: templates/settings.php:87 +msgid "Enable User External Storage" +msgstr "启用用户外部存储" + #: templates/settings.php:88 +msgid "Allow users to mount their own external storage" +msgstr "允许用户挂载他们的外部存储" + +#: templates/settings.php:99 msgid "SSL root certificates" msgstr "SSL 根证书" -#: templates/settings.php:102 +#: templates/settings.php:113 msgid "Import Root Certificate" msgstr "导入根证书" - -#: templates/settings.php:108 -msgid "Enable User External Storage" -msgstr "启用用户外部存储" - -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" -msgstr "允许用户挂载他们的外部存储" diff --git a/l10n/zh_CN/files_external.po b/l10n/zh_CN/files_external.po index aacc93cf5c3..949d1adc2f3 100644 --- a/l10n/zh_CN/files_external.po +++ b/l10n/zh_CN/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Chinese (China) (http://www.transifex.com/projects/p/owncloud/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_CN\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/l10n/zh_TW/files_external.po b/l10n/zh_TW/files_external.po index 9a6a0d7c43a..ee66860464b 100644 --- a/l10n/zh_TW/files_external.po +++ b/l10n/zh_TW/files_external.po @@ -7,15 +7,39 @@ msgid "" msgstr "" "Project-Id-Version: ownCloud\n" "Report-Msgid-Bugs-To: http://bugs.owncloud.org/\n" -"POT-Creation-Date: 2012-08-13 23:12+0200\n" -"PO-Revision-Date: 2012-08-12 22:34+0000\n" -"Last-Translator: FULL NAME \n" +"POT-Creation-Date: 2012-10-02 23:16+0200\n" +"PO-Revision-Date: 2012-10-02 21:17+0000\n" +"Last-Translator: I Robot \n" "Language-Team: Chinese (Taiwan) (http://www.transifex.com/projects/p/owncloud/language/zh_TW/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: zh_TW\n" -"Plural-Forms: nplurals=1; plural=0\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: js/dropbox.js:7 js/dropbox.js:25 js/google.js:7 js/google.js:23 +msgid "Access granted" +msgstr "" + +#: js/dropbox.js:28 js/dropbox.js:74 js/dropbox.js:79 js/dropbox.js:86 +msgid "Error configuring Dropbox storage" +msgstr "" + +#: js/dropbox.js:34 js/dropbox.js:45 js/google.js:31 js/google.js:40 +msgid "Grant access" +msgstr "" + +#: js/dropbox.js:73 js/google.js:72 +msgid "Fill out all required fields" +msgstr "" + +#: js/dropbox.js:85 +msgid "Please provide a valid Dropbox app key and secret." +msgstr "" + +#: js/google.js:26 js/google.js:73 js/google.js:78 +msgid "Error configuring Google Drive storage" +msgstr "" #: templates/settings.php:3 msgid "External Storage" @@ -61,22 +85,22 @@ msgstr "" msgid "Users" msgstr "" -#: templates/settings.php:77 templates/settings.php:96 +#: templates/settings.php:77 templates/settings.php:107 msgid "Delete" msgstr "" -#: templates/settings.php:88 -msgid "SSL root certificates" +#: templates/settings.php:87 +msgid "Enable User External Storage" msgstr "" -#: templates/settings.php:102 -msgid "Import Root Certificate" +#: templates/settings.php:88 +msgid "Allow users to mount their own external storage" msgstr "" -#: templates/settings.php:108 -msgid "Enable User External Storage" +#: templates/settings.php:99 +msgid "SSL root certificates" msgstr "" -#: templates/settings.php:109 -msgid "Allow users to mount their own external storage" +#: templates/settings.php:113 +msgid "Import Root Certificate" msgstr "" diff --git a/settings/l10n/pt_PT.php b/settings/l10n/pt_PT.php index f7440d832a0..afbf55ca2dc 100644 --- a/settings/l10n/pt_PT.php +++ b/settings/l10n/pt_PT.php @@ -1,10 +1,13 @@ "Incapaz de carregar a lista da App Store", "Authentication error" => "Erro de autenticação", +"Group already exists" => "O grupo já existe", +"Unable to add group" => "Impossível acrescentar o grupo", "Email saved" => "Email guardado", "Invalid email" => "Email inválido", "OpenID Changed" => "OpenID alterado", "Invalid request" => "Pedido inválido", +"Unable to delete group" => "Impossível apagar grupo", "Language changed" => "Idioma alterado", "Disable" => "Desativar", "Enable" => "Ativar", @@ -12,6 +15,8 @@ "__language_name__" => "__language_name__", "Security Warning" => "Aviso de Segurança", "Cron" => "Cron", +"Allow links" => "Permitir ligações", +"Allow resharing" => "Permitir voltar a partilhar", "Log" => "Log", "More" => "Mais", "Add your App" => "Adicione a sua aplicação", @@ -25,6 +30,7 @@ "Answer" => "Resposta", "Desktop and Mobile Syncing Clients" => "Clientes de sincronização desktop e movel", "Download" => "Transferir", +"Your password was changed" => "A sua palavra-passe foi alterada", "Unable to change your password" => "Não foi possivel alterar a sua palavra-chave", "Current password" => "Palavra-chave atual", "New password" => "Nova palavra-chave",