summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files/ajax/delete.php2
-rw-r--r--apps/files/ajax/download.php4
-rw-r--r--apps/files/ajax/move.php6
-rw-r--r--apps/files/ajax/newfile.php1
-rw-r--r--apps/files/ajax/newfolder.php4
-rw-r--r--apps/files/ajax/upload.php4
-rw-r--r--apps/files/css/files.css2
-rw-r--r--apps/files/index.php1
-rw-r--r--apps/files/js/filelist.js4
-rw-r--r--apps/files/js/tagsplugin.js1
-rw-r--r--apps/files/l10n/it.js2
-rw-r--r--apps/files/l10n/it.json2
-rw-r--r--apps/files/l10n/pt_PT.js1
-rw-r--r--apps/files/l10n/pt_PT.json1
-rw-r--r--apps/files/l10n/sr@latin.js90
-rw-r--r--apps/files/l10n/sr@latin.json90
-rw-r--r--apps/files/l10n/uk.js13
-rw-r--r--apps/files/l10n/uk.json13
-rw-r--r--apps/files/l10n/yo.js9
-rw-r--r--apps/files/l10n/yo.json7
-rw-r--r--apps/files/tests/js/filelistSpec.js30
-rw-r--r--apps/files_encryption/appinfo/app.php1
-rw-r--r--apps/files_encryption/l10n/sr@latin.js7
-rw-r--r--apps/files_encryption/l10n/sr@latin.json5
-rw-r--r--apps/files_encryption/l10n/uk.js5
-rw-r--r--apps/files_encryption/l10n/uk.json5
-rw-r--r--apps/files_encryption/lib/proxy.php20
-rw-r--r--apps/files_encryption/lib/stream.php6
-rw-r--r--apps/files_encryption/lib/util.php59
-rw-r--r--apps/files_encryption/tests/proxy.php13
-rwxr-xr-xapps/files_encryption/tests/util.php97
-rw-r--r--apps/files_external/appinfo/app.php2
-rw-r--r--apps/files_external/appinfo/info.xml6
-rw-r--r--apps/files_external/appinfo/version2
-rw-r--r--apps/files_external/l10n/it.js1
-rw-r--r--apps/files_external/l10n/it.json1
-rw-r--r--apps/files_external/l10n/uk.js3
-rw-r--r--apps/files_external/l10n/uk.json3
-rw-r--r--apps/files_sharing/appinfo/app.php2
-rw-r--r--apps/files_sharing/appinfo/update.php12
-rw-r--r--apps/files_sharing/appinfo/version2
-rw-r--r--apps/files_sharing/application.php35
-rw-r--r--apps/files_sharing/js/public.js7
-rw-r--r--apps/files_sharing/l10n/af_ZA.js1
-rw-r--r--apps/files_sharing/l10n/af_ZA.json1
-rw-r--r--apps/files_sharing/l10n/ar.js1
-rw-r--r--apps/files_sharing/l10n/ar.json1
-rw-r--r--apps/files_sharing/l10n/ast.js1
-rw-r--r--apps/files_sharing/l10n/ast.json1
-rw-r--r--apps/files_sharing/l10n/az.js1
-rw-r--r--apps/files_sharing/l10n/az.json1
-rw-r--r--apps/files_sharing/l10n/bg_BG.js1
-rw-r--r--apps/files_sharing/l10n/bg_BG.json1
-rw-r--r--apps/files_sharing/l10n/bn_BD.js1
-rw-r--r--apps/files_sharing/l10n/bn_BD.json1
-rw-r--r--apps/files_sharing/l10n/bn_IN.js1
-rw-r--r--apps/files_sharing/l10n/bn_IN.json1
-rw-r--r--apps/files_sharing/l10n/bs.js1
-rw-r--r--apps/files_sharing/l10n/bs.json1
-rw-r--r--apps/files_sharing/l10n/ca.js1
-rw-r--r--apps/files_sharing/l10n/ca.json1
-rw-r--r--apps/files_sharing/l10n/cs_CZ.js1
-rw-r--r--apps/files_sharing/l10n/cs_CZ.json1
-rw-r--r--apps/files_sharing/l10n/cy_GB.js1
-rw-r--r--apps/files_sharing/l10n/cy_GB.json1
-rw-r--r--apps/files_sharing/l10n/da.js1
-rw-r--r--apps/files_sharing/l10n/da.json1
-rw-r--r--apps/files_sharing/l10n/de.js1
-rw-r--r--apps/files_sharing/l10n/de.json1
-rw-r--r--apps/files_sharing/l10n/de_AT.js1
-rw-r--r--apps/files_sharing/l10n/de_AT.json1
-rw-r--r--apps/files_sharing/l10n/de_DE.js1
-rw-r--r--apps/files_sharing/l10n/de_DE.json1
-rw-r--r--apps/files_sharing/l10n/el.js1
-rw-r--r--apps/files_sharing/l10n/el.json1
-rw-r--r--apps/files_sharing/l10n/en_GB.js1
-rw-r--r--apps/files_sharing/l10n/en_GB.json1
-rw-r--r--apps/files_sharing/l10n/eo.js1
-rw-r--r--apps/files_sharing/l10n/eo.json1
-rw-r--r--apps/files_sharing/l10n/es.js1
-rw-r--r--apps/files_sharing/l10n/es.json1
-rw-r--r--apps/files_sharing/l10n/es_AR.js1
-rw-r--r--apps/files_sharing/l10n/es_AR.json1
-rw-r--r--apps/files_sharing/l10n/es_CL.js1
-rw-r--r--apps/files_sharing/l10n/es_CL.json1
-rw-r--r--apps/files_sharing/l10n/es_MX.js1
-rw-r--r--apps/files_sharing/l10n/es_MX.json1
-rw-r--r--apps/files_sharing/l10n/et_EE.js1
-rw-r--r--apps/files_sharing/l10n/et_EE.json1
-rw-r--r--apps/files_sharing/l10n/eu.js1
-rw-r--r--apps/files_sharing/l10n/eu.json1
-rw-r--r--apps/files_sharing/l10n/fa.js1
-rw-r--r--apps/files_sharing/l10n/fa.json1
-rw-r--r--apps/files_sharing/l10n/fr.js1
-rw-r--r--apps/files_sharing/l10n/fr.json1
-rw-r--r--apps/files_sharing/l10n/gl.js1
-rw-r--r--apps/files_sharing/l10n/gl.json1
-rw-r--r--apps/files_sharing/l10n/he.js1
-rw-r--r--apps/files_sharing/l10n/he.json1
-rw-r--r--apps/files_sharing/l10n/hi.js1
-rw-r--r--apps/files_sharing/l10n/hi.json1
-rw-r--r--apps/files_sharing/l10n/hr.js1
-rw-r--r--apps/files_sharing/l10n/hr.json1
-rw-r--r--apps/files_sharing/l10n/hu_HU.js1
-rw-r--r--apps/files_sharing/l10n/hu_HU.json1
-rw-r--r--apps/files_sharing/l10n/ia.js1
-rw-r--r--apps/files_sharing/l10n/ia.json1
-rw-r--r--apps/files_sharing/l10n/id.js1
-rw-r--r--apps/files_sharing/l10n/id.json1
-rw-r--r--apps/files_sharing/l10n/is.js1
-rw-r--r--apps/files_sharing/l10n/is.json1
-rw-r--r--apps/files_sharing/l10n/it.js1
-rw-r--r--apps/files_sharing/l10n/it.json1
-rw-r--r--apps/files_sharing/l10n/ja.js1
-rw-r--r--apps/files_sharing/l10n/ja.json1
-rw-r--r--apps/files_sharing/l10n/ka_GE.js1
-rw-r--r--apps/files_sharing/l10n/ka_GE.json1
-rw-r--r--apps/files_sharing/l10n/km.js1
-rw-r--r--apps/files_sharing/l10n/km.json1
-rw-r--r--apps/files_sharing/l10n/kn.js1
-rw-r--r--apps/files_sharing/l10n/kn.json1
-rw-r--r--apps/files_sharing/l10n/ko.js1
-rw-r--r--apps/files_sharing/l10n/ko.json1
-rw-r--r--apps/files_sharing/l10n/ku_IQ.js1
-rw-r--r--apps/files_sharing/l10n/ku_IQ.json1
-rw-r--r--apps/files_sharing/l10n/lb.js1
-rw-r--r--apps/files_sharing/l10n/lb.json1
-rw-r--r--apps/files_sharing/l10n/lt_LT.js1
-rw-r--r--apps/files_sharing/l10n/lt_LT.json1
-rw-r--r--apps/files_sharing/l10n/lv.js1
-rw-r--r--apps/files_sharing/l10n/lv.json1
-rw-r--r--apps/files_sharing/l10n/mk.js1
-rw-r--r--apps/files_sharing/l10n/mk.json1
-rw-r--r--apps/files_sharing/l10n/mn.js1
-rw-r--r--apps/files_sharing/l10n/mn.json1
-rw-r--r--apps/files_sharing/l10n/ms_MY.js1
-rw-r--r--apps/files_sharing/l10n/ms_MY.json1
-rw-r--r--apps/files_sharing/l10n/nb_NO.js1
-rw-r--r--apps/files_sharing/l10n/nb_NO.json1
-rw-r--r--apps/files_sharing/l10n/nl.js1
-rw-r--r--apps/files_sharing/l10n/nl.json1
-rw-r--r--apps/files_sharing/l10n/nn_NO.js1
-rw-r--r--apps/files_sharing/l10n/nn_NO.json1
-rw-r--r--apps/files_sharing/l10n/oc.js1
-rw-r--r--apps/files_sharing/l10n/oc.json1
-rw-r--r--apps/files_sharing/l10n/pa.js1
-rw-r--r--apps/files_sharing/l10n/pa.json1
-rw-r--r--apps/files_sharing/l10n/pl.js1
-rw-r--r--apps/files_sharing/l10n/pl.json1
-rw-r--r--apps/files_sharing/l10n/pt_BR.js1
-rw-r--r--apps/files_sharing/l10n/pt_BR.json1
-rw-r--r--apps/files_sharing/l10n/pt_PT.js6
-rw-r--r--apps/files_sharing/l10n/pt_PT.json6
-rw-r--r--apps/files_sharing/l10n/ro.js1
-rw-r--r--apps/files_sharing/l10n/ro.json1
-rw-r--r--apps/files_sharing/l10n/ru.js1
-rw-r--r--apps/files_sharing/l10n/ru.json1
-rw-r--r--apps/files_sharing/l10n/si_LK.js1
-rw-r--r--apps/files_sharing/l10n/si_LK.json1
-rw-r--r--apps/files_sharing/l10n/sk_SK.js1
-rw-r--r--apps/files_sharing/l10n/sk_SK.json1
-rw-r--r--apps/files_sharing/l10n/sl.js1
-rw-r--r--apps/files_sharing/l10n/sl.json1
-rw-r--r--apps/files_sharing/l10n/sq.js1
-rw-r--r--apps/files_sharing/l10n/sq.json1
-rw-r--r--apps/files_sharing/l10n/sr.js1
-rw-r--r--apps/files_sharing/l10n/sr.json1
-rw-r--r--apps/files_sharing/l10n/sr@latin.js2
-rw-r--r--apps/files_sharing/l10n/sr@latin.json2
-rw-r--r--apps/files_sharing/l10n/sv.js1
-rw-r--r--apps/files_sharing/l10n/sv.json1
-rw-r--r--apps/files_sharing/l10n/ta_LK.js1
-rw-r--r--apps/files_sharing/l10n/ta_LK.json1
-rw-r--r--apps/files_sharing/l10n/th_TH.js1
-rw-r--r--apps/files_sharing/l10n/th_TH.json1
-rw-r--r--apps/files_sharing/l10n/tr.js1
-rw-r--r--apps/files_sharing/l10n/tr.json1
-rw-r--r--apps/files_sharing/l10n/ug.js1
-rw-r--r--apps/files_sharing/l10n/ug.json1
-rw-r--r--apps/files_sharing/l10n/uk.js17
-rw-r--r--apps/files_sharing/l10n/uk.json17
-rw-r--r--apps/files_sharing/l10n/ur_PK.js1
-rw-r--r--apps/files_sharing/l10n/ur_PK.json1
-rw-r--r--apps/files_sharing/l10n/vi.js1
-rw-r--r--apps/files_sharing/l10n/vi.json1
-rw-r--r--apps/files_sharing/l10n/zh_CN.js1
-rw-r--r--apps/files_sharing/l10n/zh_CN.json1
-rw-r--r--apps/files_sharing/l10n/zh_HK.js1
-rw-r--r--apps/files_sharing/l10n/zh_HK.json1
-rw-r--r--apps/files_sharing/l10n/zh_TW.js1
-rw-r--r--apps/files_sharing/l10n/zh_TW.json1
-rw-r--r--apps/files_sharing/lib/middleware/sharingcheckmiddleware.php30
-rw-r--r--apps/files_sharing/lib/migration.php42
-rw-r--r--apps/files_sharing/lib/scanner.php45
-rw-r--r--apps/files_sharing/lib/share/file.php11
-rw-r--r--apps/files_sharing/lib/sharedstorage.php2
-rw-r--r--apps/files_sharing/tests/middleware/sharingcheckmiddleware.php36
-rw-r--r--apps/files_sharing/tests/migrationtest.php76
-rw-r--r--apps/files_trashbin/appinfo/app.php2
-rw-r--r--apps/files_trashbin/l10n/pt_PT.js1
-rw-r--r--apps/files_trashbin/l10n/pt_PT.json1
-rw-r--r--apps/files_trashbin/l10n/sr@latin.js11
-rw-r--r--apps/files_trashbin/l10n/sr@latin.json11
-rw-r--r--apps/files_trashbin/l10n/uk.js4
-rw-r--r--apps/files_trashbin/l10n/uk.json4
-rw-r--r--apps/files_versions/appinfo/app.php1
-rw-r--r--apps/files_versions/l10n/sr@latin.js6
-rw-r--r--apps/files_versions/l10n/sr@latin.json4
-rw-r--r--apps/user_ldap/appinfo/app.php1
-rw-r--r--apps/user_ldap/l10n/uk.js1
-rw-r--r--apps/user_ldap/l10n/uk.json1
-rw-r--r--apps/user_ldap/l10n/yo.js7
-rw-r--r--apps/user_ldap/l10n/yo.json5
-rw-r--r--apps/user_webdavauth/appinfo/app.php2
-rw-r--r--config/config.sample.php11
-rw-r--r--core/js/update.js12
-rw-r--r--core/l10n/it.js3
-rw-r--r--core/l10n/it.json3
-rw-r--r--core/l10n/pt_BR.js3
-rw-r--r--core/l10n/pt_BR.json3
-rw-r--r--core/l10n/uk.js11
-rw-r--r--core/l10n/uk.json11
-rw-r--r--core/l10n/yo.js7
-rw-r--r--core/l10n/yo.json5
-rw-r--r--core/templates/update.admin.php2
-rw-r--r--lib/l10n/yo.js10
-rw-r--r--lib/l10n/yo.json8
-rw-r--r--lib/private/app.php8
-rw-r--r--lib/private/app/dependencyanalyzer.php2
-rw-r--r--lib/private/appframework/app.php4
-rw-r--r--lib/private/appframework/dependencyinjection/dicontainer.php1
-rw-r--r--lib/private/appframework/http/request.php22
-rw-r--r--lib/private/files/view.php43
-rw-r--r--lib/private/repair.php4
-rw-r--r--lib/private/util.php12
-rw-r--r--lib/public/irequest.php4
-rw-r--r--lib/repair/cleantags.php114
-rw-r--r--settings/ajax/deletekeys.php8
-rw-r--r--settings/ajax/restorekeys.php15
-rw-r--r--settings/l10n/uk.js31
-rw-r--r--settings/l10n/uk.json31
-rw-r--r--tests/lib/app.php53
-rw-r--r--tests/lib/appframework/http/RequestTest.php17
-rw-r--r--tests/lib/files/view.php14
-rw-r--r--tests/lib/memcache/redis.php10
-rw-r--r--tests/lib/repair/cleantags.php143
246 files changed, 1510 insertions, 192 deletions
diff --git a/apps/files/ajax/delete.php b/apps/files/ajax/delete.php
index 4d4232e872e..61caa7618da 100644
--- a/apps/files/ajax/delete.php
+++ b/apps/files/ajax/delete.php
@@ -6,7 +6,7 @@ OCP\JSON::callCheck();
// Get data
-$dir = stripslashes($_POST["dir"]);
+$dir = isset($_POST['dir']) ? $_POST['dir'] : '';
$allFiles = isset($_POST["allfiles"]) ? $_POST["allfiles"] : false;
// delete all files in dir ?
diff --git a/apps/files/ajax/download.php b/apps/files/ajax/download.php
index b2e144c4b8f..368257b95cd 100644
--- a/apps/files/ajax/download.php
+++ b/apps/files/ajax/download.php
@@ -25,8 +25,8 @@
OCP\User::checkLoggedIn();
\OC::$server->getSession()->close();
-$files = $_GET["files"];
-$dir = $_GET["dir"];
+$files = isset($_GET['files']) ? $_GET['files'] : '';
+$dir = isset($_GET['dir']) ? $_GET['dir'] : '';
$files_list = json_decode($files);
// in case we get only a single file
diff --git a/apps/files/ajax/move.php b/apps/files/ajax/move.php
index 12760d4415f..a9e0d09f176 100644
--- a/apps/files/ajax/move.php
+++ b/apps/files/ajax/move.php
@@ -5,9 +5,9 @@ OCP\JSON::callCheck();
\OC::$server->getSession()->close();
// Get data
-$dir = stripslashes($_POST["dir"]);
-$file = stripslashes($_POST["file"]);
-$target = stripslashes(rawurldecode($_POST["target"]));
+$dir = isset($_POST['dir']) ? $_POST['dir'] : '';
+$file = isset($_POST['file']) ? $_POST['file'] : '';
+$target = isset($_POST['target']) ? rawurldecode($_POST['target']) : '';
$l = \OC::$server->getL10N('files');
diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php
index c162237fe92..0eb144aca56 100644
--- a/apps/files/ajax/newfile.php
+++ b/apps/files/ajax/newfile.php
@@ -81,7 +81,6 @@ if (!\OC\Files\Filesystem::file_exists($dir . '/')) {
exit();
}
-//TODO why is stripslashes used on foldername in newfolder.php but not here?
$target = $dir.'/'.$filename;
if (\OC\Files\Filesystem::file_exists($target)) {
diff --git a/apps/files/ajax/newfolder.php b/apps/files/ajax/newfolder.php
index ea7a10c2ab9..3ad64021cfe 100644
--- a/apps/files/ajax/newfolder.php
+++ b/apps/files/ajax/newfolder.php
@@ -8,8 +8,8 @@ OCP\JSON::callCheck();
\OC::$server->getSession()->close();
// Get the params
-$dir = isset( $_POST['dir'] ) ? stripslashes($_POST['dir']) : '';
-$foldername = isset( $_POST['foldername'] ) ? stripslashes($_POST['foldername']) : '';
+$dir = isset($_POST['dir']) ? $_POST['dir'] : '';
+$foldername = isset($_POST['foldername']) ? $_POST['foldername'] : '';
$l10n = \OC::$server->getL10N('files');
diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php
index 7bf6c40e87c..88375f82acb 100644
--- a/apps/files/ajax/upload.php
+++ b/apps/files/ajax/upload.php
@@ -132,9 +132,9 @@ if (strpos($dir, '..') === false) {
// $path needs to be normalized - this failed within drag'n'drop upload to a sub-folder
if ($resolution === 'autorename') {
// append a number in brackets like 'filename (2).ext'
- $target = OCP\Files::buildNotExistingFileName(stripslashes($dir . $relativePath), $files['name'][$i]);
+ $target = OCP\Files::buildNotExistingFileName($dir . $relativePath, $files['name'][$i]);
} else {
- $target = \OC\Files\Filesystem::normalizePath(stripslashes($dir . $relativePath).'/'.$files['name'][$i]);
+ $target = \OC\Files\Filesystem::normalizePath($dir . $relativePath.'/'.$files['name'][$i]);
}
// relative dir to return to the client
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 5b947fa326c..7e0371af94f 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -258,6 +258,8 @@ table td.filename .thumbnail {
margin-top: 9px;
cursor: pointer;
float: left;
+ position: absolute;
+ z-index: 4;
}
table td.filename input.filename {
width: 70%;
diff --git a/apps/files/index.php b/apps/files/index.php
index 767cb156ca2..fe2cd4f5543 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -29,7 +29,6 @@ OCP\User::checkLoggedIn();
OCP\Util::addStyle('files', 'files');
OCP\Util::addStyle('files', 'upload');
OCP\Util::addStyle('files', 'mobile');
-OCP\Util::addTranslations('files');
OCP\Util::addscript('files', 'app');
OCP\Util::addscript('files', 'file-upload');
OCP\Util::addscript('files', 'jquery.iframe-transport');
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 1d7252220bf..c5c665cee77 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -323,7 +323,7 @@
*/
_onClickFile: function(event) {
var $tr = $(event.target).closest('tr');
- if (event.ctrlKey || event.shiftKey) {
+ if (this._allowSelection && (event.ctrlKey || event.shiftKey)) {
event.preventDefault();
if (event.shiftKey) {
var $lastTr = $(this._lastChecked);
@@ -369,6 +369,8 @@
dir: $tr.attr('data-path') || this.getCurrentDirectory()
});
}
+ // deselect row
+ $(event.target).closest('a').blur();
}
}
},
diff --git a/apps/files/js/tagsplugin.js b/apps/files/js/tagsplugin.js
index dec6063aa9b..22a92f8400b 100644
--- a/apps/files/js/tagsplugin.js
+++ b/apps/files/js/tagsplugin.js
@@ -53,6 +53,7 @@
*/
function toggleStar($actionEl, state) {
$actionEl.find('img').attr('src', getStarImage(state));
+ $actionEl.hide().show(0); //force Safari to redraw element on src change
$actionEl.toggleClass('permanent', state);
}
diff --git a/apps/files/l10n/it.js b/apps/files/l10n/it.js
index 354bacfdf15..8ec7c4c3478 100644
--- a/apps/files/l10n/it.js
+++ b/apps/files/l10n/it.js
@@ -75,7 +75,7 @@ OC.L10N.register(
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "La cifratura è stata disabilitata ma i tuoi file sono ancora cifrati. Vai nelle impostazioni personali per decifrare i file.",
- "_matches '{filter}'_::_match '{filter}'_" : ["",""],
+ "_matches '{filter}'_::_match '{filter}'_" : ["corrispondono a '{filter}'","corrisponde a '{filter}'"],
"{dirs} and {files}" : "{dirs} e {files}",
"Favorited" : "Preferiti",
"Favorite" : "Preferito",
diff --git a/apps/files/l10n/it.json b/apps/files/l10n/it.json
index 916d7a3cb13..44dcc27c8a9 100644
--- a/apps/files/l10n/it.json
+++ b/apps/files/l10n/it.json
@@ -73,7 +73,7 @@
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "L'applicazione di cifratura è abilitata, ma le chiavi non sono state inizializzate, disconnettiti ed effettua nuovamente l'accesso",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Chiave privata non valida per l'applicazione di cifratura. Aggiorna la password della chiave privata nelle impostazioni personali per ripristinare l'accesso ai tuoi file cifrati.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "La cifratura è stata disabilitata ma i tuoi file sono ancora cifrati. Vai nelle impostazioni personali per decifrare i file.",
- "_matches '{filter}'_::_match '{filter}'_" : ["",""],
+ "_matches '{filter}'_::_match '{filter}'_" : ["corrispondono a '{filter}'","corrisponde a '{filter}'"],
"{dirs} and {files}" : "{dirs} e {files}",
"Favorited" : "Preferiti",
"Favorite" : "Preferito",
diff --git a/apps/files/l10n/pt_PT.js b/apps/files/l10n/pt_PT.js
index a8a3a873cde..fd920a75ffa 100644
--- a/apps/files/l10n/pt_PT.js
+++ b/apps/files/l10n/pt_PT.js
@@ -95,6 +95,7 @@ OC.L10N.register(
"From link" : "Da hiperligação",
"Upload" : "Enviar",
"Cancel upload" : "Cancelar o envio",
+ "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
"Select all" : "Seleccionar todos",
"Upload too large" : "Upload muito grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os ficheiro que está a tentar enviar excedem o tamanho máximo de envio neste servidor.",
diff --git a/apps/files/l10n/pt_PT.json b/apps/files/l10n/pt_PT.json
index 9acafe0a611..742d5349bdb 100644
--- a/apps/files/l10n/pt_PT.json
+++ b/apps/files/l10n/pt_PT.json
@@ -93,6 +93,7 @@
"From link" : "Da hiperligação",
"Upload" : "Enviar",
"Cancel upload" : "Cancelar o envio",
+ "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
"Select all" : "Seleccionar todos",
"Upload too large" : "Upload muito grande",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Os ficheiro que está a tentar enviar excedem o tamanho máximo de envio neste servidor.",
diff --git a/apps/files/l10n/sr@latin.js b/apps/files/l10n/sr@latin.js
index bfb0019f492..65aafd9d1f3 100644
--- a/apps/files/l10n/sr@latin.js
+++ b/apps/files/l10n/sr@latin.js
@@ -1,31 +1,111 @@
OC.L10N.register(
"files",
{
+ "Storage not available" : "Skladište nije dostupno",
+ "Storage invalid" : "Neispravno skladište",
+ "Unknown error" : "Nepoznata greška",
+ "Could not move %s - File with this name already exists" : "Nemoguće premeštanje %s - fajl sa ovim imenom već postoji",
+ "Could not move %s" : "Nemoguće premeštanje %s",
+ "Permission denied" : "Pristup odbijen",
+ "File name cannot be empty." : "Ime fajla ne može biti prazno.",
+ "\"%s\" is an invalid file name." : "\"%s\" je neispravno ime fajla.",
+ "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Neispravno ime, '\\', '/', '<', '>', ':', '\"', '|', '?' i '*' nisu dozvoljeni.",
+ "The target folder has been moved or deleted." : "Ciljani direktorijum je premešten ili izbrisan.",
+ "The name %s is already used in the folder %s. Please choose a different name." : "Ime %s je već u upotrebi u direktorijumu %s. Molimo izaberite drugo ime.",
+ "Not a valid source" : "Nije ispravan izvor",
+ "Server is not allowed to open URLs, please check the server configuration" : "Serveru nije dozvoljeno da otvara URL-ove, molimo proverite podešavanja servera",
+ "The file exceeds your quota by %s" : "Ovaj fajl prevazilazi Vašu kvotu za %s",
+ "Error while downloading %s to %s" : "Greška pri preuzimanju %s u %s",
+ "Error when creating the file" : "Greška pri kreiranju fajla",
+ "Folder name cannot be empty." : "Ime direktorijuma ne može da bude prazno.",
+ "Error when creating the folder" : "Greška pri kreiranju direktorijuma",
+ "Unable to set upload directory." : "Nemoguće postaviti direktorijum za otpremanje.",
+ "Invalid Token" : "Neispravan simbol",
+ "No file was uploaded. Unknown error" : "Fajl nije otpremeljen. Nepoznata greška",
"There is no error, the file uploaded with success" : "Nema greške, fajl je uspešno poslat",
+ "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Otpremljeni fajl prevazilazi upload_max_filesize direktivu u php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Poslati fajl prevazilazi direktivu MAX_FILE_SIZE koja je navedena u HTML formi",
"The uploaded file was only partially uploaded" : "Poslati fajl je samo delimično otpremljen!",
"No file was uploaded" : "Nijedan fajl nije poslat",
"Missing a temporary folder" : "Nedostaje privremena fascikla",
+ "Failed to write to disk" : "Neuspelo pisanje na disk",
+ "Not enough storage available" : "Nema dovoljno skladišnog prostora na raspolaganju",
+ "Upload failed. Could not find uploaded file" : "Otpremanje nije uspelo. Nije pronađen otpremljeni fajl",
+ "Upload failed. Could not get file info." : "Otpremanje nije uspelo. Nije moguće pronaći informacije o fajlu.",
+ "Invalid directory." : "Neispravan direktorijum",
"Files" : "Fajlovi",
+ "All files" : "Svi fajlovi",
+ "Favorites" : "Omiljeni",
"Home" : "Kuća",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nije moguće otpremiti {filename} zato što je u pitanju direktorijum ili ima 0 bajtova.",
+ "Total file size {size1} exceeds upload limit {size2}" : "Ukupna veličina fajla {size1} prevazilazi limit za otpremanje {size2}",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nema dovoljno slobodnog prostora, otpremate {size1} ali samo je {size2} preostalo",
+ "Upload cancelled." : "Otpremanje otkazano.",
+ "Could not get result from server." : "Nije bilo moguće dobiti rezultat sa servera.",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "Otpremanje fajla je u toku. Ako sada napustite stranicu, prekinućete otpremanje.",
+ "URL cannot be empty" : "URL ne može biti prazan.",
+ "{new_name} already exists" : "{new_name} već postoji",
+ "Could not create file" : "Nije bilo moguće kreirati fajl",
+ "Could not create folder" : "Nije bilo moguće kreirati direktorijum",
+ "Error fetching URL" : "Greška pri preuzimanju URL-a",
"Rename" : "Preimenij",
"Delete" : "Obriši",
+ "Disconnect storage" : "Nepovezano skladište",
"Unshare" : "Ukljoni deljenje",
"Download" : "Preuzmi",
+ "Select" : "Odaberi",
+ "Pending" : "U toku",
+ "Unable to determine date" : "Nemoguće ustanoviti datum",
+ "Error moving file." : "Greška pri premeštanju fajla.",
+ "Error moving file" : "Greška pri premeštanju fajla",
"Error" : "Greška",
+ "Could not rename file" : "Nemoguća promena imena fajla",
+ "Error deleting file." : "Greška pri brisanju fajla.",
+ "No entries in this folder match '{filter}'" : "Nijedan unos u ovom direktorijumu se ne poklapa sa '{filter}'",
"Name" : "Ime",
"Size" : "Veličina",
"Modified" : "Zadnja izmena",
- "_%n folder_::_%n folders_" : ["","",""],
- "_%n file_::_%n files_" : ["","",""],
- "_Uploading %n file_::_Uploading %n files_" : ["","",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["","",""],
+ "_%n folder_::_%n folders_" : ["%n direktorijum","%n direktorijuma","%n direktorijuma"],
+ "_%n file_::_%n files_" : ["%n fajl","%n fajlova","%n fajlova"],
+ "You don’t have permission to upload or create files here" : "Nemate dozvolu da otpremate ili kreirate fajlove ovde",
+ "_Uploading %n file_::_Uploading %n files_" : ["Otpremam %n fajl","Otpremam %n fajlova","Otpremam %n fajlova"],
+ "\"{name}\" is an invalid file name." : "\"{name}\" je neispravno ime fajla.",
+ "Your storage is full, files can not be updated or synced anymore!" : "Vaše skladište je puno, fajlovi se ne mogu više otpremati ili sinhronizovati.",
+ "Your storage is almost full ({usedSpacePercent}%)" : "Vaše skladište je skoro puno ({usedSpacePercent}%)",
+ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija za šifrovanje je omogućena ali Vaši ključevi nisu inicijalizovani, molimo Vas da se izlogujete i ulogujete ponovo.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za Aplikaciju za šifrovanje. Molimo da osvežite vašu lozinku privatnog ključa u ličnim podešavanjima kako bi dobili pristup šifrovanim fajlovima.",
+ "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrovanje je isključeno, ali Vaši fajlovi su i dalje šifrovani. Molimo Vas da odete u lična podešavanja da dešifrujete svoje fajlove.",
+ "_matches '{filter}'_::_match '{filter}'_" : ["poklapa se sa '{filter}'","poklapaju se sa '{filter}'","poklapaju se sa '{filter}'"],
+ "{dirs} and {files}" : "{dirs} i {files}",
+ "Favorited" : "Omiljeni",
+ "Favorite" : "Omiljen",
+ "%s could not be renamed as it has been deleted" : "%s nije mogao biti preimenovan jer je obrisan.",
+ "%s could not be renamed" : "%s nije mogao biti preimenovan",
+ "Upload (max. %s)" : "Otpremanje (maksimalno %s)",
+ "File handling" : "Upravljanje fajlovima",
"Maximum upload size" : "Maksimalna veličina pošiljke",
+ "max. possible: " : "najviše moguće:",
"Save" : "Snimi",
"Settings" : "Podešavanja",
+ "WebDAV" : "WebDAV",
+ "Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Upotrebite ovu adresu da <a href=\"%s\" target=\"_blank\">pristupite svojim fajlovima putem WebDAV-a</a>",
+ "New" : "Novi",
+ "New text file" : "Novi tekstualni fajl",
+ "Text file" : "Tekstualni fajl",
+ "New folder" : "Novi direktorijum",
"Folder" : "Direktorijum",
+ "From link" : "Od prečice",
"Upload" : "Pošalji",
+ "Cancel upload" : "Otkaži otpremanje",
+ "No files yet" : "Još nema fajlova",
+ "Upload some content or sync with your devices!" : "Otpremite neki sadržaj ili sinhronizujte sa svojim uređajima!",
+ "No entries found in this folder" : "Nema pronađenih unosa u ovom direktorijumu",
+ "Select all" : "Odaberi sve",
"Upload too large" : "Pošiljka je prevelika",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fajlovi koje želite da pošaljete prevazilaze ograničenje maksimalne veličine pošiljke na ovom serveru."
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fajlovi koje želite da pošaljete prevazilaze ograničenje maksimalne veličine pošiljke na ovom serveru.",
+ "Files are being scanned, please wait." : "Fajlovi se skeniraju, molimo sačekajte.",
+ "Currently scanning" : "Trenutno skeniram",
+ "No favorites" : "Nema omiljenih",
+ "Files and folders you mark as favorite will show up here" : "Fajlovi i direktorijumi koje ste obeležili kao omiljene će biti prikazani ovde"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files/l10n/sr@latin.json b/apps/files/l10n/sr@latin.json
index 2cc09b861bd..2366c3fee2b 100644
--- a/apps/files/l10n/sr@latin.json
+++ b/apps/files/l10n/sr@latin.json
@@ -1,29 +1,109 @@
{ "translations": {
+ "Storage not available" : "Skladište nije dostupno",
+ "Storage invalid" : "Neispravno skladište",
+ "Unknown error" : "Nepoznata greška",
+ "Could not move %s - File with this name already exists" : "Nemoguće premeštanje %s - fajl sa ovim imenom već postoji",
+ "Could not move %s" : "Nemoguće premeštanje %s",
+ "Permission denied" : "Pristup odbijen",
+ "File name cannot be empty." : "Ime fajla ne može biti prazno.",
+ "\"%s\" is an invalid file name." : "\"%s\" je neispravno ime fajla.",
+ "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." : "Neispravno ime, '\\', '/', '<', '>', ':', '\"', '|', '?' i '*' nisu dozvoljeni.",
+ "The target folder has been moved or deleted." : "Ciljani direktorijum je premešten ili izbrisan.",
+ "The name %s is already used in the folder %s. Please choose a different name." : "Ime %s je već u upotrebi u direktorijumu %s. Molimo izaberite drugo ime.",
+ "Not a valid source" : "Nije ispravan izvor",
+ "Server is not allowed to open URLs, please check the server configuration" : "Serveru nije dozvoljeno da otvara URL-ove, molimo proverite podešavanja servera",
+ "The file exceeds your quota by %s" : "Ovaj fajl prevazilazi Vašu kvotu za %s",
+ "Error while downloading %s to %s" : "Greška pri preuzimanju %s u %s",
+ "Error when creating the file" : "Greška pri kreiranju fajla",
+ "Folder name cannot be empty." : "Ime direktorijuma ne može da bude prazno.",
+ "Error when creating the folder" : "Greška pri kreiranju direktorijuma",
+ "Unable to set upload directory." : "Nemoguće postaviti direktorijum za otpremanje.",
+ "Invalid Token" : "Neispravan simbol",
+ "No file was uploaded. Unknown error" : "Fajl nije otpremeljen. Nepoznata greška",
"There is no error, the file uploaded with success" : "Nema greške, fajl je uspešno poslat",
+ "The uploaded file exceeds the upload_max_filesize directive in php.ini: " : "Otpremljeni fajl prevazilazi upload_max_filesize direktivu u php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" : "Poslati fajl prevazilazi direktivu MAX_FILE_SIZE koja je navedena u HTML formi",
"The uploaded file was only partially uploaded" : "Poslati fajl je samo delimično otpremljen!",
"No file was uploaded" : "Nijedan fajl nije poslat",
"Missing a temporary folder" : "Nedostaje privremena fascikla",
+ "Failed to write to disk" : "Neuspelo pisanje na disk",
+ "Not enough storage available" : "Nema dovoljno skladišnog prostora na raspolaganju",
+ "Upload failed. Could not find uploaded file" : "Otpremanje nije uspelo. Nije pronađen otpremljeni fajl",
+ "Upload failed. Could not get file info." : "Otpremanje nije uspelo. Nije moguće pronaći informacije o fajlu.",
+ "Invalid directory." : "Neispravan direktorijum",
"Files" : "Fajlovi",
+ "All files" : "Svi fajlovi",
+ "Favorites" : "Omiljeni",
"Home" : "Kuća",
+ "Unable to upload {filename} as it is a directory or has 0 bytes" : "Nije moguće otpremiti {filename} zato što je u pitanju direktorijum ili ima 0 bajtova.",
+ "Total file size {size1} exceeds upload limit {size2}" : "Ukupna veličina fajla {size1} prevazilazi limit za otpremanje {size2}",
+ "Not enough free space, you are uploading {size1} but only {size2} is left" : "Nema dovoljno slobodnog prostora, otpremate {size1} ali samo je {size2} preostalo",
+ "Upload cancelled." : "Otpremanje otkazano.",
+ "Could not get result from server." : "Nije bilo moguće dobiti rezultat sa servera.",
+ "File upload is in progress. Leaving the page now will cancel the upload." : "Otpremanje fajla je u toku. Ako sada napustite stranicu, prekinućete otpremanje.",
+ "URL cannot be empty" : "URL ne može biti prazan.",
+ "{new_name} already exists" : "{new_name} već postoji",
+ "Could not create file" : "Nije bilo moguće kreirati fajl",
+ "Could not create folder" : "Nije bilo moguće kreirati direktorijum",
+ "Error fetching URL" : "Greška pri preuzimanju URL-a",
"Rename" : "Preimenij",
"Delete" : "Obriši",
+ "Disconnect storage" : "Nepovezano skladište",
"Unshare" : "Ukljoni deljenje",
"Download" : "Preuzmi",
+ "Select" : "Odaberi",
+ "Pending" : "U toku",
+ "Unable to determine date" : "Nemoguće ustanoviti datum",
+ "Error moving file." : "Greška pri premeštanju fajla.",
+ "Error moving file" : "Greška pri premeštanju fajla",
"Error" : "Greška",
+ "Could not rename file" : "Nemoguća promena imena fajla",
+ "Error deleting file." : "Greška pri brisanju fajla.",
+ "No entries in this folder match '{filter}'" : "Nijedan unos u ovom direktorijumu se ne poklapa sa '{filter}'",
"Name" : "Ime",
"Size" : "Veličina",
"Modified" : "Zadnja izmena",
- "_%n folder_::_%n folders_" : ["","",""],
- "_%n file_::_%n files_" : ["","",""],
- "_Uploading %n file_::_Uploading %n files_" : ["","",""],
- "_matches '{filter}'_::_match '{filter}'_" : ["","",""],
+ "_%n folder_::_%n folders_" : ["%n direktorijum","%n direktorijuma","%n direktorijuma"],
+ "_%n file_::_%n files_" : ["%n fajl","%n fajlova","%n fajlova"],
+ "You don’t have permission to upload or create files here" : "Nemate dozvolu da otpremate ili kreirate fajlove ovde",
+ "_Uploading %n file_::_Uploading %n files_" : ["Otpremam %n fajl","Otpremam %n fajlova","Otpremam %n fajlova"],
+ "\"{name}\" is an invalid file name." : "\"{name}\" je neispravno ime fajla.",
+ "Your storage is full, files can not be updated or synced anymore!" : "Vaše skladište je puno, fajlovi se ne mogu više otpremati ili sinhronizovati.",
+ "Your storage is almost full ({usedSpacePercent}%)" : "Vaše skladište je skoro puno ({usedSpacePercent}%)",
+ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija za šifrovanje je omogućena ali Vaši ključevi nisu inicijalizovani, molimo Vas da se izlogujete i ulogujete ponovo.",
+ "Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Neispravan privatni ključ za Aplikaciju za šifrovanje. Molimo da osvežite vašu lozinku privatnog ključa u ličnim podešavanjima kako bi dobili pristup šifrovanim fajlovima.",
+ "Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Šifrovanje je isključeno, ali Vaši fajlovi su i dalje šifrovani. Molimo Vas da odete u lična podešavanja da dešifrujete svoje fajlove.",
+ "_matches '{filter}'_::_match '{filter}'_" : ["poklapa se sa '{filter}'","poklapaju se sa '{filter}'","poklapaju se sa '{filter}'"],
+ "{dirs} and {files}" : "{dirs} i {files}",
+ "Favorited" : "Omiljeni",
+ "Favorite" : "Omiljen",
+ "%s could not be renamed as it has been deleted" : "%s nije mogao biti preimenovan jer je obrisan.",
+ "%s could not be renamed" : "%s nije mogao biti preimenovan",
+ "Upload (max. %s)" : "Otpremanje (maksimalno %s)",
+ "File handling" : "Upravljanje fajlovima",
"Maximum upload size" : "Maksimalna veličina pošiljke",
+ "max. possible: " : "najviše moguće:",
"Save" : "Snimi",
"Settings" : "Podešavanja",
+ "WebDAV" : "WebDAV",
+ "Use this address to <a href=\"%s\" target=\"_blank\">access your Files via WebDAV</a>" : "Upotrebite ovu adresu da <a href=\"%s\" target=\"_blank\">pristupite svojim fajlovima putem WebDAV-a</a>",
+ "New" : "Novi",
+ "New text file" : "Novi tekstualni fajl",
+ "Text file" : "Tekstualni fajl",
+ "New folder" : "Novi direktorijum",
"Folder" : "Direktorijum",
+ "From link" : "Od prečice",
"Upload" : "Pošalji",
+ "Cancel upload" : "Otkaži otpremanje",
+ "No files yet" : "Još nema fajlova",
+ "Upload some content or sync with your devices!" : "Otpremite neki sadržaj ili sinhronizujte sa svojim uređajima!",
+ "No entries found in this folder" : "Nema pronađenih unosa u ovom direktorijumu",
+ "Select all" : "Odaberi sve",
"Upload too large" : "Pošiljka je prevelika",
- "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fajlovi koje želite da pošaljete prevazilaze ograničenje maksimalne veličine pošiljke na ovom serveru."
+ "The files you are trying to upload exceed the maximum size for file uploads on this server." : "Fajlovi koje želite da pošaljete prevazilaze ograničenje maksimalne veličine pošiljke na ovom serveru.",
+ "Files are being scanned, please wait." : "Fajlovi se skeniraju, molimo sačekajte.",
+ "Currently scanning" : "Trenutno skeniram",
+ "No favorites" : "Nema omiljenih",
+ "Files and folders you mark as favorite will show up here" : "Fajlovi i direktorijumi koje ste obeležili kao omiljene će biti prikazani ovde"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files/l10n/uk.js b/apps/files/l10n/uk.js
index 7275eea30f7..83ac40ff889 100644
--- a/apps/files/l10n/uk.js
+++ b/apps/files/l10n/uk.js
@@ -55,11 +55,13 @@ OC.L10N.register(
"Download" : "Завантажити",
"Select" : "Оберіть",
"Pending" : "Очікування",
+ "Unable to determine date" : "Неможливо визначити дату",
"Error moving file." : "Помилка переміщення файлу.",
"Error moving file" : "Помилка переміщення файлу",
"Error" : "Помилка",
"Could not rename file" : "Неможливо перейменувати файл",
"Error deleting file." : "Помилка видалення файлу.",
+ "No entries in this folder match '{filter}'" : "Нічого не знайдено в цій теці '{filter}'",
"Name" : "Ім'я",
"Size" : "Розмір",
"Modified" : "Змінено",
@@ -73,8 +75,9 @@ OC.L10N.register(
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрування було вимкнено, але ваші файли все ще зашифровано. Для розшифрування перейдіть до персональних налаштувань.",
- "_matches '{filter}'_::_match '{filter}'_" : ["","",""],
+ "_matches '{filter}'_::_match '{filter}'_" : ["знайдено '{filter}'","знайдено '{filter}'","знайдено '{filter}'"],
"{dirs} and {files}" : "{dirs} і {files}",
+ "Favorited" : "Улюблений",
"Favorite" : "Улюблений",
"%s could not be renamed as it has been deleted" : "%s не може бути перейменований, оскільки він видалений",
"%s could not be renamed" : "%s не може бути перейменований",
@@ -94,9 +97,15 @@ OC.L10N.register(
"From link" : "З посилання",
"Upload" : "Вивантажити",
"Cancel upload" : "Перервати завантаження",
+ "No files yet" : "Немає нічого",
+ "Upload some content or sync with your devices!" : "Завантажте вміст або синхронізуйте з пристроями!",
+ "No entries found in this folder" : "Записів не знайдено в цій папці",
+ "Select all" : "Вибрати всі",
"Upload too large" : "Файл занадто великий",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.",
"Files are being scanned, please wait." : "Файли скануються, зачекайте, будь-ласка.",
- "Currently scanning" : "Триває перевірка"
+ "Currently scanning" : "Триває перевірка",
+ "No favorites" : "Немає обраних",
+ "Files and folders you mark as favorite will show up here" : "Файли і папки, які ви помітити як улюблені з'явиться тут"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files/l10n/uk.json b/apps/files/l10n/uk.json
index af7ce2cd751..67c13571dd7 100644
--- a/apps/files/l10n/uk.json
+++ b/apps/files/l10n/uk.json
@@ -53,11 +53,13 @@
"Download" : "Завантажити",
"Select" : "Оберіть",
"Pending" : "Очікування",
+ "Unable to determine date" : "Неможливо визначити дату",
"Error moving file." : "Помилка переміщення файлу.",
"Error moving file" : "Помилка переміщення файлу",
"Error" : "Помилка",
"Could not rename file" : "Неможливо перейменувати файл",
"Error deleting file." : "Помилка видалення файлу.",
+ "No entries in this folder match '{filter}'" : "Нічого не знайдено в цій теці '{filter}'",
"Name" : "Ім'я",
"Size" : "Розмір",
"Modified" : "Змінено",
@@ -71,8 +73,9 @@
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
"Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files." : "Невірний закритий ключ для доданку шифрування. Оновіть пароль до вашого закритого ключа в особистих налаштуваннях.",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." : "Шифрування було вимкнено, але ваші файли все ще зашифровано. Для розшифрування перейдіть до персональних налаштувань.",
- "_matches '{filter}'_::_match '{filter}'_" : ["","",""],
+ "_matches '{filter}'_::_match '{filter}'_" : ["знайдено '{filter}'","знайдено '{filter}'","знайдено '{filter}'"],
"{dirs} and {files}" : "{dirs} і {files}",
+ "Favorited" : "Улюблений",
"Favorite" : "Улюблений",
"%s could not be renamed as it has been deleted" : "%s не може бути перейменований, оскільки він видалений",
"%s could not be renamed" : "%s не може бути перейменований",
@@ -92,9 +95,15 @@
"From link" : "З посилання",
"Upload" : "Вивантажити",
"Cancel upload" : "Перервати завантаження",
+ "No files yet" : "Немає нічого",
+ "Upload some content or sync with your devices!" : "Завантажте вміст або синхронізуйте з пристроями!",
+ "No entries found in this folder" : "Записів не знайдено в цій папці",
+ "Select all" : "Вибрати всі",
"Upload too large" : "Файл занадто великий",
"The files you are trying to upload exceed the maximum size for file uploads on this server." : "Файли,що ви намагаєтесь відвантажити перевищують максимальний дозволений розмір файлів на цьому сервері.",
"Files are being scanned, please wait." : "Файли скануються, зачекайте, будь-ласка.",
- "Currently scanning" : "Триває перевірка"
+ "Currently scanning" : "Триває перевірка",
+ "No favorites" : "Немає обраних",
+ "Files and folders you mark as favorite will show up here" : "Файли і папки, які ви помітити як улюблені з'явиться тут"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files/l10n/yo.js b/apps/files/l10n/yo.js
new file mode 100644
index 00000000000..7988332fa91
--- /dev/null
+++ b/apps/files/l10n/yo.js
@@ -0,0 +1,9 @@
+OC.L10N.register(
+ "files",
+ {
+ "_%n folder_::_%n folders_" : ["",""],
+ "_%n file_::_%n files_" : ["",""],
+ "_Uploading %n file_::_Uploading %n files_" : ["",""],
+ "_matches '{filter}'_::_match '{filter}'_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/files/l10n/yo.json b/apps/files/l10n/yo.json
new file mode 100644
index 00000000000..ef5fc586755
--- /dev/null
+++ b/apps/files/l10n/yo.json
@@ -0,0 +1,7 @@
+{ "translations": {
+ "_%n folder_::_%n folders_" : ["",""],
+ "_%n file_::_%n files_" : ["",""],
+ "_Uploading %n file_::_Uploading %n files_" : ["",""],
+ "_matches '{filter}'_::_match '{filter}'_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/files/tests/js/filelistSpec.js b/apps/files/tests/js/filelistSpec.js
index c1c8e4ce337..59e3f8a9d4e 100644
--- a/apps/files/tests/js/filelistSpec.js
+++ b/apps/files/tests/js/filelistSpec.js
@@ -1790,6 +1790,36 @@ describe('OCA.Files.FileList tests', function() {
expect(fileList.$el.find('.select-all').prop('checked')).toEqual(false);
expect(fileList.getSelectedFiles()).toEqual([]);
});
+ describe('Disabled selection', function() {
+ beforeEach(function() {
+ fileList._allowSelection = false;
+ fileList.setFiles(testFiles);
+ });
+ it('Does not render checkboxes', function() {
+ expect(fileList.$fileList.find('.selectCheckBox').length).toEqual(0);
+ });
+ it('Does not select a file with Ctrl or Shift if selection is not allowed', function() {
+ var $tr = fileList.findFileEl('One.txt');
+ var $tr2 = fileList.findFileEl('Three.pdf');
+ var e;
+ e = new $.Event('click');
+ e.ctrlKey = true;
+ $tr.find('td.filename .name').trigger(e);
+
+ // click on second entry, does not clear the selection
+ e = new $.Event('click');
+ e.ctrlKey = true;
+ $tr2.find('td.filename .name').trigger(e);
+
+ expect(fileList.getSelectedFiles().length).toEqual(0);
+
+ // deselect now
+ e = new $.Event('click');
+ e.shiftKey = true;
+ $tr2.find('td.filename .name').trigger(e);
+ expect(fileList.getSelectedFiles().length).toEqual(0);
+ });
+ })
});
describe('File actions', function() {
it('Clicking on a file name will trigger default action', function() {
diff --git a/apps/files_encryption/appinfo/app.php b/apps/files_encryption/appinfo/app.php
index f2dc63c340d..842b1a1ff27 100644
--- a/apps/files_encryption/appinfo/app.php
+++ b/apps/files_encryption/appinfo/app.php
@@ -1,6 +1,5 @@
<?php
-\OCP\Util::addTranslations('files_encryption');
\OCP\Util::addscript('files_encryption', 'encryption');
\OCP\Util::addscript('files_encryption', 'detect-migration');
diff --git a/apps/files_encryption/l10n/sr@latin.js b/apps/files_encryption/l10n/sr@latin.js
new file mode 100644
index 00000000000..75b9c551adc
--- /dev/null
+++ b/apps/files_encryption/l10n/sr@latin.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "files_encryption",
+ {
+ "Unknown error" : "Nepoznata greška",
+ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija za šifrovanje je omogućena ali Vaši ključevi nisu inicijalizovani, molimo Vas da se izlogujete i ulogujete ponovo."
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_encryption/l10n/sr@latin.json b/apps/files_encryption/l10n/sr@latin.json
new file mode 100644
index 00000000000..ac36a0d5190
--- /dev/null
+++ b/apps/files_encryption/l10n/sr@latin.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "Unknown error" : "Nepoznata greška",
+ "Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Aplikacija za šifrovanje je omogućena ali Vaši ključevi nisu inicijalizovani, molimo Vas da se izlogujete i ulogujete ponovo."
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+} \ No newline at end of file
diff --git a/apps/files_encryption/l10n/uk.js b/apps/files_encryption/l10n/uk.js
index 15783a5172e..185075f13f0 100644
--- a/apps/files_encryption/l10n/uk.js
+++ b/apps/files_encryption/l10n/uk.js
@@ -23,10 +23,11 @@ OC.L10N.register(
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш секретний ключ не дійсний! Ймовірно ваш пароль був змінений ззовні %s (наприклад, корпоративний каталог). Ви можете оновити секретний ключ в особистих налаштуваннях на сторінці відновлення доступу до зашифрованих файлів.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не можу розшифрувати цей файл, можливо він опублікований. Будь ласка, попросіть власника опублікувати його заново.",
"Unknown error. Please check your system settings or contact your administrator" : "Невідома помилка. Будь ласка, перевірте налаштування системи або зверніться до адміністратора.",
- "Missing requirements." : "Відсутні вимоги.",
- "Following users are not set up for encryption:" : "Для наступних користувачів шифрування не налаштоване:",
"Initial encryption started... This can take some time. Please wait." : "Початкове шифрування почалося... Це може зайняти деякий час. Будь ласка, почекайте.",
"Initial encryption running... Please try again later." : "Початкове шифрування працює... Це може зайняти деякий час. Будь ласка, почекайте.",
+ "Missing requirements." : "Відсутні вимоги.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Будь ласка, переконайтеся, що OpenSSL разом з розширенням PHP включена і налаштована належним чином. В даний час, шифрування додатку було відключено.",
+ "Following users are not set up for encryption:" : "Для наступних користувачів шифрування не налаштоване:",
"Go directly to your %spersonal settings%s." : "Перейти навпростець до ваших %spersonal settings%s.",
"Encryption" : "Шифрування",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
diff --git a/apps/files_encryption/l10n/uk.json b/apps/files_encryption/l10n/uk.json
index 69444961860..cfa661e3bdf 100644
--- a/apps/files_encryption/l10n/uk.json
+++ b/apps/files_encryption/l10n/uk.json
@@ -21,10 +21,11 @@
"Your private key is not valid! Likely your password was changed outside of %s (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." : "Ваш секретний ключ не дійсний! Ймовірно ваш пароль був змінений ззовні %s (наприклад, корпоративний каталог). Ви можете оновити секретний ключ в особистих налаштуваннях на сторінці відновлення доступу до зашифрованих файлів.",
"Can not decrypt this file, probably this is a shared file. Please ask the file owner to reshare the file with you." : "Не можу розшифрувати цей файл, можливо він опублікований. Будь ласка, попросіть власника опублікувати його заново.",
"Unknown error. Please check your system settings or contact your administrator" : "Невідома помилка. Будь ласка, перевірте налаштування системи або зверніться до адміністратора.",
- "Missing requirements." : "Відсутні вимоги.",
- "Following users are not set up for encryption:" : "Для наступних користувачів шифрування не налаштоване:",
"Initial encryption started... This can take some time. Please wait." : "Початкове шифрування почалося... Це може зайняти деякий час. Будь ласка, почекайте.",
"Initial encryption running... Please try again later." : "Початкове шифрування працює... Це може зайняти деякий час. Будь ласка, почекайте.",
+ "Missing requirements." : "Відсутні вимоги.",
+ "Please make sure that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." : "Будь ласка, переконайтеся, що OpenSSL разом з розширенням PHP включена і налаштована належним чином. В даний час, шифрування додатку було відключено.",
+ "Following users are not set up for encryption:" : "Для наступних користувачів шифрування не налаштоване:",
"Go directly to your %spersonal settings%s." : "Перейти навпростець до ваших %spersonal settings%s.",
"Encryption" : "Шифрування",
"Encryption App is enabled but your keys are not initialized, please log-out and log-in again" : "Доданок шифрування ввімкнено, але ваші ключі не ініціалізовано, вийдіть та зайдіть знову",
diff --git a/apps/files_encryption/lib/proxy.php b/apps/files_encryption/lib/proxy.php
index 4972e1dffd6..07fd878f069 100644
--- a/apps/files_encryption/lib/proxy.php
+++ b/apps/files_encryption/lib/proxy.php
@@ -47,16 +47,15 @@ class Proxy extends \OC_FileProxy {
* check if path is excluded from encryption
*
* @param string $path relative to data/
- * @param string $uid user
* @return boolean
*/
- protected function isExcludedPath($path, $uid) {
+ protected function isExcludedPath($path) {
$view = new \OC\Files\View();
- $path = \OC\Files\Filesystem::normalizePath($path);
+ $normalizedPath = \OC\Files\Filesystem::normalizePath($path);
- $parts = explode('/', $path);
+ $parts = explode('/', $normalizedPath);
// we only encrypt/decrypt files in the files and files_versions folder
if (sizeof($parts) < 3) {
@@ -69,18 +68,18 @@ class Proxy extends \OC_FileProxy {
return true;
}
if(
- strpos($path, '/' . $uid . '/files/') !== 0 &&
+ !($parts[2] === 'files' && \OCP\User::userExists($parts[1])) &&
!($parts[2] === 'files_versions' && \OCP\User::userExists($parts[1]))) {
return true;
}
- if (!$view->file_exists($path)) {
- $path = dirname($path);
+ if (!$view->file_exists($normalizedPath)) {
+ $normalizedPath = dirname($normalizedPath);
}
// we don't encrypt server-to-server shares
- list($storage, ) = \OC\Files\Filesystem::resolvePath($path);
+ list($storage, ) = \OC\Files\Filesystem::resolvePath($normalizedPath);
/**
* @var \OCP\Files\Storage $storage
*/
@@ -102,17 +101,16 @@ class Proxy extends \OC_FileProxy {
*/
private function shouldEncrypt($path, $mode = 'w') {
- $userId = Helper::getUser($path);
-
// don't call the crypt stream wrapper, if...
if (
Crypt::mode() !== 'server' // we are not in server-side-encryption mode
- || $this->isExcludedPath($path, $userId) // if path is excluded from encryption
+ || $this->isExcludedPath($path) // if path is excluded from encryption
|| substr($path, 0, 8) === 'crypt://' // we are already in crypt mode
) {
return false;
}
+ $userId = Helper::getUser($path);
$view = new \OC\Files\View('');
$util = new Util($view, $userId);
diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php
index 1bc0d54e1bc..b039e808c24 100644
--- a/apps/files_encryption/lib/stream.php
+++ b/apps/files_encryption/lib/stream.php
@@ -136,7 +136,8 @@ class Stream {
switch ($fileType) {
case Util::FILE_TYPE_FILE:
$this->relPath = Helper::stripUserFilesPath($this->rawPath);
- $this->userId = \OC::$server->getUserSession()->getUser()->getUID();
+ $user = \OC::$server->getUserSession()->getUser();
+ $this->userId = $user ? $user->getUID() : Helper::getUserFromPath($this->rawPath);
break;
case Util::FILE_TYPE_VERSION:
$this->relPath = Helper::getPathFromVersion($this->rawPath);
@@ -145,7 +146,8 @@ class Stream {
case Util::FILE_TYPE_CACHE:
$this->relPath = Helper::getPathFromCachedFile($this->rawPath);
Helper::mkdirr($this->rawPath, new \OC\Files\View('/'));
- $this->userId = \OC::$server->getUserSession()->getUser()->getUID();
+ $user = \OC::$server->getUserSession()->getUser();
+ $this->userId = $user ? $user->getUID() : Helper::getUserFromPath($this->rawPath);
break;
default:
\OCP\Util::writeLog('Encryption library', 'failed to open file "' . $this->rawPath . '" expecting a path to "files", "files_versions" or "cache"', \OCP\Util::ERROR);
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index 1b140822724..c1f273d86ed 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -734,7 +734,7 @@ class Util {
}
if ($successful) {
- $this->backupAllKeys('decryptAll');
+ $this->backupAllKeys('decryptAll', false, false);
$this->view->deleteAll($this->keysPath);
}
@@ -1495,16 +1495,61 @@ class Util {
/**
* create a backup of all keys from the user
*
- * @param string $purpose (optional) define the purpose of the backup, will be part of the backup folder
+ * @param string $purpose define the purpose of the backup, will be part of the backup folder name
+ * @param boolean $timestamp (optional) should a timestamp be added, default true
+ * @param boolean $includeUserKeys (optional) include users private-/public-key, default true
*/
- public function backupAllKeys($purpose = '') {
+ public function backupAllKeys($purpose, $timestamp = true, $includeUserKeys = true) {
$this->userId;
- $backupDir = $this->encryptionDir . '/backup.';
- $backupDir .= ($purpose === '') ? date("Y-m-d_H-i-s") . '/' : $purpose . '.' . date("Y-m-d_H-i-s") . '/';
+ $backupDir = $this->encryptionDir . '/backup.' . $purpose;
+ $backupDir .= ($timestamp) ? '.' . date("Y-m-d_H-i-s") . '/' : '/';
$this->view->mkdir($backupDir);
$this->view->copy($this->keysPath, $backupDir . 'keys/');
- $this->view->copy($this->privateKeyPath, $backupDir . $this->userId . '.privateKey');
- $this->view->copy($this->publicKeyPath, $backupDir . $this->userId . '.publicKey');
+ if ($includeUserKeys) {
+ $this->view->copy($this->privateKeyPath, $backupDir . $this->userId . '.privateKey');
+ $this->view->copy($this->publicKeyPath, $backupDir . $this->userId . '.publicKey');
+ }
+ }
+
+ /**
+ * restore backup
+ *
+ * @param string $backup complete name of the backup
+ * @return boolean
+ */
+ public function restoreBackup($backup) {
+ $backupDir = $this->encryptionDir . '/backup.' . $backup . '/';
+
+ $fileKeysRestored = $this->view->rename($backupDir . 'keys', $this->encryptionDir . '/keys');
+
+ $pubKeyRestored = $privKeyRestored = true;
+ if (
+ $this->view->file_exists($backupDir . $this->userId . '.privateKey') &&
+ $this->view->file_exists($backupDir . $this->userId . '.privateKey')
+ ) {
+
+ $pubKeyRestored = $this->view->rename($backupDir . $this->userId . '.publicKey', $this->publicKeyPath);
+ $privKeyRestored = $this->view->rename($backupDir . $this->userId . '.privateKey', $this->privateKeyPath);
+ }
+
+ if ($fileKeysRestored && $pubKeyRestored && $privKeyRestored) {
+ $this->view->deleteAll($backupDir);
+
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * delete backup
+ *
+ * @param string $backup complete name of the backup
+ * @return boolean
+ */
+ public function deleteBackup($backup) {
+ $backupDir = $this->encryptionDir . '/backup.' . $backup . '/';
+ return $this->view->deleteAll($backupDir);
}
/**
diff --git a/apps/files_encryption/tests/proxy.php b/apps/files_encryption/tests/proxy.php
index d5d9cc7daee..a6b63176569 100644
--- a/apps/files_encryption/tests/proxy.php
+++ b/apps/files_encryption/tests/proxy.php
@@ -126,9 +126,7 @@ class Proxy extends TestCase {
$this->view->mkdir(dirname($path));
$this->view->file_put_contents($path, "test");
- $testClass = new DummyProxy();
-
- $result = $testClass->isExcludedPathTesting($path, $this->userId);
+ $result = \Test_Helper::invokePrivate(new \OCA\Files_Encryption\Proxy(), 'isExcludedPath', array($path));
$this->assertSame($expected, $result);
$this->view->deleteAll(dirname($path));
@@ -149,12 +147,3 @@ class Proxy extends TestCase {
}
-
-/**
- * Dummy class to make protected methods available for testing
- */
-class DummyProxy extends \OCA\Files_Encryption\Proxy {
- public function isExcludedPathTesting($path, $uid) {
- return $this->isExcludedPath($path, $uid);
- }
-}
diff --git a/apps/files_encryption/tests/util.php b/apps/files_encryption/tests/util.php
index 4e0b4f2d0de..f9ee005e95f 100755
--- a/apps/files_encryption/tests/util.php
+++ b/apps/files_encryption/tests/util.php
@@ -27,7 +27,7 @@ class Util extends TestCase {
* @var \OC\Files\View
*/
public $view;
- public $keyfilesPath;
+ public $keysPath;
public $publicKeyPath;
public $privateKeyPath;
/**
@@ -379,8 +379,6 @@ class Util extends TestCase {
$this->assertTrue($this->view->is_dir($backupPath . '/keys'));
$this->assertTrue($this->view->file_exists($backupPath . '/keys/' . $filename . '/fileKey'));
$this->assertTrue($this->view->file_exists($backupPath . '/keys/' . $filename . '/' . $user . '.shareKey'));
- $this->assertTrue($this->view->file_exists($backupPath . '/' . $user . '.privateKey'));
- $this->assertTrue($this->view->file_exists($backupPath . '/' . $user . '.publicKey'));
// cleanup
$this->view->unlink($this->userId . '/files/' . $filename);
@@ -389,21 +387,27 @@ class Util extends TestCase {
}
- /**
- * test if all keys get moved to the backup folder correctly
- */
- function testBackupAllKeys() {
- self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1);
-
+ private function createDummyKeysForBackupTest() {
// create some dummy key files
$encPath = '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '/files_encryption';
$this->view->mkdir($encPath . '/keys/foo');
$this->view->file_put_contents($encPath . '/keys/foo/fileKey', 'key');
$this->view->file_put_contents($encPath . '/keys/foo/user1.shareKey', 'share key');
+ }
+
+ /**
+ * test if all keys get moved to the backup folder correctly
+ *
+ * @dataProvider dataBackupAllKeys
+ */
+ function testBackupAllKeys($addTimestamp, $includeUserKeys) {
+ self::loginHelper(self::TEST_ENCRYPTION_UTIL_USER1);
+
+ $this->createDummyKeysForBackupTest();
$util = new \OCA\Files_Encryption\Util($this->view, self::TEST_ENCRYPTION_UTIL_USER1);
- $util->backupAllKeys('testBackupAllKeys');
+ $util->backupAllKeys('testBackupAllKeys', $addTimestamp, $includeUserKeys);
$backupPath = $this->getBackupPath('testBackupAllKeys');
@@ -412,15 +416,80 @@ class Util extends TestCase {
$this->assertTrue($this->view->is_dir($backupPath . '/keys/foo'));
$this->assertTrue($this->view->file_exists($backupPath . '/keys/foo/fileKey'));
$this->assertTrue($this->view->file_exists($backupPath . '/keys/foo/user1.shareKey'));
- $this->assertTrue($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.privateKey'));
- $this->assertTrue($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.publicKey'));
+
+ if ($includeUserKeys) {
+ $this->assertTrue($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.privateKey'));
+ $this->assertTrue($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.publicKey'));
+ } else {
+ $this->assertFalse($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.privateKey'));
+ $this->assertFalse($this->view->file_exists($backupPath . '/' . self::TEST_ENCRYPTION_UTIL_USER1 . '.publicKey'));
+ }
//cleanup
$this->view->deleteAll($backupPath);
- $this->view->unlink($encPath . '/keys/foo/fileKey');
- $this->view->unlink($encPath . '/keys/foo/user1.shareKey');
+ $this->view->unlink($this->encryptionDir . '/keys/foo/fileKey');
+ $this->view->unlink($this->encryptionDir . '/keys/foo/user1.shareKey');
}
+ function dataBackupAllKeys() {
+ return array(
+ array(true, true),
+ array(false, true),
+ array(true, false),
+ array(false, false),
+ );
+ }
+
+
+ /**
+ * @dataProvider dataBackupAllKeys
+ */
+ function testRestoreBackup($addTimestamp, $includeUserKeys) {
+
+ $util = new \OCA\Files_Encryption\Util($this->view, self::TEST_ENCRYPTION_UTIL_USER1);
+ $this->createDummyKeysForBackupTest();
+
+ $util->backupAllKeys('restoreKeysBackupTest', $addTimestamp, $includeUserKeys);
+ $this->view->deleteAll($this->keysPath);
+ if ($includeUserKeys) {
+ $this->view->unlink($this->privateKeyPath);
+ $this->view->unlink($this->publicKeyPath);
+ }
+
+ // key should be removed after backup was created
+ $this->assertFalse($this->view->is_dir($this->keysPath));
+ if ($includeUserKeys) {
+ $this->assertFalse($this->view->file_exists($this->privateKeyPath));
+ $this->assertFalse($this->view->file_exists($this->publicKeyPath));
+ }
+
+ $backupPath = $this->getBackupPath('restoreKeysBackupTest');
+ $backupName = substr(basename($backupPath), strlen('backup.'));
+
+ $this->assertTrue($util->restoreBackup($backupName));
+
+ // check if all keys are restored
+ $this->assertFalse($this->view->is_dir($backupPath));
+ $this->assertTrue($this->view->is_dir($this->keysPath));
+ $this->assertTrue($this->view->is_dir($this->keysPath . '/foo'));
+ $this->assertTrue($this->view->file_exists($this->keysPath . '/foo/fileKey'));
+ $this->assertTrue($this->view->file_exists($this->keysPath . '/foo/user1.shareKey'));
+ $this->assertTrue($this->view->file_exists($this->privateKeyPath));
+ $this->assertTrue($this->view->file_exists($this->publicKeyPath));
+ }
+
+ function testDeleteBackup() {
+ $util = new \OCA\Files_Encryption\Util($this->view, self::TEST_ENCRYPTION_UTIL_USER1);
+ $this->createDummyKeysForBackupTest();
+
+ $util->backupAllKeys('testDeleteBackup', false, false);
+
+ $this->assertTrue($this->view->is_dir($this->encryptionDir . '/backup.testDeleteBackup'));
+
+ $util->deleteBackup('testDeleteBackup');
+
+ $this->assertFalse($this->view->is_dir($this->encryptionDir . '/backup.testDeleteBackup'));
+ }
function testDescryptAllWithBrokenFiles() {
diff --git a/apps/files_external/appinfo/app.php b/apps/files_external/appinfo/app.php
index 0aafcad559a..9b5994338a1 100644
--- a/apps/files_external/appinfo/app.php
+++ b/apps/files_external/appinfo/app.php
@@ -21,8 +21,6 @@ OC::$CLASSPATH['OC\Files\Storage\SFTP'] = 'files_external/lib/sftp.php';
OC::$CLASSPATH['OC_Mount_Config'] = 'files_external/lib/config.php';
OC::$CLASSPATH['OCA\Files\External\Api'] = 'files_external/lib/api.php';
-OCP\Util::addTranslations('files_external');
-
OCP\App::registerAdmin('files_external', 'settings');
if (OCP\Config::getAppValue('files_external', 'allow_user_mounting', 'yes') == 'yes') {
OCP\App::registerPersonal('files_external', 'personal');
diff --git a/apps/files_external/appinfo/info.xml b/apps/files_external/appinfo/info.xml
index f23dea83caa..8518cc89298 100644
--- a/apps/files_external/appinfo/info.xml
+++ b/apps/files_external/appinfo/info.xml
@@ -9,13 +9,17 @@
</description>
<licence>AGPL</licence>
<author>Robin Appelman, Michael Gapczynski, Vincent Petry</author>
- <requiremin>4.93</requiremin>
<shipped>true</shipped>
<documentation>
<admin>admin-external-storage</admin>
</documentation>
+ <rememberlogin>false</rememberlogin>
<types>
<filesystem/>
</types>
<ocsid>166048</ocsid>
+
+ <dependencies>
+ <owncloud min-version="8" />
+ </dependencies>
</info>
diff --git a/apps/files_external/appinfo/version b/apps/files_external/appinfo/version
index f4778493c50..7179039691c 100644
--- a/apps/files_external/appinfo/version
+++ b/apps/files_external/appinfo/version
@@ -1 +1 @@
-0.2.2 \ No newline at end of file
+0.2.3
diff --git a/apps/files_external/l10n/it.js b/apps/files_external/l10n/it.js
index bb9e59ded4f..af26cabed76 100644
--- a/apps/files_external/l10n/it.js
+++ b/apps/files_external/l10n/it.js
@@ -57,6 +57,7 @@ OC.L10N.register(
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> il supporto a cURL di PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> il supporto a FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
+ "No external storage configured" : "Nessuna archiviazione esterna configurata",
"You can configure external storages in the personal settings" : "Puoi configurare archiviazioni esterno nelle impostazioni personali",
"Name" : "Nome",
"Storage type" : "Tipo di archiviazione",
diff --git a/apps/files_external/l10n/it.json b/apps/files_external/l10n/it.json
index dde956a3f6e..678eb4c4b10 100644
--- a/apps/files_external/l10n/it.json
+++ b/apps/files_external/l10n/it.json
@@ -55,6 +55,7 @@
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> il supporto a cURL di PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> il supporto a FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Nota:</b> \"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
+ "No external storage configured" : "Nessuna archiviazione esterna configurata",
"You can configure external storages in the personal settings" : "Puoi configurare archiviazioni esterno nelle impostazioni personali",
"Name" : "Nome",
"Storage type" : "Tipo di archiviazione",
diff --git a/apps/files_external/l10n/uk.js b/apps/files_external/l10n/uk.js
index dc914f9340f..2b1cf3e0ee3 100644
--- a/apps/files_external/l10n/uk.js
+++ b/apps/files_external/l10n/uk.js
@@ -53,9 +53,12 @@ OC.L10N.register(
"(group)" : "(група)",
"Saved" : "Збереженно",
"<b>Note:</b> " : "<b>Примітка:</b>",
+ "and" : "і",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примітка:</b> Підтримку cURL в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примітка:</b> Підтримку FTP в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примітка:</b> \"%s\" не встановлено. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
+ "No external storage configured" : "Немає налаштованих зовнішніх сховищ",
+ "You can configure external storages in the personal settings" : "Ви можете налаштувати зовнішні сховища в особистих налаштуваннях",
"Name" : "Ім'я",
"Storage type" : "Тип сховища",
"Scope" : "Область",
diff --git a/apps/files_external/l10n/uk.json b/apps/files_external/l10n/uk.json
index 7c18abea055..55469685ac9 100644
--- a/apps/files_external/l10n/uk.json
+++ b/apps/files_external/l10n/uk.json
@@ -51,9 +51,12 @@
"(group)" : "(група)",
"Saved" : "Збереженно",
"<b>Note:</b> " : "<b>Примітка:</b>",
+ "and" : "і",
"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примітка:</b> Підтримку cURL в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примітка:</b> Підтримку FTP в PHP не ввімкнено чи не встановлена. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." : "<b>Примітка:</b> \"%s\" не встановлено. Під'єднатися до %s неможливо. Зверніться до системного адміністратора.",
+ "No external storage configured" : "Немає налаштованих зовнішніх сховищ",
+ "You can configure external storages in the personal settings" : "Ви можете налаштувати зовнішні сховища в особистих налаштуваннях",
"Name" : "Ім'я",
"Storage type" : "Тип сховища",
"Scope" : "Область",
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index 36d148dce96..837ceacbab3 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -4,6 +4,7 @@ $l = \OC::$server->getL10N('files_sharing');
OC::$CLASSPATH['OC_Share_Backend_File'] = 'files_sharing/lib/share/file.php';
OC::$CLASSPATH['OC_Share_Backend_Folder'] = 'files_sharing/lib/share/folder.php';
OC::$CLASSPATH['OC\Files\Storage\Shared'] = 'files_sharing/lib/sharedstorage.php';
+OC::$CLASSPATH['OC\Files\Cache\SharedScanner'] = 'files_sharing/lib/scanner.php';
OC::$CLASSPATH['OC\Files\Cache\Shared_Cache'] = 'files_sharing/lib/cache.php';
OC::$CLASSPATH['OC\Files\Cache\Shared_Permissions'] = 'files_sharing/lib/permissions.php';
OC::$CLASSPATH['OC\Files\Cache\Shared_Updater'] = 'files_sharing/lib/updater.php';
@@ -21,7 +22,6 @@ OC::$CLASSPATH['OCA\Files_Sharing\Exceptions\BrokenPath'] = 'files_sharing/lib/e
OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
-OCP\Util::addTranslations('files_sharing');
OCP\Util::addScript('files_sharing', 'share');
OCP\Util::addScript('files_sharing', 'external');
diff --git a/apps/files_sharing/appinfo/update.php b/apps/files_sharing/appinfo/update.php
new file mode 100644
index 00000000000..1e910eb6ac1
--- /dev/null
+++ b/apps/files_sharing/appinfo/update.php
@@ -0,0 +1,12 @@
+<?php
+
+use OCA\Files_Sharing\Migration;
+
+$installedVersion = \OC::$server->getConfig()->getAppValue('files_sharing', 'installed_version');
+
+// Migration OC7 -> OC8
+if (version_compare($installedVersion, '0.6.0', '<')) {
+ $m = new Migration();
+ $m->addAcceptRow();
+}
+
diff --git a/apps/files_sharing/appinfo/version b/apps/files_sharing/appinfo/version
index 7d8568351b4..a918a2aa18d 100644
--- a/apps/files_sharing/appinfo/version
+++ b/apps/files_sharing/appinfo/version
@@ -1 +1 @@
-0.5.4
+0.6.0
diff --git a/apps/files_sharing/application.php b/apps/files_sharing/application.php
index 773831d99b1..56ec448d6a9 100644
--- a/apps/files_sharing/application.php
+++ b/apps/files_sharing/application.php
@@ -29,21 +29,22 @@ class Application extends App {
parent::__construct('files_sharing', $urlParams);
$container = $this->getContainer();
+ $server = $container->getServer();
/**
* Controllers
*/
- $container->registerService('ShareController', function(SimpleContainer $c) {
+ $container->registerService('ShareController', function(SimpleContainer $c) use ($server) {
return new ShareController(
$c->query('AppName'),
$c->query('Request'),
$c->query('UserSession'),
- $c->query('ServerContainer')->getAppConfig(),
- $c->query('ServerContainer')->getConfig(),
+ $server->getAppConfig(),
+ $server->getConfig(),
$c->query('URLGenerator'),
- $c->query('ServerContainer')->getUserManager(),
- $c->query('ServerContainer')->getLogger(),
- $c->query('ServerContainer')->getActivityManager()
+ $server->getUserManager(),
+ $server->getLogger(),
+ $server->getActivityManager()
);
});
$container->registerService('ExternalSharesController', function(SimpleContainer $c) {
@@ -58,33 +59,33 @@ class Application extends App {
/**
* Core class wrappers
*/
- $container->registerService('UserSession', function(SimpleContainer $c) {
- return $c->query('ServerContainer')->getUserSession();
+ $container->registerService('UserSession', function(SimpleContainer $c) use ($server) {
+ return $server->getUserSession();
});
- $container->registerService('URLGenerator', function(SimpleContainer $c) {
- return $c->query('ServerContainer')->getUrlGenerator();
+ $container->registerService('URLGenerator', function(SimpleContainer $c) use ($server){
+ return $server->getUrlGenerator();
});
$container->registerService('IsIncomingShareEnabled', function(SimpleContainer $c) {
return Helper::isIncomingServer2serverShareEnabled();
});
- $container->registerService('ExternalManager', function(SimpleContainer $c) {
+ $container->registerService('ExternalManager', function(SimpleContainer $c) use ($server){
return new \OCA\Files_Sharing\External\Manager(
- \OC::$server->getDatabaseConnection(),
+ $server->getDatabaseConnection(),
\OC\Files\Filesystem::getMountManager(),
\OC\Files\Filesystem::getLoader(),
- \OC::$server->getUserSession(),
- \OC::$server->getHTTPHelper()
+ $server->getUserSession(),
+ $server->getHTTPHelper()
);
});
/**
* Middleware
*/
- $container->registerService('SharingCheckMiddleware', function(SimpleContainer $c){
+ $container->registerService('SharingCheckMiddleware', function(SimpleContainer $c) use ($server){
return new SharingCheckMiddleware(
$c->query('AppName'),
- $c->query('ServerContainer')->getAppConfig(),
- $c->getCoreApi()
+ $server->getConfig(),
+ $server->getAppManager()
);
});
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 02ecf56fa09..cbd135028f1 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -8,7 +8,7 @@
*
*/
-/* global FileActions, Files */
+/* global FileActions, Files, FileList */
/* global dragOptions, folderDropOptions */
if (!OCA.Sharing) {
OCA.Sharing = {};
@@ -164,6 +164,11 @@ OCA.Sharing.PublicApp = {
// URL history handling
this.fileList.$el.on('changeDirectory', _.bind(this._onDirectoryChanged, this));
OC.Util.History.addOnPopStateHandler(_.bind(this._onUrlChanged, this));
+
+ $('#download').click(function (e) {
+ e.preventDefault();
+ OC.redirect(FileList.getDownloadUrl());
+ });
}
$(document).on('click', '#directLink', function () {
diff --git a/apps/files_sharing/l10n/af_ZA.js b/apps/files_sharing/l10n/af_ZA.js
index 4e05c598353..4a732284a8c 100644
--- a/apps/files_sharing/l10n/af_ZA.js
+++ b/apps/files_sharing/l10n/af_ZA.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Kanseleer",
+ "Share" : "Deel",
"Password" : "Wagwoord"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/af_ZA.json b/apps/files_sharing/l10n/af_ZA.json
index 1e959e1544a..9ee5e104930 100644
--- a/apps/files_sharing/l10n/af_ZA.json
+++ b/apps/files_sharing/l10n/af_ZA.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Kanseleer",
+ "Share" : "Deel",
"Password" : "Wagwoord"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ar.js b/apps/files_sharing/l10n/ar.js
index de2b179847a..88b13872ef0 100644
--- a/apps/files_sharing/l10n/ar.js
+++ b/apps/files_sharing/l10n/ar.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "إلغاء",
+ "Share" : "شارك",
"Shared by" : "تم مشاركتها بواسطة",
"This share is password-protected" : "هذه المشاركة محمية بكلمة مرور",
"The password is wrong. Try again." : "كلمة المرور خاطئة. حاول مرة أخرى",
diff --git a/apps/files_sharing/l10n/ar.json b/apps/files_sharing/l10n/ar.json
index 890035152a2..bfcd3376317 100644
--- a/apps/files_sharing/l10n/ar.json
+++ b/apps/files_sharing/l10n/ar.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "إلغاء",
+ "Share" : "شارك",
"Shared by" : "تم مشاركتها بواسطة",
"This share is password-protected" : "هذه المشاركة محمية بكلمة مرور",
"The password is wrong. Try again." : "كلمة المرور خاطئة. حاول مرة أخرى",
diff --git a/apps/files_sharing/l10n/ast.js b/apps/files_sharing/l10n/ast.js
index 5c935410b6f..95349a45349 100644
--- a/apps/files_sharing/l10n/ast.js
+++ b/apps/files_sharing/l10n/ast.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Cancel" : "Encaboxar",
"Add remote share" : "Amestar compartición remota",
"Invalid ownCloud url" : "Url ownCloud inválida",
+ "Share" : "Compartir",
"Shared by" : "Compartíos por",
"This share is password-protected" : "Esta compartición tien contraseña protexida",
"The password is wrong. Try again." : "La contraseña ye incorreuta. Inténtalo otra vegada.",
diff --git a/apps/files_sharing/l10n/ast.json b/apps/files_sharing/l10n/ast.json
index d776a4fefba..e5fe0ee0c5d 100644
--- a/apps/files_sharing/l10n/ast.json
+++ b/apps/files_sharing/l10n/ast.json
@@ -12,6 +12,7 @@
"Cancel" : "Encaboxar",
"Add remote share" : "Amestar compartición remota",
"Invalid ownCloud url" : "Url ownCloud inválida",
+ "Share" : "Compartir",
"Shared by" : "Compartíos por",
"This share is password-protected" : "Esta compartición tien contraseña protexida",
"The password is wrong. Try again." : "La contraseña ye incorreuta. Inténtalo otra vegada.",
diff --git a/apps/files_sharing/l10n/az.js b/apps/files_sharing/l10n/az.js
index 223fbfdef59..aa4ec130ae7 100644
--- a/apps/files_sharing/l10n/az.js
+++ b/apps/files_sharing/l10n/az.js
@@ -11,6 +11,7 @@ OC.L10N.register(
"Cancel" : "Dayandır",
"Add remote share" : "Uzaq yayımlanmanı əlavə et",
"Invalid ownCloud url" : "Yalnış ownCloud url-i",
+ "Share" : "Yayımla",
"Shared by" : "Tərəfindən yayımlanıb",
"Password" : "Şifrə",
"Name" : "Ad",
diff --git a/apps/files_sharing/l10n/az.json b/apps/files_sharing/l10n/az.json
index 3bd23948fd6..c27f6426525 100644
--- a/apps/files_sharing/l10n/az.json
+++ b/apps/files_sharing/l10n/az.json
@@ -9,6 +9,7 @@
"Cancel" : "Dayandır",
"Add remote share" : "Uzaq yayımlanmanı əlavə et",
"Invalid ownCloud url" : "Yalnış ownCloud url-i",
+ "Share" : "Yayımla",
"Shared by" : "Tərəfindən yayımlanıb",
"Password" : "Şifrə",
"Name" : "Ad",
diff --git a/apps/files_sharing/l10n/bg_BG.js b/apps/files_sharing/l10n/bg_BG.js
index 6da77164ddc..4681d5ed710 100644
--- a/apps/files_sharing/l10n/bg_BG.js
+++ b/apps/files_sharing/l10n/bg_BG.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Cancel" : "Отказ",
"Add remote share" : "Добави прикачена папка",
"Invalid ownCloud url" : "Невалиден ownCloud интернет адрес.",
+ "Share" : "Сподели",
"Shared by" : "Споделено от",
"This share is password-protected" : "Тази зона е защитена с парола.",
"The password is wrong. Try again." : "Грешна парола. Опитай отново.",
diff --git a/apps/files_sharing/l10n/bg_BG.json b/apps/files_sharing/l10n/bg_BG.json
index f151698099b..99ccd828e4a 100644
--- a/apps/files_sharing/l10n/bg_BG.json
+++ b/apps/files_sharing/l10n/bg_BG.json
@@ -12,6 +12,7 @@
"Cancel" : "Отказ",
"Add remote share" : "Добави прикачена папка",
"Invalid ownCloud url" : "Невалиден ownCloud интернет адрес.",
+ "Share" : "Сподели",
"Shared by" : "Споделено от",
"This share is password-protected" : "Тази зона е защитена с парола.",
"The password is wrong. Try again." : "Грешна парола. Опитай отново.",
diff --git a/apps/files_sharing/l10n/bn_BD.js b/apps/files_sharing/l10n/bn_BD.js
index f297d1f7b18..64d27cb8857 100644
--- a/apps/files_sharing/l10n/bn_BD.js
+++ b/apps/files_sharing/l10n/bn_BD.js
@@ -9,6 +9,7 @@ OC.L10N.register(
"Remote share" : "দুরবর্তী ভাগাভাগি",
"Cancel" : "বাতিল",
"Invalid ownCloud url" : "অবৈধ ওউনক্লাউড url",
+ "Share" : "ভাগাভাগি কর",
"Shared by" : "যাদের মাঝে ভাগাভাগি করা হয়েছে",
"This share is password-protected" : "এই শেয়ারটি কূটশব্দদ্বারা সুরক্ষিত",
"The password is wrong. Try again." : "কুটশব্দটি ভুল। আবার চেষ্টা করুন।",
diff --git a/apps/files_sharing/l10n/bn_BD.json b/apps/files_sharing/l10n/bn_BD.json
index cff7925505c..f1d67cfd881 100644
--- a/apps/files_sharing/l10n/bn_BD.json
+++ b/apps/files_sharing/l10n/bn_BD.json
@@ -7,6 +7,7 @@
"Remote share" : "দুরবর্তী ভাগাভাগি",
"Cancel" : "বাতিল",
"Invalid ownCloud url" : "অবৈধ ওউনক্লাউড url",
+ "Share" : "ভাগাভাগি কর",
"Shared by" : "যাদের মাঝে ভাগাভাগি করা হয়েছে",
"This share is password-protected" : "এই শেয়ারটি কূটশব্দদ্বারা সুরক্ষিত",
"The password is wrong. Try again." : "কুটশব্দটি ভুল। আবার চেষ্টা করুন।",
diff --git a/apps/files_sharing/l10n/bn_IN.js b/apps/files_sharing/l10n/bn_IN.js
index 61694c85575..34d657b12eb 100644
--- a/apps/files_sharing/l10n/bn_IN.js
+++ b/apps/files_sharing/l10n/bn_IN.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "বাতিল করা",
+ "Share" : "শেয়ার",
"Name" : "নাম",
"Download" : "ডাউনলোড করুন"
},
diff --git a/apps/files_sharing/l10n/bn_IN.json b/apps/files_sharing/l10n/bn_IN.json
index 344c7677c19..8879de61c23 100644
--- a/apps/files_sharing/l10n/bn_IN.json
+++ b/apps/files_sharing/l10n/bn_IN.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "বাতিল করা",
+ "Share" : "শেয়ার",
"Name" : "নাম",
"Download" : "ডাউনলোড করুন"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_sharing/l10n/bs.js b/apps/files_sharing/l10n/bs.js
index 9ff10d77a5b..1a0e62a930b 100644
--- a/apps/files_sharing/l10n/bs.js
+++ b/apps/files_sharing/l10n/bs.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Odustani",
+ "Share" : "Dijeli",
"Shared by" : "Dijeli",
"Password" : "Lozinka",
"Name" : "Ime",
diff --git a/apps/files_sharing/l10n/bs.json b/apps/files_sharing/l10n/bs.json
index c2bfb948e8e..ea6c7082e2c 100644
--- a/apps/files_sharing/l10n/bs.json
+++ b/apps/files_sharing/l10n/bs.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Odustani",
+ "Share" : "Dijeli",
"Shared by" : "Dijeli",
"Password" : "Lozinka",
"Name" : "Ime",
diff --git a/apps/files_sharing/l10n/ca.js b/apps/files_sharing/l10n/ca.js
index e65956d5f56..08affe3a280 100644
--- a/apps/files_sharing/l10n/ca.js
+++ b/apps/files_sharing/l10n/ca.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Cancel" : "Cancel·la",
"Add remote share" : "Afegeix compartició remota",
"Invalid ownCloud url" : "La url d'ownCloud no és vàlida",
+ "Share" : "Comparteix",
"Shared by" : "Compartit per",
"This share is password-protected" : "Aquest compartit està protegit amb contrasenya",
"The password is wrong. Try again." : "la contrasenya és incorrecta. Intenteu-ho de nou.",
diff --git a/apps/files_sharing/l10n/ca.json b/apps/files_sharing/l10n/ca.json
index 69e766582c8..feed7ab13b2 100644
--- a/apps/files_sharing/l10n/ca.json
+++ b/apps/files_sharing/l10n/ca.json
@@ -11,6 +11,7 @@
"Cancel" : "Cancel·la",
"Add remote share" : "Afegeix compartició remota",
"Invalid ownCloud url" : "La url d'ownCloud no és vàlida",
+ "Share" : "Comparteix",
"Shared by" : "Compartit per",
"This share is password-protected" : "Aquest compartit està protegit amb contrasenya",
"The password is wrong. Try again." : "la contrasenya és incorrecta. Intenteu-ho de nou.",
diff --git a/apps/files_sharing/l10n/cs_CZ.js b/apps/files_sharing/l10n/cs_CZ.js
index ebe683ff89f..c401a265a67 100644
--- a/apps/files_sharing/l10n/cs_CZ.js
+++ b/apps/files_sharing/l10n/cs_CZ.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Přidat vzdálené úložiště",
"No ownCloud installation (7 or higher) found at {remote}" : "Nebyla nalezena instalace ownCloud (7 nebo vyšší) na {remote}",
"Invalid ownCloud url" : "Neplatná ownCloud url",
+ "Share" : "Sdílet",
"Shared by" : "Sdílí",
"A file or folder was shared from <strong>another server</strong>" : "Soubor nebo složka byla nasdílena z <strong>jiného serveru</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Byl <strong>stažen</strong> veřejně sdílený soubor nebo adresář",
diff --git a/apps/files_sharing/l10n/cs_CZ.json b/apps/files_sharing/l10n/cs_CZ.json
index 4b3d934132a..2cefff1ebb7 100644
--- a/apps/files_sharing/l10n/cs_CZ.json
+++ b/apps/files_sharing/l10n/cs_CZ.json
@@ -19,6 +19,7 @@
"Add remote share" : "Přidat vzdálené úložiště",
"No ownCloud installation (7 or higher) found at {remote}" : "Nebyla nalezena instalace ownCloud (7 nebo vyšší) na {remote}",
"Invalid ownCloud url" : "Neplatná ownCloud url",
+ "Share" : "Sdílet",
"Shared by" : "Sdílí",
"A file or folder was shared from <strong>another server</strong>" : "Soubor nebo složka byla nasdílena z <strong>jiného serveru</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Byl <strong>stažen</strong> veřejně sdílený soubor nebo adresář",
diff --git a/apps/files_sharing/l10n/cy_GB.js b/apps/files_sharing/l10n/cy_GB.js
index 1a8addf1729..015052cbae6 100644
--- a/apps/files_sharing/l10n/cy_GB.js
+++ b/apps/files_sharing/l10n/cy_GB.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Diddymu",
+ "Share" : "Rhannu",
"Shared by" : "Rhannwyd gan",
"Password" : "Cyfrinair",
"Name" : "Enw",
diff --git a/apps/files_sharing/l10n/cy_GB.json b/apps/files_sharing/l10n/cy_GB.json
index 9eebc50be7d..dad13499601 100644
--- a/apps/files_sharing/l10n/cy_GB.json
+++ b/apps/files_sharing/l10n/cy_GB.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Diddymu",
+ "Share" : "Rhannu",
"Shared by" : "Rhannwyd gan",
"Password" : "Cyfrinair",
"Name" : "Enw",
diff --git a/apps/files_sharing/l10n/da.js b/apps/files_sharing/l10n/da.js
index 2a5ba4f6a6b..34271d0de14 100644
--- a/apps/files_sharing/l10n/da.js
+++ b/apps/files_sharing/l10n/da.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Tilføj ekstern deling",
"No ownCloud installation (7 or higher) found at {remote}" : "Der blev ikke nogen ownCloud-installation (7 eller højere) på {remote}",
"Invalid ownCloud url" : "Ugyldig ownCloud-URL",
+ "Share" : "Del",
"Shared by" : "Delt af",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe blev delt fra <strong>en anden server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "En offentligt delt fil eller mappe blev <strong>downloadet</strong>",
diff --git a/apps/files_sharing/l10n/da.json b/apps/files_sharing/l10n/da.json
index 52ca012bbc4..762a6ade989 100644
--- a/apps/files_sharing/l10n/da.json
+++ b/apps/files_sharing/l10n/da.json
@@ -19,6 +19,7 @@
"Add remote share" : "Tilføj ekstern deling",
"No ownCloud installation (7 or higher) found at {remote}" : "Der blev ikke nogen ownCloud-installation (7 eller højere) på {remote}",
"Invalid ownCloud url" : "Ugyldig ownCloud-URL",
+ "Share" : "Del",
"Shared by" : "Delt af",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe blev delt fra <strong>en anden server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "En offentligt delt fil eller mappe blev <strong>downloadet</strong>",
diff --git a/apps/files_sharing/l10n/de.js b/apps/files_sharing/l10n/de.js
index 88ccb754456..96510fbc3f5 100644
--- a/apps/files_sharing/l10n/de.js
+++ b/apps/files_sharing/l10n/de.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Entfernte Freigabe hinzufügen",
"No ownCloud installation (7 or higher) found at {remote}" : "Keine OwnCloud-Installation (7 oder höher) auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-URL",
+ "Share" : "Share",
"Shared by" : "Geteilt von ",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt",
"A public shared file or folder was <strong>downloaded</strong>" : "Eine öffentlich geteilte Datei oder Ordner wurde <strong>heruntergeladen</strong>",
diff --git a/apps/files_sharing/l10n/de.json b/apps/files_sharing/l10n/de.json
index 11557269547..58ba73427d0 100644
--- a/apps/files_sharing/l10n/de.json
+++ b/apps/files_sharing/l10n/de.json
@@ -19,6 +19,7 @@
"Add remote share" : "Entfernte Freigabe hinzufügen",
"No ownCloud installation (7 or higher) found at {remote}" : "Keine OwnCloud-Installation (7 oder höher) auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-URL",
+ "Share" : "Share",
"Shared by" : "Geteilt von ",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder ein Ordner wurde von <strong>einem anderen Server</strong> geteilt",
"A public shared file or folder was <strong>downloaded</strong>" : "Eine öffentlich geteilte Datei oder Ordner wurde <strong>heruntergeladen</strong>",
diff --git a/apps/files_sharing/l10n/de_AT.js b/apps/files_sharing/l10n/de_AT.js
index 50b8f406f80..dbef4e1e56a 100644
--- a/apps/files_sharing/l10n/de_AT.js
+++ b/apps/files_sharing/l10n/de_AT.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Abbrechen",
+ "Share" : "Freigeben",
"Password" : "Passwort",
"Download" : "Herunterladen"
},
diff --git a/apps/files_sharing/l10n/de_AT.json b/apps/files_sharing/l10n/de_AT.json
index 4f05c28750b..ccb46020bb5 100644
--- a/apps/files_sharing/l10n/de_AT.json
+++ b/apps/files_sharing/l10n/de_AT.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Abbrechen",
+ "Share" : "Freigeben",
"Password" : "Passwort",
"Download" : "Herunterladen"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_sharing/l10n/de_DE.js b/apps/files_sharing/l10n/de_DE.js
index baf7b182c47..197e41f49e7 100644
--- a/apps/files_sharing/l10n/de_DE.js
+++ b/apps/files_sharing/l10n/de_DE.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Entfernte Freigabe hinzufügen",
"No ownCloud installation (7 or higher) found at {remote}" : "Keine OwnCloud-Installation (7 oder höher) auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-Adresse",
+ "Share" : "Teilen",
"Shared by" : "Geteilt von",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder Ordner wurde von <strong>einem anderen Server</strong> geteilt",
"A public shared file or folder was <strong>downloaded</strong>" : "Eine öffentlich geteilte Datei oder Ordner wurde <strong>heruntergeladen</strong>",
diff --git a/apps/files_sharing/l10n/de_DE.json b/apps/files_sharing/l10n/de_DE.json
index 78859f87706..f812da438a1 100644
--- a/apps/files_sharing/l10n/de_DE.json
+++ b/apps/files_sharing/l10n/de_DE.json
@@ -19,6 +19,7 @@
"Add remote share" : "Entfernte Freigabe hinzufügen",
"No ownCloud installation (7 or higher) found at {remote}" : "Keine OwnCloud-Installation (7 oder höher) auf {remote} gefunden",
"Invalid ownCloud url" : "Ungültige OwnCloud-Adresse",
+ "Share" : "Teilen",
"Shared by" : "Geteilt von",
"A file or folder was shared from <strong>another server</strong>" : "Eine Datei oder Ordner wurde von <strong>einem anderen Server</strong> geteilt",
"A public shared file or folder was <strong>downloaded</strong>" : "Eine öffentlich geteilte Datei oder Ordner wurde <strong>heruntergeladen</strong>",
diff --git a/apps/files_sharing/l10n/el.js b/apps/files_sharing/l10n/el.js
index a11b1f7a00f..5a22c305921 100644
--- a/apps/files_sharing/l10n/el.js
+++ b/apps/files_sharing/l10n/el.js
@@ -16,6 +16,7 @@ OC.L10N.register(
"Cancel" : "Άκυρο",
"Add remote share" : "Προσθήκη απομακρυσμένου κοινόχρηστου φακέλου",
"Invalid ownCloud url" : "Άκυρη url ownCloud ",
+ "Share" : "Διαμοιράστε",
"Shared by" : "Διαμοιράστηκε από",
"This share is password-protected" : "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό",
"The password is wrong. Try again." : "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.",
diff --git a/apps/files_sharing/l10n/el.json b/apps/files_sharing/l10n/el.json
index 70b6d1d5ce7..606cd3df636 100644
--- a/apps/files_sharing/l10n/el.json
+++ b/apps/files_sharing/l10n/el.json
@@ -14,6 +14,7 @@
"Cancel" : "Άκυρο",
"Add remote share" : "Προσθήκη απομακρυσμένου κοινόχρηστου φακέλου",
"Invalid ownCloud url" : "Άκυρη url ownCloud ",
+ "Share" : "Διαμοιράστε",
"Shared by" : "Διαμοιράστηκε από",
"This share is password-protected" : "Αυτός ο κοινόχρηστος φάκελος προστατεύεται με κωδικό",
"The password is wrong. Try again." : "Εσφαλμένος κωδικός πρόσβασης. Προσπαθήστε ξανά.",
diff --git a/apps/files_sharing/l10n/en_GB.js b/apps/files_sharing/l10n/en_GB.js
index 78bf0940a54..8edab575ffa 100644
--- a/apps/files_sharing/l10n/en_GB.js
+++ b/apps/files_sharing/l10n/en_GB.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Add remote share",
"No ownCloud installation (7 or higher) found at {remote}" : "No ownCloud installation (7 or higher) found at {remote}",
"Invalid ownCloud url" : "Invalid ownCloud URL",
+ "Share" : "Share",
"Shared by" : "Shared by",
"A file or folder was shared from <strong>another server</strong>" : "A file or folder was shared from <strong>another server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "A public shared file or folder was <strong>downloaded</strong>",
diff --git a/apps/files_sharing/l10n/en_GB.json b/apps/files_sharing/l10n/en_GB.json
index 25a52e1e13b..cefbd0c52f7 100644
--- a/apps/files_sharing/l10n/en_GB.json
+++ b/apps/files_sharing/l10n/en_GB.json
@@ -19,6 +19,7 @@
"Add remote share" : "Add remote share",
"No ownCloud installation (7 or higher) found at {remote}" : "No ownCloud installation (7 or higher) found at {remote}",
"Invalid ownCloud url" : "Invalid ownCloud URL",
+ "Share" : "Share",
"Shared by" : "Shared by",
"A file or folder was shared from <strong>another server</strong>" : "A file or folder was shared from <strong>another server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "A public shared file or folder was <strong>downloaded</strong>",
diff --git a/apps/files_sharing/l10n/eo.js b/apps/files_sharing/l10n/eo.js
index 1053816107c..3f5d36b4003 100644
--- a/apps/files_sharing/l10n/eo.js
+++ b/apps/files_sharing/l10n/eo.js
@@ -7,6 +7,7 @@ OC.L10N.register(
"Shared by link" : "Kunhavata per ligilo",
"Cancel" : "Nuligi",
"Invalid ownCloud url" : "Nevalidas URL de ownCloud",
+ "Share" : "Kunhavigi",
"Shared by" : "Kunhavigita de",
"This share is password-protected" : "Ĉi tiu kunhavigo estas protektata per pasvorto",
"The password is wrong. Try again." : "La pasvorto malĝustas. Provu denove.",
diff --git a/apps/files_sharing/l10n/eo.json b/apps/files_sharing/l10n/eo.json
index bfe17bdb896..18c68b4d8c8 100644
--- a/apps/files_sharing/l10n/eo.json
+++ b/apps/files_sharing/l10n/eo.json
@@ -5,6 +5,7 @@
"Shared by link" : "Kunhavata per ligilo",
"Cancel" : "Nuligi",
"Invalid ownCloud url" : "Nevalidas URL de ownCloud",
+ "Share" : "Kunhavigi",
"Shared by" : "Kunhavigita de",
"This share is password-protected" : "Ĉi tiu kunhavigo estas protektata per pasvorto",
"The password is wrong. Try again." : "La pasvorto malĝustas. Provu denove.",
diff --git a/apps/files_sharing/l10n/es.js b/apps/files_sharing/l10n/es.js
index 694a4198a4b..62276aee8ed 100644
--- a/apps/files_sharing/l10n/es.js
+++ b/apps/files_sharing/l10n/es.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Añadir recurso compartido remoto",
"No ownCloud installation (7 or higher) found at {remote}" : "No se encontró una instalación de ownCloud (7 o mayor) en {remote}",
"Invalid ownCloud url" : "URL de ownCloud inválido",
+ "Share" : "Compartir",
"Shared by" : "Compartido por",
"A file or folder was shared from <strong>another server</strong>" : "Se ha compartido un archivo o carpeta desde <strong>otro servidor</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Ha sido <strong>descargado</strong> un archivo (o carpeta) compartido públicamente",
diff --git a/apps/files_sharing/l10n/es.json b/apps/files_sharing/l10n/es.json
index ae5c7a87cb2..bebe5757af9 100644
--- a/apps/files_sharing/l10n/es.json
+++ b/apps/files_sharing/l10n/es.json
@@ -19,6 +19,7 @@
"Add remote share" : "Añadir recurso compartido remoto",
"No ownCloud installation (7 or higher) found at {remote}" : "No se encontró una instalación de ownCloud (7 o mayor) en {remote}",
"Invalid ownCloud url" : "URL de ownCloud inválido",
+ "Share" : "Compartir",
"Shared by" : "Compartido por",
"A file or folder was shared from <strong>another server</strong>" : "Se ha compartido un archivo o carpeta desde <strong>otro servidor</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Ha sido <strong>descargado</strong> un archivo (o carpeta) compartido públicamente",
diff --git a/apps/files_sharing/l10n/es_AR.js b/apps/files_sharing/l10n/es_AR.js
index b90c8293dfe..61fc3f6e774 100644
--- a/apps/files_sharing/l10n/es_AR.js
+++ b/apps/files_sharing/l10n/es_AR.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Cancelar",
+ "Share" : "Compartir",
"Shared by" : "Compartido por",
"This share is password-protected" : "Esto está protegido por contraseña",
"The password is wrong. Try again." : "La contraseña no es correcta. Probá de nuevo.",
diff --git a/apps/files_sharing/l10n/es_AR.json b/apps/files_sharing/l10n/es_AR.json
index 9e11b761eda..10c553ea58b 100644
--- a/apps/files_sharing/l10n/es_AR.json
+++ b/apps/files_sharing/l10n/es_AR.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Cancelar",
+ "Share" : "Compartir",
"Shared by" : "Compartido por",
"This share is password-protected" : "Esto está protegido por contraseña",
"The password is wrong. Try again." : "La contraseña no es correcta. Probá de nuevo.",
diff --git a/apps/files_sharing/l10n/es_CL.js b/apps/files_sharing/l10n/es_CL.js
index 33d53eb99e4..567895ba184 100644
--- a/apps/files_sharing/l10n/es_CL.js
+++ b/apps/files_sharing/l10n/es_CL.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Cancelar",
+ "Share" : "Compartir",
"Password" : "Clave",
"Download" : "Descargar"
},
diff --git a/apps/files_sharing/l10n/es_CL.json b/apps/files_sharing/l10n/es_CL.json
index a77aecd0347..42b0bb82700 100644
--- a/apps/files_sharing/l10n/es_CL.json
+++ b/apps/files_sharing/l10n/es_CL.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Cancelar",
+ "Share" : "Compartir",
"Password" : "Clave",
"Download" : "Descargar"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_sharing/l10n/es_MX.js b/apps/files_sharing/l10n/es_MX.js
index 7d608b06e45..adf4b823efd 100644
--- a/apps/files_sharing/l10n/es_MX.js
+++ b/apps/files_sharing/l10n/es_MX.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Cancelar",
+ "Share" : "Compartir",
"Shared by" : "Compartido por",
"This share is password-protected" : "Este elemento compartido esta protegido por contraseña",
"The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.",
diff --git a/apps/files_sharing/l10n/es_MX.json b/apps/files_sharing/l10n/es_MX.json
index 7b0cff90181..17f05601521 100644
--- a/apps/files_sharing/l10n/es_MX.json
+++ b/apps/files_sharing/l10n/es_MX.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Cancelar",
+ "Share" : "Compartir",
"Shared by" : "Compartido por",
"This share is password-protected" : "Este elemento compartido esta protegido por contraseña",
"The password is wrong. Try again." : "La contraseña introducida es errónea. Inténtelo de nuevo.",
diff --git a/apps/files_sharing/l10n/et_EE.js b/apps/files_sharing/l10n/et_EE.js
index 7200a5ca3c1..af461bdb185 100644
--- a/apps/files_sharing/l10n/et_EE.js
+++ b/apps/files_sharing/l10n/et_EE.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Cancel" : "Loobu",
"Add remote share" : "Lisa kaugjagamine",
"Invalid ownCloud url" : "Vigane ownCloud url",
+ "Share" : "Jaga",
"Shared by" : "Jagas",
"This share is password-protected" : "See jagamine on parooliga kaitstud",
"The password is wrong. Try again." : "Parool on vale. Proovi uuesti.",
diff --git a/apps/files_sharing/l10n/et_EE.json b/apps/files_sharing/l10n/et_EE.json
index e35ea6427a7..4cccbccd478 100644
--- a/apps/files_sharing/l10n/et_EE.json
+++ b/apps/files_sharing/l10n/et_EE.json
@@ -12,6 +12,7 @@
"Cancel" : "Loobu",
"Add remote share" : "Lisa kaugjagamine",
"Invalid ownCloud url" : "Vigane ownCloud url",
+ "Share" : "Jaga",
"Shared by" : "Jagas",
"This share is password-protected" : "See jagamine on parooliga kaitstud",
"The password is wrong. Try again." : "Parool on vale. Proovi uuesti.",
diff --git a/apps/files_sharing/l10n/eu.js b/apps/files_sharing/l10n/eu.js
index ff254aa50c4..e136a736521 100644
--- a/apps/files_sharing/l10n/eu.js
+++ b/apps/files_sharing/l10n/eu.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Cancel" : "Ezeztatu",
"Add remote share" : "Gehitu urrutiko parte hartzea",
"Invalid ownCloud url" : "ownCloud url baliogabea",
+ "Share" : "Partekatu",
"Shared by" : "Honek elkarbanatuta",
"This share is password-protected" : "Elkarbanatutako hau pasahitzarekin babestuta dago",
"The password is wrong. Try again." : "Pasahitza ez da egokia. Saiatu berriro.",
diff --git a/apps/files_sharing/l10n/eu.json b/apps/files_sharing/l10n/eu.json
index 62955cafaf3..7355146ee9c 100644
--- a/apps/files_sharing/l10n/eu.json
+++ b/apps/files_sharing/l10n/eu.json
@@ -12,6 +12,7 @@
"Cancel" : "Ezeztatu",
"Add remote share" : "Gehitu urrutiko parte hartzea",
"Invalid ownCloud url" : "ownCloud url baliogabea",
+ "Share" : "Partekatu",
"Shared by" : "Honek elkarbanatuta",
"This share is password-protected" : "Elkarbanatutako hau pasahitzarekin babestuta dago",
"The password is wrong. Try again." : "Pasahitza ez da egokia. Saiatu berriro.",
diff --git a/apps/files_sharing/l10n/fa.js b/apps/files_sharing/l10n/fa.js
index 86dc4d5468d..91232ffd638 100644
--- a/apps/files_sharing/l10n/fa.js
+++ b/apps/files_sharing/l10n/fa.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Cancel" : "منصرف شدن",
"Add remote share" : "افزودن اشتراک از راه دور",
"Invalid ownCloud url" : "آدرس نمونه ownCloud غیر معتبر است",
+ "Share" : "اشتراک‌گذاری",
"Shared by" : "اشتراک گذاشته شده به وسیله",
"This share is password-protected" : "این اشتراک توسط رمز عبور محافظت می شود",
"The password is wrong. Try again." : "رمزعبور اشتباه می باشد. دوباره امتحان کنید.",
diff --git a/apps/files_sharing/l10n/fa.json b/apps/files_sharing/l10n/fa.json
index 921c9a4bb28..e63d08c2edb 100644
--- a/apps/files_sharing/l10n/fa.json
+++ b/apps/files_sharing/l10n/fa.json
@@ -11,6 +11,7 @@
"Cancel" : "منصرف شدن",
"Add remote share" : "افزودن اشتراک از راه دور",
"Invalid ownCloud url" : "آدرس نمونه ownCloud غیر معتبر است",
+ "Share" : "اشتراک‌گذاری",
"Shared by" : "اشتراک گذاشته شده به وسیله",
"This share is password-protected" : "این اشتراک توسط رمز عبور محافظت می شود",
"The password is wrong. Try again." : "رمزعبور اشتباه می باشد. دوباره امتحان کنید.",
diff --git a/apps/files_sharing/l10n/fr.js b/apps/files_sharing/l10n/fr.js
index f3b8ab9fe5b..a57bc25972d 100644
--- a/apps/files_sharing/l10n/fr.js
+++ b/apps/files_sharing/l10n/fr.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Ajouter un partage distant",
"No ownCloud installation (7 or higher) found at {remote}" : "Aucune installation ownCloud (7 ou supérieur) trouvée sur {remote}",
"Invalid ownCloud url" : "URL ownCloud non valide",
+ "Share" : "Partager",
"Shared by" : "Partagé par",
"A file or folder was shared from <strong>another server</strong>" : "Un fichier ou un répertoire a été partagé depuis <strong>un autre serveur</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Un fichier ou un répertoire partagé a été <strong>téléchargé</strong>",
diff --git a/apps/files_sharing/l10n/fr.json b/apps/files_sharing/l10n/fr.json
index 1ea0e05ed1e..48a9f9d199e 100644
--- a/apps/files_sharing/l10n/fr.json
+++ b/apps/files_sharing/l10n/fr.json
@@ -19,6 +19,7 @@
"Add remote share" : "Ajouter un partage distant",
"No ownCloud installation (7 or higher) found at {remote}" : "Aucune installation ownCloud (7 ou supérieur) trouvée sur {remote}",
"Invalid ownCloud url" : "URL ownCloud non valide",
+ "Share" : "Partager",
"Shared by" : "Partagé par",
"A file or folder was shared from <strong>another server</strong>" : "Un fichier ou un répertoire a été partagé depuis <strong>un autre serveur</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Un fichier ou un répertoire partagé a été <strong>téléchargé</strong>",
diff --git a/apps/files_sharing/l10n/gl.js b/apps/files_sharing/l10n/gl.js
index 642d2776135..a04775b368a 100644
--- a/apps/files_sharing/l10n/gl.js
+++ b/apps/files_sharing/l10n/gl.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Engadir unha compartición remota",
"No ownCloud installation (7 or higher) found at {remote}" : "Non se atopa unha instalación de ownCloud (7 ou superior) en {remote}",
"Invalid ownCloud url" : "URL incorrecta do ownCloud",
+ "Share" : "Compartir",
"Shared by" : "Compartido por",
"A file or folder was shared from <strong>another server</strong>" : "Compartiuse un ficheiro ou cartafol desde <strong>outro servidor</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Foi <strong>descargado</strong> un ficheiro ou cartafol público",
diff --git a/apps/files_sharing/l10n/gl.json b/apps/files_sharing/l10n/gl.json
index 6bbe011871b..f08296ee74d 100644
--- a/apps/files_sharing/l10n/gl.json
+++ b/apps/files_sharing/l10n/gl.json
@@ -19,6 +19,7 @@
"Add remote share" : "Engadir unha compartición remota",
"No ownCloud installation (7 or higher) found at {remote}" : "Non se atopa unha instalación de ownCloud (7 ou superior) en {remote}",
"Invalid ownCloud url" : "URL incorrecta do ownCloud",
+ "Share" : "Compartir",
"Shared by" : "Compartido por",
"A file or folder was shared from <strong>another server</strong>" : "Compartiuse un ficheiro ou cartafol desde <strong>outro servidor</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Foi <strong>descargado</strong> un ficheiro ou cartafol público",
diff --git a/apps/files_sharing/l10n/he.js b/apps/files_sharing/l10n/he.js
index 4e9ce972240..06562c4d967 100644
--- a/apps/files_sharing/l10n/he.js
+++ b/apps/files_sharing/l10n/he.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "ביטול",
+ "Share" : "שיתוף",
"Shared by" : "שותף על־ידי",
"Password" : "סיסמא",
"Name" : "שם",
diff --git a/apps/files_sharing/l10n/he.json b/apps/files_sharing/l10n/he.json
index fe209ca3ecd..4a7c6097dd5 100644
--- a/apps/files_sharing/l10n/he.json
+++ b/apps/files_sharing/l10n/he.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "ביטול",
+ "Share" : "שיתוף",
"Shared by" : "שותף על־ידי",
"Password" : "סיסמא",
"Name" : "שם",
diff --git a/apps/files_sharing/l10n/hi.js b/apps/files_sharing/l10n/hi.js
index a9647c762d0..8a6c01ef435 100644
--- a/apps/files_sharing/l10n/hi.js
+++ b/apps/files_sharing/l10n/hi.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "रद्द करें ",
+ "Share" : "साझा करें",
"Shared by" : "द्वारा साझा",
"Password" : "पासवर्ड"
},
diff --git a/apps/files_sharing/l10n/hi.json b/apps/files_sharing/l10n/hi.json
index 5775830b621..6078a1ba37b 100644
--- a/apps/files_sharing/l10n/hi.json
+++ b/apps/files_sharing/l10n/hi.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "रद्द करें ",
+ "Share" : "साझा करें",
"Shared by" : "द्वारा साझा",
"Password" : "पासवर्ड"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_sharing/l10n/hr.js b/apps/files_sharing/l10n/hr.js
index e0f17faaa59..d1cb7bff9aa 100644
--- a/apps/files_sharing/l10n/hr.js
+++ b/apps/files_sharing/l10n/hr.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Cancel" : "Odustanite",
"Add remote share" : "Dodajte udaljeni zajednički resurs",
"Invalid ownCloud url" : "Neispravan ownCloud URL",
+ "Share" : "Podijelite resurs",
"Shared by" : "Podijeljeno od strane",
"This share is password-protected" : "Ovaj zajednički resurs je zaštićen lozinkom",
"The password is wrong. Try again." : "Pogrešna lozinka. Pokušajte ponovno.",
diff --git a/apps/files_sharing/l10n/hr.json b/apps/files_sharing/l10n/hr.json
index bad140eb242..9156d6ddf8a 100644
--- a/apps/files_sharing/l10n/hr.json
+++ b/apps/files_sharing/l10n/hr.json
@@ -11,6 +11,7 @@
"Cancel" : "Odustanite",
"Add remote share" : "Dodajte udaljeni zajednički resurs",
"Invalid ownCloud url" : "Neispravan ownCloud URL",
+ "Share" : "Podijelite resurs",
"Shared by" : "Podijeljeno od strane",
"This share is password-protected" : "Ovaj zajednički resurs je zaštićen lozinkom",
"The password is wrong. Try again." : "Pogrešna lozinka. Pokušajte ponovno.",
diff --git a/apps/files_sharing/l10n/hu_HU.js b/apps/files_sharing/l10n/hu_HU.js
index a48c6b71a05..69e218215b7 100644
--- a/apps/files_sharing/l10n/hu_HU.js
+++ b/apps/files_sharing/l10n/hu_HU.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Cancel" : "Mégsem",
"Add remote share" : "Távoli megosztás létrehozása",
"Invalid ownCloud url" : "Érvénytelen ownCloud webcím",
+ "Share" : "Megosztás",
"Shared by" : "Megosztotta Önnel",
"This share is password-protected" : "Ez egy jelszóval védett megosztás",
"The password is wrong. Try again." : "A megadott jelszó nem megfelelő. Próbálja újra!",
diff --git a/apps/files_sharing/l10n/hu_HU.json b/apps/files_sharing/l10n/hu_HU.json
index d700541ad28..fb8b6a36c70 100644
--- a/apps/files_sharing/l10n/hu_HU.json
+++ b/apps/files_sharing/l10n/hu_HU.json
@@ -12,6 +12,7 @@
"Cancel" : "Mégsem",
"Add remote share" : "Távoli megosztás létrehozása",
"Invalid ownCloud url" : "Érvénytelen ownCloud webcím",
+ "Share" : "Megosztás",
"Shared by" : "Megosztotta Önnel",
"This share is password-protected" : "Ez egy jelszóval védett megosztás",
"The password is wrong. Try again." : "A megadott jelszó nem megfelelő. Próbálja újra!",
diff --git a/apps/files_sharing/l10n/ia.js b/apps/files_sharing/l10n/ia.js
index c144fbd44f3..0d471561316 100644
--- a/apps/files_sharing/l10n/ia.js
+++ b/apps/files_sharing/l10n/ia.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Cancellar",
+ "Share" : "Compartir",
"Password" : "Contrasigno",
"Name" : "Nomine",
"Download" : "Discargar"
diff --git a/apps/files_sharing/l10n/ia.json b/apps/files_sharing/l10n/ia.json
index d6153f18230..5908b2a4d4d 100644
--- a/apps/files_sharing/l10n/ia.json
+++ b/apps/files_sharing/l10n/ia.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Cancellar",
+ "Share" : "Compartir",
"Password" : "Contrasigno",
"Name" : "Nomine",
"Download" : "Discargar"
diff --git a/apps/files_sharing/l10n/id.js b/apps/files_sharing/l10n/id.js
index 633195cc99f..6cb9f17628e 100644
--- a/apps/files_sharing/l10n/id.js
+++ b/apps/files_sharing/l10n/id.js
@@ -14,6 +14,7 @@ OC.L10N.register(
"Cancel" : "Batal",
"Add remote share" : "Tambah berbagi remote",
"Invalid ownCloud url" : "URL ownCloud tidak sah",
+ "Share" : "Bagikan",
"Shared by" : "Dibagikan oleh",
"This share is password-protected" : "Berbagi ini dilindungi sandi",
"The password is wrong. Try again." : "Sandi salah. Coba lagi",
diff --git a/apps/files_sharing/l10n/id.json b/apps/files_sharing/l10n/id.json
index 51a45a575c6..fee58639322 100644
--- a/apps/files_sharing/l10n/id.json
+++ b/apps/files_sharing/l10n/id.json
@@ -12,6 +12,7 @@
"Cancel" : "Batal",
"Add remote share" : "Tambah berbagi remote",
"Invalid ownCloud url" : "URL ownCloud tidak sah",
+ "Share" : "Bagikan",
"Shared by" : "Dibagikan oleh",
"This share is password-protected" : "Berbagi ini dilindungi sandi",
"The password is wrong. Try again." : "Sandi salah. Coba lagi",
diff --git a/apps/files_sharing/l10n/is.js b/apps/files_sharing/l10n/is.js
index ecce4e25d97..57e49f68ec4 100644
--- a/apps/files_sharing/l10n/is.js
+++ b/apps/files_sharing/l10n/is.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Hætta við",
+ "Share" : "Deila",
"Shared by" : "Deilt af",
"Password" : "Lykilorð",
"Name" : "Nafn",
diff --git a/apps/files_sharing/l10n/is.json b/apps/files_sharing/l10n/is.json
index 889f8a32398..f7094b9cbe8 100644
--- a/apps/files_sharing/l10n/is.json
+++ b/apps/files_sharing/l10n/is.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Hætta við",
+ "Share" : "Deila",
"Shared by" : "Deilt af",
"Password" : "Lykilorð",
"Name" : "Nafn",
diff --git a/apps/files_sharing/l10n/it.js b/apps/files_sharing/l10n/it.js
index 14ed429be85..9341dad30f8 100644
--- a/apps/files_sharing/l10n/it.js
+++ b/apps/files_sharing/l10n/it.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Aggiungi condivisione remota",
"No ownCloud installation (7 or higher) found at {remote}" : "Nessuna installazione di ownCloud (7 o superiore) trovata su {remote}",
"Invalid ownCloud url" : "URL di ownCloud non valido",
+ "Share" : "Condividi",
"Shared by" : "Condiviso da",
"A file or folder was shared from <strong>another server</strong>" : "Un file o una cartella è stato condiviso da <strong>un altro server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Un file condiviso pubblicamente o una cartella è stato <strong>scaricato</strong>",
diff --git a/apps/files_sharing/l10n/it.json b/apps/files_sharing/l10n/it.json
index f98994a0a4b..a1b8410bc9e 100644
--- a/apps/files_sharing/l10n/it.json
+++ b/apps/files_sharing/l10n/it.json
@@ -19,6 +19,7 @@
"Add remote share" : "Aggiungi condivisione remota",
"No ownCloud installation (7 or higher) found at {remote}" : "Nessuna installazione di ownCloud (7 o superiore) trovata su {remote}",
"Invalid ownCloud url" : "URL di ownCloud non valido",
+ "Share" : "Condividi",
"Shared by" : "Condiviso da",
"A file or folder was shared from <strong>another server</strong>" : "Un file o una cartella è stato condiviso da <strong>un altro server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Un file condiviso pubblicamente o una cartella è stato <strong>scaricato</strong>",
diff --git a/apps/files_sharing/l10n/ja.js b/apps/files_sharing/l10n/ja.js
index 1550e41e653..e808bfe5b50 100644
--- a/apps/files_sharing/l10n/ja.js
+++ b/apps/files_sharing/l10n/ja.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "リモート共有を追加",
"No ownCloud installation (7 or higher) found at {remote}" : "{remote} にはownCloud (7以上)がインストールされていません",
"Invalid ownCloud url" : "無効なownCloud URL です",
+ "Share" : "共有",
"Shared by" : "共有者:",
"A file or folder was shared from <strong>another server</strong>" : "ファイルまたはフォルダーは <strong>他のサーバー</strong>から共有されました",
"You received a new remote share from %s" : "%sからリモート共有のリクエストは\n届きました。",
diff --git a/apps/files_sharing/l10n/ja.json b/apps/files_sharing/l10n/ja.json
index 1194a758e30..54af3389dd3 100644
--- a/apps/files_sharing/l10n/ja.json
+++ b/apps/files_sharing/l10n/ja.json
@@ -19,6 +19,7 @@
"Add remote share" : "リモート共有を追加",
"No ownCloud installation (7 or higher) found at {remote}" : "{remote} にはownCloud (7以上)がインストールされていません",
"Invalid ownCloud url" : "無効なownCloud URL です",
+ "Share" : "共有",
"Shared by" : "共有者:",
"A file or folder was shared from <strong>another server</strong>" : "ファイルまたはフォルダーは <strong>他のサーバー</strong>から共有されました",
"You received a new remote share from %s" : "%sからリモート共有のリクエストは\n届きました。",
diff --git a/apps/files_sharing/l10n/ka_GE.js b/apps/files_sharing/l10n/ka_GE.js
index df36093b688..c4373ea9f46 100644
--- a/apps/files_sharing/l10n/ka_GE.js
+++ b/apps/files_sharing/l10n/ka_GE.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "უარყოფა",
+ "Share" : "გაზიარება",
"Shared by" : "აზიარებს",
"Password" : "პაროლი",
"Name" : "სახელი",
diff --git a/apps/files_sharing/l10n/ka_GE.json b/apps/files_sharing/l10n/ka_GE.json
index acebf7caa30..d052f45f096 100644
--- a/apps/files_sharing/l10n/ka_GE.json
+++ b/apps/files_sharing/l10n/ka_GE.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "უარყოფა",
+ "Share" : "გაზიარება",
"Shared by" : "აზიარებს",
"Password" : "პაროლი",
"Name" : "სახელი",
diff --git a/apps/files_sharing/l10n/km.js b/apps/files_sharing/l10n/km.js
index d98f1df047e..2b730ae146b 100644
--- a/apps/files_sharing/l10n/km.js
+++ b/apps/files_sharing/l10n/km.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "បោះបង់",
+ "Share" : "ចែក​រំលែក",
"Shared by" : "បាន​ចែក​រំលែក​ដោយ",
"This share is password-protected" : "ការ​ចែករំលែក​នេះ​ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យ​សម្ងាត់",
"The password is wrong. Try again." : "ពាក្យ​សម្ងាត់​ខុស​ហើយ។ ព្យាយាម​ម្ដង​ទៀត។",
diff --git a/apps/files_sharing/l10n/km.json b/apps/files_sharing/l10n/km.json
index 283ddcf871a..646f417f6d8 100644
--- a/apps/files_sharing/l10n/km.json
+++ b/apps/files_sharing/l10n/km.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "បោះបង់",
+ "Share" : "ចែក​រំលែក",
"Shared by" : "បាន​ចែក​រំលែក​ដោយ",
"This share is password-protected" : "ការ​ចែករំលែក​នេះ​ត្រូវ​បាន​ការពារ​ដោយ​ពាក្យ​សម្ងាត់",
"The password is wrong. Try again." : "ពាក្យ​សម្ងាត់​ខុស​ហើយ។ ព្យាយាម​ម្ដង​ទៀត។",
diff --git a/apps/files_sharing/l10n/kn.js b/apps/files_sharing/l10n/kn.js
index 61a3e58aa96..8ae732752a4 100644
--- a/apps/files_sharing/l10n/kn.js
+++ b/apps/files_sharing/l10n/kn.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "ರದ್ದು",
+ "Share" : "ಹಂಚಿಕೊಳ್ಳಿ",
"Password" : "ಗುಪ್ತ ಪದ",
"Name" : "ಹೆಸರು",
"Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ"
diff --git a/apps/files_sharing/l10n/kn.json b/apps/files_sharing/l10n/kn.json
index 1b16ed072cb..5f990849c9b 100644
--- a/apps/files_sharing/l10n/kn.json
+++ b/apps/files_sharing/l10n/kn.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "ರದ್ದು",
+ "Share" : "ಹಂಚಿಕೊಳ್ಳಿ",
"Password" : "ಗುಪ್ತ ಪದ",
"Name" : "ಹೆಸರು",
"Download" : "ಪ್ರತಿಯನ್ನು ಸ್ಥಳೀಯವಾಗಿ ಉಳಿಸಿಕೊಳ್ಳಿ"
diff --git a/apps/files_sharing/l10n/ko.js b/apps/files_sharing/l10n/ko.js
index 88fe10788c9..f53eef8889d 100644
--- a/apps/files_sharing/l10n/ko.js
+++ b/apps/files_sharing/l10n/ko.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "취소",
+ "Share" : "공유",
"Shared by" : "공유한 사용자:",
"This share is password-protected" : "이 공유는 암호로 보호되어 있습니다",
"The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.",
diff --git a/apps/files_sharing/l10n/ko.json b/apps/files_sharing/l10n/ko.json
index e005feecef1..fc467d4e85d 100644
--- a/apps/files_sharing/l10n/ko.json
+++ b/apps/files_sharing/l10n/ko.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "취소",
+ "Share" : "공유",
"Shared by" : "공유한 사용자:",
"This share is password-protected" : "이 공유는 암호로 보호되어 있습니다",
"The password is wrong. Try again." : "암호가 잘못되었습니다. 다시 입력해 주십시오.",
diff --git a/apps/files_sharing/l10n/ku_IQ.js b/apps/files_sharing/l10n/ku_IQ.js
index f1549d46c0f..3c751c0a7b3 100644
--- a/apps/files_sharing/l10n/ku_IQ.js
+++ b/apps/files_sharing/l10n/ku_IQ.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "لابردن",
+ "Share" : "هاوبەشی کردن",
"Password" : "وشەی تێپەربو",
"Name" : "ناو",
"Download" : "داگرتن"
diff --git a/apps/files_sharing/l10n/ku_IQ.json b/apps/files_sharing/l10n/ku_IQ.json
index 7be49d0c5e2..8c546363624 100644
--- a/apps/files_sharing/l10n/ku_IQ.json
+++ b/apps/files_sharing/l10n/ku_IQ.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "لابردن",
+ "Share" : "هاوبەشی کردن",
"Password" : "وشەی تێپەربو",
"Name" : "ناو",
"Download" : "داگرتن"
diff --git a/apps/files_sharing/l10n/lb.js b/apps/files_sharing/l10n/lb.js
index f391757f709..3ba992bf6de 100644
--- a/apps/files_sharing/l10n/lb.js
+++ b/apps/files_sharing/l10n/lb.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Ofbriechen",
+ "Share" : "Deelen",
"Shared by" : "Gedeelt vun",
"The password is wrong. Try again." : "Den Passwuert ass incorrect. Probeier ed nach eng keier.",
"Password" : "Passwuert",
diff --git a/apps/files_sharing/l10n/lb.json b/apps/files_sharing/l10n/lb.json
index 07d504d9165..760bb015a98 100644
--- a/apps/files_sharing/l10n/lb.json
+++ b/apps/files_sharing/l10n/lb.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Ofbriechen",
+ "Share" : "Deelen",
"Shared by" : "Gedeelt vun",
"The password is wrong. Try again." : "Den Passwuert ass incorrect. Probeier ed nach eng keier.",
"Password" : "Passwuert",
diff --git a/apps/files_sharing/l10n/lt_LT.js b/apps/files_sharing/l10n/lt_LT.js
index 9a7145bbdae..a2763933434 100644
--- a/apps/files_sharing/l10n/lt_LT.js
+++ b/apps/files_sharing/l10n/lt_LT.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Atšaukti",
+ "Share" : "Dalintis",
"Shared by" : "Dalinasi",
"This share is password-protected" : "Turinys apsaugotas slaptažodžiu",
"The password is wrong. Try again." : "Netinka slaptažodis: Bandykite dar kartą.",
diff --git a/apps/files_sharing/l10n/lt_LT.json b/apps/files_sharing/l10n/lt_LT.json
index 2da5fb37d50..9057bb27204 100644
--- a/apps/files_sharing/l10n/lt_LT.json
+++ b/apps/files_sharing/l10n/lt_LT.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Atšaukti",
+ "Share" : "Dalintis",
"Shared by" : "Dalinasi",
"This share is password-protected" : "Turinys apsaugotas slaptažodžiu",
"The password is wrong. Try again." : "Netinka slaptažodis: Bandykite dar kartą.",
diff --git a/apps/files_sharing/l10n/lv.js b/apps/files_sharing/l10n/lv.js
index e333563c061..001afd0f11d 100644
--- a/apps/files_sharing/l10n/lv.js
+++ b/apps/files_sharing/l10n/lv.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Atcelt",
+ "Share" : "Dalīties",
"Shared by" : "Dalījās",
"Password" : "Parole",
"No entries found in this folder" : "Šajā mapē nekas nav atrasts",
diff --git a/apps/files_sharing/l10n/lv.json b/apps/files_sharing/l10n/lv.json
index 125ba7ee369..00b7d17ba5f 100644
--- a/apps/files_sharing/l10n/lv.json
+++ b/apps/files_sharing/l10n/lv.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Atcelt",
+ "Share" : "Dalīties",
"Shared by" : "Dalījās",
"Password" : "Parole",
"No entries found in this folder" : "Šajā mapē nekas nav atrasts",
diff --git a/apps/files_sharing/l10n/mk.js b/apps/files_sharing/l10n/mk.js
index 890980b2e73..b47fa211329 100644
--- a/apps/files_sharing/l10n/mk.js
+++ b/apps/files_sharing/l10n/mk.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Shared with others" : "Сподели со останатите",
"Shared by link" : "Споделено со врска",
"Cancel" : "Откажи",
+ "Share" : "Сподели",
"Shared by" : "Споделено од",
"This share is password-protected" : "Ова споделување е заштитено со лозинка",
"The password is wrong. Try again." : "Лозинката е грешна. Обиди се повторно.",
diff --git a/apps/files_sharing/l10n/mk.json b/apps/files_sharing/l10n/mk.json
index 3a1b748d4fc..c399da0089f 100644
--- a/apps/files_sharing/l10n/mk.json
+++ b/apps/files_sharing/l10n/mk.json
@@ -3,6 +3,7 @@
"Shared with others" : "Сподели со останатите",
"Shared by link" : "Споделено со врска",
"Cancel" : "Откажи",
+ "Share" : "Сподели",
"Shared by" : "Споделено од",
"This share is password-protected" : "Ова споделување е заштитено со лозинка",
"The password is wrong. Try again." : "Лозинката е грешна. Обиди се повторно.",
diff --git a/apps/files_sharing/l10n/mn.js b/apps/files_sharing/l10n/mn.js
index 6769fc38ccd..c99ff7a5a02 100644
--- a/apps/files_sharing/l10n/mn.js
+++ b/apps/files_sharing/l10n/mn.js
@@ -1,6 +1,7 @@
OC.L10N.register(
"files_sharing",
{
+ "Share" : "Түгээх",
"Password" : "Нууц үг"
},
"nplurals=2; plural=(n != 1);");
diff --git a/apps/files_sharing/l10n/mn.json b/apps/files_sharing/l10n/mn.json
index 13788221f43..3e4112cc4e5 100644
--- a/apps/files_sharing/l10n/mn.json
+++ b/apps/files_sharing/l10n/mn.json
@@ -1,4 +1,5 @@
{ "translations": {
+ "Share" : "Түгээх",
"Password" : "Нууц үг"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
} \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ms_MY.js b/apps/files_sharing/l10n/ms_MY.js
index 92ca90bb60e..2a9f8adc6b6 100644
--- a/apps/files_sharing/l10n/ms_MY.js
+++ b/apps/files_sharing/l10n/ms_MY.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Batal",
+ "Share" : "Kongsi",
"Shared by" : "Dikongsi dengan",
"Password" : "Kata laluan",
"Name" : "Nama",
diff --git a/apps/files_sharing/l10n/ms_MY.json b/apps/files_sharing/l10n/ms_MY.json
index 45ae1fe85a0..2ac71a4f483 100644
--- a/apps/files_sharing/l10n/ms_MY.json
+++ b/apps/files_sharing/l10n/ms_MY.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Batal",
+ "Share" : "Kongsi",
"Shared by" : "Dikongsi dengan",
"Password" : "Kata laluan",
"Name" : "Nama",
diff --git a/apps/files_sharing/l10n/nb_NO.js b/apps/files_sharing/l10n/nb_NO.js
index 7a959d842fe..f2521eca4a6 100644
--- a/apps/files_sharing/l10n/nb_NO.js
+++ b/apps/files_sharing/l10n/nb_NO.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Legg til ekstern deling",
"No ownCloud installation (7 or higher) found at {remote}" : "Ingen ownCloud-installasjon (7 eller høyere) funnet på {remote}",
"Invalid ownCloud url" : "Ugyldig ownCloud-url",
+ "Share" : "Del",
"Shared by" : "Delt av",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe ble delt fra <strong>en annen server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "En offentlig delt fil eller mappe ble <strong>lastet ned</strong>",
diff --git a/apps/files_sharing/l10n/nb_NO.json b/apps/files_sharing/l10n/nb_NO.json
index abe847ffaf0..f42ab658332 100644
--- a/apps/files_sharing/l10n/nb_NO.json
+++ b/apps/files_sharing/l10n/nb_NO.json
@@ -19,6 +19,7 @@
"Add remote share" : "Legg til ekstern deling",
"No ownCloud installation (7 or higher) found at {remote}" : "Ingen ownCloud-installasjon (7 eller høyere) funnet på {remote}",
"Invalid ownCloud url" : "Ugyldig ownCloud-url",
+ "Share" : "Del",
"Shared by" : "Delt av",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mappe ble delt fra <strong>en annen server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "En offentlig delt fil eller mappe ble <strong>lastet ned</strong>",
diff --git a/apps/files_sharing/l10n/nl.js b/apps/files_sharing/l10n/nl.js
index 45ddda94630..0ca0b3e9fc3 100644
--- a/apps/files_sharing/l10n/nl.js
+++ b/apps/files_sharing/l10n/nl.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Toevoegen externe share",
"No ownCloud installation (7 or higher) found at {remote}" : "Geen recente ownCloud installatie (7 of hoger) gevonden op {remote}",
"Invalid ownCloud url" : "Ongeldige ownCloud url",
+ "Share" : "Deel",
"Shared by" : "Gedeeld door",
"A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Een openbaar gedeeld bestand of map werd <strong>gedownloaded</strong>",
diff --git a/apps/files_sharing/l10n/nl.json b/apps/files_sharing/l10n/nl.json
index 363a5d1ab78..d1fec7c4d90 100644
--- a/apps/files_sharing/l10n/nl.json
+++ b/apps/files_sharing/l10n/nl.json
@@ -19,6 +19,7 @@
"Add remote share" : "Toevoegen externe share",
"No ownCloud installation (7 or higher) found at {remote}" : "Geen recente ownCloud installatie (7 of hoger) gevonden op {remote}",
"Invalid ownCloud url" : "Ongeldige ownCloud url",
+ "Share" : "Deel",
"Shared by" : "Gedeeld door",
"A file or folder was shared from <strong>another server</strong>" : "Een bestand of map werd gedeeld vanaf <strong>een andere server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Een openbaar gedeeld bestand of map werd <strong>gedownloaded</strong>",
diff --git a/apps/files_sharing/l10n/nn_NO.js b/apps/files_sharing/l10n/nn_NO.js
index f0c749ceb58..eb03c0f7cd2 100644
--- a/apps/files_sharing/l10n/nn_NO.js
+++ b/apps/files_sharing/l10n/nn_NO.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Avbryt",
+ "Share" : "Del",
"Shared by" : "Delt av",
"The password is wrong. Try again." : "Passordet er gale. Prøv igjen.",
"Password" : "Passord",
diff --git a/apps/files_sharing/l10n/nn_NO.json b/apps/files_sharing/l10n/nn_NO.json
index c4292b2ccb6..392cf64f3c5 100644
--- a/apps/files_sharing/l10n/nn_NO.json
+++ b/apps/files_sharing/l10n/nn_NO.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Avbryt",
+ "Share" : "Del",
"Shared by" : "Delt av",
"The password is wrong. Try again." : "Passordet er gale. Prøv igjen.",
"Password" : "Passord",
diff --git a/apps/files_sharing/l10n/oc.js b/apps/files_sharing/l10n/oc.js
index 74492671603..083b8b4d0af 100644
--- a/apps/files_sharing/l10n/oc.js
+++ b/apps/files_sharing/l10n/oc.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Annula",
+ "Share" : "Parteja",
"Password" : "Senhal",
"Name" : "Nom",
"Download" : "Avalcarga"
diff --git a/apps/files_sharing/l10n/oc.json b/apps/files_sharing/l10n/oc.json
index 787013857a5..9146b14e902 100644
--- a/apps/files_sharing/l10n/oc.json
+++ b/apps/files_sharing/l10n/oc.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Annula",
+ "Share" : "Parteja",
"Password" : "Senhal",
"Name" : "Nom",
"Download" : "Avalcarga"
diff --git a/apps/files_sharing/l10n/pa.js b/apps/files_sharing/l10n/pa.js
index 55e1fcc2498..5cf1b4d73af 100644
--- a/apps/files_sharing/l10n/pa.js
+++ b/apps/files_sharing/l10n/pa.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "ਰੱਦ ਕਰੋ",
+ "Share" : "ਸਾਂਝਾ ਕਰੋ",
"Password" : "ਪਾਸਵਰ",
"Download" : "ਡਾਊਨਲੋਡ"
},
diff --git a/apps/files_sharing/l10n/pa.json b/apps/files_sharing/l10n/pa.json
index d0feec38fff..f0333195205 100644
--- a/apps/files_sharing/l10n/pa.json
+++ b/apps/files_sharing/l10n/pa.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "ਰੱਦ ਕਰੋ",
+ "Share" : "ਸਾਂਝਾ ਕਰੋ",
"Password" : "ਪਾਸਵਰ",
"Download" : "ਡਾਊਨਲੋਡ"
},"pluralForm" :"nplurals=2; plural=(n != 1);"
diff --git a/apps/files_sharing/l10n/pl.js b/apps/files_sharing/l10n/pl.js
index fd696a1e0ba..b37f1049529 100644
--- a/apps/files_sharing/l10n/pl.js
+++ b/apps/files_sharing/l10n/pl.js
@@ -15,6 +15,7 @@ OC.L10N.register(
"Cancel" : "Anuluj",
"Add remote share" : "Dodaj zdalny zasób",
"Invalid ownCloud url" : "Błędny adres URL",
+ "Share" : "Udostępnij",
"Shared by" : "Udostępniane przez",
"This share is password-protected" : "Udział ten jest chroniony hasłem",
"The password is wrong. Try again." : "To hasło jest niewłaściwe. Spróbuj ponownie.",
diff --git a/apps/files_sharing/l10n/pl.json b/apps/files_sharing/l10n/pl.json
index 68c10b409ce..2c0c2385247 100644
--- a/apps/files_sharing/l10n/pl.json
+++ b/apps/files_sharing/l10n/pl.json
@@ -13,6 +13,7 @@
"Cancel" : "Anuluj",
"Add remote share" : "Dodaj zdalny zasób",
"Invalid ownCloud url" : "Błędny adres URL",
+ "Share" : "Udostępnij",
"Shared by" : "Udostępniane przez",
"This share is password-protected" : "Udział ten jest chroniony hasłem",
"The password is wrong. Try again." : "To hasło jest niewłaściwe. Spróbuj ponownie.",
diff --git a/apps/files_sharing/l10n/pt_BR.js b/apps/files_sharing/l10n/pt_BR.js
index 7203e3c1ecd..031720194ad 100644
--- a/apps/files_sharing/l10n/pt_BR.js
+++ b/apps/files_sharing/l10n/pt_BR.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Adicionar compartilhamento remoto",
"No ownCloud installation (7 or higher) found at {remote}" : "Nenhuma instalação ownCloud (7 ou superior) foi encontrada em {remote}",
"Invalid ownCloud url" : "Url invalida para ownCloud",
+ "Share" : "Compartilhar",
"Shared by" : "Compartilhado por",
"A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhada a partir de <strong>outro servidor</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Um arquivo ou pasta compartilhada publicamente foi <strong>baixado</strong>",
diff --git a/apps/files_sharing/l10n/pt_BR.json b/apps/files_sharing/l10n/pt_BR.json
index 8314e75d9fc..457b72c4389 100644
--- a/apps/files_sharing/l10n/pt_BR.json
+++ b/apps/files_sharing/l10n/pt_BR.json
@@ -19,6 +19,7 @@
"Add remote share" : "Adicionar compartilhamento remoto",
"No ownCloud installation (7 or higher) found at {remote}" : "Nenhuma instalação ownCloud (7 ou superior) foi encontrada em {remote}",
"Invalid ownCloud url" : "Url invalida para ownCloud",
+ "Share" : "Compartilhar",
"Shared by" : "Compartilhado por",
"A file or folder was shared from <strong>another server</strong>" : "Um arquivo ou pasta foi compartilhada a partir de <strong>outro servidor</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Um arquivo ou pasta compartilhada publicamente foi <strong>baixado</strong>",
diff --git a/apps/files_sharing/l10n/pt_PT.js b/apps/files_sharing/l10n/pt_PT.js
index f0f6221ce30..813a409aa9d 100644
--- a/apps/files_sharing/l10n/pt_PT.js
+++ b/apps/files_sharing/l10n/pt_PT.js
@@ -8,16 +8,22 @@ OC.L10N.register(
"Shared with you" : "Partilhado consigo ",
"Shared with others" : "Partilhado com outros",
"Shared by link" : "Partilhado pela hiperligação",
+ "Nothing shared with you yet" : "Ainda não foi partilhado nada consigo",
+ "Files and folders others share with you will show up here" : "Os ficheiros e pastas que os outros partilham consigo, serão mostradas aqui",
+ "Nothing shared yet" : "Ainda não foi nada paratilhado",
+ "No shared links" : "Sem hiperligações partilhadas",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Deseja adicionar a partilha remota {nome} de {proprietário}@{remoto}?",
"Remote share" : "Partilha remota",
"Remote share password" : "Senha da partilha remota",
"Cancel" : "Cancelar",
"Add remote share" : "Adicionar partilha remota",
"Invalid ownCloud url" : "Url ownCloud inválido",
+ "Share" : "Compartilhar",
"Shared by" : "Partilhado por",
"This share is password-protected" : "Esta partilha está protegida por senha",
"The password is wrong. Try again." : "A senha está errada. Por favor, tente de novo.",
"Password" : "Senha",
+ "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
"Name" : "Nome",
"Share time" : "Hora da Partilha",
"Sorry, this link doesn’t seem to work anymore." : "Desculpe, mas esta hiperligação parece já não estar a funcionar.",
diff --git a/apps/files_sharing/l10n/pt_PT.json b/apps/files_sharing/l10n/pt_PT.json
index 400c24b326c..f21c779e21d 100644
--- a/apps/files_sharing/l10n/pt_PT.json
+++ b/apps/files_sharing/l10n/pt_PT.json
@@ -6,16 +6,22 @@
"Shared with you" : "Partilhado consigo ",
"Shared with others" : "Partilhado com outros",
"Shared by link" : "Partilhado pela hiperligação",
+ "Nothing shared with you yet" : "Ainda não foi partilhado nada consigo",
+ "Files and folders others share with you will show up here" : "Os ficheiros e pastas que os outros partilham consigo, serão mostradas aqui",
+ "Nothing shared yet" : "Ainda não foi nada paratilhado",
+ "No shared links" : "Sem hiperligações partilhadas",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Deseja adicionar a partilha remota {nome} de {proprietário}@{remoto}?",
"Remote share" : "Partilha remota",
"Remote share password" : "Senha da partilha remota",
"Cancel" : "Cancelar",
"Add remote share" : "Adicionar partilha remota",
"Invalid ownCloud url" : "Url ownCloud inválido",
+ "Share" : "Compartilhar",
"Shared by" : "Partilhado por",
"This share is password-protected" : "Esta partilha está protegida por senha",
"The password is wrong. Try again." : "A senha está errada. Por favor, tente de novo.",
"Password" : "Senha",
+ "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
"Name" : "Nome",
"Share time" : "Hora da Partilha",
"Sorry, this link doesn’t seem to work anymore." : "Desculpe, mas esta hiperligação parece já não estar a funcionar.",
diff --git a/apps/files_sharing/l10n/ro.js b/apps/files_sharing/l10n/ro.js
index 69a4d263545..107d4a1687e 100644
--- a/apps/files_sharing/l10n/ro.js
+++ b/apps/files_sharing/l10n/ro.js
@@ -5,6 +5,7 @@ OC.L10N.register(
"Shared with you" : "Partajat cu tine",
"Shared with others" : "Partajat cu alții",
"Cancel" : "Anulare",
+ "Share" : "Partajează",
"Shared by" : "impartite in ",
"This share is password-protected" : "Această partajare este protejată cu parolă",
"The password is wrong. Try again." : "Parola este incorectă. Încercaţi din nou.",
diff --git a/apps/files_sharing/l10n/ro.json b/apps/files_sharing/l10n/ro.json
index 73501a9acd0..1676f3d7f9f 100644
--- a/apps/files_sharing/l10n/ro.json
+++ b/apps/files_sharing/l10n/ro.json
@@ -3,6 +3,7 @@
"Shared with you" : "Partajat cu tine",
"Shared with others" : "Partajat cu alții",
"Cancel" : "Anulare",
+ "Share" : "Partajează",
"Shared by" : "impartite in ",
"This share is password-protected" : "Această partajare este protejată cu parolă",
"The password is wrong. Try again." : "Parola este incorectă. Încercaţi din nou.",
diff --git a/apps/files_sharing/l10n/ru.js b/apps/files_sharing/l10n/ru.js
index 0212726e204..588dc05f611 100644
--- a/apps/files_sharing/l10n/ru.js
+++ b/apps/files_sharing/l10n/ru.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Добавить удалённый общий ресурс",
"No ownCloud installation (7 or higher) found at {remote}" : "На удаленном ресурсе {remote} не установлен ownCloud версии 7 или выше",
"Invalid ownCloud url" : "Неверный адрес ownCloud",
+ "Share" : "Поделиться",
"Shared by" : "Поделился",
"A file or folder was shared from <strong>another server</strong>" : "Файлом или каталогом поделились с <strong>удаленного сервера</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Общий файл или каталог был <strong>скачан</strong>",
diff --git a/apps/files_sharing/l10n/ru.json b/apps/files_sharing/l10n/ru.json
index d14ffa43101..1a2fcbb9d95 100644
--- a/apps/files_sharing/l10n/ru.json
+++ b/apps/files_sharing/l10n/ru.json
@@ -19,6 +19,7 @@
"Add remote share" : "Добавить удалённый общий ресурс",
"No ownCloud installation (7 or higher) found at {remote}" : "На удаленном ресурсе {remote} не установлен ownCloud версии 7 или выше",
"Invalid ownCloud url" : "Неверный адрес ownCloud",
+ "Share" : "Поделиться",
"Shared by" : "Поделился",
"A file or folder was shared from <strong>another server</strong>" : "Файлом или каталогом поделились с <strong>удаленного сервера</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "Общий файл или каталог был <strong>скачан</strong>",
diff --git a/apps/files_sharing/l10n/si_LK.js b/apps/files_sharing/l10n/si_LK.js
index f55e8fc6d50..6d69abd7ef3 100644
--- a/apps/files_sharing/l10n/si_LK.js
+++ b/apps/files_sharing/l10n/si_LK.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "එපා",
+ "Share" : "බෙදා හදා ගන්න",
"Password" : "මුර පදය",
"Name" : "නම",
"Download" : "බාන්න"
diff --git a/apps/files_sharing/l10n/si_LK.json b/apps/files_sharing/l10n/si_LK.json
index 528b13cd6e4..6a78f6d7dce 100644
--- a/apps/files_sharing/l10n/si_LK.json
+++ b/apps/files_sharing/l10n/si_LK.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "එපා",
+ "Share" : "බෙදා හදා ගන්න",
"Password" : "මුර පදය",
"Name" : "නම",
"Download" : "බාන්න"
diff --git a/apps/files_sharing/l10n/sk_SK.js b/apps/files_sharing/l10n/sk_SK.js
index 5467f33eba1..b9ed2765bf5 100644
--- a/apps/files_sharing/l10n/sk_SK.js
+++ b/apps/files_sharing/l10n/sk_SK.js
@@ -13,6 +13,7 @@ OC.L10N.register(
"Cancel" : "Zrušiť",
"Add remote share" : "Pridať vzdialené úložisko",
"Invalid ownCloud url" : "Chybná ownCloud url",
+ "Share" : "Zdieľať",
"Shared by" : "Zdieľa",
"This share is password-protected" : "Toto zdieľanie je chránené heslom",
"The password is wrong. Try again." : "Heslo je chybné. Skúste to znova.",
diff --git a/apps/files_sharing/l10n/sk_SK.json b/apps/files_sharing/l10n/sk_SK.json
index 811e9182db2..aacd55cc2a5 100644
--- a/apps/files_sharing/l10n/sk_SK.json
+++ b/apps/files_sharing/l10n/sk_SK.json
@@ -11,6 +11,7 @@
"Cancel" : "Zrušiť",
"Add remote share" : "Pridať vzdialené úložisko",
"Invalid ownCloud url" : "Chybná ownCloud url",
+ "Share" : "Zdieľať",
"Shared by" : "Zdieľa",
"This share is password-protected" : "Toto zdieľanie je chránené heslom",
"The password is wrong. Try again." : "Heslo je chybné. Skúste to znova.",
diff --git a/apps/files_sharing/l10n/sl.js b/apps/files_sharing/l10n/sl.js
index 5fe340ab04c..b770800e187 100644
--- a/apps/files_sharing/l10n/sl.js
+++ b/apps/files_sharing/l10n/sl.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Dodaj oddaljeno mesto za souporabo",
"No ownCloud installation (7 or higher) found at {remote}" : "Na mestu {remote} ni nameščenega okolja ownCloud (različice 7 ali višje)",
"Invalid ownCloud url" : "Naveden je neveljaven naslov URL strežnika ownCloud",
+ "Share" : "Souporaba",
"Shared by" : "V souporabi z",
"A file or folder was shared from <strong>another server</strong>" : "Souporaba datoteke ali mape <strong>z drugega strežnika</strong> je odobrena.",
"A public shared file or folder was <strong>downloaded</strong>" : "Mapa ali datoteka v souporabi je bila <strong>prejeta</strong>.",
diff --git a/apps/files_sharing/l10n/sl.json b/apps/files_sharing/l10n/sl.json
index 2618dce954e..38761d82764 100644
--- a/apps/files_sharing/l10n/sl.json
+++ b/apps/files_sharing/l10n/sl.json
@@ -19,6 +19,7 @@
"Add remote share" : "Dodaj oddaljeno mesto za souporabo",
"No ownCloud installation (7 or higher) found at {remote}" : "Na mestu {remote} ni nameščenega okolja ownCloud (različice 7 ali višje)",
"Invalid ownCloud url" : "Naveden je neveljaven naslov URL strežnika ownCloud",
+ "Share" : "Souporaba",
"Shared by" : "V souporabi z",
"A file or folder was shared from <strong>another server</strong>" : "Souporaba datoteke ali mape <strong>z drugega strežnika</strong> je odobrena.",
"A public shared file or folder was <strong>downloaded</strong>" : "Mapa ali datoteka v souporabi je bila <strong>prejeta</strong>.",
diff --git a/apps/files_sharing/l10n/sq.js b/apps/files_sharing/l10n/sq.js
index 5f11b75039f..e09b4d4a4c6 100644
--- a/apps/files_sharing/l10n/sq.js
+++ b/apps/files_sharing/l10n/sq.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Anullo",
+ "Share" : "Ndaj",
"Shared by" : "Ndarë nga",
"This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim",
"The password is wrong. Try again." : "Kodi është i gabuar. Provojeni përsëri.",
diff --git a/apps/files_sharing/l10n/sq.json b/apps/files_sharing/l10n/sq.json
index 491c0bfc7a9..1fd4a7fa978 100644
--- a/apps/files_sharing/l10n/sq.json
+++ b/apps/files_sharing/l10n/sq.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Anullo",
+ "Share" : "Ndaj",
"Shared by" : "Ndarë nga",
"This share is password-protected" : "Kjo pjesë është e mbrojtur me fjalëkalim",
"The password is wrong. Try again." : "Kodi është i gabuar. Provojeni përsëri.",
diff --git a/apps/files_sharing/l10n/sr.js b/apps/files_sharing/l10n/sr.js
index 6e8100375f1..68f64f4f138 100644
--- a/apps/files_sharing/l10n/sr.js
+++ b/apps/files_sharing/l10n/sr.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Откажи",
+ "Share" : "Дели",
"Shared by" : "Делио",
"Password" : "Лозинка",
"Name" : "Име",
diff --git a/apps/files_sharing/l10n/sr.json b/apps/files_sharing/l10n/sr.json
index 53642f3f349..86a7a4b57d0 100644
--- a/apps/files_sharing/l10n/sr.json
+++ b/apps/files_sharing/l10n/sr.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Откажи",
+ "Share" : "Дели",
"Shared by" : "Делио",
"Password" : "Лозинка",
"Name" : "Име",
diff --git a/apps/files_sharing/l10n/sr@latin.js b/apps/files_sharing/l10n/sr@latin.js
index 6e13a919b1b..421588843bd 100644
--- a/apps/files_sharing/l10n/sr@latin.js
+++ b/apps/files_sharing/l10n/sr@latin.js
@@ -2,7 +2,9 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Otkaži",
+ "Share" : "Podeli",
"Password" : "Lozinka",
+ "No entries found in this folder" : "Nema unosa u ovom direktorijumu",
"Name" : "Ime",
"Download" : "Preuzmi"
},
diff --git a/apps/files_sharing/l10n/sr@latin.json b/apps/files_sharing/l10n/sr@latin.json
index 9aebf35fc82..6463297ee0b 100644
--- a/apps/files_sharing/l10n/sr@latin.json
+++ b/apps/files_sharing/l10n/sr@latin.json
@@ -1,6 +1,8 @@
{ "translations": {
"Cancel" : "Otkaži",
+ "Share" : "Podeli",
"Password" : "Lozinka",
+ "No entries found in this folder" : "Nema unosa u ovom direktorijumu",
"Name" : "Ime",
"Download" : "Preuzmi"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
diff --git a/apps/files_sharing/l10n/sv.js b/apps/files_sharing/l10n/sv.js
index bab77a7431e..05487983985 100644
--- a/apps/files_sharing/l10n/sv.js
+++ b/apps/files_sharing/l10n/sv.js
@@ -20,6 +20,7 @@ OC.L10N.register(
"Cancel" : "Avbryt",
"Add remote share" : "Lägg till fjärrdelning",
"Invalid ownCloud url" : "Felaktig ownCloud url",
+ "Share" : "Dela",
"Shared by" : "Delad av",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mapp delades från <strong>en annan server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "En publikt delad fil eller mapp blev <strong>nerladdad</strong>",
diff --git a/apps/files_sharing/l10n/sv.json b/apps/files_sharing/l10n/sv.json
index a7334a15685..8a82105f1b3 100644
--- a/apps/files_sharing/l10n/sv.json
+++ b/apps/files_sharing/l10n/sv.json
@@ -18,6 +18,7 @@
"Cancel" : "Avbryt",
"Add remote share" : "Lägg till fjärrdelning",
"Invalid ownCloud url" : "Felaktig ownCloud url",
+ "Share" : "Dela",
"Shared by" : "Delad av",
"A file or folder was shared from <strong>another server</strong>" : "En fil eller mapp delades från <strong>en annan server</strong>",
"A public shared file or folder was <strong>downloaded</strong>" : "En publikt delad fil eller mapp blev <strong>nerladdad</strong>",
diff --git a/apps/files_sharing/l10n/ta_LK.js b/apps/files_sharing/l10n/ta_LK.js
index 846ed1b4f84..d81565a3f62 100644
--- a/apps/files_sharing/l10n/ta_LK.js
+++ b/apps/files_sharing/l10n/ta_LK.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "இரத்து செய்க",
+ "Share" : "பகிர்வு",
"Password" : "கடவுச்சொல்",
"Name" : "பெயர்",
"Download" : "பதிவிறக்குக"
diff --git a/apps/files_sharing/l10n/ta_LK.json b/apps/files_sharing/l10n/ta_LK.json
index 8e722a93889..4d2bfd332b5 100644
--- a/apps/files_sharing/l10n/ta_LK.json
+++ b/apps/files_sharing/l10n/ta_LK.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "இரத்து செய்க",
+ "Share" : "பகிர்வு",
"Password" : "கடவுச்சொல்",
"Name" : "பெயர்",
"Download" : "பதிவிறக்குக"
diff --git a/apps/files_sharing/l10n/th_TH.js b/apps/files_sharing/l10n/th_TH.js
index 153f7e222c6..d879c3d25af 100644
--- a/apps/files_sharing/l10n/th_TH.js
+++ b/apps/files_sharing/l10n/th_TH.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "ยกเลิก",
+ "Share" : "แชร์",
"Shared by" : "ถูกแชร์โดย",
"Password" : "รหัสผ่าน",
"Name" : "ชื่อ",
diff --git a/apps/files_sharing/l10n/th_TH.json b/apps/files_sharing/l10n/th_TH.json
index 05757834e53..1e793855e2b 100644
--- a/apps/files_sharing/l10n/th_TH.json
+++ b/apps/files_sharing/l10n/th_TH.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "ยกเลิก",
+ "Share" : "แชร์",
"Shared by" : "ถูกแชร์โดย",
"Password" : "รหัสผ่าน",
"Name" : "ชื่อ",
diff --git a/apps/files_sharing/l10n/tr.js b/apps/files_sharing/l10n/tr.js
index ce34d67f5fe..2e7cb753dea 100644
--- a/apps/files_sharing/l10n/tr.js
+++ b/apps/files_sharing/l10n/tr.js
@@ -21,6 +21,7 @@ OC.L10N.register(
"Add remote share" : "Uzak paylaşım ekle",
"No ownCloud installation (7 or higher) found at {remote}" : "{remote} üzerinde ownCloud (7 veya daha üstü) kurulumu bulunamadı",
"Invalid ownCloud url" : "Geçersiz ownCloud adresi",
+ "Share" : "Paylaş",
"Shared by" : "Paylaşan",
"A file or folder was shared from <strong>another server</strong>" : "<strong>Başka sunucudan</strong> bir dosya veya klasör paylaşıldı",
"A public shared file or folder was <strong>downloaded</strong>" : "Herkese açık paylaşılan bir dosya veya klasör <strong>indirildi</strong>",
diff --git a/apps/files_sharing/l10n/tr.json b/apps/files_sharing/l10n/tr.json
index f2be16ee9c3..bd6b9a3847b 100644
--- a/apps/files_sharing/l10n/tr.json
+++ b/apps/files_sharing/l10n/tr.json
@@ -19,6 +19,7 @@
"Add remote share" : "Uzak paylaşım ekle",
"No ownCloud installation (7 or higher) found at {remote}" : "{remote} üzerinde ownCloud (7 veya daha üstü) kurulumu bulunamadı",
"Invalid ownCloud url" : "Geçersiz ownCloud adresi",
+ "Share" : "Paylaş",
"Shared by" : "Paylaşan",
"A file or folder was shared from <strong>another server</strong>" : "<strong>Başka sunucudan</strong> bir dosya veya klasör paylaşıldı",
"A public shared file or folder was <strong>downloaded</strong>" : "Herkese açık paylaşılan bir dosya veya klasör <strong>indirildi</strong>",
diff --git a/apps/files_sharing/l10n/ug.js b/apps/files_sharing/l10n/ug.js
index 2e1fcc17441..4a9b698aa00 100644
--- a/apps/files_sharing/l10n/ug.js
+++ b/apps/files_sharing/l10n/ug.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "ۋاز كەچ",
+ "Share" : "ھەمبەھىر",
"Shared by" : "ھەمبەھىرلىگۈچى",
"Password" : "ئىم",
"Name" : "ئاتى",
diff --git a/apps/files_sharing/l10n/ug.json b/apps/files_sharing/l10n/ug.json
index da37c17a579..a4253e61d07 100644
--- a/apps/files_sharing/l10n/ug.json
+++ b/apps/files_sharing/l10n/ug.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "ۋاز كەچ",
+ "Share" : "ھەمبەھىر",
"Shared by" : "ھەمبەھىرلىگۈچى",
"Password" : "ئىم",
"Name" : "ئاتى",
diff --git a/apps/files_sharing/l10n/uk.js b/apps/files_sharing/l10n/uk.js
index 47ae87389f0..40f331d7b27 100644
--- a/apps/files_sharing/l10n/uk.js
+++ b/apps/files_sharing/l10n/uk.js
@@ -8,16 +8,33 @@ OC.L10N.register(
"Shared with you" : "Доступне для вас",
"Shared with others" : "Доступне для інших",
"Shared by link" : "Доступне за посиланням",
+ "Nothing shared with you yet" : "Ніхто з вами ще не поділився файлами",
+ "Files and folders others share with you will show up here" : "Розшарені для вас файли і папки з'являться тут",
+ "Nothing shared yet" : "Немає нічого розшареного",
+ "Files and folders you share will show up here" : "Файли і папки, які розшарені для вас відображатимуться тут",
+ "No shared links" : "Немає опублікованих посилань",
+ "Files and folders you share by link will show up here" : "Файли і папки, якими ви поділитися по посиланню будуть відображатися тут",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Додати віддалену загальну теку {name} з {owner}@{remote}?",
"Remote share" : "Віддалена загальна тека",
"Remote share password" : "Пароль для віддаленої загальної теки",
"Cancel" : "Відмінити",
"Add remote share" : "Додати віддалену загальну теку",
+ "No ownCloud installation (7 or higher) found at {remote}" : "Немає установленого OwnCloud (7 або вище), можна знайти на {remote}",
"Invalid ownCloud url" : "Невірний ownCloud URL",
+ "Share" : "Поділитися",
"Shared by" : "Опубліковано",
+ "A file or folder was shared from <strong>another server</strong>" : "Файл або каталог був опублікований <strong>з іншого сервера</strong>",
+ "A public shared file or folder was <strong>downloaded</strong>" : "Опублікований файл або каталог був <strong>завантажений</strong>",
+ "You received a new remote share from %s" : "Ви отримали нову віддалену папку %s",
+ "%1$s accepted remote share %2$s" : "%1$s віддалена шара підтверджена %2$s",
+ "%1$s declined remote share %2$s" : "%1$s віддалена шара скасована %2$s",
+ "%1$s unshared %2$s from you" : "%1$s не розшарений %2$s для вас",
+ "Public shared folder %1$s was downloaded" : "Опублікований каталог %1$s був завантажений",
+ "Public shared file %1$s was downloaded" : "Опублікований файл %1$s був завантажений",
"This share is password-protected" : "Цей ресурс обміну захищений паролем",
"The password is wrong. Try again." : "Невірний пароль. Спробуйте ще раз.",
"Password" : "Пароль",
+ "No entries found in this folder" : "Записів не знайдено в цій папці",
"Name" : "Ім'я",
"Share time" : "Дата публікації",
"Sorry, this link doesn’t seem to work anymore." : "На жаль, посилання більше не працює.",
diff --git a/apps/files_sharing/l10n/uk.json b/apps/files_sharing/l10n/uk.json
index 1a0bd7c7b11..12199b3192a 100644
--- a/apps/files_sharing/l10n/uk.json
+++ b/apps/files_sharing/l10n/uk.json
@@ -6,16 +6,33 @@
"Shared with you" : "Доступне для вас",
"Shared with others" : "Доступне для інших",
"Shared by link" : "Доступне за посиланням",
+ "Nothing shared with you yet" : "Ніхто з вами ще не поділився файлами",
+ "Files and folders others share with you will show up here" : "Розшарені для вас файли і папки з'являться тут",
+ "Nothing shared yet" : "Немає нічого розшареного",
+ "Files and folders you share will show up here" : "Файли і папки, які розшарені для вас відображатимуться тут",
+ "No shared links" : "Немає опублікованих посилань",
+ "Files and folders you share by link will show up here" : "Файли і папки, якими ви поділитися по посиланню будуть відображатися тут",
"Do you want to add the remote share {name} from {owner}@{remote}?" : "Додати віддалену загальну теку {name} з {owner}@{remote}?",
"Remote share" : "Віддалена загальна тека",
"Remote share password" : "Пароль для віддаленої загальної теки",
"Cancel" : "Відмінити",
"Add remote share" : "Додати віддалену загальну теку",
+ "No ownCloud installation (7 or higher) found at {remote}" : "Немає установленого OwnCloud (7 або вище), можна знайти на {remote}",
"Invalid ownCloud url" : "Невірний ownCloud URL",
+ "Share" : "Поділитися",
"Shared by" : "Опубліковано",
+ "A file or folder was shared from <strong>another server</strong>" : "Файл або каталог був опублікований <strong>з іншого сервера</strong>",
+ "A public shared file or folder was <strong>downloaded</strong>" : "Опублікований файл або каталог був <strong>завантажений</strong>",
+ "You received a new remote share from %s" : "Ви отримали нову віддалену папку %s",
+ "%1$s accepted remote share %2$s" : "%1$s віддалена шара підтверджена %2$s",
+ "%1$s declined remote share %2$s" : "%1$s віддалена шара скасована %2$s",
+ "%1$s unshared %2$s from you" : "%1$s не розшарений %2$s для вас",
+ "Public shared folder %1$s was downloaded" : "Опублікований каталог %1$s був завантажений",
+ "Public shared file %1$s was downloaded" : "Опублікований файл %1$s був завантажений",
"This share is password-protected" : "Цей ресурс обміну захищений паролем",
"The password is wrong. Try again." : "Невірний пароль. Спробуйте ще раз.",
"Password" : "Пароль",
+ "No entries found in this folder" : "Записів не знайдено в цій папці",
"Name" : "Ім'я",
"Share time" : "Дата публікації",
"Sorry, this link doesn’t seem to work anymore." : "На жаль, посилання більше не працює.",
diff --git a/apps/files_sharing/l10n/ur_PK.js b/apps/files_sharing/l10n/ur_PK.js
index 2e9b145d789..ad802fe8ea3 100644
--- a/apps/files_sharing/l10n/ur_PK.js
+++ b/apps/files_sharing/l10n/ur_PK.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "منسوخ کریں",
+ "Share" : "اشتراک",
"Shared by" : "سے اشتراک شدہ",
"Password" : "پاسورڈ",
"Name" : "اسم",
diff --git a/apps/files_sharing/l10n/ur_PK.json b/apps/files_sharing/l10n/ur_PK.json
index b0ac6d244b8..5431e0a2fa5 100644
--- a/apps/files_sharing/l10n/ur_PK.json
+++ b/apps/files_sharing/l10n/ur_PK.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "منسوخ کریں",
+ "Share" : "اشتراک",
"Shared by" : "سے اشتراک شدہ",
"Password" : "پاسورڈ",
"Name" : "اسم",
diff --git a/apps/files_sharing/l10n/vi.js b/apps/files_sharing/l10n/vi.js
index 3b73c2c9ec4..e3a4c83d58b 100644
--- a/apps/files_sharing/l10n/vi.js
+++ b/apps/files_sharing/l10n/vi.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "Hủy",
+ "Share" : "Chia sẻ",
"Shared by" : "Chia sẻ bởi",
"Password" : "Mật khẩu",
"Name" : "Tên",
diff --git a/apps/files_sharing/l10n/vi.json b/apps/files_sharing/l10n/vi.json
index 149509fa91e..e3c784e5b78 100644
--- a/apps/files_sharing/l10n/vi.json
+++ b/apps/files_sharing/l10n/vi.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "Hủy",
+ "Share" : "Chia sẻ",
"Shared by" : "Chia sẻ bởi",
"Password" : "Mật khẩu",
"Name" : "Tên",
diff --git a/apps/files_sharing/l10n/zh_CN.js b/apps/files_sharing/l10n/zh_CN.js
index c97aa805ca7..64004e3b1ae 100644
--- a/apps/files_sharing/l10n/zh_CN.js
+++ b/apps/files_sharing/l10n/zh_CN.js
@@ -12,6 +12,7 @@ OC.L10N.register(
"Cancel" : "取消",
"Add remote share" : "添加远程分享",
"Invalid ownCloud url" : "无效的 ownCloud 网址",
+ "Share" : "共享",
"Shared by" : "共享人",
"This share is password-protected" : "这是一个密码保护的共享",
"The password is wrong. Try again." : "用户名或密码错误!请重试",
diff --git a/apps/files_sharing/l10n/zh_CN.json b/apps/files_sharing/l10n/zh_CN.json
index a06835a7f1f..4223da44404 100644
--- a/apps/files_sharing/l10n/zh_CN.json
+++ b/apps/files_sharing/l10n/zh_CN.json
@@ -10,6 +10,7 @@
"Cancel" : "取消",
"Add remote share" : "添加远程分享",
"Invalid ownCloud url" : "无效的 ownCloud 网址",
+ "Share" : "共享",
"Shared by" : "共享人",
"This share is password-protected" : "这是一个密码保护的共享",
"The password is wrong. Try again." : "用户名或密码错误!请重试",
diff --git a/apps/files_sharing/l10n/zh_HK.js b/apps/files_sharing/l10n/zh_HK.js
index 02246228f3c..95bde13eda1 100644
--- a/apps/files_sharing/l10n/zh_HK.js
+++ b/apps/files_sharing/l10n/zh_HK.js
@@ -2,6 +2,7 @@ OC.L10N.register(
"files_sharing",
{
"Cancel" : "取消",
+ "Share" : "分享",
"Password" : "密碼",
"Name" : "名稱",
"Download" : "下載"
diff --git a/apps/files_sharing/l10n/zh_HK.json b/apps/files_sharing/l10n/zh_HK.json
index dedf9d2e9ee..6f18eaf373c 100644
--- a/apps/files_sharing/l10n/zh_HK.json
+++ b/apps/files_sharing/l10n/zh_HK.json
@@ -1,5 +1,6 @@
{ "translations": {
"Cancel" : "取消",
+ "Share" : "分享",
"Password" : "密碼",
"Name" : "名稱",
"Download" : "下載"
diff --git a/apps/files_sharing/l10n/zh_TW.js b/apps/files_sharing/l10n/zh_TW.js
index d379da10ca9..6d6f73c64c9 100644
--- a/apps/files_sharing/l10n/zh_TW.js
+++ b/apps/files_sharing/l10n/zh_TW.js
@@ -12,6 +12,7 @@ OC.L10N.register(
"Cancel" : "取消",
"Add remote share" : "加入遠端分享",
"Invalid ownCloud url" : "無效的 ownCloud URL",
+ "Share" : "分享",
"Shared by" : "由...分享",
"This share is password-protected" : "這個分享有密碼保護",
"The password is wrong. Try again." : "請檢查您的密碼並再試一次",
diff --git a/apps/files_sharing/l10n/zh_TW.json b/apps/files_sharing/l10n/zh_TW.json
index a4fc1ae2ea2..d7518ef2578 100644
--- a/apps/files_sharing/l10n/zh_TW.json
+++ b/apps/files_sharing/l10n/zh_TW.json
@@ -10,6 +10,7 @@
"Cancel" : "取消",
"Add remote share" : "加入遠端分享",
"Invalid ownCloud url" : "無效的 ownCloud URL",
+ "Share" : "分享",
"Shared by" : "由...分享",
"This share is password-protected" : "這個分享有密碼保護",
"The password is wrong. Try again." : "請檢查您的密碼並再試一次",
diff --git a/apps/files_sharing/lib/middleware/sharingcheckmiddleware.php b/apps/files_sharing/lib/middleware/sharingcheckmiddleware.php
index af79cd9e94a..3508407f2a0 100644
--- a/apps/files_sharing/lib/middleware/sharingcheckmiddleware.php
+++ b/apps/files_sharing/lib/middleware/sharingcheckmiddleware.php
@@ -10,10 +10,10 @@
namespace OCA\Files_Sharing\Middleware;
-use OCP\AppFramework\IApi;
-use \OCP\AppFramework\Middleware;
+use OCP\App\IAppManager;
+use OCP\AppFramework\Middleware;
use OCP\AppFramework\Http\TemplateResponse;
-use OCP\IAppConfig;
+use OCP\IConfig;
/**
* Checks whether the "sharing check" is enabled
@@ -24,22 +24,22 @@ class SharingCheckMiddleware extends Middleware {
/** @var string */
protected $appName;
- /** @var IAppConfig */
- protected $appConfig;
- /** @var IApi */
- protected $api;
+ /** @var IConfig */
+ protected $config;
+ /** @var IAppManager */
+ protected $appManager;
/***
* @param string $appName
- * @param IAppConfig $appConfig
- * @param IApi $api
+ * @param IConfig $config
+ * @param IAppManager $appManager
*/
public function __construct($appName,
- IAppConfig $appConfig,
- IApi $api) {
+ IConfig $config,
+ IAppManager $appManager) {
$this->appName = $appName;
- $this->appConfig = $appConfig;
- $this->api = $api;
+ $this->config = $config;
+ $this->appManager = $appManager;
}
/**
@@ -69,12 +69,12 @@ class SharingCheckMiddleware extends Middleware {
private function isSharingEnabled() {
// FIXME: This check is done here since the route is globally defined and not inside the files_sharing app
// Check whether the sharing application is enabled
- if(!$this->api->isAppEnabled($this->appName)) {
+ if(!$this->appManager->isEnabledForUser($this->appName)) {
return false;
}
// Check whether public sharing is enabled
- if($this->appConfig->getValue('core', 'shareapi_allow_links', 'yes') !== 'yes') {
+ if($this->config->getAppValue('core', 'shareapi_allow_links', 'yes') !== 'yes') {
return false;
}
diff --git a/apps/files_sharing/lib/migration.php b/apps/files_sharing/lib/migration.php
new file mode 100644
index 00000000000..1a3bfecffb0
--- /dev/null
+++ b/apps/files_sharing/lib/migration.php
@@ -0,0 +1,42 @@
+<?php
+ /**
+ * ownCloud - migration to new version of the files sharing app
+ *
+ * @copyright (C) 2014 ownCloud, Inc.
+ *
+ * @author Bjoern Schiessle <schiessle@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+ namespace OCA\Files_Sharing;
+
+class Migration {
+
+
+ /**
+ * set accepted to 1 for all external shares. At this point in time we only
+ * have shares from the first version of server-to-server sharing so all should
+ * be accepted
+ */
+ public function addAcceptRow() {
+ $statement = 'UPDATE `*PREFIX*share_external` SET `accepted` = 1';
+ $connection = \OC::$server->getDatabaseConnection();
+ $query = $connection->prepare($statement);
+ $query->execute();
+ }
+
+
+}
diff --git a/apps/files_sharing/lib/scanner.php b/apps/files_sharing/lib/scanner.php
new file mode 100644
index 00000000000..48c1ae9e084
--- /dev/null
+++ b/apps/files_sharing/lib/scanner.php
@@ -0,0 +1,45 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Vincent Petry
+ * @copyright 2015 Vincent Petry <pvince81@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+namespace OC\Files\Cache;
+
+/**
+ * Scanner for SharedStorage
+ */
+class SharedScanner extends Scanner {
+
+ /**
+ * Returns metadata from the shared storage, but
+ * with permissions from the source storage.
+ *
+ * @param string $path path of the file for which to retrieve metadata
+ *
+ * @return array an array of metadata of the file
+ */
+ public function getData($path){
+ $data = parent::getData($path);
+ $sourcePath = $this->storage->getSourcePath($path);
+ list($sourceStorage, $internalPath) = \OC\Files\Filesystem::resolvePath($sourcePath);
+ $data['permissions'] = $sourceStorage->getPermissions($internalPath);
+ return $data;
+ }
+}
+
diff --git a/apps/files_sharing/lib/share/file.php b/apps/files_sharing/lib/share/file.php
index 1d7eb77f7cf..dae859781e2 100644
--- a/apps/files_sharing/lib/share/file.php
+++ b/apps/files_sharing/lib/share/file.php
@@ -96,12 +96,13 @@ class OC_Share_Backend_File implements OCP\Share_Backend_File_Dependent {
public function formatItems($items, $format, $parameters = null) {
if ($format == self::FORMAT_SHARED_STORAGE) {
// Only 1 item should come through for this format call
+ $item = array_shift($items);
return array(
- 'parent' => $items[key($items)]['parent'],
- 'path' => $items[key($items)]['path'],
- 'storage' => $items[key($items)]['storage'],
- 'permissions' => $items[key($items)]['permissions'],
- 'uid_owner' => $items[key($items)]['uid_owner'],
+ 'parent' => $item['parent'],
+ 'path' => $item['path'],
+ 'storage' => $item['storage'],
+ 'permissions' => $item['permissions'],
+ 'uid_owner' => $item['uid_owner'],
);
} else if ($format == self::FORMAT_GET_FOLDER_CONTENTS) {
$files = array();
diff --git a/apps/files_sharing/lib/sharedstorage.php b/apps/files_sharing/lib/sharedstorage.php
index 1ac57053e25..d992f8f70b4 100644
--- a/apps/files_sharing/lib/sharedstorage.php
+++ b/apps/files_sharing/lib/sharedstorage.php
@@ -501,7 +501,7 @@ class Shared extends \OC\Files\Storage\Common implements ISharedStorage {
if (!$storage) {
$storage = $this;
}
- return new \OC\Files\Cache\Scanner($storage);
+ return new \OC\Files\Cache\SharedScanner($storage);
}
public function getWatcher($path = '', $storage = null) {
diff --git a/apps/files_sharing/tests/middleware/sharingcheckmiddleware.php b/apps/files_sharing/tests/middleware/sharingcheckmiddleware.php
index 90c9a7bba10..466904889af 100644
--- a/apps/files_sharing/tests/middleware/sharingcheckmiddleware.php
+++ b/apps/files_sharing/tests/middleware/sharingcheckmiddleware.php
@@ -14,34 +14,34 @@ namespace OCA\Files_Sharing\Middleware;
/**
* @package OCA\Files_Sharing\Middleware\SharingCheckMiddleware
*/
-class SharingCheckMiddlewareTest extends \PHPUnit_Framework_TestCase {
+class SharingCheckMiddlewareTest extends \Test\TestCase {
- /** @var \OCP\IAppConfig */
- private $appConfig;
- /** @var \OCP\AppFramework\IApi */
- private $api;
+ /** @var \OCP\IConfig */
+ private $config;
+ /** @var \OCP\App\IAppManager */
+ private $appManager;
/** @var SharingCheckMiddleware */
private $sharingCheckMiddleware;
protected function setUp() {
- $this->appConfig = $this->getMockBuilder('\OCP\IAppConfig')
+ $this->config = $this->getMockBuilder('\OCP\IConfig')
->disableOriginalConstructor()->getMock();
- $this->api = $this->getMockBuilder('\OCP\AppFramework\IApi')
+ $this->appManager = $this->getMockBuilder('\OCP\App\IAppManager')
->disableOriginalConstructor()->getMock();
- $this->sharingCheckMiddleware = new SharingCheckMiddleware('files_sharing', $this->appConfig, $this->api);
+ $this->sharingCheckMiddleware = new SharingCheckMiddleware('files_sharing', $this->config, $this->appManager);
}
public function testIsSharingEnabledWithEverythingEnabled() {
- $this->api
+ $this->appManager
->expects($this->once())
- ->method('isAppEnabled')
+ ->method('isEnabledForUser')
->with('files_sharing')
->will($this->returnValue(true));
- $this->appConfig
+ $this->config
->expects($this->once())
- ->method('getValue')
+ ->method('getAppValue')
->with('core', 'shareapi_allow_links', 'yes')
->will($this->returnValue('yes'));
@@ -49,9 +49,9 @@ class SharingCheckMiddlewareTest extends \PHPUnit_Framework_TestCase {
}
public function testIsSharingEnabledWithAppDisabled() {
- $this->api
+ $this->appManager
->expects($this->once())
- ->method('isAppEnabled')
+ ->method('isEnabledForUser')
->with('files_sharing')
->will($this->returnValue(false));
@@ -59,15 +59,15 @@ class SharingCheckMiddlewareTest extends \PHPUnit_Framework_TestCase {
}
public function testIsSharingEnabledWithSharingDisabled() {
- $this->api
+ $this->appManager
->expects($this->once())
- ->method('isAppEnabled')
+ ->method('isEnabledForUser')
->with('files_sharing')
->will($this->returnValue(true));
- $this->appConfig
+ $this->config
->expects($this->once())
- ->method('getValue')
+ ->method('getAppValue')
->with('core', 'shareapi_allow_links', 'yes')
->will($this->returnValue('no'));
diff --git a/apps/files_sharing/tests/migrationtest.php b/apps/files_sharing/tests/migrationtest.php
new file mode 100644
index 00000000000..1f29d9bed04
--- /dev/null
+++ b/apps/files_sharing/tests/migrationtest.php
@@ -0,0 +1,76 @@
+<?php
+/**
+ * ownCloud
+ *
+ * @author Bjoern Schiessle
+ * @copyright 2014 Bjoern Schiessle <schiessle@owncloud.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+ *
+ * You should have received a copy of the GNU Affero General Public
+ * License along with this library. If not, see <http://www.gnu.org/licenses/>.
+ *
+ */
+
+
+use OCA\Files_Sharing\Tests\TestCase;
+use OCA\Files_Sharing\Migration;
+
+class MigrationTest extends TestCase {
+
+ /**
+ * @var \OCP\IDBConnection
+ */
+ private $connection;
+
+ function __construct() {
+ parent::__construct();
+
+ $this->connection = \OC::$server->getDatabaseConnection();
+ }
+
+ function testAddAccept() {
+
+ $query = $this->connection->prepare('
+ INSERT INTO `*PREFIX*share_external`
+ (`remote`, `share_token`, `password`, `name`, `owner`, `user`, `mountpoint`, `mountpoint_hash`, `remote_id`, `accepted`)
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
+ ');
+
+ for ($i = 0; $i < 10; $i++) {
+ $query->execute(array('remote', 'token', 'password', 'name', 'owner', 'user', 'mount point', $i, $i, 0));
+ }
+
+ $query = $this->connection->prepare('SELECT `id` FROM `*PREFIX*share_external`');
+ $query->execute();
+ $dummyEntries = $query->fetchAll();
+
+ $this->assertSame(10, count($dummyEntries));
+
+ $m = new Migration();
+ $m->addAcceptRow();
+
+ // verify result
+ $query = $this->connection->prepare('SELECT `accepted` FROM `*PREFIX*share_external`');
+ $query->execute();
+ $results = $query->fetchAll();
+ $this->assertSame(10, count($results));
+
+ foreach ($results as $r) {
+ $this->assertSame(1, (int) $r['accepted']);
+ }
+
+ // cleanup
+ $cleanup = $this->connection->prepare('DELETE FROM `*PREFIX*share_external`');
+ $cleanup->execute();
+ }
+
+}
diff --git a/apps/files_trashbin/appinfo/app.php b/apps/files_trashbin/appinfo/app.php
index 0e2cbaa529f..da502f0c11e 100644
--- a/apps/files_trashbin/appinfo/app.php
+++ b/apps/files_trashbin/appinfo/app.php
@@ -1,8 +1,6 @@
<?php
$l = \OC::$server->getL10N('files_trashbin');
-OCP\Util::addTranslations('files_trashbin');
-
// register hooks
\OCA\Files_Trashbin\Trashbin::registerHooks();
diff --git a/apps/files_trashbin/l10n/pt_PT.js b/apps/files_trashbin/l10n/pt_PT.js
index 7427cebfca5..291d5085233 100644
--- a/apps/files_trashbin/l10n/pt_PT.js
+++ b/apps/files_trashbin/l10n/pt_PT.js
@@ -9,6 +9,7 @@ OC.L10N.register(
"Error" : "Erro",
"restored" : "Restaurado",
"No deleted files" : "Sem ficheiros eliminados",
+ "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
"Select all" : "Seleccionar todos",
"Name" : "Nome",
"Deleted" : "Eliminado",
diff --git a/apps/files_trashbin/l10n/pt_PT.json b/apps/files_trashbin/l10n/pt_PT.json
index 97fe7ac33aa..8fd729edc90 100644
--- a/apps/files_trashbin/l10n/pt_PT.json
+++ b/apps/files_trashbin/l10n/pt_PT.json
@@ -7,6 +7,7 @@
"Error" : "Erro",
"restored" : "Restaurado",
"No deleted files" : "Sem ficheiros eliminados",
+ "No entries found in this folder" : "Não foram encontradas entradas nesta pasta",
"Select all" : "Seleccionar todos",
"Name" : "Nome",
"Deleted" : "Eliminado",
diff --git a/apps/files_trashbin/l10n/sr@latin.js b/apps/files_trashbin/l10n/sr@latin.js
index ee9560bf680..ab9f86c8d37 100644
--- a/apps/files_trashbin/l10n/sr@latin.js
+++ b/apps/files_trashbin/l10n/sr@latin.js
@@ -1,8 +1,19 @@
OC.L10N.register(
"files_trashbin",
{
+ "Couldn't delete %s permanently" : "Nije bilo moguće obrisati %s za stalno",
+ "Couldn't restore %s" : "Nije bilo moguće povratiti %s",
+ "Deleted files" : "Obrisani fajlovi",
+ "Restore" : "Povrati",
+ "Delete permanently" : "Obriši za stalno",
"Error" : "Greška",
+ "restored" : "povraćeno",
+ "No deleted files" : "Nema obrisanih fajlova",
+ "You will be able to recover deleted files from here" : "Odavde ćete moći da povratite obrisane fajlove",
+ "No entries found in this folder" : "Nema unosa u ovom direktorijumu",
+ "Select all" : "Odaberi sve",
"Name" : "Ime",
+ "Deleted" : "Obrisano",
"Delete" : "Obriši"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_trashbin/l10n/sr@latin.json b/apps/files_trashbin/l10n/sr@latin.json
index 3f64cf8f2b9..8e2d627c3e7 100644
--- a/apps/files_trashbin/l10n/sr@latin.json
+++ b/apps/files_trashbin/l10n/sr@latin.json
@@ -1,6 +1,17 @@
{ "translations": {
+ "Couldn't delete %s permanently" : "Nije bilo moguće obrisati %s za stalno",
+ "Couldn't restore %s" : "Nije bilo moguće povratiti %s",
+ "Deleted files" : "Obrisani fajlovi",
+ "Restore" : "Povrati",
+ "Delete permanently" : "Obriši za stalno",
"Error" : "Greška",
+ "restored" : "povraćeno",
+ "No deleted files" : "Nema obrisanih fajlova",
+ "You will be able to recover deleted files from here" : "Odavde ćete moći da povratite obrisane fajlove",
+ "No entries found in this folder" : "Nema unosa u ovom direktorijumu",
+ "Select all" : "Odaberi sve",
"Name" : "Ime",
+ "Deleted" : "Obrisano",
"Delete" : "Obriši"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/apps/files_trashbin/l10n/uk.js b/apps/files_trashbin/l10n/uk.js
index a3272ac313f..656a6f7b50b 100644
--- a/apps/files_trashbin/l10n/uk.js
+++ b/apps/files_trashbin/l10n/uk.js
@@ -8,6 +8,10 @@ OC.L10N.register(
"Delete permanently" : "Видалити назавжди",
"Error" : "Помилка",
"restored" : "відновлено",
+ "No deleted files" : "Немає видалених файлів",
+ "You will be able to recover deleted files from here" : "Ви зможете відновлювати видалені файли звідси",
+ "No entries found in this folder" : "Записів не знайдено в цій папці",
+ "Select all" : "Вибрати всі",
"Name" : "Ім'я",
"Deleted" : "Видалено",
"Delete" : "Видалити"
diff --git a/apps/files_trashbin/l10n/uk.json b/apps/files_trashbin/l10n/uk.json
index a711236cd0a..bfd6860252e 100644
--- a/apps/files_trashbin/l10n/uk.json
+++ b/apps/files_trashbin/l10n/uk.json
@@ -6,6 +6,10 @@
"Delete permanently" : "Видалити назавжди",
"Error" : "Помилка",
"restored" : "відновлено",
+ "No deleted files" : "Немає видалених файлів",
+ "You will be able to recover deleted files from here" : "Ви зможете відновлювати видалені файли звідси",
+ "No entries found in this folder" : "Записів не знайдено в цій папці",
+ "Select all" : "Вибрати всі",
"Name" : "Ім'я",
"Deleted" : "Видалено",
"Delete" : "Видалити"
diff --git a/apps/files_versions/appinfo/app.php b/apps/files_versions/appinfo/app.php
index ae29bceb37c..e13dc64c46e 100644
--- a/apps/files_versions/appinfo/app.php
+++ b/apps/files_versions/appinfo/app.php
@@ -1,6 +1,5 @@
<?php
-OCP\Util::addTranslations('files_versions');
OCP\Util::addscript('files_versions', 'versions');
OCP\Util::addStyle('files_versions', 'versions');
diff --git a/apps/files_versions/l10n/sr@latin.js b/apps/files_versions/l10n/sr@latin.js
new file mode 100644
index 00000000000..79b152e9f32
--- /dev/null
+++ b/apps/files_versions/l10n/sr@latin.js
@@ -0,0 +1,6 @@
+OC.L10N.register(
+ "files_versions",
+ {
+ "Restore" : "Povrati"
+},
+"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/apps/files_versions/l10n/sr@latin.json b/apps/files_versions/l10n/sr@latin.json
new file mode 100644
index 00000000000..d77f7c59ea1
--- /dev/null
+++ b/apps/files_versions/l10n/sr@latin.json
@@ -0,0 +1,4 @@
+{ "translations": {
+ "Restore" : "Povrati"
+},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
+} \ No newline at end of file
diff --git a/apps/user_ldap/appinfo/app.php b/apps/user_ldap/appinfo/app.php
index 911688a5c20..6895cdbe843 100644
--- a/apps/user_ldap/appinfo/app.php
+++ b/apps/user_ldap/appinfo/app.php
@@ -57,7 +57,6 @@ if(count($configPrefixes) > 0) {
OC_Group::useBackend($groupBackend);
}
-OCP\Util::addTranslations('user_ldap');
OCP\Backgroundjob::registerJob('OCA\user_ldap\lib\Jobs');
OCP\Backgroundjob::registerJob('\OCA\User_LDAP\Jobs\CleanUp');
diff --git a/apps/user_ldap/l10n/uk.js b/apps/user_ldap/l10n/uk.js
index 0b8e8946e0f..7d0409fabac 100644
--- a/apps/user_ldap/l10n/uk.js
+++ b/apps/user_ldap/l10n/uk.js
@@ -33,6 +33,7 @@ OC.L10N.register(
"Confirm Deletion" : "Підтвердіть Видалення",
"_%s group found_::_%s groups found_" : [" %s група знайдена "," %s груп знайдено ","%s груп знайдено "],
"_%s user found_::_%s users found_" : ["%s користувач знайден","%s користувачів знайдено","%s користувачів знайдено"],
+ "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Не вдалося виявити ім'я користувача. Будь ласка, сформулюйте самі в розширених налаштуваннях LDAP.",
"Could not find the desired feature" : "Не вдалося знайти потрібну функцію",
"Invalid Host" : "Невірний Host",
"Server" : "Сервер",
diff --git a/apps/user_ldap/l10n/uk.json b/apps/user_ldap/l10n/uk.json
index 9fb1ce119fb..e069adf2ea7 100644
--- a/apps/user_ldap/l10n/uk.json
+++ b/apps/user_ldap/l10n/uk.json
@@ -31,6 +31,7 @@
"Confirm Deletion" : "Підтвердіть Видалення",
"_%s group found_::_%s groups found_" : [" %s група знайдена "," %s груп знайдено ","%s груп знайдено "],
"_%s user found_::_%s users found_" : ["%s користувач знайден","%s користувачів знайдено","%s користувачів знайдено"],
+ "Could not detect user display name attribute. Please specify it yourself in advanced ldap settings." : "Не вдалося виявити ім'я користувача. Будь ласка, сформулюйте самі в розширених налаштуваннях LDAP.",
"Could not find the desired feature" : "Не вдалося знайти потрібну функцію",
"Invalid Host" : "Невірний Host",
"Server" : "Сервер",
diff --git a/apps/user_ldap/l10n/yo.js b/apps/user_ldap/l10n/yo.js
new file mode 100644
index 00000000000..37042a4f412
--- /dev/null
+++ b/apps/user_ldap/l10n/yo.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "user_ldap",
+ {
+ "_%s group found_::_%s groups found_" : ["",""],
+ "_%s user found_::_%s users found_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/apps/user_ldap/l10n/yo.json b/apps/user_ldap/l10n/yo.json
new file mode 100644
index 00000000000..521de7ba1a8
--- /dev/null
+++ b/apps/user_ldap/l10n/yo.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "_%s group found_::_%s groups found_" : ["",""],
+ "_%s user found_::_%s users found_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/apps/user_webdavauth/appinfo/app.php b/apps/user_webdavauth/appinfo/app.php
index 125f5f40654..3cd227bddbe 100644
--- a/apps/user_webdavauth/appinfo/app.php
+++ b/apps/user_webdavauth/appinfo/app.php
@@ -28,8 +28,6 @@ OC_APP::registerAdmin('user_webdavauth', 'settings');
OC_User::registerBackend("WEBDAVAUTH");
OC_User::useBackend( "WEBDAVAUTH" );
-OCP\Util::addTranslations('user_webdavauth');
-
// add settings page to navigation
$entry = array(
'id' => "user_webdavauth_settings",
diff --git a/config/config.sample.php b/config/config.sample.php
index d0d735ed537..98da8aed356 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -97,7 +97,7 @@ $CONFIG = array(
*
* Available:
* - sqlite (SQLite3 - Community Edition Only)
- * - mysql (MySQL)
+ * - mysql (MySQL/MariaDB)
* - pgsql (PostgreSQL)
* - oci (Oracle - Enterprise Edition Only)
* - mssql (Microsoft SQL Server - Enterprise Edition Only)
@@ -657,6 +657,15 @@ $CONFIG = array(
* - OC\Preview\StarOffice
* - OC\Preview\SVG
* - OC\Preview\TIFF
+ *
+ * The following providers are not available in Microsoft Windows:
+ *
+ * - OC\Preview\Movie
+ * - OC\Preview\MSOfficeDoc
+ * - OC\Preview\MSOffice2003
+ * - OC\Preview\MSOffice2007
+ * - OC\Preview\OpenDocument
+ * - OC\Preview\StarOffice
*/
'enabledPreviewProviders' => array(
'OC\Preview\Image',
diff --git a/core/js/update.js b/core/js/update.js
index 4899335f0ec..f63808f65be 100644
--- a/core/js/update.js
+++ b/core/js/update.js
@@ -17,7 +17,7 @@
*
* @param $el progress list element
*/
- start: function($el) {
+ start: function($el, options) {
if (this._started) {
return;
}
@@ -28,8 +28,8 @@
this.addMessage(t(
'core',
'Updating {productName} to version {version}, this may take a while.', {
- productName: OC.theme.name || 'ownCloud',
- version: OC.config.versionstring
+ productName: options.productName || 'ownCloud',
+ version: options.version
}),
'bold'
).append('<br />'); // FIXME: these should be ul/li with CSS paddings!
@@ -76,10 +76,14 @@
$(document).ready(function() {
$('.updateButton').on('click', function() {
+ var $updateEl = $('.update');
var $progressEl = $('.updateProgress');
$progressEl.removeClass('hidden');
$('.updateOverview').addClass('hidden');
- OC.Update.start($progressEl);
+ OC.Update.start($progressEl, {
+ productName: $updateEl.attr('data-productname'),
+ version: $updateEl.attr('data-version'),
+ });
return false;
});
});
diff --git a/core/l10n/it.js b/core/l10n/it.js
index dfdb350cd71..c0a092c0ac6 100644
--- a/core/l10n/it.js
+++ b/core/l10n/it.js
@@ -135,6 +135,9 @@ OC.L10N.register(
"Reset password" : "Ripristina la password",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X non è supportato e %s non funzionerà correttamente su questa piattaforma. Usalo a tuo rischio!",
"For the best results, please consider using a GNU/Linux server instead." : "Per avere il risultato migliore, prendi in considerazione l'utilizzo di un server GNU/Linux.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Sembra che questa istanza di %s sia in esecuzione in un ambiente PHP a 32 bit e che open_basedir sia stata configurata in php.ini. Ciò comporterà problemi con i file più grandi di 4 GB ed è vivamente sconsigliato.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Rimuovi l'impostazione di open_basedir nel tuo php.ini o passa alla versione a 64 bit di PHP.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Sembra che questa istanza di %s sia in esecuzione in un ambiente PHP a 32 bit e che cURL non sia installato. Ciò comporterà problemi con i file più grandi di 4 GB ed è vivamente sconsigliato.",
"Please install the cURL extension and restart your webserver." : "Installa l'estensione cURL e riavvia il server web.",
"Personal" : "Personale",
"Users" : "Utenti",
diff --git a/core/l10n/it.json b/core/l10n/it.json
index d4362c06981..cbf956bb552 100644
--- a/core/l10n/it.json
+++ b/core/l10n/it.json
@@ -133,6 +133,9 @@
"Reset password" : "Ripristina la password",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X non è supportato e %s non funzionerà correttamente su questa piattaforma. Usalo a tuo rischio!",
"For the best results, please consider using a GNU/Linux server instead." : "Per avere il risultato migliore, prendi in considerazione l'utilizzo di un server GNU/Linux.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Sembra che questa istanza di %s sia in esecuzione in un ambiente PHP a 32 bit e che open_basedir sia stata configurata in php.ini. Ciò comporterà problemi con i file più grandi di 4 GB ed è vivamente sconsigliato.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Rimuovi l'impostazione di open_basedir nel tuo php.ini o passa alla versione a 64 bit di PHP.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Sembra che questa istanza di %s sia in esecuzione in un ambiente PHP a 32 bit e che cURL non sia installato. Ciò comporterà problemi con i file più grandi di 4 GB ed è vivamente sconsigliato.",
"Please install the cURL extension and restart your webserver." : "Installa l'estensione cURL e riavvia il server web.",
"Personal" : "Personale",
"Users" : "Utenti",
diff --git a/core/l10n/pt_BR.js b/core/l10n/pt_BR.js
index c6e5d739113..e6908eb5e03 100644
--- a/core/l10n/pt_BR.js
+++ b/core/l10n/pt_BR.js
@@ -135,6 +135,9 @@ OC.L10N.register(
"Reset password" : "Redefinir senha",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X não é suportado e %s não funcionará corretamente nesta plataforma. Use-o por sua conta e risco!",
"For the best results, please consider using a GNU/Linux server instead." : "Para obter os melhores resultados, por favor, considere o uso de um servidor GNU/Linux em seu lugar.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o open_basedir foi configurado no php.ini. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor, remova a configuração de open_basedir de seu php.ini ou altere o PHP para 64bit.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o cURL não está instalado. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.",
"Please install the cURL extension and restart your webserver." : "Por favor, instale a extensão cURL e reinicie seu servidor web.",
"Personal" : "Pessoal",
"Users" : "Usuários",
diff --git a/core/l10n/pt_BR.json b/core/l10n/pt_BR.json
index feb932fb44c..369ebd99e0c 100644
--- a/core/l10n/pt_BR.json
+++ b/core/l10n/pt_BR.json
@@ -133,6 +133,9 @@
"Reset password" : "Redefinir senha",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X não é suportado e %s não funcionará corretamente nesta plataforma. Use-o por sua conta e risco!",
"For the best results, please consider using a GNU/Linux server instead." : "Para obter os melhores resultados, por favor, considere o uso de um servidor GNU/Linux em seu lugar.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o open_basedir foi configurado no php.ini. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Por favor, remova a configuração de open_basedir de seu php.ini ou altere o PHP para 64bit.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Aparentemente a instância %s está rodando em um ambiente PHP de 32bit e o cURL não está instalado. Isto pode gerar problemas com arquivos maiores que 4GB e é altamente desencorajado.",
"Please install the cURL extension and restart your webserver." : "Por favor, instale a extensão cURL e reinicie seu servidor web.",
"Personal" : "Pessoal",
"Users" : "Usuários",
diff --git a/core/l10n/uk.js b/core/l10n/uk.js
index e051eadf5d7..32fd1a88d45 100644
--- a/core/l10n/uk.js
+++ b/core/l10n/uk.js
@@ -46,6 +46,7 @@ OC.L10N.register(
"Error loading file picker template: {error}" : "Помилка при завантаженні шаблону вибору: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Помилка при завантаженні шаблону повідомлення: {error}",
+ "read-only" : "Тільки для читання",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} файловий конфлікт","{count} файлових конфліктів","{count} файлових конфліктів"],
"One file conflict" : "Один файловий конфлікт",
"New Files" : "Нових Файлів",
@@ -78,9 +79,11 @@ OC.L10N.register(
"Share with user or group …" : "Поділитися з користувачем або групою ...",
"Share link" : "Опублікувати посилання",
"The public link will expire no later than {days} days after it is created" : "Доступ до опублікованого посилання буде припинено не пізніше ніж через {days} днів з моменту створення",
+ "Link" : "Посилання",
"Password protect" : "Захистити паролем",
"Password" : "Пароль",
"Choose a password for the public link" : "Оберіть пароль для опублікованого посилання",
+ "Allow editing" : "Дозволити редагування",
"Email link to person" : "Ел. пошта належить Пану",
"Send" : "Надіслати",
"Set expiration date" : "Встановити термін дії",
@@ -88,6 +91,7 @@ OC.L10N.register(
"Expiration date" : "Термін дії",
"Adding user..." : "Додавання користувача...",
"group" : "група",
+ "remote" : "Віддалений",
"Resharing is not allowed" : "Пере-публікація не дозволяється",
"Shared in {item} with {user}" : "Опубліковано {item} для {user}",
"Unshare" : "Закрити доступ",
@@ -96,6 +100,7 @@ OC.L10N.register(
"can edit" : "може редагувати",
"access control" : "контроль доступу",
"create" : "створити",
+ "change" : "Змінити",
"delete" : "видалити",
"Password protected" : "Захищено паролем",
"Error unsetting expiration date" : "Помилка при відміні терміна дії",
@@ -114,9 +119,11 @@ OC.L10N.register(
"Hello world!" : "Привіт світ!",
"sunny" : "сонячно",
"Hello {name}, the weather is {weather}" : "Привіт {name}, {weather} погода",
+ "Hello {name}" : "Привіт {name}",
"_download %n file_::_download %n files_" : ["завантяження %n файлу","завантаження %n файлів","завантаження %n файлів"],
"Updating {productName} to version {version}, this may take a while." : "Оновлення {productName} до версії {version}, це може займати деякий час.",
"Please reload the page." : "Будь ласка, перезавантажте сторінку.",
+ "The update was unsuccessful. " : "Оновлення завершилось невдачею.",
"The update was successful. Redirecting you to ownCloud now." : "Оновлення виконалось успішно. Перенаправляємо вас на ownCloud.",
"Couldn't reset password because the token is invalid" : "Неможливо скинути пароль, бо маркер є недійсним",
"Couldn't send reset email. Please make sure your username is correct." : "Не вдалося відправити скидання паролю. Будь ласка, переконайтеся, що ваше ім'я користувача є правильним.",
@@ -128,6 +135,10 @@ OC.L10N.register(
"Reset password" : "Скинути пароль",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X не підтримується і %s не буде коректно працювати на цій платформі. Випробовуєте на свій риск!",
"For the best results, please consider using a GNU/Linux server instead." : "Для кращих результатів розгляньте можливість використання GNU/Linux серверу",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Здається, що екземпляр цього %s працює на 32-бітному PHP середовищі і open_basedir був налаштований в php.ini. Це призведе до проблем з файлами більше 4 Гб і не рекомендується.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Будь ласка, видаліть параметр open_basedir у вашому php.ini або перейдіть на 64-бітний PHP.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Здається, що екземпляр цього %sпрацює на 32-бітному PHP середовищі і не встановлений cURL. Це призведе до проблем з файлами більше 4 Гб і не рекомендується.",
+ "Please install the cURL extension and restart your webserver." : "Будь ласка, встановіть cURL розширення і перезапустіть ваш веб-сервер.",
"Personal" : "Особисте",
"Users" : "Користувачі",
"Apps" : "Додатки",
diff --git a/core/l10n/uk.json b/core/l10n/uk.json
index 20dcdcfb492..8b916f9ecfe 100644
--- a/core/l10n/uk.json
+++ b/core/l10n/uk.json
@@ -44,6 +44,7 @@
"Error loading file picker template: {error}" : "Помилка при завантаженні шаблону вибору: {error}",
"Ok" : "Ok",
"Error loading message template: {error}" : "Помилка при завантаженні шаблону повідомлення: {error}",
+ "read-only" : "Тільки для читання",
"_{count} file conflict_::_{count} file conflicts_" : ["{count} файловий конфлікт","{count} файлових конфліктів","{count} файлових конфліктів"],
"One file conflict" : "Один файловий конфлікт",
"New Files" : "Нових Файлів",
@@ -76,9 +77,11 @@
"Share with user or group …" : "Поділитися з користувачем або групою ...",
"Share link" : "Опублікувати посилання",
"The public link will expire no later than {days} days after it is created" : "Доступ до опублікованого посилання буде припинено не пізніше ніж через {days} днів з моменту створення",
+ "Link" : "Посилання",
"Password protect" : "Захистити паролем",
"Password" : "Пароль",
"Choose a password for the public link" : "Оберіть пароль для опублікованого посилання",
+ "Allow editing" : "Дозволити редагування",
"Email link to person" : "Ел. пошта належить Пану",
"Send" : "Надіслати",
"Set expiration date" : "Встановити термін дії",
@@ -86,6 +89,7 @@
"Expiration date" : "Термін дії",
"Adding user..." : "Додавання користувача...",
"group" : "група",
+ "remote" : "Віддалений",
"Resharing is not allowed" : "Пере-публікація не дозволяється",
"Shared in {item} with {user}" : "Опубліковано {item} для {user}",
"Unshare" : "Закрити доступ",
@@ -94,6 +98,7 @@
"can edit" : "може редагувати",
"access control" : "контроль доступу",
"create" : "створити",
+ "change" : "Змінити",
"delete" : "видалити",
"Password protected" : "Захищено паролем",
"Error unsetting expiration date" : "Помилка при відміні терміна дії",
@@ -112,9 +117,11 @@
"Hello world!" : "Привіт світ!",
"sunny" : "сонячно",
"Hello {name}, the weather is {weather}" : "Привіт {name}, {weather} погода",
+ "Hello {name}" : "Привіт {name}",
"_download %n file_::_download %n files_" : ["завантяження %n файлу","завантаження %n файлів","завантаження %n файлів"],
"Updating {productName} to version {version}, this may take a while." : "Оновлення {productName} до версії {version}, це може займати деякий час.",
"Please reload the page." : "Будь ласка, перезавантажте сторінку.",
+ "The update was unsuccessful. " : "Оновлення завершилось невдачею.",
"The update was successful. Redirecting you to ownCloud now." : "Оновлення виконалось успішно. Перенаправляємо вас на ownCloud.",
"Couldn't reset password because the token is invalid" : "Неможливо скинути пароль, бо маркер є недійсним",
"Couldn't send reset email. Please make sure your username is correct." : "Не вдалося відправити скидання паролю. Будь ласка, переконайтеся, що ваше ім'я користувача є правильним.",
@@ -126,6 +133,10 @@
"Reset password" : "Скинути пароль",
"Mac OS X is not supported and %s will not work properly on this platform. Use it at your own risk! " : "Mac OS X не підтримується і %s не буде коректно працювати на цій платформі. Випробовуєте на свій риск!",
"For the best results, please consider using a GNU/Linux server instead." : "Для кращих результатів розгляньте можливість використання GNU/Linux серверу",
+ "It seems that this %s instance is running on a 32-bit PHP environment and the open_basedir has been configured in php.ini. This will lead to problems with files over 4GB and is highly discouraged." : "Здається, що екземпляр цього %s працює на 32-бітному PHP середовищі і open_basedir був налаштований в php.ini. Це призведе до проблем з файлами більше 4 Гб і не рекомендується.",
+ "Please remove the open_basedir setting within your php.ini or switch to 64-bit PHP." : "Будь ласка, видаліть параметр open_basedir у вашому php.ini або перейдіть на 64-бітний PHP.",
+ "It seems that this %s instance is running on a 32-bit PHP environment and cURL is not installed. This will lead to problems with files over 4GB and is highly discouraged." : "Здається, що екземпляр цього %sпрацює на 32-бітному PHP середовищі і не встановлений cURL. Це призведе до проблем з файлами більше 4 Гб і не рекомендується.",
+ "Please install the cURL extension and restart your webserver." : "Будь ласка, встановіть cURL розширення і перезапустіть ваш веб-сервер.",
"Personal" : "Особисте",
"Users" : "Користувачі",
"Apps" : "Додатки",
diff --git a/core/l10n/yo.js b/core/l10n/yo.js
new file mode 100644
index 00000000000..5b92c594ac0
--- /dev/null
+++ b/core/l10n/yo.js
@@ -0,0 +1,7 @@
+OC.L10N.register(
+ "core",
+ {
+ "_{count} file conflict_::_{count} file conflicts_" : ["",""],
+ "_download %n file_::_download %n files_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/core/l10n/yo.json b/core/l10n/yo.json
new file mode 100644
index 00000000000..d2c1f43f96e
--- /dev/null
+++ b/core/l10n/yo.json
@@ -0,0 +1,5 @@
+{ "translations": {
+ "_{count} file conflict_::_{count} file conflicts_" : ["",""],
+ "_download %n file_::_download %n files_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/core/templates/update.admin.php b/core/templates/update.admin.php
index 29df0dd484a..ccd5d236828 100644
--- a/core/templates/update.admin.php
+++ b/core/templates/update.admin.php
@@ -1,4 +1,4 @@
-<div class="update">
+<div class="update" data-productname="<?php p($_['productName']) ?>" data-version="<?php p($_['version']) ?>">
<div class="updateOverview">
<h2 class="title bold"><?php p($l->t('%s will be updated to version %s.',
array($_['productName'], $_['version']))); ?></h2>
diff --git a/lib/l10n/yo.js b/lib/l10n/yo.js
new file mode 100644
index 00000000000..a12702211c2
--- /dev/null
+++ b/lib/l10n/yo.js
@@ -0,0 +1,10 @@
+OC.L10N.register(
+ "lib",
+ {
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
+},
+"nplurals=2; plural=(n != 1);");
diff --git a/lib/l10n/yo.json b/lib/l10n/yo.json
new file mode 100644
index 00000000000..b994fa289eb
--- /dev/null
+++ b/lib/l10n/yo.json
@@ -0,0 +1,8 @@
+{ "translations": {
+ "_%n day ago_::_%n days ago_" : ["",""],
+ "_%n month ago_::_%n months ago_" : ["",""],
+ "_%n year ago_::_%n years ago_" : ["",""],
+ "_%n hour ago_::_%n hours ago_" : ["",""],
+ "_%n minute ago_::_%n minutes ago_" : ["",""]
+},"pluralForm" :"nplurals=2; plural=(n != 1);"
+} \ No newline at end of file
diff --git a/lib/private/app.php b/lib/private/app.php
index ecdc8ca8320..34226260689 100644
--- a/lib/private/app.php
+++ b/lib/private/app.php
@@ -1022,13 +1022,17 @@ class OC_App {
public static function isAppCompatible($ocVersion, $appInfo){
$requireMin = '';
$requireMax = '';
- if (isset($appInfo['requiremin'])) {
+ if (isset($appInfo['dependencies']['owncloud']['@attributes']['min-version'])) {
+ $requireMin = $appInfo['dependencies']['owncloud']['@attributes']['min-version'];
+ } else if (isset($appInfo['requiremin'])) {
$requireMin = $appInfo['requiremin'];
} else if (isset($appInfo['require'])) {
$requireMin = $appInfo['require'];
}
- if (isset($appInfo['requiremax'])) {
+ if (isset($appInfo['dependencies']['owncloud']['@attributes']['max-version'])) {
+ $requireMax = $appInfo['dependencies']['owncloud']['@attributes']['max-version'];
+ } else if (isset($appInfo['requiremax'])) {
$requireMax = $appInfo['requiremax'];
}
diff --git a/lib/private/app/dependencyanalyzer.php b/lib/private/app/dependencyanalyzer.php
index ae40e8523fc..e4564c4e036 100644
--- a/lib/private/app/dependencyanalyzer.php
+++ b/lib/private/app/dependencyanalyzer.php
@@ -182,6 +182,8 @@ class DependencyAnalyzer {
$minVersion = $dependencies['owncloud']['@attributes']['min-version'];
} elseif (isset($appInfo['requiremin'])) {
$minVersion = $appInfo['requiremin'];
+ } elseif (isset($appInfo['require'])) {
+ $minVersion = $appInfo['require'];
}
$maxVersion = null;
if (isset($dependencies['owncloud']['@attributes']['max-version'])) {
diff --git a/lib/private/appframework/app.php b/lib/private/appframework/app.php
index b94c7bd9957..537f10255a3 100644
--- a/lib/private/appframework/app.php
+++ b/lib/private/appframework/app.php
@@ -75,7 +75,9 @@ class App {
*/
public static function main($controllerName, $methodName, DIContainer $container, array $urlParams = null) {
if (!is_null($urlParams)) {
- $container['urlParams'] = $urlParams;
+ $container['OCP\\IRequest']->setUrlParameters($urlParams);
+ } else if (isset($container['urlParams']) && !is_null($container['urlParams'])) {
+ $container['OCP\\IRequest']->setUrlParameters($container['urlParams']);
}
$appName = $container['AppName'];
diff --git a/lib/private/appframework/dependencyinjection/dicontainer.php b/lib/private/appframework/dependencyinjection/dicontainer.php
index f6a0c0c4974..dc80d88a880 100644
--- a/lib/private/appframework/dependencyinjection/dicontainer.php
+++ b/lib/private/appframework/dependencyinjection/dicontainer.php
@@ -233,7 +233,6 @@ class DIContainer extends SimpleContainer implements IAppContainer {
/** @var $c SimpleContainer */
/** @var $server SimpleContainer */
$server = $c->query('ServerContainer');
- $server->registerParameter('urlParams', $c['urlParams']);
/** @var $server IServerContainer */
return $server->getRequest();
});
diff --git a/lib/private/appframework/http/request.php b/lib/private/appframework/http/request.php
index 350694dca81..6012033fe52 100644
--- a/lib/private/appframework/http/request.php
+++ b/lib/private/appframework/http/request.php
@@ -68,12 +68,12 @@ class Request implements \ArrayAccess, \Countable, IRequest {
$this->items['params'] = array();
if(!array_key_exists('method', $vars)) {
- $vars['method'] = 'GET';
+ $vars['method'] = 'GET';
}
foreach($this->allowedKeys as $name) {
$this->items[$name] = isset($vars[$name])
- ? $vars[$name]
+ ? $vars[$name]
: array();
}
@@ -83,7 +83,7 @@ class Request implements \ArrayAccess, \Countable, IRequest {
if(count($params) > 0) {
$this->items['params'] = $params;
if($vars['method'] === 'POST') {
- $this->items['post'] = $params;
+ $this->items['post'] = $params;
}
}
// Handle application/x-www-form-urlencoded for methods other than GET
@@ -91,12 +91,12 @@ class Request implements \ArrayAccess, \Countable, IRequest {
} elseif($vars['method'] !== 'GET'
&& $vars['method'] !== 'POST'
&& strpos($this->getHeader('Content-Type'), 'application/x-www-form-urlencoded') !== false) {
-
+
parse_str(file_get_contents($this->inputStream), $params);
if(is_array($params)) {
$this->items['params'] = $params;
}
- }
+ }
$this->items['parameters'] = array_merge(
$this->items['get'],
@@ -107,6 +107,14 @@ class Request implements \ArrayAccess, \Countable, IRequest {
}
+ public function setUrlParameters($parameters) {
+ $this->items['urlParams'] = $parameters;
+ $this->items['parameters'] = array_merge(
+ $this->items['parameters'],
+ $this->items['urlParams']
+ );
+ }
+
// Countable method.
public function count() {
return count(array_keys($this->items['parameters']));
@@ -207,8 +215,8 @@ class Request implements \ArrayAccess, \Countable, IRequest {
return $this->items['method'];
break;
default;
- return isset($this[$name])
- ? $this[$name]
+ return isset($this[$name])
+ ? $this[$name]
: null;
break;
}
diff --git a/lib/private/files/view.php b/lib/private/files/view.php
index 034c49a9059..76b7d34e756 100644
--- a/lib/private/files/view.php
+++ b/lib/private/files/view.php
@@ -212,6 +212,10 @@ class View {
}
}
+ /**
+ * @param string $path
+ * @return bool|mixed
+ */
public function rmdir($path) {
$absolutePath = $this->getAbsolutePath($path);
$mount = Filesystem::getMountManager()->find($absolutePath);
@@ -435,11 +439,17 @@ class View {
/**
* @param string $directory
+ * @return bool|mixed
*/
- public function deleteAll($directory, $empty = false) {
+ public function deleteAll($directory) {
return $this->rmdir($directory);
}
+ /**
+ * @param string $path1
+ * @param string $path2
+ * @return bool|mixed
+ */
public function rename($path1, $path2) {
$postFix1 = (substr($path1, -1, 1) === '/') ? '/' : '';
$postFix2 = (substr($path2, -1, 1) === '/') ? '/' : '';
@@ -896,6 +906,9 @@ class View {
if (!Filesystem::isValidPath($path)) {
return $data;
}
+ if (Cache\Scanner::isPartialFile($path)) {
+ return $this->getPartFileInfo($path);
+ }
$path = Filesystem::normalizePath($this->fakeRoot . '/' . $path);
$mount = Filesystem::getMountManager()->find($path);
@@ -1308,4 +1321,32 @@ class View {
return $result;
}
+
+ /**
+ * Get a fileinfo object for files that are ignored in the cache (part files)
+ *
+ * @param string $path
+ * @return \OCP\Files\FileInfo
+ */
+ private function getPartFileInfo($path) {
+ $mount = $this->getMount($path);
+ $storage = $mount->getStorage();
+ $internalPath = $mount->getInternalPath($this->getAbsolutePath($path));
+ return new FileInfo(
+ $this->getAbsolutePath($path),
+ $storage,
+ $internalPath,
+ [
+ 'fileid' => null,
+ 'mimetype' => $storage->getMimeType($internalPath),
+ 'name' => basename($path),
+ 'etag' => null,
+ 'size' => $storage->filesize($internalPath),
+ 'mtime' => $storage->filemtime($internalPath),
+ 'encrypted' => false,
+ 'permissions' => \OCP\Constants::PERMISSION_ALL
+ ],
+ $mount
+ );
+ }
}
diff --git a/lib/private/repair.php b/lib/private/repair.php
index c4f057b53ae..d9fd99707e8 100644
--- a/lib/private/repair.php
+++ b/lib/private/repair.php
@@ -11,6 +11,7 @@ namespace OC;
use OC\Hooks\BasicEmitter;
use OC\Hooks\Emitter;
use OC\Repair\AssetCache;
+use OC\Repair\CleanTags;
use OC\Repair\Collation;
use OC\Repair\FillETags;
use OC\Repair\InnoDB;
@@ -81,7 +82,8 @@ class Repair extends BasicEmitter {
new RepairLegacyStorages(\OC::$server->getConfig(), \OC_DB::getConnection()),
new RepairConfig(),
new AssetCache(),
- new FillETags(\OC_DB::getConnection())
+ new FillETags(\OC_DB::getConnection()),
+ new CleanTags(\OC_DB::getConnection()),
);
}
diff --git a/lib/private/util.php b/lib/private/util.php
index ec3640503e4..3b943f046bf 100644
--- a/lib/private/util.php
+++ b/lib/private/util.php
@@ -362,6 +362,10 @@ class OC_Util {
public static function addScript($application, $file = null) {
$path = OC_Util::generatePath($application, 'js', $file);
if (!in_array($path, self::$scripts)) {
+ // core js files need separate handling
+ if ($application !== 'core' && $file !== null) {
+ self::addTranslations($application);
+ }
self::$scripts[] = $path;
}
}
@@ -692,9 +696,9 @@ class OC_Util {
$encryptedFiles = false;
if (OC_App::isEnabled('files_encryption') === false) {
$view = new OC\Files\View('/' . OCP\User::getUser());
- $keyfilePath = '/files_encryption/keyfiles';
- if ($view->is_dir($keyfilePath)) {
- $dircontent = $view->getDirectoryContent($keyfilePath);
+ $keysPath = '/files_encryption/keys';
+ if ($view->is_dir($keysPath)) {
+ $dircontent = $view->getDirectoryContent($keysPath);
if (!empty($dircontent)) {
$encryptedFiles = true;
}
@@ -714,7 +718,7 @@ class OC_Util {
$backupExists = false;
if (OC_App::isEnabled('files_encryption') === false) {
$view = new OC\Files\View('/' . OCP\User::getUser());
- $backupPath = '/files_encryption/keyfiles.backup';
+ $backupPath = '/files_encryption/backup.decryptAll';
if ($view->is_dir($backupPath)) {
$dircontent = $view->getDirectoryContent($backupPath);
if (!empty($dircontent)) {
diff --git a/lib/public/irequest.php b/lib/public/irequest.php
index d77a9bc887a..988b3aebd7b 100644
--- a/lib/public/irequest.php
+++ b/lib/public/irequest.php
@@ -51,8 +51,10 @@ namespace OCP;
* - When accessing ->patch and the Content-Type is either application/json
* or application/x-www-form-urlencoded (most cases) it will act like ->get
* and ->post and return an array. Otherwise the raw data will be returned.
+ *
+ * @property-read string[] $server
+ * @property-read string[] $urlParams
*/
-
interface IRequest {
/**
diff --git a/lib/repair/cleantags.php b/lib/repair/cleantags.php
new file mode 100644
index 00000000000..6aa325df0b6
--- /dev/null
+++ b/lib/repair/cleantags.php
@@ -0,0 +1,114 @@
+<?php
+/**
+ * Copyright (c) 2015 Joas Schilling <nickvergessen@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace OC\Repair;
+
+use OC\DB\Connection;
+use OC\Hooks\BasicEmitter;
+use OC\RepairStep;
+
+/**
+ * Class RepairConfig
+ *
+ * @package OC\Repair
+ */
+class CleanTags extends BasicEmitter implements RepairStep {
+
+ /** @var Connection */
+ protected $connection;
+
+ /**
+ * @param Connection $connection
+ */
+ public function __construct(Connection $connection) {
+ $this->connection = $connection;
+ }
+
+ /**
+ * @return string
+ */
+ public function getName() {
+ return 'Clean tags and favorites';
+ }
+
+ /**
+ * Updates the configuration after running an update
+ */
+ public function run() {
+
+ // Delete tag entries for deleted files
+ $this->deleteOrphanEntries(
+ '%d tags for delete files have been removed.',
+ '*PREFIX*vcategory_to_object', 'objid',
+ '*PREFIX*filecache', 'fileid', 'fileid'
+ );
+
+ // Delete tag entries for deleted tags
+ $this->deleteOrphanEntries(
+ '%d tag entries for deleted tags have been removed.',
+ '*PREFIX*vcategory_to_object', 'categoryid',
+ '*PREFIX*vcategory', 'id', 'uid'
+ );
+
+ // Delete tags that have no entries
+ $this->deleteOrphanEntries(
+ '%d tags with no entries have been removed.',
+ '*PREFIX*vcategory', 'id',
+ '*PREFIX*vcategory_to_object', 'categoryid', 'type'
+ );
+ }
+
+ /**
+ * Deletes all entries from $deleteTable that do not have a matching entry in $sourceTable
+ *
+ * A query joins $deleteTable.$deleteId = $sourceTable.$sourceId and checks
+ * whether $sourceNullColumn is null. If it is null, the entry in $deleteTable
+ * is being deleted.
+ *
+ * @param string $repairInfo
+ * @param string $deleteTable
+ * @param string $deleteId
+ * @param string $sourceTable
+ * @param string $sourceId
+ * @param string $sourceNullColumn If this column is null in the source table,
+ * the entry is deleted in the $deleteTable
+ */
+ protected function deleteOrphanEntries($repairInfo, $deleteTable, $deleteId, $sourceTable, $sourceId, $sourceNullColumn) {
+ $qb = $this->connection->createQueryBuilder();
+
+ $qb->select('d.' . $deleteId)
+ ->from($deleteTable, 'd')
+ ->leftJoin('d', $sourceTable, 's', 'd.' . $deleteId . ' = s.' . $sourceId)
+ ->where(
+ 'd.type = ' . $qb->expr()->literal('files')
+ )
+ ->andWhere(
+ $qb->expr()->isNull('s.' . $sourceNullColumn)
+ );
+ $result = $qb->execute();
+
+ $orphanItems = array();
+ while ($row = $result->fetch()) {
+ $orphanItems[] = (int) $row[$deleteId];
+ }
+
+ if (!empty($orphanItems)) {
+ $orphanItemsBatch = array_chunk($orphanItems, 200);
+ foreach ($orphanItemsBatch as $items) {
+ $qb->delete($deleteTable)
+ ->where($qb->expr()->in($deleteId, ':ids'));
+ $qb->setParameter('ids', $items, \Doctrine\DBAL\Connection::PARAM_INT_ARRAY);
+ $qb->execute();
+ }
+ }
+
+ if ($repairInfo) {
+ $this->emit('\OC\Repair', 'info', array(sprintf($repairInfo, sizeof($orphanItems))));
+ }
+ }
+}
diff --git a/settings/ajax/deletekeys.php b/settings/ajax/deletekeys.php
index 86a45820af9..7d6c9a27aa0 100644
--- a/settings/ajax/deletekeys.php
+++ b/settings/ajax/deletekeys.php
@@ -4,13 +4,11 @@ OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();
$l = \OC::$server->getL10N('settings');
-$user = \OC_User::getUser();
-$view = new \OC\Files\View('/' . $user . '/files_encryption');
-$keyfilesDeleted = $view->deleteAll('keyfiles.backup');
-$sharekeysDeleted = $view->deleteAll('share-keys.backup');
+$util = new \OCA\Files_Encryption\Util(new \OC\Files\View(), \OC_User::getUser());
+$result = $util->deleteBackup('decryptAll');
-if ($keyfilesDeleted && $sharekeysDeleted) {
+if ($result) {
\OCP\JSON::success(array('data' => array('message' => $l->t('Encryption keys deleted permanently'))));
} else {
\OCP\JSON::error(array('data' => array('message' => $l->t('Couldn\'t permanently delete your encryption keys, please check your owncloud.log or ask your administrator'))));
diff --git a/settings/ajax/restorekeys.php b/settings/ajax/restorekeys.php
index 5c263fadab4..b89a8286db2 100644
--- a/settings/ajax/restorekeys.php
+++ b/settings/ajax/restorekeys.php
@@ -4,21 +4,12 @@ OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();
$l = \OC::$server->getL10N('settings');
-$user = \OC_User::getUser();
-$view = new \OC\Files\View('/' . $user . '/files_encryption');
-$keyfilesRestored = $view->rename('keyfiles.backup', 'keyfiles');
-$sharekeysRestored = $view->rename('share-keys.backup' , 'share-keys');
+$util = new \OCA\Files_Encryption\Util(new \OC\Files\View(), \OC_User::getUser());
+$result = $util->restoreBackup('decryptAll');
-if ($keyfilesRestored && $sharekeysRestored) {
+if ($result) {
\OCP\JSON::success(array('data' => array('message' => $l->t('Backups restored successfully'))));
} else {
- // if one of the move operation was succesful we remove the files back to have a consistent state
- if($keyfilesRestored) {
- $view->rename('keyfiles', 'keyfiles.backup');
- }
- if($sharekeysRestored) {
- $view->rename('share-keys' , 'share-keys.backup');
- }
\OCP\JSON::error(array('data' => array('message' => $l->t('Couldn\'t restore your encryption keys, please check your owncloud.log or ask your administrator'))));
}
diff --git a/settings/l10n/uk.js b/settings/l10n/uk.js
index 59fcc97723a..eab0685320e 100644
--- a/settings/l10n/uk.js
+++ b/settings/l10n/uk.js
@@ -33,12 +33,23 @@ OC.L10N.register(
"Enabled" : "Увімкнено",
"Not enabled" : "Вимкнено",
"Recommended" : "Рекомендуємо",
+ "Group already exists." : "Група вже існує.",
+ "Unable to add group." : "Неможливо додати групу.",
+ "Unable to delete group." : "Неможливо видалити групу.",
+ "log-level out of allowed range" : "Перевищений розмір файлу-логу",
"Saved" : "Збереженно",
"test email settings" : "перевірити налаштування електронної пошти",
"If you received this email, the settings seem to be correct." : "Якщо ви отримали цього листа, налаштування вірні.",
"A problem occurred while sending the email. Please revise your settings." : "Під час надсилання листа виникли проблеми. Будь ласка перевірте налаштування.",
"Email sent" : "Ел. пошта надіслана",
"You need to set your user email before being able to send test emails." : "Перед надсиланням тестових повідомлень ви повинні вказати свою електронну адресу.",
+ "Invalid mail address" : "Неправильна email адреса",
+ "Unable to create user." : "Неможливо створити користувача.",
+ "Your %s account was created" : "Ваш %s аккаунт створений",
+ "Unable to delete user." : "Неможливо видалити користувача.",
+ "Forbidden" : "Заборонено",
+ "Invalid user" : "Неправильний користувач",
+ "Unable to change mail address" : "Неможливо поміняти email адресу",
"Email saved" : "Адресу збережено",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ви дійсно бажаєте додати \"{domain}\" як довірений домен?",
"Add trusted domain" : "Додати довірений домен",
@@ -79,6 +90,7 @@ OC.L10N.register(
"A valid username must be provided" : "Потрібно задати вірне ім'я користувача",
"Error creating user" : "Помилка при створенні користувача",
"A valid password must be provided" : "Потрібно задати вірний пароль",
+ "A valid email must be provided" : "Вкажіть дійсний e-mail",
"__language_name__" : "__language_name__",
"Personal Info" : "Особиста інформація",
"SSL root certificates" : "SSL корневі сертифікати",
@@ -96,6 +108,8 @@ OC.L10N.register(
"TLS" : "TLS",
"Security Warning" : "Попередження про небезпеку",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Ви звертаєтесь до %s за допомогою HTTP. Ми наполегливо рекомендуємо вам налаштувати сервер на використання HTTPS.",
+ "Read-Only config enabled" : "Конфігурації дозволені тільки для читання",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Тільки перегляд був включений. Це запобігає встановити деякі конфігурації через веб-інтерфейс. Крім того, файл повинен бути доступний для запису вручну для кожного оновлення.",
"Setup Warning" : "Попередження при Налаштуванні",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Схоже, що PHP налаштовано на вичищення блоків вбудованої документації. Це зробить кілька основних додатків недоступними.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Це, ймовірно, обумовлено використанням кеша/прискорювача такого як Zend OPcache або eAccelerator.",
@@ -110,6 +124,8 @@ OC.L10N.register(
"This means that there might be problems with certain characters in file names." : "Це означає, що можуть виникати проблеми з деякими символами в іменах файлів.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Пропонуємо встановити необхідні пакети для вашої системи для підтримки однієї з наступних мов %s.",
"URL generation in notification emails" : "Генерування URL для повідомлень в електроних листах",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Якщо ваша копія ownCloud встановлена не в корені домену та використовує систему планування CRON, можливі проблеми з генерацією правильних URL. Щоб уникнути цього, встановіть опцію \"overwrite.cli.url\" файла config.php відповідно до теки розташування установки (Ймовірніше за все, це \"%s\")",
+ "Configuration Checks" : "Перевірка налаштувань",
"No problems found" : "Проблем не виявленно",
"Please double check the <a href='%s'>installation guides</a>." : "Будь ласка, перевірте <a href='%s'>інструкції по встановленню</a>.",
"Last cron was executed at %s." : "Останню cron-задачу було запущено: %s.",
@@ -129,6 +145,7 @@ OC.L10N.register(
"Enforce expiration date" : "Термін дії обов'язково",
"Allow resharing" : "Дозволити перевідкривати спільний доступ",
"Restrict users to only share with users in their groups" : "Дозволити користувачам відкривати спільний доступ лише для користувачів з їхньої групи",
+ "Allow users to send mail notification for shared files to other users" : "Дозволити користувачам сповіщати листами про спільний доступ до файлів",
"Exclude groups from sharing" : "Виключити групи зі спільного доступу",
"These groups will still be able to receive shares, but not to initiate them." : "Ці групи зможуть отримувати спільні файли, але не зможуть відправляти їх.",
"Enforce HTTPS" : "Примусове застосування HTTPS",
@@ -151,8 +168,10 @@ OC.L10N.register(
"Test email settings" : "Перевірити налаштування електронної пошти",
"Send email" : "Надіслати листа",
"Log level" : "Рівень протоколювання",
+ "Download logfile" : "Завантажити файл журналу",
"More" : "Більше",
"Less" : "Менше",
+ "The logfile is bigger than 100MB. Downloading it may take some time!" : "Лог більше, ніж 100MB. Завантаження може зайняти деякий час!",
"Version" : "Версія",
"Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Розроблено <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud громадою</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">вихідний код</a> має ліцензію <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.",
"More apps" : "Більше додатків",
@@ -162,16 +181,22 @@ OC.L10N.register(
"Documentation:" : "Документація:",
"User Documentation" : "Документація Користувача",
"Admin Documentation" : "Документація Адміністратора",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Ця програма не може бути встановлено, так як наступні залежності не будуть виконані:",
"Update to %s" : "Оновити до %s",
"Enable only for specific groups" : "Включити тільки для конкретних груп",
"Uninstall App" : "Видалити додаток",
+ "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Агов,<br><br>просто щоб ви знали, у вас є аккаунт %s.<br><br>Ваше ім'я користувача: %s<br>Перейдіть сюди: <a href=\"%s\">%s</a><br><br>",
"Cheers!" : "Будьмо!",
+ "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Агов,\n\nпросто щоб ви знали, у вас є аккаунт %s.\n\nВаше ім'я користувача: %s\nПерейдіть сюди: %s\n\n",
"Administrator Documentation" : "Документація Адміністратора",
"Online Documentation" : "Он-Лайн Документація",
"Forum" : "Форум",
"Bugtracker" : "БагТрекер",
"Commercial Support" : "Комерційна підтримка",
"Get the apps to sync your files" : "Отримати додатки для синхронізації ваших файлів",
+ "Desktop client" : "Клієнт для ПК",
+ "Android app" : "Android-додаток",
+ "iOS app" : "iOS додаток",
"If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">spread the word</a>!" : "Якщо ви бажаєте підтримати прект\n⇥⇥<a href=\"https://owncloud.org/contribute\"\n⇥⇥target=\"_blank\">приєднуйтесь до розробки</a>\n⇥⇥або\n⇥⇥<a href=\"https://owncloud.org/promote\"\n⇥⇥target=\"_blank\">розкажіть про нас</a>!",
"Show First Run Wizard again" : "Показувати Майстер Налаштувань знову",
"You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Ви використали <strong>%s</strong> із доступних <strong>%s</strong>",
@@ -208,7 +233,11 @@ OC.L10N.register(
"Delete Encryption Keys" : "Видалити ключі шифрування",
"Show storage location" : "Показати місцезнаходження сховища",
"Show last log in" : "Показати останній вхід в систему",
+ "Show user backend" : "Показати користувача",
+ "Send email to new user" : "Надіслати email новому користувачу",
+ "Show email address" : "Показати адресу електронної пошти",
"Username" : "Ім'я користувача",
+ "E-Mail" : "Адреса електронної пошти",
"Create" : "Створити",
"Admin Recovery Password" : "Пароль адміністратора для відновлення",
"Enter the recovery password in order to recover the users files during password change" : "Введіть пароль для того, щоб відновити файли користувачів при зміні паролю",
@@ -224,9 +253,11 @@ OC.L10N.register(
"Group Admin for" : "Адміністратор групи",
"Quota" : "Квота",
"Storage Location" : "Місцезнаходження сховища",
+ "User Backend" : "Внутрішній користувач",
"Last Login" : "Останній вхід",
"change full name" : "змінити ім'я",
"set new password" : "встановити новий пароль",
+ "change email address" : "Змінити адресу електронної пошти",
"Default" : "За замовчуванням"
},
"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);");
diff --git a/settings/l10n/uk.json b/settings/l10n/uk.json
index e338b6be518..964d2e16bca 100644
--- a/settings/l10n/uk.json
+++ b/settings/l10n/uk.json
@@ -31,12 +31,23 @@
"Enabled" : "Увімкнено",
"Not enabled" : "Вимкнено",
"Recommended" : "Рекомендуємо",
+ "Group already exists." : "Група вже існує.",
+ "Unable to add group." : "Неможливо додати групу.",
+ "Unable to delete group." : "Неможливо видалити групу.",
+ "log-level out of allowed range" : "Перевищений розмір файлу-логу",
"Saved" : "Збереженно",
"test email settings" : "перевірити налаштування електронної пошти",
"If you received this email, the settings seem to be correct." : "Якщо ви отримали цього листа, налаштування вірні.",
"A problem occurred while sending the email. Please revise your settings." : "Під час надсилання листа виникли проблеми. Будь ласка перевірте налаштування.",
"Email sent" : "Ел. пошта надіслана",
"You need to set your user email before being able to send test emails." : "Перед надсиланням тестових повідомлень ви повинні вказати свою електронну адресу.",
+ "Invalid mail address" : "Неправильна email адреса",
+ "Unable to create user." : "Неможливо створити користувача.",
+ "Your %s account was created" : "Ваш %s аккаунт створений",
+ "Unable to delete user." : "Неможливо видалити користувача.",
+ "Forbidden" : "Заборонено",
+ "Invalid user" : "Неправильний користувач",
+ "Unable to change mail address" : "Неможливо поміняти email адресу",
"Email saved" : "Адресу збережено",
"Are you really sure you want add \"{domain}\" as trusted domain?" : "Ви дійсно бажаєте додати \"{domain}\" як довірений домен?",
"Add trusted domain" : "Додати довірений домен",
@@ -77,6 +88,7 @@
"A valid username must be provided" : "Потрібно задати вірне ім'я користувача",
"Error creating user" : "Помилка при створенні користувача",
"A valid password must be provided" : "Потрібно задати вірний пароль",
+ "A valid email must be provided" : "Вкажіть дійсний e-mail",
"__language_name__" : "__language_name__",
"Personal Info" : "Особиста інформація",
"SSL root certificates" : "SSL корневі сертифікати",
@@ -94,6 +106,8 @@
"TLS" : "TLS",
"Security Warning" : "Попередження про небезпеку",
"You are accessing %s via HTTP. We strongly suggest you configure your server to require using HTTPS instead." : "Ви звертаєтесь до %s за допомогою HTTP. Ми наполегливо рекомендуємо вам налаштувати сервер на використання HTTPS.",
+ "Read-Only config enabled" : "Конфігурації дозволені тільки для читання",
+ "The Read-Only config has been enabled. This prevents setting some configurations via the web-interface. Furthermore, the file needs to be made writable manually for every update." : "Тільки перегляд був включений. Це запобігає встановити деякі конфігурації через веб-інтерфейс. Крім того, файл повинен бути доступний для запису вручну для кожного оновлення.",
"Setup Warning" : "Попередження при Налаштуванні",
"PHP is apparently setup to strip inline doc blocks. This will make several core apps inaccessible." : "Схоже, що PHP налаштовано на вичищення блоків вбудованої документації. Це зробить кілька основних додатків недоступними.",
"This is probably caused by a cache/accelerator such as Zend OPcache or eAccelerator." : "Це, ймовірно, обумовлено використанням кеша/прискорювача такого як Zend OPcache або eAccelerator.",
@@ -108,6 +122,8 @@
"This means that there might be problems with certain characters in file names." : "Це означає, що можуть виникати проблеми з деякими символами в іменах файлів.",
"We strongly suggest installing the required packages on your system to support one of the following locales: %s." : "Пропонуємо встановити необхідні пакети для вашої системи для підтримки однієї з наступних мов %s.",
"URL generation in notification emails" : "Генерування URL для повідомлень в електроних листах",
+ "If your installation is not installed in the root of the domain and uses system cron, there can be issues with the URL generation. To avoid these problems, please set the \"overwrite.cli.url\" option in your config.php file to the webroot path of your installation (Suggested: \"%s\")" : "Якщо ваша копія ownCloud встановлена не в корені домену та використовує систему планування CRON, можливі проблеми з генерацією правильних URL. Щоб уникнути цього, встановіть опцію \"overwrite.cli.url\" файла config.php відповідно до теки розташування установки (Ймовірніше за все, це \"%s\")",
+ "Configuration Checks" : "Перевірка налаштувань",
"No problems found" : "Проблем не виявленно",
"Please double check the <a href='%s'>installation guides</a>." : "Будь ласка, перевірте <a href='%s'>інструкції по встановленню</a>.",
"Last cron was executed at %s." : "Останню cron-задачу було запущено: %s.",
@@ -127,6 +143,7 @@
"Enforce expiration date" : "Термін дії обов'язково",
"Allow resharing" : "Дозволити перевідкривати спільний доступ",
"Restrict users to only share with users in their groups" : "Дозволити користувачам відкривати спільний доступ лише для користувачів з їхньої групи",
+ "Allow users to send mail notification for shared files to other users" : "Дозволити користувачам сповіщати листами про спільний доступ до файлів",
"Exclude groups from sharing" : "Виключити групи зі спільного доступу",
"These groups will still be able to receive shares, but not to initiate them." : "Ці групи зможуть отримувати спільні файли, але не зможуть відправляти їх.",
"Enforce HTTPS" : "Примусове застосування HTTPS",
@@ -149,8 +166,10 @@
"Test email settings" : "Перевірити налаштування електронної пошти",
"Send email" : "Надіслати листа",
"Log level" : "Рівень протоколювання",
+ "Download logfile" : "Завантажити файл журналу",
"More" : "Більше",
"Less" : "Менше",
+ "The logfile is bigger than 100MB. Downloading it may take some time!" : "Лог більше, ніж 100MB. Завантаження може зайняти деякий час!",
"Version" : "Версія",
"Developed by the <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud community</a>, the <a href=\"https://github.com/owncloud\" target=\"_blank\">source code</a> is licensed under the <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>." : "Розроблено <a href=\"http://ownCloud.org/contact\" target=\"_blank\">ownCloud громадою</a>, <a href=\"https://github.com/owncloud\" target=\"_blank\">вихідний код</a> має ліцензію <a href=\"http://www.gnu.org/licenses/agpl-3.0.html\" target=\"_blank\"><abbr title=\"Affero General Public License\">AGPL</abbr></a>.",
"More apps" : "Більше додатків",
@@ -160,16 +179,22 @@
"Documentation:" : "Документація:",
"User Documentation" : "Документація Користувача",
"Admin Documentation" : "Документація Адміністратора",
+ "This app cannot be installed because the following dependencies are not fulfilled:" : "Ця програма не може бути встановлено, так як наступні залежності не будуть виконані:",
"Update to %s" : "Оновити до %s",
"Enable only for specific groups" : "Включити тільки для конкретних груп",
"Uninstall App" : "Видалити додаток",
+ "Hey there,<br><br>just letting you know that you now have an %s account.<br><br>Your username: %s<br>Access it: <a href=\"%s\">%s</a><br><br>" : "Агов,<br><br>просто щоб ви знали, у вас є аккаунт %s.<br><br>Ваше ім'я користувача: %s<br>Перейдіть сюди: <a href=\"%s\">%s</a><br><br>",
"Cheers!" : "Будьмо!",
+ "Hey there,\n\njust letting you know that you now have an %s account.\n\nYour username: %s\nAccess it: %s\n\n" : "Агов,\n\nпросто щоб ви знали, у вас є аккаунт %s.\n\nВаше ім'я користувача: %s\nПерейдіть сюди: %s\n\n",
"Administrator Documentation" : "Документація Адміністратора",
"Online Documentation" : "Он-Лайн Документація",
"Forum" : "Форум",
"Bugtracker" : "БагТрекер",
"Commercial Support" : "Комерційна підтримка",
"Get the apps to sync your files" : "Отримати додатки для синхронізації ваших файлів",
+ "Desktop client" : "Клієнт для ПК",
+ "Android app" : "Android-додаток",
+ "iOS app" : "iOS додаток",
"If you want to support the project\n\t\t<a href=\"https://owncloud.org/contribute\"\n\t\t\ttarget=\"_blank\">join development</a>\n\t\tor\n\t\t<a href=\"https://owncloud.org/promote\"\n\t\t\ttarget=\"_blank\">spread the word</a>!" : "Якщо ви бажаєте підтримати прект\n⇥⇥<a href=\"https://owncloud.org/contribute\"\n⇥⇥target=\"_blank\">приєднуйтесь до розробки</a>\n⇥⇥або\n⇥⇥<a href=\"https://owncloud.org/promote\"\n⇥⇥target=\"_blank\">розкажіть про нас</a>!",
"Show First Run Wizard again" : "Показувати Майстер Налаштувань знову",
"You have used <strong>%s</strong> of the available <strong>%s</strong>" : "Ви використали <strong>%s</strong> із доступних <strong>%s</strong>",
@@ -206,7 +231,11 @@
"Delete Encryption Keys" : "Видалити ключі шифрування",
"Show storage location" : "Показати місцезнаходження сховища",
"Show last log in" : "Показати останній вхід в систему",
+ "Show user backend" : "Показати користувача",
+ "Send email to new user" : "Надіслати email новому користувачу",
+ "Show email address" : "Показати адресу електронної пошти",
"Username" : "Ім'я користувача",
+ "E-Mail" : "Адреса електронної пошти",
"Create" : "Створити",
"Admin Recovery Password" : "Пароль адміністратора для відновлення",
"Enter the recovery password in order to recover the users files during password change" : "Введіть пароль для того, щоб відновити файли користувачів при зміні паролю",
@@ -222,9 +251,11 @@
"Group Admin for" : "Адміністратор групи",
"Quota" : "Квота",
"Storage Location" : "Місцезнаходження сховища",
+ "User Backend" : "Внутрішній користувач",
"Last Login" : "Останній вхід",
"change full name" : "змінити ім'я",
"set new password" : "встановити новий пароль",
+ "change email address" : "Змінити адресу електронної пошти",
"Default" : "За замовчуванням"
},"pluralForm" :"nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);"
} \ No newline at end of file
diff --git a/tests/lib/app.php b/tests/lib/app.php
index 23c1a340e03..1bd350f216a 100644
--- a/tests/lib/app.php
+++ b/tests/lib/app.php
@@ -112,7 +112,7 @@ class Test_App extends \Test\TestCase {
),
true
),
- // multiple OC number
+ // multiple OC number
array(
'4.3.1',
array(
@@ -120,7 +120,7 @@ class Test_App extends \Test\TestCase {
),
true
),
- // single app number
+ // single app number
array(
'4',
array(
@@ -208,6 +208,55 @@ class Test_App extends \Test\TestCase {
),
true
),
+ // dependencies versions before require*
+ array(
+ '6.0.0.0',
+ array(
+ 'requiremin' => '5.0',
+ 'requiremax' => '7.0',
+ 'dependencies' => array(
+ 'owncloud' => array(
+ '@attributes' => array(
+ 'min-version' => '7.0',
+ 'max-version' => '7.0',
+ ),
+ ),
+ ),
+ ),
+ false
+ ),
+ array(
+ '6.0.0.0',
+ array(
+ 'requiremin' => '5.0',
+ 'requiremax' => '7.0',
+ 'dependencies' => array(
+ 'owncloud' => array(
+ '@attributes' => array(
+ 'min-version' => '5.0',
+ 'max-version' => '5.0',
+ ),
+ ),
+ ),
+ ),
+ false
+ ),
+ array(
+ '6.0.0.0',
+ array(
+ 'requiremin' => '5.0',
+ 'requiremax' => '5.0',
+ 'dependencies' => array(
+ 'owncloud' => array(
+ '@attributes' => array(
+ 'min-version' => '5.0',
+ 'max-version' => '7.0',
+ ),
+ ),
+ ),
+ ),
+ true
+ ),
);
}
diff --git a/tests/lib/appframework/http/RequestTest.php b/tests/lib/appframework/http/RequestTest.php
index caa22c84415..85db76efe71 100644
--- a/tests/lib/appframework/http/RequestTest.php
+++ b/tests/lib/appframework/http/RequestTest.php
@@ -214,4 +214,21 @@ class RequestTest extends \Test\TestCase {
$this->fail('Expected LogicException.');
}
+
+
+ public function testSetUrlParameters() {
+ $vars = array(
+ 'post' => array(),
+ 'method' => 'POST',
+ 'urlParams' => array('id' => '2'),
+ );
+
+ $request = new Request($vars, $this->stream);
+
+ $newParams = array('id' => '3', 'test' => 'test2');
+ $request->setUrlParameters($newParams);
+ $this->assertEquals('test2', $request->getParam('test'));
+ $this->assertEquals('3', $request->getParam('id'));
+ $this->assertEquals('3', $request->getParams()['id']);
+ }
}
diff --git a/tests/lib/files/view.php b/tests/lib/files/view.php
index 25065967260..3ff19d7385d 100644
--- a/tests/lib/files/view.php
+++ b/tests/lib/files/view.php
@@ -703,6 +703,20 @@ class View extends \Test\TestCase {
$this->assertEquals($expectedPath, $view->getAbsolutePath($relativePath));
}
+ public function testPartFileInfo() {
+ $storage = new Temporary(array());
+ $scanner = $storage->getScanner();
+ \OC\Files\Filesystem::mount($storage, array(), '/test/');
+ $storage->file_put_contents('test.part', 'foobar');
+ $scanner->scan('');
+ $view = new \OC\Files\View('/test');
+ $info = $view->getFileInfo('test.part');
+
+ $this->assertInstanceOf('\OCP\Files\FileInfo', $info);
+ $this->assertNull($info->getId());
+ $this->assertEquals(6, $info->getSize());
+ }
+
function absolutePathProvider() {
return array(
array('/files/', ''),
diff --git a/tests/lib/memcache/redis.php b/tests/lib/memcache/redis.php
index c0bd18b46f9..2e3c5d735fe 100644
--- a/tests/lib/memcache/redis.php
+++ b/tests/lib/memcache/redis.php
@@ -16,7 +16,17 @@ class Redis extends Cache {
if (!\OC\Memcache\Redis::isAvailable()) {
self::markTestSkipped('The redis extension is not available.');
}
+
+ set_error_handler(
+ function($errno, $errstr) {
+ restore_error_handler();
+ self::markTestSkipped($errstr);
+ },
+ E_WARNING
+ );
$instance = new \OC\Memcache\Redis(self::getUniqueID());
+ restore_error_handler();
+
if ($instance->set(self::getUniqueID(), self::getUniqueID()) === false) {
self::markTestSkipped('redis server seems to be down.');
}
diff --git a/tests/lib/repair/cleantags.php b/tests/lib/repair/cleantags.php
new file mode 100644
index 00000000000..29a1a8b432e
--- /dev/null
+++ b/tests/lib/repair/cleantags.php
@@ -0,0 +1,143 @@
+<?php
+/**
+ * Copyright (c) 2015 Joas Schilling <nickvergessen@owncloud.com>
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+namespace Test\Repair;
+
+/**
+ * Tests for the cleaning the tags tables
+ *
+ * @see \OC\Repair\CleanTags
+ */
+class CleanTags extends \Test\TestCase {
+
+ /** @var \OC\RepairStep */
+ private $repair;
+
+ /** @var \Doctrine\DBAL\Connection */
+ private $connection;
+
+ /** @var array */
+ protected $tagCategories;
+
+ /** @var int */
+ protected $createdFile;
+
+ protected function setUp() {
+ parent::setUp();
+
+ $this->connection = \OC::$server->getDatabaseConnection();
+ $this->repair = new \OC\Repair\CleanTags($this->connection);
+ }
+
+ protected function tearDown() {
+ $qb = $this->connection->createQueryBuilder();
+ $qb->delete('*PREFIX*vcategory')
+ ->where('uid = ' . $qb->createNamedParameter('TestRepairCleanTags'))
+ ->execute();
+
+ $qb->delete('*PREFIX*vcategory_to_object')
+ ->where($qb->expr()->in('categoryid', ':ids'));
+ $qb->setParameter('ids', $this->tagCategories, \Doctrine\DBAL\Connection::PARAM_INT_ARRAY);
+ $qb->execute();
+
+ $qb->delete('*PREFIX*filecache')
+ ->where('fileid = ' . $qb->createNamedParameter($this->createdFile, \PDO::PARAM_INT))
+ ->execute();
+
+ parent::tearDown();
+ }
+
+ public function testRun() {
+ $cat1 = $this->addTagCategory('TestRepairCleanTags', 'files'); // Retained
+ $cat2 = $this->addTagCategory('TestRepairCleanTags2', 'files'); // Deleted: Category is empty
+ $cat3 = $this->addTagCategory('TestRepairCleanTags', 'contacts'); // Retained
+ $file = $this->getFileID();
+
+ $this->addTagEntry($file, $cat2, 'files'); // Retained
+ $this->addTagEntry($file + 1, $cat1, 'files'); // Deleted: File is NULL
+ $this->addTagEntry(9999999, $cat3, 'contacts'); // Retained
+ $this->addTagEntry($file, $cat3 + 1, 'files'); // Deleted: Category is NULL
+
+ $this->assertEntryCount('*PREFIX*vcategory', 3, 'Assert tag categories count before repair step');
+ $this->assertEntryCount('*PREFIX*vcategory_to_object', 4, 'Assert tag entries count before repair step');
+ $this->repair->run();
+ $this->assertEntryCount('*PREFIX*vcategory', 2, 'Assert tag categories count after repair step');
+ $this->assertEntryCount('*PREFIX*vcategory_to_object', 2, 'Assert tag entries count after repair step');
+ }
+
+ /**
+ * @param string $tableName
+ * @param int $expected
+ * @param string $message
+ */
+ protected function assertEntryCount($tableName, $expected, $message = '') {
+ $qb = $this->connection->createQueryBuilder();
+ $result = $qb->select('COUNT(*)')
+ ->from($tableName)
+ ->execute();
+
+ $this->assertEquals($expected, $result->fetchColumn(), $message);
+ }
+
+ /**
+ * Adds a new tag category to the database
+ *
+ * @param string $category
+ * @param string $type
+ * @return int
+ */
+ protected function addTagCategory($category, $type) {
+ $qb = $this->connection->createQueryBuilder();
+ $qb->insert('*PREFIX*vcategory')
+ ->values([
+ 'uid' => $qb->createNamedParameter('TestRepairCleanTags'),
+ 'category' => $qb->createNamedParameter($category),
+ 'type' => $qb->createNamedParameter($type),
+ ])
+ ->execute();
+
+ $id = (int) $this->connection->lastInsertId();
+ $this->tagCategories[] = $id;
+ return $id;
+ }
+
+ /**
+ * Adds a new tag entry to the database
+ * @param int $objectId
+ * @param int $category
+ * @param string $type
+ */
+ protected function addTagEntry($objectId, $category, $type) {
+ $qb = $this->connection->createQueryBuilder();
+ $qb->insert('*PREFIX*vcategory_to_object')
+ ->values([
+ 'objid' => $qb->createNamedParameter($objectId, \PDO::PARAM_INT),
+ 'categoryid' => $qb->createNamedParameter($category, \PDO::PARAM_INT),
+ 'type' => $qb->createNamedParameter($type),
+ ])
+ ->execute();
+ }
+
+ /**
+ * Gets the last fileid from the file cache
+ *
+ * @return int
+ */
+ protected function getFileID() {
+ $qb = $this->connection->createQueryBuilder();
+
+ // We create a new file entry and delete it after the test again
+ $qb->insert('*PREFIX*filecache')
+ ->values([
+ 'path' => $qb->createNamedParameter('TestRepairCleanTags'),
+ ])
+ ->execute();
+ $this->createdFile = (int) $this->connection->lastInsertId();
+ return $this->createdFile;
+ }
+}