summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorJan-Christoph Borchardt <hey@jancborchardt.net>2013-01-15 20:40:38 +0700
committerJan-Christoph Borchardt <hey@jancborchardt.net>2013-01-15 20:40:38 +0700
commit6182b1353bd53bb6bdc5b06248d9742e97d2e249 (patch)
treeb154b88d910c57d17b07ce482cbeb98cb791a106 /apps
parent74b4fefda87feeaf51633ea7794ac498f7dce892 (diff)
parentbb9cc227c2583adc6b51a1f6d75a9fc8333836b9 (diff)
downloadnextcloud-server-6182b1353bd53bb6bdc5b06248d9742e97d2e249.tar.gz
nextcloud-server-6182b1353bd53bb6bdc5b06248d9742e97d2e249.zip
merge master into navigation
Diffstat (limited to 'apps')
-rw-r--r--apps/files/admin.php7
-rw-r--r--apps/files/ajax/move.php5
-rw-r--r--apps/files/ajax/rename.php8
-rw-r--r--apps/files/ajax/timezone.php2
-rw-r--r--apps/files/ajax/upload.php11
-rw-r--r--apps/files/appinfo/remote.php1
-rw-r--r--apps/files/css/files.css47
-rw-r--r--apps/files/download.php7
-rw-r--r--apps/files/index.php155
-rw-r--r--apps/files/js/filelist.js12
-rw-r--r--apps/files/js/files.js119
-rw-r--r--apps/files/js/keyboardshortcuts.js3
-rw-r--r--apps/files/js/timezone.js12
-rw-r--r--apps/files/l10n/bg_BG.php28
-rw-r--r--apps/files/l10n/bn_BD.php71
-rw-r--r--apps/files/l10n/ca.php11
-rw-r--r--apps/files/l10n/cs_CZ.php11
-rw-r--r--apps/files/l10n/da.php5
-rw-r--r--apps/files/l10n/de.php11
-rw-r--r--apps/files/l10n/de_DE.php11
-rw-r--r--apps/files/l10n/el.php7
-rw-r--r--apps/files/l10n/eo.php3
-rw-r--r--apps/files/l10n/es.php10
-rw-r--r--apps/files/l10n/es_AR.php11
-rw-r--r--apps/files/l10n/et_EE.php3
-rw-r--r--apps/files/l10n/eu.php3
-rw-r--r--apps/files/l10n/fa.php1
-rw-r--r--apps/files/l10n/fi_FI.php10
-rw-r--r--apps/files/l10n/fr.php15
-rw-r--r--apps/files/l10n/gl.php11
-rw-r--r--apps/files/l10n/he.php3
-rw-r--r--apps/files/l10n/hu_HU.php67
-rw-r--r--apps/files/l10n/id.php1
-rw-r--r--apps/files/l10n/is.php71
-rw-r--r--apps/files/l10n/it.php11
-rw-r--r--apps/files/l10n/ja_JP.php11
-rw-r--r--apps/files/l10n/ko.php11
-rw-r--r--apps/files/l10n/ku_IQ.php1
-rw-r--r--apps/files/l10n/mk.php25
-rw-r--r--apps/files/l10n/ms_MY.php1
-rw-r--r--apps/files/l10n/nb_NO.php4
-rw-r--r--apps/files/l10n/nl.php7
-rw-r--r--apps/files/l10n/pl.php8
-rw-r--r--apps/files/l10n/pt_BR.php3
-rw-r--r--apps/files/l10n/pt_PT.php11
-rw-r--r--apps/files/l10n/ro.php22
-rw-r--r--apps/files/l10n/ru.php11
-rw-r--r--apps/files/l10n/ru_RU.php4
-rw-r--r--apps/files/l10n/si_LK.php2
-rw-r--r--apps/files/l10n/sk_SK.php3
-rw-r--r--apps/files/l10n/sl.php3
-rw-r--r--apps/files/l10n/sr.php1
-rw-r--r--apps/files/l10n/sv.php8
-rw-r--r--apps/files/l10n/ta_LK.php3
-rw-r--r--apps/files/l10n/th_TH.php4
-rw-r--r--apps/files/l10n/tr.php12
-rw-r--r--apps/files/l10n/uk.php3
-rw-r--r--apps/files/l10n/vi.php3
-rw-r--r--apps/files/l10n/zh_CN.GB2312.php2
-rw-r--r--apps/files/l10n/zh_CN.php11
-rw-r--r--apps/files/l10n/zh_TW.php39
-rw-r--r--apps/files/templates/admin.php11
-rw-r--r--apps/files/templates/index.php10
-rw-r--r--apps/files/templates/part.breadcrumb.php21
-rw-r--r--apps/files/templates/part.list.php136
-rw-r--r--apps/files_encryption/l10n/bg_BG.php6
-rw-r--r--apps/files_encryption/l10n/bn_BD.php6
-rw-r--r--apps/files_encryption/l10n/he.php6
-rw-r--r--apps/files_encryption/l10n/hu_HU.php4
-rw-r--r--apps/files_encryption/l10n/is.php6
-rw-r--r--apps/files_encryption/l10n/mk.php6
-rw-r--r--apps/files_encryption/l10n/tr.php6
-rw-r--r--apps/files_encryption/settings.php4
-rw-r--r--apps/files_encryption/templates/settings.php12
-rw-r--r--apps/files_external/l10n/bg_BG.php16
-rw-r--r--apps/files_external/l10n/bn_BD.php24
-rw-r--r--apps/files_external/l10n/da.php2
-rw-r--r--apps/files_external/l10n/de.php4
-rw-r--r--apps/files_external/l10n/de_DE.php2
-rw-r--r--apps/files_external/l10n/el.php2
-rw-r--r--apps/files_external/l10n/eu.php2
-rw-r--r--apps/files_external/l10n/fr.php2
-rw-r--r--apps/files_external/l10n/gl.php4
-rw-r--r--apps/files_external/l10n/hu_HU.php23
-rw-r--r--apps/files_external/l10n/is.php26
-rw-r--r--apps/files_external/l10n/ko.php2
-rw-r--r--apps/files_external/l10n/mk.php23
-rw-r--r--apps/files_external/l10n/nl.php2
-rw-r--r--apps/files_external/l10n/pt_PT.php2
-rw-r--r--apps/files_external/l10n/ru_RU.php2
-rw-r--r--apps/files_external/l10n/sv.php2
-rw-r--r--apps/files_external/l10n/tr.php13
-rw-r--r--apps/files_external/l10n/zh_CN.php2
-rwxr-xr-xapps/files_external/lib/config.php4
-rw-r--r--apps/files_external/lib/webdav.php2
-rw-r--r--apps/files_external/settings.php2
-rw-r--r--apps/files_external/templates/settings.php11
-rw-r--r--apps/files_sharing/appinfo/app.php2
-rw-r--r--apps/files_sharing/l10n/ar.php9
-rw-r--r--apps/files_sharing/l10n/bg_BG.php9
-rw-r--r--apps/files_sharing/l10n/bn_BD.php9
-rw-r--r--apps/files_sharing/l10n/hu_HU.php11
-rw-r--r--apps/files_sharing/l10n/is.php9
-rw-r--r--apps/files_sharing/l10n/mk.php9
-rw-r--r--apps/files_sharing/public.php52
-rw-r--r--apps/files_versions/ajax/expireAll.php44
-rw-r--r--apps/files_versions/ajax/getVersions.php5
-rw-r--r--apps/files_versions/ajax/rollbackVersion.php11
-rw-r--r--apps/files_versions/history.php6
-rw-r--r--apps/files_versions/js/settings-personal.js39
-rw-r--r--apps/files_versions/l10n/ar.php5
-rw-r--r--apps/files_versions/l10n/bg_BG.php4
-rw-r--r--apps/files_versions/l10n/bn_BD.php5
-rw-r--r--apps/files_versions/l10n/ca.php3
-rw-r--r--apps/files_versions/l10n/cs_CZ.php3
-rw-r--r--apps/files_versions/l10n/da.php3
-rw-r--r--apps/files_versions/l10n/de.php3
-rw-r--r--apps/files_versions/l10n/de_DE.php3
-rw-r--r--apps/files_versions/l10n/el.php3
-rw-r--r--apps/files_versions/l10n/eo.php3
-rw-r--r--apps/files_versions/l10n/es.php3
-rw-r--r--apps/files_versions/l10n/es_AR.php3
-rw-r--r--apps/files_versions/l10n/et_EE.php3
-rw-r--r--apps/files_versions/l10n/eu.php3
-rw-r--r--apps/files_versions/l10n/fi_FI.php3
-rw-r--r--apps/files_versions/l10n/fr.php3
-rw-r--r--apps/files_versions/l10n/gl.php3
-rw-r--r--apps/files_versions/l10n/he.php3
-rw-r--r--apps/files_versions/l10n/hu_HU.php5
-rw-r--r--apps/files_versions/l10n/id.php3
-rw-r--r--apps/files_versions/l10n/is.php5
-rw-r--r--apps/files_versions/l10n/it.php3
-rw-r--r--apps/files_versions/l10n/ja_JP.php3
-rw-r--r--apps/files_versions/l10n/ko.php3
-rw-r--r--apps/files_versions/l10n/ku_IQ.php3
-rw-r--r--apps/files_versions/l10n/lt_LT.php3
-rw-r--r--apps/files_versions/l10n/mk.php5
-rw-r--r--apps/files_versions/l10n/nb_NO.php2
-rw-r--r--apps/files_versions/l10n/nl.php3
-rw-r--r--apps/files_versions/l10n/pl.php3
-rw-r--r--apps/files_versions/l10n/pt_BR.php3
-rw-r--r--apps/files_versions/l10n/pt_PT.php3
-rw-r--r--apps/files_versions/l10n/ro.php3
-rw-r--r--apps/files_versions/l10n/ru.php3
-rw-r--r--apps/files_versions/l10n/ru_RU.php3
-rw-r--r--apps/files_versions/l10n/si_LK.php3
-rw-r--r--apps/files_versions/l10n/sk_SK.php3
-rw-r--r--apps/files_versions/l10n/sl.php3
-rw-r--r--apps/files_versions/l10n/sv.php3
-rw-r--r--apps/files_versions/l10n/ta_LK.php3
-rw-r--r--apps/files_versions/l10n/th_TH.php3
-rw-r--r--apps/files_versions/l10n/tr.php5
-rw-r--r--apps/files_versions/l10n/uk.php3
-rw-r--r--apps/files_versions/l10n/vi.php3
-rw-r--r--apps/files_versions/l10n/zh_CN.GB2312.php3
-rw-r--r--apps/files_versions/l10n/zh_CN.php3
-rw-r--r--apps/files_versions/l10n/zh_TW.php2
-rw-r--r--apps/files_versions/lib/hooks.php40
-rw-r--r--apps/files_versions/lib/versions.php385
-rw-r--r--apps/files_versions/settings-personal.php7
-rw-r--r--apps/files_versions/templates/settings-personal.php14
-rw-r--r--apps/user_ldap/css/settings.css4
-rw-r--r--apps/user_ldap/l10n/ar.php3
-rw-r--r--apps/user_ldap/l10n/bg_BG.php4
-rw-r--r--apps/user_ldap/l10n/bn_BD.php37
-rw-r--r--apps/user_ldap/l10n/da.php14
-rw-r--r--apps/user_ldap/l10n/de.php3
-rw-r--r--apps/user_ldap/l10n/de_DE.php2
-rw-r--r--apps/user_ldap/l10n/el.php21
-rw-r--r--apps/user_ldap/l10n/es.php2
-rw-r--r--apps/user_ldap/l10n/es_AR.php2
-rw-r--r--apps/user_ldap/l10n/eu.php2
-rw-r--r--apps/user_ldap/l10n/fr.php2
-rw-r--r--apps/user_ldap/l10n/gl.php6
-rw-r--r--apps/user_ldap/l10n/he.php12
-rw-r--r--apps/user_ldap/l10n/hu_HU.php38
-rw-r--r--apps/user_ldap/l10n/is.php5
-rw-r--r--apps/user_ldap/l10n/ko.php2
-rw-r--r--apps/user_ldap/l10n/mk.php5
-rw-r--r--apps/user_ldap/l10n/nl.php2
-rw-r--r--apps/user_ldap/l10n/pl.php2
-rw-r--r--apps/user_ldap/l10n/pt_PT.php2
-rw-r--r--apps/user_ldap/l10n/ro.php2
-rw-r--r--apps/user_ldap/l10n/ru_RU.php2
-rw-r--r--apps/user_ldap/l10n/sv.php2
-rw-r--r--apps/user_ldap/l10n/tr.php24
-rw-r--r--apps/user_ldap/l10n/uk.php2
-rw-r--r--apps/user_ldap/l10n/zh_CN.php3
-rw-r--r--apps/user_ldap/lib/access.php132
-rw-r--r--apps/user_ldap/lib/connection.php6
-rw-r--r--apps/user_ldap/settings.php3
-rw-r--r--apps/user_ldap/templates/settings.php8
-rw-r--r--apps/user_webdavauth/l10n/ar.php2
-rw-r--r--apps/user_webdavauth/l10n/bn_BD.php3
-rw-r--r--apps/user_webdavauth/l10n/ca.php2
-rw-r--r--apps/user_webdavauth/l10n/cs_CZ.php2
-rw-r--r--apps/user_webdavauth/l10n/da.php3
-rw-r--r--apps/user_webdavauth/l10n/de.php2
-rw-r--r--apps/user_webdavauth/l10n/de_DE.php2
-rw-r--r--apps/user_webdavauth/l10n/el.php2
-rw-r--r--apps/user_webdavauth/l10n/eo.php2
-rw-r--r--apps/user_webdavauth/l10n/es.php2
-rw-r--r--apps/user_webdavauth/l10n/es_AR.php2
-rw-r--r--apps/user_webdavauth/l10n/eu.php2
-rw-r--r--apps/user_webdavauth/l10n/fr.php2
-rw-r--r--apps/user_webdavauth/l10n/gl.php2
-rw-r--r--apps/user_webdavauth/l10n/hu_HU.php3
-rw-r--r--apps/user_webdavauth/l10n/is.php3
-rw-r--r--apps/user_webdavauth/l10n/it.php2
-rw-r--r--apps/user_webdavauth/l10n/ja_JP.php2
-rw-r--r--apps/user_webdavauth/l10n/ko.php2
-rw-r--r--apps/user_webdavauth/l10n/mk.php3
-rw-r--r--apps/user_webdavauth/l10n/nb_NO.php3
-rw-r--r--apps/user_webdavauth/l10n/nl.php2
-rw-r--r--apps/user_webdavauth/l10n/pl.php2
-rw-r--r--apps/user_webdavauth/l10n/pt_PT.php2
-rw-r--r--apps/user_webdavauth/l10n/ro.php3
-rw-r--r--apps/user_webdavauth/l10n/ru.php2
-rw-r--r--apps/user_webdavauth/l10n/ru_RU.php2
-rw-r--r--apps/user_webdavauth/l10n/sl.php2
-rw-r--r--apps/user_webdavauth/l10n/sv.php2
-rw-r--r--apps/user_webdavauth/l10n/tr.php2
-rw-r--r--apps/user_webdavauth/l10n/uk.php2
-rw-r--r--apps/user_webdavauth/l10n/zh_CN.php2
-rwxr-xr-xapps/user_webdavauth/settings.php2
-rwxr-xr-xapps/user_webdavauth/templates/settings.php5
-rwxr-xr-xapps/user_webdavauth/user_webdavauth.php2
227 files changed, 1786 insertions, 846 deletions
diff --git a/apps/files/admin.php b/apps/files/admin.php
index 80fd4f4e4a5..f747f8645f6 100644
--- a/apps/files/admin.php
+++ b/apps/files/admin.php
@@ -30,11 +30,8 @@ OCP\User::checkAdminUser();
$htaccessWorking=(getenv('htaccessWorking')=='true');
$upload_max_filesize = OCP\Util::computerFileSize(ini_get('upload_max_filesize'));
-$upload_max_filesize_possible = OCP\Util::computerFileSize(get_cfg_var('upload_max_filesize'));
$post_max_size = OCP\Util::computerFileSize(ini_get('post_max_size'));
-$post_max_size_possible = OCP\Util::computerFileSize(get_cfg_var('post_max_size'));
$maxUploadFilesize = OCP\Util::humanFileSize(min($upload_max_filesize, $post_max_size));
-$maxUploadFilesizePossible = OCP\Util::humanFileSize(min($upload_max_filesize_possible, $post_max_size_possible));
if($_POST && OC_Util::isCallRegistered()) {
if(isset($_POST['maxUploadSize'])) {
if(($setMaxSize = OC_Files::setUploadLimit(OCP\Util::computerFileSize($_POST['maxUploadSize']))) !== false) {
@@ -60,7 +57,9 @@ $htaccessWritable=is_writable(OC::$SERVERROOT.'/.htaccess');
$tmpl = new OCP\Template( 'files', 'admin' );
$tmpl->assign( 'uploadChangable', $htaccessWorking and $htaccessWritable );
$tmpl->assign( 'uploadMaxFilesize', $maxUploadFilesize);
-$tmpl->assign( 'maxPossibleUploadSize', $maxUploadFilesizePossible);
+// max possible makes only sense on a 32 bit system
+$tmpl->assign( 'displayMaxPossibleUploadSize', PHP_INT_SIZE===4);
+$tmpl->assign( 'maxPossibleUploadSize', OCP\Util::humanFileSize(PHP_INT_MAX));
$tmpl->assign( 'allowZipDownload', $allowZipDownload);
$tmpl->assign( 'maxZipInputSize', $maxZipInputSize);
return $tmpl->fetchPage();
diff --git a/apps/files/ajax/move.php b/apps/files/ajax/move.php
index 5612716b7e4..4ebc3f42d9f 100644
--- a/apps/files/ajax/move.php
+++ b/apps/files/ajax/move.php
@@ -11,14 +11,15 @@ $dir = stripslashes($_GET["dir"]);
$file = stripslashes($_GET["file"]);
$target = stripslashes(rawurldecode($_GET["target"]));
+$l=OC_L10N::get('files');
if(OC_Filesystem::file_exists($target . '/' . $file)) {
- OCP\JSON::error(array("data" => array( "message" => "Could not move $file - File with this name already exists" )));
+ OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s - File with this name already exists", array($file)) )));
exit;
}
if(OC_Files::move($dir, $file, $target, $file)) {
OCP\JSON::success(array("data" => array( "dir" => $dir, "files" => $file )));
} else {
- OCP\JSON::error(array("data" => array( "message" => "Could not move $file" )));
+ OCP\JSON::error(array("data" => array( "message" => $l->t("Could not move %s", array($file)) )));
}
diff --git a/apps/files/ajax/rename.php b/apps/files/ajax/rename.php
index 45448279fa1..89b4d4bba73 100644
--- a/apps/files/ajax/rename.php
+++ b/apps/files/ajax/rename.php
@@ -12,9 +12,9 @@ $file = stripslashes($_GET["file"]);
$newname = stripslashes($_GET["newname"]);
// Delete
-if( OC_Files::move( $dir, $file, $dir, $newname )) {
+if( $newname !== '.' and OC_Files::move( $dir, $file, $dir, $newname )) {
OCP\JSON::success(array("data" => array( "dir" => $dir, "file" => $file, "newname" => $newname )));
-}
-else{
- OCP\JSON::error(array("data" => array( "message" => "Unable to rename file" )));
+} else {
+ $l=OC_L10N::get('files');
+ OCP\JSON::error(array("data" => array( "message" => $l->t("Unable to rename file") )));
}
diff --git a/apps/files/ajax/timezone.php b/apps/files/ajax/timezone.php
deleted file mode 100644
index b547d162b3e..00000000000
--- a/apps/files/ajax/timezone.php
+++ /dev/null
@@ -1,2 +0,0 @@
-<?php
-$_SESSION['timezone'] = $_GET['time'];
diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php
index e7823bc4ffb..2a2d935da6c 100644
--- a/apps/files/ajax/upload.php
+++ b/apps/files/ajax/upload.php
@@ -8,14 +8,15 @@ OCP\JSON::setContentTypeHeader('text/plain');
OCP\JSON::checkLoggedIn();
OCP\JSON::callCheck();
+$l=OC_L10N::get('files');
if (!isset($_FILES['files'])) {
- OCP\JSON::error(array('data' => array( 'message' => 'No file was uploaded. Unknown error' )));
+ OCP\JSON::error(array('data' => array( 'message' => $l->t( 'No file was uploaded. Unknown error' ))));
exit();
}
+
foreach ($_FILES['files']['error'] as $error) {
if ($error != 0) {
- $l=OC_L10N::get('files');
$errors = array(
UPLOAD_ERR_OK=>$l->t('There is no error, the file uploaded with success'),
UPLOAD_ERR_INI_SIZE=>$l->t('The uploaded file exceeds the upload_max_filesize directive in php.ini: ')
@@ -41,7 +42,7 @@ foreach($files['size'] as $size) {
$totalSize+=$size;
}
if($totalSize>OC_Filesystem::free_space($dir)) {
- OCP\JSON::error(array('data' => array( 'message' => 'Not enough space available' )));
+ OCP\JSON::error(array('data' => array( 'message' => $l->t( 'Not enough space available' ))));
exit();
}
@@ -65,7 +66,7 @@ if(strpos($dir, '..') === false) {
OCP\JSON::encodedPrint($result);
exit();
} else {
- $error='invalid dir';
+ $error=$l->t( 'Invalid directory.' );
}
-OCP\JSON::error(array('data' => array('error' => $error, 'file' => $fileName)));
+OCP\JSON::error(array('data' => array('message' => $error )));
diff --git a/apps/files/appinfo/remote.php b/apps/files/appinfo/remote.php
index 1713bcc22ce..6a78a1e0d75 100644
--- a/apps/files/appinfo/remote.php
+++ b/apps/files/appinfo/remote.php
@@ -45,6 +45,7 @@ $server->addPlugin(new Sabre_DAV_Auth_Plugin($authBackend, 'ownCloud'));
$server->addPlugin(new Sabre_DAV_Locks_Plugin($lockBackend));
$server->addPlugin(new Sabre_DAV_Browser_Plugin(false)); // Show something in the Browser, but no upload
$server->addPlugin(new OC_Connector_Sabre_QuotaPlugin());
+$server->addPlugin(new OC_Connector_Sabre_MaintenancePlugin());
// And off we go!
$server->exec();
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 4fd43cb2c0f..0451f0bcec3 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -12,23 +12,23 @@
#new.active { border-bottom-left-radius:0; border-bottom-right-radius:0; border-bottom:none; }
#new>a { padding:.5em 1.2em .3em; }
#new>ul {
- display:none; position:fixed; min-width:7em; z-index:-1;
- padding:.5em; margin-top:0.075em; margin-left:-.5em;
+ display:none; position:fixed; min-width:7em; z-index:10;
+ padding:.5em; padding-bottom:0; margin-top:.075em; margin-left:-.5em;
text-align:left;
- background:#f8f8f8; border:1px solid #ddd;
+ background:#f8f8f8; border:1px solid #ddd; border-radius:10px; border-top-left-radius:0;
+ box-shadow:0 2px 7px rgba(170,170,170,.4);
}
#new>ul>li { height:20px; margin:.3em; padding-left:2em; padding-bottom:0.1em;
background-repeat:no-repeat; cursor:pointer; }
#new>ul>li>p { cursor:pointer; }
-#new>ul>li>input { padding:0.3em; margin:-0.3em; }
-#new .popup { border-top-left-radius:0; z-index:10; }
+#new>ul>li>form>input { padding:0.3em; margin:-0.3em; }
#upload {
height:27px; padding:0; margin-left:0.2em; overflow:hidden;
}
#upload a {
position:relative; display:block; width:100%; height:27px;
- cursor:pointer; z-index:1000;
+ cursor:pointer; z-index:10;
background-image:url('%webroot%/core/img/actions/upload.svg');
background-repeat:no-repeat;
background-position:7px 6px;
@@ -39,7 +39,7 @@
left:0; top:0; width:28px; height:27px; padding:0;
font-size:1em;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0;
- z-index:-1; position:relative; cursor:pointer; overflow:hidden;
+ z-index:20; position:relative; cursor:pointer; overflow:hidden;
}
#uploadprogresswrapper { position:absolute; right:13.5em; top:0em; }
@@ -64,11 +64,17 @@ tr:hover span.extension { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Op
table tr.mouseOver td { background-color:#eee; }
table th { height:2em; padding:0 .5em; color:#999; }
table th .name { float:left; margin-left:.5em; }
-table th.multiselect { background:#ddd; color:#000; font-weight:bold; }
table th, table td { border-bottom:1px solid #ddd; text-align:left; font-weight:normal; }
table td { border-bottom:1px solid #eee; font-style:normal; background-position:1em .5em; background-repeat:no-repeat; }
-table th#headerSize, table td.filesize { width:3em; padding:0 1em; text-align:right; }
-table th#headerDate, table td.date { width:11em; padding:0 .1em 0 1em; text-align:left; }
+table th#headerName { width:100em; /* not really sure why this works better than 100% … table styling */ }
+table th#headerSize, table td.filesize { min-width:3em; padding:0 1em; text-align:right; }
+table th#headerDate, table td.date { min-width:11em; padding:0 .1em 0 1em; text-align:left; }
+
+/* Multiselect bar */
+table.multiselect { top:63px; }
+table.multiselect thead { position:fixed; top:82px; z-index:1; }
+table.multiselect thead th { background:rgba(230,230,230,.8); color:#000; font-weight:bold; border-bottom:0; }
+
table td.selection, table th.selection, table td.fileaction { width:2em; text-align:center; }
table td.filename a.name { display:block; height:1.5em; vertical-align:middle; margin-left:3em; }
table tr[data-type="dir"] td.filename a.name span.nametext {font-weight:bold; }
@@ -79,15 +85,28 @@ table td.filename .nametext, .uploadtext, .modified { float:left; padding:.3em 0
table td.filename .nametext { overflow:hidden; text-overflow:ellipsis; }
table td.filename .uploadtext { font-weight:normal; margin-left:.5em; }
table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; }
-table thead.fixed tr{ position:fixed; top:6.5em; z-index:49; -moz-box-shadow:0 -3px 7px #ddd; -webkit-box-shadow:0 -3px 7px #ddd; box-shadow:0 -3px 7px #ddd; }
-table thead.fixed { height:2em; }
#fileList tr td.filename>input[type="checkbox"]:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; filter:alpha(opacity=0); opacity:0; float:left; margin:.7em 0 0 1em; /* bigger clickable area doesn’t work in FF width:2.8em; height:2.4em;*/ -webkit-transition:opacity 200ms; -moz-transition:opacity 200ms; -o-transition:opacity 200ms; transition:opacity 200ms; }
#fileList tr td.filename>input[type="checkbox"]:hover:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=80)"; filter:alpha(opacity=80); opacity:.8; }
#fileList tr td.filename>input[type="checkbox"]:checked:first-child { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; }
-#fileList tr td.filename { -webkit-transition:background-image 500ms; -moz-transition:background-image 500ms; -o-transition:background-image 500ms; transition:background-image 500ms; position:relative; }
+#fileList tr td.filename {
+ position:relative; width:100%;
+ -webkit-transition:background-image 500ms; -moz-transition:background-image 500ms; -o-transition:background-image 500ms; transition:background-image 500ms;
+}
#select_all { float:left; margin:.3em 0.6em 0 .5em; }
#uploadsize-message,#delete-confirm { display:none; }
-.fileactions { position:relative; top:.3em; font-size:.8em; float:right; }
+
+/* File actions */
+.fileactions {
+ position:absolute; top:.6em; right:0;
+ font-size:.8em;
+}
+#fileList .name { position:relative; /* Firefox needs to explicitly have this default set … */ }
+#fileList tr:hover .fileactions { /* background to distinguish when overlaying with file names */
+ background:rgba(248,248,248,.9); box-shadow:-5px 0 7px rgba(248,248,248,.9);
+}
+#fileList tr.selected:hover .fileactions { /* slightly darker color for selected rows */
+ background:rgba(238,238,238,.9); box-shadow:-5px 0 7px rgba(238,238,238,.9);
+}
#fileList .fileactions a.action img { position:relative; top:.2em; }
#fileList a.action { display:inline; margin:-.5em 0; padding:1em .5em 1em .5em !important; }
a.action.delete { float:right; }
diff --git a/apps/files/download.php b/apps/files/download.php
index 6475afb56e0..e2149cd4135 100644
--- a/apps/files/download.php
+++ b/apps/files/download.php
@@ -40,7 +40,12 @@ if(!OC_Filesystem::file_exists($filename)) {
$ftype=OC_Filesystem::getMimeType( $filename );
header('Content-Type:'.$ftype);
-header('Content-Disposition: attachment; filename="'.basename($filename).'"');
+if ( preg_match( "/MSIE/", $_SERVER["HTTP_USER_AGENT"] ) ) {
+ header( 'Content-Disposition: attachment; filename="' . rawurlencode( basename($filename) ) . '"' );
+} else {
+ header( 'Content-Disposition: attachment; filename*=UTF-8\'\'' . rawurlencode( basename($filename) )
+ . '; filename="' . rawurlencode( basename($filename) ) . '"' );
+}
OCP\Response::disableCaching();
header('Content-Length: '.OC_Filesystem::filesize($filename));
diff --git a/apps/files/index.php b/apps/files/index.php
index c45fe60e4f7..b64bde44cc0 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -1,114 +1,111 @@
<?php
/**
-* ownCloud - ajax frontend
-*
-* @author Robin Appelman
-* @copyright 2010 Robin Appelman icewind1991@gmail.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/>.
-*
-*/
+ * ownCloud - ajax frontend
+ *
+ * @author Robin Appelman
+ * @copyright 2010 Robin Appelman icewind1991@gmail.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/>.
+ *
+ */
// Check if we are a user
OCP\User::checkLoggedIn();
// Load the files we need
-OCP\Util::addStyle( 'files', 'files' );
-OCP\Util::addscript( 'files', 'jquery.iframe-transport' );
-OCP\Util::addscript( 'files', 'jquery.fileupload' );
-OCP\Util::addscript( 'files', 'files' );
-OCP\Util::addscript( 'files', 'filelist' );
-OCP\Util::addscript( 'files', 'fileactions' );
-OCP\Util::addscript( 'files', 'keyboardshortcuts' );
-if(!isset($_SESSION['timezone'])) {
- OCP\Util::addscript( 'files', 'timezone' );
-}
-OCP\App::setActiveNavigationEntry( 'files_index' );
+OCP\Util::addStyle('files', 'files');
+OCP\Util::addscript('files', 'jquery.iframe-transport');
+OCP\Util::addscript('files', 'jquery.fileupload');
+OCP\Util::addscript('files', 'files');
+OCP\Util::addscript('files', 'filelist');
+OCP\Util::addscript('files', 'fileactions');
+OCP\Util::addscript('files', 'keyboardshortcuts');
+
+OCP\App::setActiveNavigationEntry('files_index');
// Load the files
-$dir = isset( $_GET['dir'] ) ? stripslashes($_GET['dir']) : '';
+$dir = isset($_GET['dir']) ? stripslashes($_GET['dir']) : '';
// Redirect if directory does not exist
-if(!OC_Filesystem::is_dir($dir.'/')) {
- header('Location: '.$_SERVER['SCRIPT_NAME'].'');
- exit();
+if (!OC_Filesystem::is_dir($dir . '/')) {
+ header('Location: ' . $_SERVER['SCRIPT_NAME'] . '');
+ exit();
}
$files = array();
-foreach( OC_Files::getdirectorycontent( $dir ) as $i ) {
- $i['date'] = OCP\Util::formatDate($i['mtime'] );
- if($i['type']=='file') {
- $fileinfo=pathinfo($i['name']);
- $i['basename']=$fileinfo['filename'];
- if (!empty($fileinfo['extension'])) {
- $i['extension']='.' . $fileinfo['extension'];
- }
- else {
- $i['extension']='';
- }
- }
- if($i['directory']=='/') {
- $i['directory']='';
- }
- $files[] = $i;
+foreach (OC_Files::getdirectorycontent($dir) as $i) {
+ $i['date'] = OCP\Util::formatDate($i['mtime']);
+ if ($i['type'] == 'file') {
+ $fileinfo = pathinfo($i['name']);
+ $i['basename'] = $fileinfo['filename'];
+ if (!empty($fileinfo['extension'])) {
+ $i['extension'] = '.' . $fileinfo['extension'];
+ } else {
+ $i['extension'] = '';
+ }
+ }
+ if ($i['directory'] == '/') {
+ $i['directory'] = '';
+ }
+ $files[] = $i;
}
// Make breadcrumb
$breadcrumb = array();
$pathtohere = '';
-foreach( explode( '/', $dir ) as $i ) {
- if( $i != '' ) {
- $pathtohere .= '/'.$i;
- $breadcrumb[] = array( 'dir' => $pathtohere, 'name' => $i );
- }
+foreach (explode('/', $dir) as $i) {
+ if ($i != '') {
+ $pathtohere .= '/' . $i;
+ $breadcrumb[] = array('dir' => $pathtohere, 'name' => $i);
+ }
}
// make breadcrumb und filelist markup
-$list = new OCP\Template( 'files', 'part.list', '' );
-$list->assign( 'files', $files, false );
-$list->assign( 'baseURL', OCP\Util::linkTo('files', 'index.php').'?dir=', false);
-$list->assign( 'downloadURL', OCP\Util::linkTo('files', 'download.php').'?file=', false);
-$breadcrumbNav = new OCP\Template( 'files', 'part.breadcrumb', '' );
-$breadcrumbNav->assign( 'breadcrumb', $breadcrumb, false );
-$breadcrumbNav->assign( 'baseURL', OCP\Util::linkTo('files', 'index.php').'?dir=', false);
+$list = new OCP\Template('files', 'part.list', '');
+$list->assign('files', $files, false);
+$list->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir=', false);
+$list->assign('downloadURL', OCP\Util::linkTo('files', 'download.php') . '?file=', false);
+$breadcrumbNav = new OCP\Template('files', 'part.breadcrumb', '');
+$breadcrumbNav->assign('breadcrumb', $breadcrumb, false);
+$breadcrumbNav->assign('baseURL', OCP\Util::linkTo('files', 'index.php') . '?dir=', false);
$upload_max_filesize = OCP\Util::computerFileSize(ini_get('upload_max_filesize'));
$post_max_size = OCP\Util::computerFileSize(ini_get('post_max_size'));
$maxUploadFilesize = min($upload_max_filesize, $post_max_size);
-$freeSpace=OC_Filesystem::free_space($dir);
-$freeSpace=max($freeSpace, 0);
+$freeSpace = OC_Filesystem::free_space($dir);
+$freeSpace = max($freeSpace, 0);
$maxUploadFilesize = min($maxUploadFilesize, $freeSpace);
$permissions = OCP\PERMISSION_READ;
-if (OC_Filesystem::isUpdatable($dir.'/')) {
- $permissions |= OCP\PERMISSION_UPDATE;
+if (OC_Filesystem::isUpdatable($dir . '/')) {
+ $permissions |= OCP\PERMISSION_UPDATE;
}
-if (OC_Filesystem::isDeletable($dir.'/')) {
- $permissions |= OCP\PERMISSION_DELETE;
+if (OC_Filesystem::isDeletable($dir . '/')) {
+ $permissions |= OCP\PERMISSION_DELETE;
}
-if (OC_Filesystem::isSharable($dir.'/')) {
- $permissions |= OCP\PERMISSION_SHARE;
+if (OC_Filesystem::isSharable($dir . '/')) {
+ $permissions |= OCP\PERMISSION_SHARE;
}
-$tmpl = new OCP\Template( 'files', 'index', 'user' );
-$tmpl->assign( 'fileList', $list->fetchPage(), false );
-$tmpl->assign( 'breadcrumb', $breadcrumbNav->fetchPage(), false );
-$tmpl->assign( 'dir', OC_Filesystem::normalizePath($dir));
-$tmpl->assign( 'isCreatable', OC_Filesystem::isCreatable($dir.'/'));
+$tmpl = new OCP\Template('files', 'index', 'user');
+$tmpl->assign('fileList', $list->fetchPage(), false);
+$tmpl->assign('breadcrumb', $breadcrumbNav->fetchPage(), false);
+$tmpl->assign('dir', OC_Filesystem::normalizePath($dir));
+$tmpl->assign('isCreatable', OC_Filesystem::isCreatable($dir . '/'));
$tmpl->assign('permissions', $permissions);
-$tmpl->assign( 'files', $files );
-$tmpl->assign( 'uploadMaxFilesize', $maxUploadFilesize);
-$tmpl->assign( 'uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize));
-$tmpl->assign( 'allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
+$tmpl->assign('files', $files);
+$tmpl->assign('uploadMaxFilesize', $maxUploadFilesize);
+$tmpl->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize));
+$tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
$tmpl->printPage();
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 96dd0323d29..66697bbbf56 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -149,10 +149,9 @@ var FileList={
event.stopPropagation();
event.preventDefault();
var newname=input.val();
- if (Files.containsInvalidCharacters(newname)) {
+ if (!Files.isFileNameValid(newname)) {
return false;
- }
- if (newname != name) {
+ } else if (newname != name) {
if (FileList.checkName(name, newname, false)) {
newname = name;
} else {
@@ -185,6 +184,13 @@ var FileList={
td.children('a.name').show();
return false;
});
+ input.keyup(function(event){
+ if (event.keyCode == 27) {
+ tr.data('renaming',false);
+ form.remove();
+ td.children('a.name').show();
+ }
+ });
input.click(function(event){
event.stopPropagation();
event.preventDefault();
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index 33c775fc8ec..a4260c43285 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -26,17 +26,29 @@ Files={
});
procesSelection();
},
- containsInvalidCharacters:function (name) {
+ isFileNameValid:function (name) {
+ if (name === '.') {
+ $('#notification').text(t('files', '\'.\' is an invalid file name.'));
+ $('#notification').fadeIn();
+ return false;
+ }
+ if (name.length == 0) {
+ $('#notification').text(t('files', 'File name cannot be empty.'));
+ $('#notification').fadeIn();
+ return false;
+ }
+
+ // check for invalid characters
var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*'];
for (var i = 0; i < invalid_characters.length; i++) {
if (name.indexOf(invalid_characters[i]) != -1) {
$('#notification').text(t('files', "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed."));
$('#notification').fadeIn();
- return true;
+ return false;
}
}
$('#notification').fadeOut();
- return false;
+ return true;
}
};
$(document).ready(function() {
@@ -75,8 +87,8 @@ $(document).ready(function() {
// Sets the file link behaviour :
$('td.filename a').live('click',function(event) {
- event.preventDefault();
if (event.ctrlKey || event.shiftKey) {
+ event.preventDefault();
if (event.shiftKey) {
var last = $(lastChecked).parent().parent().prevAll().length;
var first = $(this).parent().parent().prevAll().length;
@@ -118,6 +130,7 @@ $(document).ready(function() {
var permissions = $(this).parent().parent().data('permissions');
var action=FileActions.getDefault(mime,type, permissions);
if(action){
+ event.preventDefault();
action(filename);
}
}
@@ -203,6 +216,9 @@ $(document).ready(function() {
var files = data.files;
var totalSize=0;
if(files){
+ if (FileList.lastAction) {
+ FileList.lastAction();
+ }
for(var i=0;i<files.length;i++){
if(files[i].size ==0 && files[i].type== '')
{
@@ -231,12 +247,12 @@ $(document).ready(function() {
}
});
}else{
- var dropTarget = $(e.originalEvent.target).closest('tr');
- if(dropTarget && dropTarget.attr('data-type') === 'dir') { // drag&drop upload to folder
- var dirName = dropTarget.attr('data-file')
- }
+ var dropTarget = $(e.originalEvent.target).closest('tr');
+ if(dropTarget && dropTarget.attr('data-type') === 'dir') { // drag&drop upload to folder
+ var dirName = dropTarget.attr('data-file')
+ }
- var date=new Date();
+ var date=new Date();
if(files){
for(var i=0;i<files.length;i++){
if(files[i].size>0){
@@ -289,9 +305,9 @@ $(document).ready(function() {
var jqXHR = $('#file_upload_start').fileupload('send', {files: files[i],
formData: function(form) {
var formArray = form.serializeArray();
- // array index 0 contains the max files size
- // array index 1 contains the request token
- // array index 2 contains the directory
+ // array index 0 contains the max files size
+ // array index 1 contains the request token
+ // array index 2 contains the directory
formArray[2]['value'] = dirName;
return formArray;
}}).success(function(result, textStatus, jqXHR) {
@@ -302,13 +318,14 @@ $(document).ready(function() {
$('#notification').fadeIn();
}
var file=response[0];
- // TODO: this doesn't work if the file name has been changed server side
+ // TODO: this doesn't work if the file name has been changed server side
delete uploadingFiles[dirName][file.name];
- if ($.assocArraySize(uploadingFiles[dirName]) == 0) {
- delete uploadingFiles[dirName];
- }
+ if ($.assocArraySize(uploadingFiles[dirName]) == 0) {
+ delete uploadingFiles[dirName];
+ }
+ //TODO update file upload size limit
- var uploadtext = $('tr').filterAttr('data-type', 'dir').filterAttr('data-file', dirName).find('.uploadtext')
+ var uploadtext = $('tr').filterAttr('data-type', 'dir').filterAttr('data-file', dirName).find('.uploadtext')
var currentUploads = parseInt(uploadtext.attr('currentUploads'));
currentUploads -= 1;
uploadtext.attr('currentUploads', currentUploads);
@@ -336,6 +353,7 @@ $(document).ready(function() {
} else {
uploadtext.text(t('files', '{count} files uploading', {count: currentUploads}));
}
+ delete uploadingFiles[dirName][fileName];
$('#notification').hide();
$('#notification').text(t('files', 'Upload cancelled.'));
$('#notification').fadeIn();
@@ -359,8 +377,10 @@ $(document).ready(function() {
if(size==t('files','Pending')){
$('tr').filterAttr('data-file',file.name).find('td.filesize').text(file.size);
}
+ //TODO update file upload size limit
FileList.loadingDone(file.name, file.id);
} else {
+ Files.cancelUpload(this.files[0].name);
$('#notification').text(t('files', response.data.message));
$('#notification').fadeIn();
$('#fileList > tr').not('[data-mime]').fadeOut();
@@ -369,6 +389,7 @@ $(document).ready(function() {
})
.error(function(jqXHR, textStatus, errorThrown) {
if(errorThrown === 'abort') {
+ Files.cancelUpload(this.files[0].name);
$('#notification').hide();
$('#notification').text(t('files', 'Upload cancelled.'));
$('#notification').fadeIn();
@@ -389,8 +410,10 @@ $(document).ready(function() {
if(size==t('files','Pending')){
$('tr').filterAttr('data-file',file.name).find('td.filesize').text(file.size);
}
+ //TODO update file upload size limit
FileList.loadingDone(file.name, file.id);
} else {
+ //TODO Files.cancelUpload(/*where do we get the filename*/);
$('#notification').text(t('files', response.data.message));
$('#notification').fadeIn();
$('#fileList > tr').not('[data-mime]').fadeOut();
@@ -431,7 +454,7 @@ $(document).ready(function() {
// http://stackoverflow.com/a/6700/11236
var size = 0, key;
for (key in obj) {
- if (obj.hasOwnProperty(key)) size++;
+ if (obj.hasOwnProperty(key)) size++;
}
return size;
};
@@ -474,7 +497,7 @@ $(document).ready(function() {
$('#new').removeClass('active');
$('#new li').each(function(i,element){
if($(element).children('p').length==0){
- $(element).children('input').remove();
+ $(element).children('form').remove();
$(element).append('<p>'+$(element).data('text')+'</p>');
}
});
@@ -493,7 +516,7 @@ $(document).ready(function() {
$('#new li').each(function(i,element){
if($(element).children('p').length==0){
- $(element).children('input').remove();
+ $(element).children('form').remove();
$(element).append('<p>'+$(element).data('text')+'</p>');
}
});
@@ -502,20 +525,32 @@ $(document).ready(function() {
var text=$(this).children('p').text();
$(this).data('text',text);
$(this).children('p').remove();
+ var form=$('<form></form>');
var input=$('<input>');
- $(this).append(input);
+ form.append(input);
+ $(this).append(form);
input.focus();
- input.change(function(){
- if (type != 'web' && Files.containsInvalidCharacters($(this).val())) {
- return;
- } else if( type == 'folder' && $('#dir').val() == '/' && $(this).val() == 'Shared') {
- $('#notification').text(t('files','Invalid folder name. Usage of "Shared" is reserved by Owncloud'));
+ form.submit(function(event){
+ event.stopPropagation();
+ event.preventDefault();
+ var newname=input.val();
+ if(type == 'web' && newname.length == 0) {
+ $('#notification').text(t('files', 'URL cannot be empty.'));
+ $('#notification').fadeIn();
+ return false;
+ } else if (type != 'web' && !Files.isFileNameValid(newname)) {
+ return false;
+ } else if( type == 'folder' && $('#dir').val() == '/' && newname == 'Shared') {
+ $('#notification').text(t('files','Invalid folder name. Usage of \'Shared\' is reserved by Owncloud'));
$('#notification').fadeIn();
- return;
+ return false;
}
- var name = getUniqueName($(this).val());
- if (name != $(this).val()) {
- FileList.checkName(name, $(this).val(), true);
+ if (FileList.lastAction) {
+ FileList.lastAction();
+ }
+ var name = getUniqueName(newname);
+ if (newname != name) {
+ FileList.checkName(name, newname, true);
var hidden = true;
} else {
var hidden = false;
@@ -559,7 +594,7 @@ $(document).ready(function() {
break;
case 'web':
if(name.substr(0,8)!='https://' && name.substr(0,7)!='http://'){
- name='http://'.name;
+ name='http://'+name;
}
var localName=name;
if(localName.substr(localName.length-1,1)=='/'){//strip /
@@ -598,8 +633,8 @@ $(document).ready(function() {
});
break;
}
- var li=$(this).parent();
- $(this).remove();
+ var li=form.parent();
+ form.remove();
li.append('<p>'+li.data('text')+'</p>');
$('#new>a').click();
});
@@ -770,22 +805,14 @@ function procesSelection(){
var selected=getSelectedFiles();
var selectedFiles=selected.filter(function(el){return el.type=='file'});
var selectedFolders=selected.filter(function(el){return el.type=='dir'});
- if(selectedFiles.length==0 && selectedFolders.length==0){
+ if(selectedFiles.length==0 && selectedFolders.length==0) {
$('#headerName>span.name').text(t('files','Name'));
$('#headerSize').text(t('files','Size'));
$('#modified').text(t('files','Modified'));
- $('th').removeClass('multiselect');
+ $('table').removeClass('multiselect');
$('.selectedActions').hide();
- $('thead').removeClass('fixed');
- $('#headerName').css('width','auto');
- $('#headerSize').css('width','auto');
- $('#headerDate').css('width','auto');
- $('table').css('padding-top','0');
- }else{
- var width={name:$('#headerName').css('width'),size:$('#headerSize').css('width'),date:$('#headerDate').css('width')};
- $('#headerName').css('width',width.name);
- $('#headerSize').css('width',width.size);
- $('#headerDate').css('width',width.date);
+ }
+ else {
$('.selectedActions').show();
var totalSize=0;
for(var i=0;i<selectedFiles.length;i++){
@@ -817,7 +844,7 @@ function procesSelection(){
}
$('#headerName>span.name').text(selection);
$('#modified').text('');
- $('th').addClass('multiselect');
+ $('table').addClass('multiselect');
}
}
diff --git a/apps/files/js/keyboardshortcuts.js b/apps/files/js/keyboardshortcuts.js
index 562755f55b7..cc2b5d42139 100644
--- a/apps/files/js/keyboardshortcuts.js
+++ b/apps/files/js/keyboardshortcuts.js
@@ -127,6 +127,9 @@ var Files = Files || {};
}
Files.bindKeyboardShortcuts = function(document, $) {
$(document).keydown(function(event) { //check for modifier keys
+ if(!$(event.target).is('body')) {
+ return;
+ }
var preventDefault = false;
if ($.inArray(event.keyCode, keys) === -1) keys.push(event.keyCode);
if (
diff --git a/apps/files/js/timezone.js b/apps/files/js/timezone.js
deleted file mode 100644
index 4749417199d..00000000000
--- a/apps/files/js/timezone.js
+++ /dev/null
@@ -1,12 +0,0 @@
-//send the clients time zone to the server
-$(document).ready(function() {
- var visitortimezone = (-new Date().getTimezoneOffset()/60);
- $.ajax({
- type: "GET",
- url: OC.filePath('files', 'ajax', 'timezone.php'),
- data: 'time='+ visitortimezone,
- success: function(){
- location.reload();
- }
- });
-}); \ No newline at end of file
diff --git a/apps/files/l10n/bg_BG.php b/apps/files/l10n/bg_BG.php
index b527b0e027f..bc10979611b 100644
--- a/apps/files/l10n/bg_BG.php
+++ b/apps/files/l10n/bg_BG.php
@@ -1,28 +1,22 @@
<?php $TRANSLATIONS = array(
-"There is no error, the file uploaded with success" => "Файлът е качен успешно",
-"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Файлът който се опитвате да качите надвишава стойностите в MAX_FILE_SIZE в HTML формата.",
-"The uploaded file was only partially uploaded" => "Файлът е качен частично",
-"No file was uploaded" => "Фахлът не бе качен",
-"Missing a temporary folder" => "Липсва временната папка",
-"Failed to write to disk" => "Грешка при запис на диска",
+"Missing a temporary folder" => "Липсва временна папка",
"Files" => "Файлове",
"Delete" => "Изтриване",
-"Upload Error" => "Грешка при качване",
-"Upload cancelled." => "Качването е отменено.",
+"Rename" => "Преименуване",
+"replace" => "препокриване",
+"cancel" => "отказ",
+"undo" => "възтановяване",
+"Upload cancelled." => "Качването е спряно.",
"Name" => "Име",
"Size" => "Размер",
"Modified" => "Променено",
-"Maximum upload size" => "Макс. размер за качване",
-"0 is unlimited" => "0 означава без ограничение",
+"Maximum upload size" => "Максимален размер за качване",
+"0 is unlimited" => "Ползвайте 0 за без ограничения",
"Save" => "Запис",
-"New" => "Нов",
-"Text file" => "Текстов файл",
+"New" => "Ново",
"Folder" => "Папка",
"Upload" => "Качване",
-"Cancel upload" => "Отказване на качването",
-"Nothing in here. Upload something!" => "Няма нищо, качете нещо!",
+"Nothing in here. Upload something!" => "Няма нищо тук. Качете нещо.",
"Download" => "Изтегляне",
-"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." => "Файловете се претърсват, изчакайте."
+"Upload too large" => "Файлът който сте избрали за качване е прекалено голям"
);
diff --git a/apps/files/l10n/bn_BD.php b/apps/files/l10n/bn_BD.php
new file mode 100644
index 00000000000..e55c8811393
--- /dev/null
+++ b/apps/files/l10n/bn_BD.php
@@ -0,0 +1,71 @@
+<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "%s কে স্থানান্তর করা সম্ভব হলো না - এই নামের ফাইল বিদ্যমান",
+"Could not move %s" => "%s কে স্থানান্তর করা সম্ভব হলো না",
+"Unable to rename file" => "ফাইলের নাম পরিবর্তন করা সম্ভব হলো না",
+"No file was uploaded. Unknown error" => "কোন ফাইল আপলোড করা হয় নি। সমস্যা অজ্ঞাত।",
+"There is no error, the file uploaded with success" => "কোন সমস্যা নেই, ফাইল আপলোড সুসম্পন্ন হয়েছে",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "আপলোড করা ফাইলটি php.ini তে বর্ণিত upload_max_filesize নির্দেশিত আয়তন অতিক্রম করছেঃ",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "আপলোড করা ফাইলটি HTML ফর্মে নির্ধারিত MAX_FILE_SIZE নির্দেশিত সর্বোচ্চ আকার অতিক্রম করেছে ",
+"The uploaded file was only partially uploaded" => "আপলোড করা ফাইলটি আংশিক আপলোড করা হয়েছে",
+"No file was uploaded" => "কোন ফাইল আপলোড করা হয় নি",
+"Missing a temporary folder" => "অস্থায়ী ফোল্ডার খোয়া গিয়েছে",
+"Failed to write to disk" => "ডিস্কে লিখতে ব্যর্থ",
+"Not enough space available" => "যথেষ্ঠ পরিমাণ স্থান নেই",
+"Invalid directory." => "ভুল ডিরেক্টরি",
+"Files" => "ফাইল",
+"Unshare" => "ভাগাভাগি বাতিল ",
+"Delete" => "মুছে ফেল",
+"Rename" => "পূনঃনামকরণ",
+"{new_name} already exists" => "{new_name} টি বিদ্যমান",
+"replace" => "প্রতিস্থাপন",
+"suggest name" => "নাম সুপারিশ করুন",
+"cancel" => "বাতিল",
+"replaced {new_name}" => "{new_name} প্রতিস্থাপন করা হয়েছে",
+"undo" => "ক্রিয়া প্রত্যাহার",
+"replaced {new_name} with {old_name}" => "{new_name} কে {old_name} নামে প্রতিস্থাপন করা হয়েছে",
+"unshared {files}" => "{files} ভাগাভাগি বাতিল কর",
+"deleted {files}" => "{files} মুছে ফেলা হয়েছে",
+"'.' is an invalid file name." => "টি একটি অননুমোদিত নাম।",
+"File name cannot be empty." => "ফাইলের নামটি ফাঁকা রাখা যাবে না।",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "নামটি সঠিক নয়, '\\', '/', '<', '>', ':', '\"', '|', '?' এবং '*' অনুমোদিত নয়।",
+"generating ZIP-file, it may take some time." => "ZIP- ফাইল তৈরী করা হচ্ছে, এজন্য কিছু সময় আবশ্যক।",
+"Unable to upload your file as it is a directory or has 0 bytes" => "আপনার ফাইলটি আপলোড করা সম্ভব হলো না, কেননা এটি হয় একটি ফোল্ডার কিংবা এর আকার ০ বাইট",
+"Upload Error" => "আপলোড করতে সমস্যা ",
+"Close" => "বন্ধ",
+"Pending" => "মুলতুবি",
+"1 file uploading" => "১টি ফাইল আপলোড করা হচ্ছে",
+"{count} files uploading" => "{count} টি ফাইল আপলোড করা হচ্ছে",
+"Upload cancelled." => "আপলোড বাতিল করা হয়েছে।",
+"File upload is in progress. Leaving the page now will cancel the upload." => "ফাইল আপলোড চলমান। এই পৃষ্ঠা পরিত্যাগ করলে আপলোড বাতিল করা হবে।",
+"URL cannot be empty." => "URL ফাঁকা রাখা যাবে না।",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "ফোল্ডারের নামটি সঠিক নয়। 'ভাগাভাগি করা' শুধুমাত্র Owncloud এর জন্য সংরক্ষিত।",
+"{count} files scanned" => "{count} টি ফাইল স্ক্যান করা হয়েছে",
+"error while scanning" => "স্ক্যান করার সময় সমস্যা দেখা দিয়েছে",
+"Name" => "নাম",
+"Size" => "আকার",
+"Modified" => "পরিবর্তিত",
+"1 folder" => "১টি ফোল্ডার",
+"{count} folders" => "{count} টি ফোল্ডার",
+"1 file" => "১টি ফাইল",
+"{count} files" => "{count} টি ফাইল",
+"File handling" => "ফাইল হ্যার্ডলিং",
+"Maximum upload size" => "আপলোডের সর্বোচ্চ আকার",
+"max. possible: " => "অনুমোদিত সর্বোচ্চ আকার",
+"Needed for multi-file and folder downloads." => "একাধিক ফাইল এবং ফোল্ডার ডাউনলোড করার জন্য আবশ্যক।",
+"Enable ZIP-download" => "ZIP ডাউনলোড সক্রিয় কর",
+"0 is unlimited" => "০ এর অর্থ অসীম",
+"Maximum input size for ZIP files" => "ZIP ফাইলের ইনপুটের সর্বোচ্চ আকার",
+"Save" => "সংরক্ষন কর",
+"New" => "নতুন",
+"Text file" => "টেক্সট ফাইল",
+"Folder" => "ফোল্ডার",
+"From link" => " লিংক থেকে",
+"Upload" => "আপলোড",
+"Cancel upload" => "আপলোড বাতিল কর",
+"Nothing in here. Upload something!" => "এখানে কিছুই নেই। কিছু আপলোড করুন !",
+"Download" => "ডাউনলোড",
+"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." => "ফাইলগুলো স্ক্যান করা হচ্ছে, দয়া করে অপেক্ষা করুন।",
+"Current scanning" => "বর্তমান স্ক্যানিং"
+);
diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php
index 0866d97bd74..f6ddbcd8e18 100644
--- a/apps/files/l10n/ca.php
+++ b/apps/files/l10n/ca.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "No s'ha pogut moure %s - Ja hi ha un fitxer amb aquest nom",
+"Could not move %s" => " No s'ha pogut moure %s",
+"Unable to rename file" => "No es pot canviar el nom del fitxer",
+"No file was uploaded. Unknown error" => "No s'ha carregat cap fitxer. Error desconegut",
"There is no error, the file uploaded with success" => "El fitxer s'ha pujat correctament",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "L’arxiu que voleu carregar supera el màxim definit en la directiva upload_max_filesize del php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El fitxer de pujada excedeix la directiva MAX_FILE_SIZE especificada al formulari HTML",
@@ -6,6 +10,8 @@
"No file was uploaded" => "El fitxer no s'ha pujat",
"Missing a temporary folder" => "S'ha perdut un fitxer temporal",
"Failed to write to disk" => "Ha fallat en escriure al disc",
+"Not enough space available" => "No hi ha prou espai disponible",
+"Invalid directory." => "Directori no vàlid.",
"Files" => "Fitxers",
"Unshare" => "Deixa de compartir",
"Delete" => "Suprimeix",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "s'ha substituït {old_name} per {new_name}",
"unshared {files}" => "no compartits {files}",
"deleted {files}" => "eliminats {files}",
+"'.' is an invalid file name." => "'.' és un nom no vàlid per un fitxer.",
+"File name cannot be empty." => "El nom del fitxer no pot ser buit.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "El nóm no és vàlid, '\\', '/', '<', '>', ':', '\"', '|', '?' i '*' no estan permesos.",
"generating ZIP-file, it may take some time." => "s'estan generant fitxers ZIP, pot trigar una estona.",
"Unable to upload your file as it is a directory or has 0 bytes" => "No es pot pujar el fitxer perquè és una carpeta o té 0 bytes",
@@ -29,7 +37,8 @@
"{count} files uploading" => "{count} fitxers en pujada",
"Upload cancelled." => "La pujada s'ha cancel·lat.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Hi ha una pujada en curs. Si abandoneu la pàgina la pujada es cancel·larà.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "El nom de la carpeta no és vàlid. L'ús de \"Compartit\" està reservat per a OwnCloud",
+"URL cannot be empty." => "La URL no pot ser buida",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nom de carpeta no vàlid. L'ús de 'Shared' està reservat per Owncloud",
"{count} files scanned" => "{count} fitxers escannejats",
"error while scanning" => "error durant l'escaneig",
"Name" => "Nom",
diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php
index 12eb79a1a10..65ac4b04931 100644
--- a/apps/files/l10n/cs_CZ.php
+++ b/apps/files/l10n/cs_CZ.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Nelze přesunout %s - existuje soubor se stejným názvem",
+"Could not move %s" => "Nelze přesunout %s",
+"Unable to rename file" => "Nelze přejmenovat soubor",
+"No file was uploaded. Unknown error" => "Soubor nebyl odeslán. Neznámá chyba",
"There is no error, the file uploaded with success" => "Soubor byl odeslán úspěšně",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Odesílaný soubor přesahuje velikost upload_max_filesize povolenou v php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Odeslaný soubor přesáhl svou velikostí parametr MAX_FILE_SIZE specifikovaný v formuláři HTML",
@@ -6,6 +10,8 @@
"No file was uploaded" => "Žádný soubor nebyl odeslán",
"Missing a temporary folder" => "Chybí adresář pro dočasné soubory",
"Failed to write to disk" => "Zápis na disk selhal",
+"Not enough space available" => "Nedostatek dostupného místa",
+"Invalid directory." => "Neplatný adresář",
"Files" => "Soubory",
"Unshare" => "Zrušit sdílení",
"Delete" => "Smazat",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "nahrazeno {new_name} s {old_name}",
"unshared {files}" => "sdílení zrušeno pro {files}",
"deleted {files}" => "smazáno {files}",
+"'.' is an invalid file name." => "'.' je neplatným názvem souboru.",
+"File name cannot be empty." => "Název souboru nemůže být prázdný řetězec.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Neplatný název, znaky '\\', '/', '<', '>', ':', '\"', '|', '?' a '*' nejsou povoleny.",
"generating ZIP-file, it may take some time." => "generuji ZIP soubor, může to nějakou dobu trvat.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nelze odeslat Váš soubor, protože je to adresář nebo má velikost 0 bajtů",
@@ -29,7 +37,8 @@
"{count} files uploading" => "odesílám {count} souborů",
"Upload cancelled." => "Odesílání zrušeno.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Probíhá odesílání souboru. Opuštění stránky vyústí ve zrušení nahrávání.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Neplatný název složky. Použití názvu \"Shared\" je rezervováno pro interní úžití službou Owncloud.",
+"URL cannot be empty." => "URL nemůže být prázdná",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Neplatný název složky. Použití 'Shared' je rezervováno pro vnitřní potřeby Owncloud",
"{count} files scanned" => "prozkoumáno {count} souborů",
"error while scanning" => "chyba při prohledávání",
"Name" => "Název",
diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php
index 24652622c61..02c177a2f1c 100644
--- a/apps/files/l10n/da.php
+++ b/apps/files/l10n/da.php
@@ -1,5 +1,7 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Ingen fil blev uploadet. Ukendt fejl.",
"There is no error, the file uploaded with success" => "Der er ingen fejl, filen blev uploadet med success",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den uploadede fil overskrider MAX_FILE_SIZE -direktivet som er specificeret i HTML-formularen",
"The uploaded file was only partially uploaded" => "Den uploadede file blev kun delvist uploadet",
"No file was uploaded" => "Ingen fil blev uploadet",
@@ -18,6 +20,7 @@
"replaced {new_name} with {old_name}" => "erstattede {new_name} med {old_name}",
"unshared {files}" => "ikke delte {files}",
"deleted {files}" => "slettede {files}",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldigt navn, '\\', '/', '<', '>', ':' | '?', '\"', '', og '*' er ikke tilladt.",
"generating ZIP-file, it may take some time." => "genererer ZIP-fil, det kan tage lidt tid.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Kunne ikke uploade din fil, da det enten er en mappe eller er tom",
"Upload Error" => "Fejl ved upload",
@@ -27,6 +30,7 @@
"{count} files uploading" => "{count} filer uploades",
"Upload cancelled." => "Upload afbrudt.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fil upload kører. Hvis du forlader siden nu, vil uploadet blive annuleret.",
+"URL cannot be empty." => "URLen kan ikke være tom.",
"{count} files scanned" => "{count} filer skannet",
"error while scanning" => "fejl under scanning",
"Name" => "Navn",
@@ -47,6 +51,7 @@
"New" => "Ny",
"Text file" => "Tekstfil",
"Folder" => "Mappe",
+"From link" => "Fra link",
"Upload" => "Upload",
"Cancel upload" => "Fortryd upload",
"Nothing in here. Upload something!" => "Her er tomt. Upload noget!",
diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php
index 8073ee28da5..089ce1c0a26 100644
--- a/apps/files/l10n/de.php
+++ b/apps/files/l10n/de.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Konnte %s nicht verschieben - Datei mit diesem Namen existiert bereits.",
+"Could not move %s" => "Konnte %s nicht verschieben",
+"Unable to rename file" => "Konnte Datei nicht umbenennen",
+"No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler",
"There is no error, the file uploaded with success" => "Datei fehlerfrei hochgeladen.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Größe der hochzuladenden Datei überschreitet die MAX_FILE_SIZE-Richtlinie, die im HTML-Formular angegeben wurde",
@@ -6,6 +10,8 @@
"No file was uploaded" => "Es wurde keine Datei hochgeladen.",
"Missing a temporary folder" => "Temporärer Ordner fehlt.",
"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte",
+"Not enough space available" => "Nicht genug Speicherplatz verfügbar",
+"Invalid directory." => "Ungültiges Verzeichnis",
"Files" => "Dateien",
"Unshare" => "Nicht mehr freigeben",
"Delete" => "Löschen",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "{old_name} ersetzt durch {new_name}",
"unshared {files}" => "Freigabe von {files} aufgehoben",
"deleted {files}" => "{files} gelöscht",
+"'.' is an invalid file name." => "'.' ist kein gültiger Dateiname",
+"File name cannot be empty." => "Der Dateiname darf nicht leer sein",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.",
"generating ZIP-file, it may take some time." => "Erstelle ZIP-Datei. Dies kann eine Weile dauern.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Deine Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist.",
@@ -29,7 +37,8 @@
"{count} files uploading" => "{count} Dateien werden hochgeladen",
"Upload cancelled." => "Upload abgebrochen.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Dateiupload läuft. Wenn Du die Seite jetzt verlässt, wird der Upload abgebrochen.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Ungültiger Ordnername. Die Verwendung von \"Shared\" ist ownCloud vorbehalten.",
+"URL cannot be empty." => "Die URL darf nicht leer sein",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten.",
"{count} files scanned" => "{count} Dateien wurden gescannt",
"error while scanning" => "Fehler beim Scannen",
"Name" => "Name",
diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php
index 6a9730e94b0..5cd4ef70425 100644
--- a/apps/files/l10n/de_DE.php
+++ b/apps/files/l10n/de_DE.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Konnte %s nicht verschieben - Datei mit diesem Namen existiert bereits",
+"Could not move %s" => "Konnte %s nicht verschieben",
+"Unable to rename file" => "Konnte Datei nicht umbenennen",
+"No file was uploaded. Unknown error" => "Keine Datei hochgeladen. Unbekannter Fehler",
"There is no error, the file uploaded with success" => "Es sind keine Fehler aufgetreten. Die Datei wurde erfolgreich hochgeladen.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Die hochgeladene Datei überschreitet die upload_max_filesize Vorgabe in php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Die Größe der hochzuladenden Datei überschreitet die MAX_FILE_SIZE-Richtlinie, die im HTML-Formular angegeben wurde",
@@ -6,6 +10,8 @@
"No file was uploaded" => "Es wurde keine Datei hochgeladen.",
"Missing a temporary folder" => "Der temporäre Ordner fehlt.",
"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte",
+"Not enough space available" => "Nicht genügend Speicherplatz verfügbar",
+"Invalid directory." => "Ungültiges Verzeichnis.",
"Files" => "Dateien",
"Unshare" => "Nicht mehr freigeben",
"Delete" => "Löschen",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "{old_name} wurde ersetzt durch {new_name}",
"unshared {files}" => "Freigabe für {files} beendet",
"deleted {files}" => "{files} gelöscht",
+"'.' is an invalid file name." => "'.' ist kein gültiger Dateiname.",
+"File name cannot be empty." => "Der Dateiname darf nicht leer sein.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ungültiger Name, '\\', '/', '<', '>', ':', '\"', '|', '?' und '*' sind nicht zulässig.",
"generating ZIP-file, it may take some time." => "Erstelle ZIP-Datei. Dies kann eine Weile dauern.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Ihre Datei kann nicht hochgeladen werden, da sie entweder ein Verzeichnis oder 0 Bytes groß ist.",
@@ -29,7 +37,8 @@
"{count} files uploading" => "{count} Dateien wurden hochgeladen",
"Upload cancelled." => "Upload abgebrochen.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Der Dateiupload läuft. Wenn Sie die Seite jetzt verlassen, wird der Upload abgebrochen.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Ungültiger Ordnername. Die Verwendung von \"Shared\" ist ownCloud vorbehalten.",
+"URL cannot be empty." => "Die URL darf nicht leer sein.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ungültiger Verzeichnisname. Die Nutzung von \"Shared\" ist ownCloud vorbehalten",
"{count} files scanned" => "{count} Dateien wurden gescannt",
"error while scanning" => "Fehler beim Scannen",
"Name" => "Name",
diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php
index ddbea421241..3c1ac538091 100644
--- a/apps/files/l10n/el.php
+++ b/apps/files/l10n/el.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Δεν ανέβηκε κάποιο αρχείο. Άγνωστο σφάλμα",
"There is no error, the file uploaded with success" => "Δεν υπάρχει σφάλμα, το αρχείο εστάλει επιτυχώς",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Το απεσταλμένο αρχείο ξεπερνά την οδηγία upload_max_filesize στο php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Το αρχείο υπερβαίνει την οδηγία μέγιστου επιτρεπτού μεγέθους \"MAX_FILE_SIZE\" που έχει οριστεί στην HTML φόρμα",
@@ -28,8 +29,8 @@
"1 file uploading" => "1 αρχείο ανεβαίνει",
"{count} files uploading" => "{count} αρχεία ανεβαίνουν",
"Upload cancelled." => "Η αποστολή ακυρώθηκε.",
-"File upload is in progress. Leaving the page now will cancel the upload." => "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Έξοδος από την σελίδα τώρα θα ακυρώσει την αποστολή.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Μη έγκυρο όνομα φακέλου. Η χρήση του \"Shared\" είναι δεσμευμένη από το Owncloud",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Η αποστολή του αρχείου βρίσκεται σε εξέλιξη. Το κλείσιμο της σελίδας θα ακυρώσει την αποστολή.",
+"URL cannot be empty." => "Η URL δεν πρέπει να είναι κενή.",
"{count} files scanned" => "{count} αρχεία ανιχνεύτηκαν",
"error while scanning" => "σφάλμα κατά την ανίχνευση",
"Name" => "Όνομα",
@@ -56,7 +57,7 @@
"Nothing in here. Upload something!" => "Δεν υπάρχει τίποτα εδώ. Ανέβασε κάτι!",
"Download" => "Λήψη",
"Upload too large" => "Πολύ μεγάλο αρχείο προς αποστολή",
-"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν το διακομιστή.",
+"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Τα αρχεία που προσπαθείτε να ανεβάσετε υπερβαίνουν το μέγιστο μέγεθος αποστολής αρχείων σε αυτόν τον διακομιστή.",
"Files are being scanned, please wait." => "Τα αρχεία σαρώνονται, παρακαλώ περιμένετε",
"Current scanning" => "Τρέχουσα αναζήτηση "
);
diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php
index bdde6d0fece..92c03ee8826 100644
--- a/apps/files/l10n/eo.php
+++ b/apps/files/l10n/eo.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Neniu dosiero alŝutiĝis. Nekonata eraro.",
"There is no error, the file uploaded with success" => "Ne estas eraro, la dosiero alŝutiĝis sukcese",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "La dosiero alŝutita superas la regulon upload_max_filesize el php.ini: ",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "La dosiero alŝutita superas la regulon MAX_FILE_SIZE, kiu estas difinita en la HTML-formularo",
@@ -29,7 +30,7 @@
"{count} files uploading" => "{count} dosieroj alŝutatas",
"Upload cancelled." => "La alŝuto nuliĝis.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Dosieralŝuto plenumiĝas. Lasi la paĝon nun nuligus la alŝuton.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Nevalida nomo de dosierujo. Uzo de “Shared” rezervitas de Owncloud",
+"URL cannot be empty." => "URL ne povas esti malplena.",
"{count} files scanned" => "{count} dosieroj skaniĝis",
"error while scanning" => "eraro dum skano",
"Name" => "Nomo",
diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php
index 40b9ea9f23f..885ed3770e9 100644
--- a/apps/files/l10n/es.php
+++ b/apps/files/l10n/es.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "No se puede mover %s - Ya existe un archivo con ese nombre",
+"Could not move %s" => "No se puede mover %s",
+"Unable to rename file" => "No se puede renombrar el archivo",
+"No file was uploaded. Unknown error" => "Fallo no se subió el fichero",
"There is no error, the file uploaded with success" => "No se ha producido ningún error, el archivo se ha subido con éxito",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentas subir sobrepasa el tamaño definido por la variable upload_max_filesize en php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo que intentas subir sobrepasa el tamaño definido por la variable MAX_FILE_SIZE especificada en el formulario HTML",
@@ -6,6 +10,8 @@
"No file was uploaded" => "No se ha subido ningún archivo",
"Missing a temporary folder" => "Falta un directorio temporal",
"Failed to write to disk" => "La escritura en disco ha fallado",
+"Not enough space available" => "No hay suficiente espacio disponible",
+"Invalid directory." => "Directorio invalido.",
"Files" => "Archivos",
"Unshare" => "Dejar de compartir",
"Delete" => "Eliminar",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}",
"unshared {files}" => "{files} descompartidos",
"deleted {files}" => "{files} eliminados",
+"'.' is an invalid file name." => "'.' es un nombre de archivo inválido.",
+"File name cannot be empty." => "El nombre de archivo no puede estar vacío.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre Invalido, \"\\\", \"/\", \"<\", \">\", \":\", \"\", \"|\" \"?\" y \"*\" no están permitidos ",
"generating ZIP-file, it may take some time." => "generando un fichero ZIP, puede llevar un tiempo.",
"Unable to upload your file as it is a directory or has 0 bytes" => "No ha sido posible subir tu archivo porque es un directorio o tiene 0 bytes",
@@ -29,7 +37,7 @@
"{count} files uploading" => "Subiendo {count} archivos",
"Upload cancelled." => "Subida cancelada.",
"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Salir de la página ahora cancelará la subida.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Nombre de la carpeta invalido. El uso de \"Shared\" esta reservado para Owncloud",
+"URL cannot be empty." => "La URL no puede estar vacía.",
"{count} files scanned" => "{count} archivos escaneados",
"error while scanning" => "error escaneando",
"Name" => "Nombre",
diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php
index e514d8de59a..650a3149e4f 100644
--- a/apps/files/l10n/es_AR.php
+++ b/apps/files/l10n/es_AR.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "No se pudo mover %s - Un archivo con este nombre ya existe",
+"Could not move %s" => "No se pudo mover %s ",
+"Unable to rename file" => "No fue posible cambiar el nombre al archivo",
+"No file was uploaded. Unknown error" => "El archivo no fue subido. Error desconocido",
"There is no error, the file uploaded with success" => "No se han producido errores, el archivo se ha subido con éxito",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "El archivo que intentás subir excede el tamaño definido por upload_max_filesize en el php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "El archivo que intentás subir sobrepasa el tamaño definido por la variable MAX_FILE_SIZE especificada en el formulario HTML",
@@ -6,6 +10,8 @@
"No file was uploaded" => "El archivo no fue subido",
"Missing a temporary folder" => "Falta un directorio temporal",
"Failed to write to disk" => "Error al escribir en el disco",
+"Not enough space available" => "No hay suficiente espacio disponible",
+"Invalid directory." => "Directorio invalido.",
"Files" => "Archivos",
"Unshare" => "Dejar de compartir",
"Delete" => "Borrar",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}",
"unshared {files}" => "{files} se dejaron de compartir",
"deleted {files}" => "{files} borrados",
+"'.' is an invalid file name." => "'.' es un nombre de archivo inválido.",
+"File name cannot be empty." => "El nombre del archivo no puede quedar vacío.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nombre invalido, '\\', '/', '<', '>', ':', '\"', '|', '?' y '*' no están permitidos.",
"generating ZIP-file, it may take some time." => "generando un archivo ZIP, puede llevar un tiempo.",
"Unable to upload your file as it is a directory or has 0 bytes" => "No fue posible subir el archivo porque es un directorio o porque su tamaño es 0 bytes",
@@ -29,7 +37,8 @@
"{count} files uploading" => "Subiendo {count} archivos",
"Upload cancelled." => "La subida fue cancelada",
"File upload is in progress. Leaving the page now will cancel the upload." => "La subida del archivo está en proceso. Si salís de la página ahora, la subida se cancelará.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Nombre del directorio inválido. Usar \"Shared\" está reservado por ownCloud.",
+"URL cannot be empty." => "La URL no puede estar vacía",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nombre de carpeta inválido. El uso de 'Shared' está reservado por ownCloud",
"{count} files scanned" => "{count} archivos escaneados",
"error while scanning" => "error mientras se escaneaba",
"Name" => "Nombre",
diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php
index 0fddbfdca46..6996b0a7918 100644
--- a/apps/files/l10n/et_EE.php
+++ b/apps/files/l10n/et_EE.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Ühtegi faili ei laetud üles. Tundmatu viga",
"There is no error, the file uploaded with success" => "Ühtegi viga pole, fail on üles laetud",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Üles laetud faili suurus ületab HTML vormis määratud upload_max_filesize suuruse",
"The uploaded file was only partially uploaded" => "Fail laeti üles ainult osaliselt",
@@ -28,7 +29,7 @@
"{count} files uploading" => "{count} faili üleslaadimist",
"Upload cancelled." => "Üleslaadimine tühistati.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Faili üleslaadimine on töös. Lehelt lahkumine katkestab selle üleslaadimise.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Vigane kausta nimi. Nime \"Jagatud\" kasutamine on Owncloudi poolt broneeritud ",
+"URL cannot be empty." => "URL ei saa olla tühi.",
"{count} files scanned" => "{count} faili skännitud",
"error while scanning" => "viga skännimisel",
"Name" => "Nimi",
diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php
index 0b223b93d8c..96f59a668e9 100644
--- a/apps/files/l10n/eu.php
+++ b/apps/files/l10n/eu.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Ez da fitxategirik igo. Errore ezezaguna",
"There is no error, the file uploaded with success" => "Ez da arazorik izan, fitxategia ongi igo da",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Igotako fitxategiak php.ini fitxategian ezarritako upload_max_filesize muga gainditu du:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Igotako fitxategiaren tamaina HTML inprimakiko MAX_FILESIZE direktiban adierazitakoa baino handiagoa da",
@@ -29,7 +30,7 @@
"{count} files uploading" => "{count} fitxategi igotzen",
"Upload cancelled." => "Igoera ezeztatuta",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fitxategien igoera martxan da. Orria orain uzteak igoera ezeztatutko du.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Karpeta izen baliogabea. \"Shared\" karpetaren erabilera Owncloudek erreserbatuta dauka",
+"URL cannot be empty." => "URLa ezin da hutsik egon.",
"{count} files scanned" => "{count} fitxategi eskaneatuta",
"error while scanning" => "errore bat egon da eskaneatzen zen bitartean",
"Name" => "Izena",
diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php
index 8284593e886..062df6a56b3 100644
--- a/apps/files/l10n/fa.php
+++ b/apps/files/l10n/fa.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "هیچ فایلی آپلود نشد.خطای ناشناس",
"There is no error, the file uploaded with success" => "هیچ خطایی وجود ندارد فایل با موفقیت بار گذاری شد",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "حداکثر حجم مجاز برای بارگذاری از طریق HTML \nMAX_FILE_SIZE",
"The uploaded file was only partially uploaded" => "مقدار کمی از فایل بارگذاری شده",
diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php
index 772dabbb392..e7e4b044372 100644
--- a/apps/files/l10n/fi_FI.php
+++ b/apps/files/l10n/fi_FI.php
@@ -1,10 +1,16 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Kohteen %s siirto ei onnistunut - Tiedosto samalla nimellä on jo olemassa",
+"Could not move %s" => "Kohteen %s siirto ei onnistunut",
+"Unable to rename file" => "Tiedoston nimeäminen uudelleen ei onnistunut",
+"No file was uploaded. Unknown error" => "Tiedostoa ei lähetetty. Tuntematon virhe",
"There is no error, the file uploaded with success" => "Ei virheitä, tiedosto lähetettiin onnistuneesti",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Lähetetty tiedosto ylittää HTML-lomakkeessa määritetyn MAX_FILE_SIZE-arvon ylärajan",
"The uploaded file was only partially uploaded" => "Tiedoston lähetys onnistui vain osittain",
"No file was uploaded" => "Yhtäkään tiedostoa ei lähetetty",
"Missing a temporary folder" => "Väliaikaiskansiota ei ole olemassa",
"Failed to write to disk" => "Levylle kirjoitus epäonnistui",
+"Not enough space available" => "Tilaa ei ole riittävästi",
+"Invalid directory." => "Virheellinen kansio.",
"Files" => "Tiedostot",
"Unshare" => "Peru jakaminen",
"Delete" => "Poista",
@@ -14,6 +20,8 @@
"suggest name" => "ehdota nimeä",
"cancel" => "peru",
"undo" => "kumoa",
+"'.' is an invalid file name." => "'.' on virheellinen nimi tiedostolle.",
+"File name cannot be empty." => "Tiedoston nimi ei voi olla tyhjä.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Virheellinen nimi, merkit '\\', '/', '<', '>', ':', '\"', '|', '?' ja '*' eivät ole sallittuja.",
"generating ZIP-file, it may take some time." => "luodaan ZIP-tiedostoa, tämä saattaa kestää hetken.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Tiedoston lähetys epäonnistui, koska sen koko on 0 tavua tai kyseessä on kansio",
@@ -22,6 +30,7 @@
"Pending" => "Odottaa",
"Upload cancelled." => "Lähetys peruttu.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Tiedoston lähetys on meneillään. Sivulta poistuminen nyt peruu tiedoston lähetyksen.",
+"URL cannot be empty." => "Verkko-osoite ei voi olla tyhjä",
"Name" => "Nimi",
"Size" => "Koko",
"Modified" => "Muutettu",
@@ -40,6 +49,7 @@
"New" => "Uusi",
"Text file" => "Tekstitiedosto",
"Folder" => "Kansio",
+"From link" => "Linkistä",
"Upload" => "Lähetä",
"Cancel upload" => "Peru lähetys",
"Nothing in here. Upload something!" => "Täällä ei ole mitään. Lähetä tänne jotakin!",
diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php
index 86d476873d0..f14759ff8f0 100644
--- a/apps/files/l10n/fr.php
+++ b/apps/files/l10n/fr.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Impossible de déplacer %s - Un fichier possédant ce nom existe déjà",
+"Could not move %s" => "Impossible de déplacer %s",
+"Unable to rename file" => "Impossible de renommer le fichier",
+"No file was uploaded. Unknown error" => "Aucun fichier n'a été chargé. Erreur inconnue",
"There is no error, the file uploaded with success" => "Aucune erreur, le fichier a été téléversé avec succès",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Le fichier envoyé dépasse la valeur upload_max_filesize située dans le fichier php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Le fichier téléversé excède la valeur de MAX_FILE_SIZE spécifiée dans le formulaire HTML",
@@ -6,6 +10,8 @@
"No file was uploaded" => "Aucun fichier n'a été téléversé",
"Missing a temporary folder" => "Il manque un répertoire temporaire",
"Failed to write to disk" => "Erreur d'écriture sur le disque",
+"Not enough space available" => "Espace disponible insuffisant",
+"Invalid directory." => "Dossier invalide.",
"Files" => "Fichiers",
"Unshare" => "Ne plus partager",
"Delete" => "Supprimer",
@@ -14,11 +20,13 @@
"replace" => "remplacer",
"suggest name" => "Suggérer un nom",
"cancel" => "annuler",
-"replaced {new_name}" => "{new_name} a été replacé",
+"replaced {new_name}" => "{new_name} a été remplacé",
"undo" => "annuler",
"replaced {new_name} with {old_name}" => "{new_name} a été remplacé par {old_name}",
"unshared {files}" => "Fichiers non partagés : {files}",
"deleted {files}" => "Fichiers supprimés : {files}",
+"'.' is an invalid file name." => "'.' n'est pas un nom de fichier valide.",
+"File name cannot be empty." => "Le nom de fichier ne peut être vide.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nom invalide, les caractères '\\', '/', '<', '>', ':', '\"', '|', '?' et '*' ne sont pas autorisés.",
"generating ZIP-file, it may take some time." => "Fichier ZIP en cours d'assemblage ; cela peut prendre du temps.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Impossible de charger vos fichiers car il s'agit d'un dossier ou le fichier fait 0 octet.",
@@ -29,7 +37,8 @@
"{count} files uploading" => "{count} fichiers téléversés",
"Upload cancelled." => "Chargement annulé.",
"File upload is in progress. Leaving the page now will cancel the upload." => "L'envoi du fichier est en cours. Quitter cette page maintenant annulera l'envoi du fichier.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Nom de répertoire invalide. \"Shared\" est réservé par ownCloud",
+"URL cannot be empty." => "L'URL ne peut-être vide",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nom de dossier invalide. L'utilisation du mot 'Shared' est réservée à Owncloud",
"{count} files scanned" => "{count} fichiers indexés",
"error while scanning" => "erreur lors de l'indexation",
"Name" => "Nom",
@@ -54,7 +63,7 @@
"Upload" => "Envoyer",
"Cancel upload" => "Annuler l'envoi",
"Nothing in here. Upload something!" => "Il n'y a rien ici ! Envoyez donc quelque chose :)",
-"Download" => "Téléchargement",
+"Download" => "Télécharger",
"Upload too large" => "Fichier trop volumineux",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Les fichiers que vous essayez d'envoyer dépassent la taille maximale permise par ce serveur.",
"Files are being scanned, please wait." => "Les fichiers sont en cours d'analyse, veuillez patienter.",
diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php
index 5c50e3764cf..c15066163cf 100644
--- a/apps/files/l10n/gl.php
+++ b/apps/files/l10n/gl.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Non se moveu %s - Xa existe un ficheiro con ese nome.",
+"Could not move %s" => "Non se puido mover %s",
+"Unable to rename file" => "Non se pode renomear o ficheiro",
+"No file was uploaded. Unknown error" => "Non se subiu ningún ficheiro. Erro descoñecido.",
"There is no error, the file uploaded with success" => "Non hai erros. O ficheiro enviouse correctamente",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro subido excede a directiva indicada polo tamaño_máximo_de_subida de php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O ficheiro enviado supera a directiva MAX_FILE_SIZE que foi indicada no formulario HTML",
@@ -6,6 +10,8 @@
"No file was uploaded" => "Non se enviou ningún ficheiro",
"Missing a temporary folder" => "Falta un cartafol temporal",
"Failed to write to disk" => "Erro ao escribir no disco",
+"Not enough space available" => "O espazo dispoñíbel é insuficiente",
+"Invalid directory." => "O directorio é incorrecto.",
"Files" => "Ficheiros",
"Unshare" => "Deixar de compartir",
"Delete" => "Eliminar",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "substituír {new_name} polo {old_name}",
"unshared {files}" => "{files} sen compartir",
"deleted {files}" => "{files} eliminados",
+"'.' is an invalid file name." => "'.' é un nonme de ficheiro non válido",
+"File name cannot be empty." => "O nome de ficheiro non pode estar baldeiro",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome non válido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non se permiten.",
"generating ZIP-file, it may take some time." => "xerando un ficheiro ZIP, o que pode levar un anaco.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Non se puido subir o ficheiro pois ou é un directorio ou ten 0 bytes",
@@ -29,7 +37,8 @@
"{count} files uploading" => "{count} ficheiros subíndose",
"Upload cancelled." => "Subida cancelada.",
"File upload is in progress. Leaving the page now will cancel the upload." => "A subida do ficheiro está en curso. Saír agora da páxina cancelará a subida.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Nome de cartafol non válido. O uso de \"compartido\" está reservado exclusivamente para ownCloud",
+"URL cannot be empty." => "URL non pode quedar baleiro.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nome de cartafol non válido. O uso de 'Shared' está reservado por Owncloud",
"{count} files scanned" => "{count} ficheiros escaneados",
"error while scanning" => "erro mentres analizaba",
"Name" => "Nome",
diff --git a/apps/files/l10n/he.php b/apps/files/l10n/he.php
index 4c73493211d..bac9a8a6a53 100644
--- a/apps/files/l10n/he.php
+++ b/apps/files/l10n/he.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "לא הועלה קובץ. טעות בלתי מזוהה.",
"There is no error, the file uploaded with success" => "לא אירעה תקלה, הקבצים הועלו בהצלחה",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "הקבצים שנשלחו חורגים מהגודל שצוין בהגדרה upload_max_filesize שבקובץ php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "הקובץ שהועלה חרג מההנחיה MAX_FILE_SIZE שצוינה בטופס ה־HTML",
@@ -29,7 +30,7 @@
"{count} files uploading" => "{count} קבצים נשלחים",
"Upload cancelled." => "ההעלאה בוטלה.",
"File upload is in progress. Leaving the page now will cancel the upload." => "מתבצעת כעת העלאת קבצים. עזיבה של העמוד תבטל את ההעלאה.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "שם התיקייה שגוי. השימוש בשם „Shared“ שמור לטובת Owncloud",
+"URL cannot be empty." => "קישור אינו יכול להיות ריק.",
"{count} files scanned" => "{count} קבצים נסרקו",
"error while scanning" => "אירעה שגיאה במהלך הסריקה",
"Name" => "שם",
diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php
index 083d5a391e1..b0d46ee7a2c 100644
--- a/apps/files/l10n/hu_HU.php
+++ b/apps/files/l10n/hu_HU.php
@@ -1,42 +1,67 @@
<?php $TRANSLATIONS = array(
-"There is no error, the file uploaded with success" => "Nincs hiba, a fájl sikeresen feltöltve.",
-"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "A feltöltött fájl meghaladja a MAX_FILE_SIZE direktívát ami meghatározott a HTML form-ban.",
-"The uploaded file was only partially uploaded" => "Az eredeti fájl csak részlegesen van feltöltve.",
-"No file was uploaded" => "Nem lett fájl feltöltve.",
-"Missing a temporary folder" => "Hiányzik az ideiglenes könyvtár",
-"Failed to write to disk" => "Nem írható lemezre",
+"No file was uploaded. Unknown error" => "Nem történt feltöltés. Ismeretlen hiba",
+"There is no error, the file uploaded with success" => "A fájlt sikerült feltölteni",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "A feltöltött fájl mérete meghaladja a php.ini állományban megadott upload_max_filesize paraméter értékét.",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "A feltöltött fájl mérete meghaladja a MAX_FILE_SIZE paramétert, ami a HTML formban került megadásra.",
+"The uploaded file was only partially uploaded" => "Az eredeti fájlt csak részben sikerült feltölteni.",
+"No file was uploaded" => "Nem töltődött fel semmi",
+"Missing a temporary folder" => "Hiányzik egy ideiglenes mappa",
+"Failed to write to disk" => "Nem sikerült a lemezre történő írás",
+"Not enough space available" => "Nincs elég szabad hely",
+"Invalid directory." => "Érvénytelen mappa.",
"Files" => "Fájlok",
-"Unshare" => "Nem oszt meg",
+"Unshare" => "Megosztás visszavonása",
"Delete" => "Törlés",
-"replace" => "cserél",
+"Rename" => "Átnevezés",
+"{new_name} already exists" => "{new_name} már létezik",
+"replace" => "írjuk fölül",
+"suggest name" => "legyen más neve",
"cancel" => "mégse",
-"undo" => "visszavon",
+"replaced {new_name}" => "a(z) {new_name} állományt kicseréltük",
+"undo" => "visszavonás",
+"replaced {new_name} with {old_name}" => "{new_name} fájlt kicseréltük ezzel: {old_name}",
+"unshared {files}" => "{files} fájl megosztása visszavonva",
+"deleted {files}" => "{files} fájl törölve",
+"'.' is an invalid file name." => "'.' fájlnév érvénytelen.",
+"File name cannot be empty." => "A fájlnév nem lehet semmi.",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Érvénytelen elnevezés. Ezek a karakterek nem használhatók: '\\', '/', '<', '>', ':', '\"', '|', '?' és '*'",
"generating ZIP-file, it may take some time." => "ZIP-fájl generálása, ez eltarthat egy ideig.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nem tölthető fel, mert mappa volt, vagy 0 byte méretű",
"Upload Error" => "Feltöltési hiba",
-"Close" => "Bezár",
+"Close" => "Bezárás",
"Pending" => "Folyamatban",
-"Upload cancelled." => "Feltöltés megszakítva",
+"1 file uploading" => "1 fájl töltődik föl",
+"{count} files uploading" => "{count} fájl töltődik föl",
+"Upload cancelled." => "A feltöltést megszakítottuk.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Fájlfeltöltés van folyamatban. Az oldal elhagyása megszakítja a feltöltést.",
+"URL cannot be empty." => "Az URL nem lehet semmi.",
+"{count} files scanned" => "{count} fájlt találtunk",
+"error while scanning" => "Hiba a fájllista-ellenőrzés során",
"Name" => "Név",
"Size" => "Méret",
"Modified" => "Módosítva",
+"1 folder" => "1 mappa",
+"{count} folders" => "{count} mappa",
+"1 file" => "1 fájl",
+"{count} files" => "{count} fájl",
"File handling" => "Fájlkezelés",
"Maximum upload size" => "Maximális feltölthető fájlméret",
-"max. possible: " => "max. lehetséges",
-"Needed for multi-file and folder downloads." => "Kötegelt file- vagy mappaletöltéshez szükséges",
-"Enable ZIP-download" => "ZIP-letöltés engedélyezése",
+"max. possible: " => "max. lehetséges: ",
+"Needed for multi-file and folder downloads." => "Kötegelt fájl- vagy mappaletöltéshez szükséges",
+"Enable ZIP-download" => "A ZIP-letöltés engedélyezése",
"0 is unlimited" => "0 = korlátlan",
-"Maximum input size for ZIP files" => "ZIP file-ok maximum mérete",
+"Maximum input size for ZIP files" => "ZIP-fájlok maximális kiindulási mérete",
"Save" => "Mentés",
"New" => "Új",
"Text file" => "Szövegfájl",
"Folder" => "Mappa",
+"From link" => "Feltöltés linkről",
"Upload" => "Feltöltés",
-"Cancel upload" => "Feltöltés megszakítása",
-"Nothing in here. Upload something!" => "Töltsön fel egy fájlt.",
+"Cancel upload" => "A feltöltés megszakítása",
+"Nothing in here. Upload something!" => "Itt nincs semmi. Töltsön fel valamit!",
"Download" => "Letöltés",
-"Upload too large" => "Feltöltés túl nagy",
-"The files you are trying to upload exceed the maximum size for file uploads on this server." => "A fájlokat amit próbálsz feltölteni meghaladta a legnagyobb fájlméretet ezen a szerveren.",
-"Files are being scanned, please wait." => "File-ok vizsgálata, kis türelmet",
-"Current scanning" => "Aktuális vizsgálat"
+"Upload too large" => "A feltöltés túl nagy",
+"The files you are trying to upload exceed the maximum size for file uploads on this server." => "A feltöltendő állományok mérete meghaladja a kiszolgálón megengedett maximális méretet.",
+"Files are being scanned, please wait." => "A fájllista ellenőrzése zajlik, kis türelmet!",
+"Current scanning" => "Ellenőrzés alatt"
);
diff --git a/apps/files/l10n/id.php b/apps/files/l10n/id.php
index 1f8cb444d26..5d934e97e7b 100644
--- a/apps/files/l10n/id.php
+++ b/apps/files/l10n/id.php
@@ -17,6 +17,7 @@
"Close" => "tutup",
"Pending" => "Menunggu",
"Upload cancelled." => "Pengunggahan dibatalkan.",
+"URL cannot be empty." => "tautan tidak boleh kosong",
"Name" => "Nama",
"Size" => "Ukuran",
"Modified" => "Dimodifikasi",
diff --git a/apps/files/l10n/is.php b/apps/files/l10n/is.php
new file mode 100644
index 00000000000..2eff686611a
--- /dev/null
+++ b/apps/files/l10n/is.php
@@ -0,0 +1,71 @@
+<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Gat ekki fært %s - Skrá með þessu nafni er þegar til",
+"Could not move %s" => "Gat ekki fært %s",
+"Unable to rename file" => "Gat ekki endurskýrt skrá",
+"No file was uploaded. Unknown error" => "Engin skrá var send inn. Óþekkt villa.",
+"There is no error, the file uploaded with success" => "Engin villa, innsending heppnaðist",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Innsend skrá er stærri en upload_max stillingin í php.ini:",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Innsenda skráin er stærri en MAX_FILE_SIZE sem skilgreint er í HTML sniðinu.",
+"The uploaded file was only partially uploaded" => "Einungis hluti af innsendri skrá skilaði sér",
+"No file was uploaded" => "Engin skrá skilaði sér",
+"Missing a temporary folder" => "Vantar bráðabirgðamöppu",
+"Failed to write to disk" => "Tókst ekki að skrifa á disk",
+"Not enough space available" => "Ekki nægt pláss tiltækt",
+"Invalid directory." => "Ógild mappa.",
+"Files" => "Skrár",
+"Unshare" => "Hætta deilingu",
+"Delete" => "Eyða",
+"Rename" => "Endurskýra",
+"{new_name} already exists" => "{new_name} er þegar til",
+"replace" => "yfirskrifa",
+"suggest name" => "stinga upp á nafni",
+"cancel" => "hætta við",
+"replaced {new_name}" => "endurskýrði {new_name}",
+"undo" => "afturkalla",
+"replaced {new_name} with {old_name}" => "yfirskrifaði {new_name} með {old_name}",
+"unshared {files}" => "Hætti við deilingu á {files}",
+"deleted {files}" => "eyddi {files}",
+"'.' is an invalid file name." => "'.' er ekki leyfilegt nafn.",
+"File name cannot be empty." => "Nafn skráar má ekki vera tómt",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ógilt nafn, táknin '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' eru ekki leyfð.",
+"generating ZIP-file, it may take some time." => "bý til ZIP skrá, það gæti tekið smá stund.",
+"Unable to upload your file as it is a directory or has 0 bytes" => "Innsending á skrá mistókst, hugsanlega sendir þú möppu eða skráin er 0 bæti.",
+"Upload Error" => "Villa við innsendingu",
+"Close" => "Loka",
+"Pending" => "Bíður",
+"1 file uploading" => "1 skrá innsend",
+"{count} files uploading" => "{count} skrár innsendar",
+"Upload cancelled." => "Hætt við innsendingu.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Innsending í gangi. Ef þú ferð af þessari síðu mun innsending misheppnast.",
+"URL cannot be empty." => "Vefslóð má ekki vera tóm.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Óleyfilegt nafn á möppu. Nafnið 'Shared' er frátekið fyrir Owncloud",
+"{count} files scanned" => "{count} skrár skimaðar",
+"error while scanning" => "villa við skimun",
+"Name" => "Nafn",
+"Size" => "Stærð",
+"Modified" => "Breytt",
+"1 folder" => "1 mappa",
+"{count} folders" => "{count} möppur",
+"1 file" => "1 skrá",
+"{count} files" => "{count} skrár",
+"File handling" => "Meðhöndlun skrár",
+"Maximum upload size" => "Hámarks stærð innsendingar",
+"max. possible: " => "hámark mögulegt: ",
+"Needed for multi-file and folder downloads." => "Nauðsynlegt til að sækja margar skrár og möppur í einu.",
+"Enable ZIP-download" => "Virkja ZIP niðurhal.",
+"0 is unlimited" => "0 er ótakmarkað",
+"Maximum input size for ZIP files" => "Hámarks inntaksstærð fyrir ZIP skrár",
+"Save" => "Vista",
+"New" => "Nýtt",
+"Text file" => "Texta skrá",
+"Folder" => "Mappa",
+"From link" => "Af tengli",
+"Upload" => "Senda inn",
+"Cancel upload" => "Hætta við innsendingu",
+"Nothing in here. Upload something!" => "Ekkert hér. Settu eitthvað inn!",
+"Download" => "Niðurhal",
+"Upload too large" => "Innsend skrá er of stór",
+"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Skrárnar sem þú ert að senda inn eru stærri en hámarks innsendingarstærð á þessum netþjóni.",
+"Files are being scanned, please wait." => "Verið er að skima skrár, vinsamlegast hinkraðu.",
+"Current scanning" => "Er að skima"
+);
diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php
index 90b34171220..a54e424694f 100644
--- a/apps/files/l10n/it.php
+++ b/apps/files/l10n/it.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Impossibile spostare %s - un file con questo nome esiste già",
+"Could not move %s" => "Impossibile spostare %s",
+"Unable to rename file" => "Impossibile rinominare il file",
+"No file was uploaded. Unknown error" => "Nessun file è stato inviato. Errore sconosciuto",
"There is no error, the file uploaded with success" => "Non ci sono errori, file caricato con successo",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Il file caricato supera la direttiva upload_max_filesize in php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Il file caricato supera il valore MAX_FILE_SIZE definito nel form HTML",
@@ -6,6 +10,8 @@
"No file was uploaded" => "Nessun file è stato caricato",
"Missing a temporary folder" => "Cartella temporanea mancante",
"Failed to write to disk" => "Scrittura su disco non riuscita",
+"Not enough space available" => "Spazio disponibile insufficiente",
+"Invalid directory." => "Cartella non valida.",
"Files" => "File",
"Unshare" => "Rimuovi condivisione",
"Delete" => "Elimina",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "sostituito {new_name} con {old_name}",
"unshared {files}" => "non condivisi {files}",
"deleted {files}" => "eliminati {files}",
+"'.' is an invalid file name." => "'.' non è un nome file valido.",
+"File name cannot be empty." => "Il nome del file non può essere vuoto.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome non valido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' non sono consentiti.",
"generating ZIP-file, it may take some time." => "creazione file ZIP, potrebbe richiedere del tempo.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Impossibile inviare il file poiché è una cartella o ha dimensione 0 byte",
@@ -29,7 +37,8 @@
"{count} files uploading" => "{count} file in fase di caricamentoe",
"Upload cancelled." => "Invio annullato",
"File upload is in progress. Leaving the page now will cancel the upload." => "Caricamento del file in corso. La chiusura della pagina annullerà il caricamento.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Nome della cartella non valido. L'uso di \"Shared\" è riservato a ownCloud",
+"URL cannot be empty." => "L'URL non può essere vuoto.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nome della cartella non valido. L'uso di 'Shared' è riservato da ownCloud",
"{count} files scanned" => "{count} file analizzati",
"error while scanning" => "errore durante la scansione",
"Name" => "Nome",
diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php
index 7b8c3ca4778..4621cc5d4ea 100644
--- a/apps/files/l10n/ja_JP.php
+++ b/apps/files/l10n/ja_JP.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "%s を移動できませんでした ― この名前のファイルはすでに存在します",
+"Could not move %s" => "%s を移動できませんでした",
+"Unable to rename file" => "ファイル名の変更ができません",
+"No file was uploaded. Unknown error" => "ファイルは何もアップロードされていません。不明なエラー",
"There is no error, the file uploaded with success" => "エラーはありません。ファイルのアップロードは成功しました",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "アップロードされたファイルはphp.ini の upload_max_filesize に設定されたサイズを超えています:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "アップロードされたファイルはHTMLのフォームに設定されたMAX_FILE_SIZEに設定されたサイズを超えています",
@@ -6,6 +10,8 @@
"No file was uploaded" => "ファイルはアップロードされませんでした",
"Missing a temporary folder" => "テンポラリフォルダが見つかりません",
"Failed to write to disk" => "ディスクへの書き込みに失敗しました",
+"Not enough space available" => "利用可能なスペースが十分にありません",
+"Invalid directory." => "無効なディレクトリです。",
"Files" => "ファイル",
"Unshare" => "共有しない",
"Delete" => "削除",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "{old_name} を {new_name} に置換",
"unshared {files}" => "未共有 {files}",
"deleted {files}" => "削除 {files}",
+"'.' is an invalid file name." => "'.' は無効なファイル名です。",
+"File name cannot be empty." => "ファイル名を空にすることはできません。",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "無効な名前、'\\', '/', '<', '>', ':', '\"', '|', '?', '*' は使用できません。",
"generating ZIP-file, it may take some time." => "ZIPファイルを生成中です、しばらくお待ちください。",
"Unable to upload your file as it is a directory or has 0 bytes" => "ディレクトリもしくは0バイトのファイルはアップロードできません",
@@ -29,7 +37,8 @@
"{count} files uploading" => "{count} ファイルをアップロード中",
"Upload cancelled." => "アップロードはキャンセルされました。",
"File upload is in progress. Leaving the page now will cancel the upload." => "ファイル転送を実行中です。今このページから移動するとアップロードが中止されます。",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "無効なフォルダ名です。\"Shared\" の利用は ownCloud が予約済みです。",
+"URL cannot be empty." => "URLは空にできません。",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "無効なフォルダ名です。'Shared' の利用は ownCloud が予約済みです。",
"{count} files scanned" => "{count} ファイルをスキャン",
"error while scanning" => "スキャン中のエラー",
"Name" => "名前",
diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php
index 4b5d57dff92..928b7cbb7e4 100644
--- a/apps/files/l10n/ko.php
+++ b/apps/files/l10n/ko.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "%s 항목을 이동시키지 못하였음 - 파일 이름이 이미 존재함",
+"Could not move %s" => "%s 항목을 이딩시키지 못하였음",
+"Unable to rename file" => "파일 이름바꾸기 할 수 없음",
+"No file was uploaded. Unknown error" => "파일이 업로드되지 않았습니다. 알 수 없는 오류입니다",
"There is no error, the file uploaded with success" => "업로드에 성공하였습니다.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "업로드한 파일이 php.ini의 upload_max_filesize보다 큽니다:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "업로드한 파일이 HTML 문서에 지정한 MAX_FILE_SIZE보다 더 큼",
@@ -6,6 +10,8 @@
"No file was uploaded" => "업로드된 파일 없음",
"Missing a temporary folder" => "임시 폴더가 사라짐",
"Failed to write to disk" => "디스크에 쓰지 못했습니다",
+"Not enough space available" => "여유공간이 부족합니다",
+"Invalid directory." => "올바르지 않은 디렉토리입니다.",
"Files" => "파일",
"Unshare" => "공유 해제",
"Delete" => "삭제",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "{old_name}이(가) {new_name}(으)로 대체됨",
"unshared {files}" => "{files} 공유 해제됨",
"deleted {files}" => "{files} 삭제됨",
+"'.' is an invalid file name." => "'.' 는 올바르지 않은 파일 이름 입니다.",
+"File name cannot be empty." => "파일이름은 공란이 될 수 없습니다.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "폴더 이름이 올바르지 않습니다. 이름에 문자 '\\', '/', '<', '>', ':', '\"', '|', '? ', '*'는 사용할 수 없습니다.",
"generating ZIP-file, it may take some time." => "ZIP 파일을 생성하고 있습니다. 시간이 걸릴 수도 있습니다.",
"Unable to upload your file as it is a directory or has 0 bytes" => "이 파일은 디렉터리이거나 비어 있기 때문에 업로드할 수 없습니다",
@@ -29,7 +37,8 @@
"{count} files uploading" => "파일 {count}개 업로드 중",
"Upload cancelled." => "업로드가 취소되었습니다.",
"File upload is in progress. Leaving the page now will cancel the upload." => "파일 업로드가 진행 중입니다. 이 페이지를 벗어나면 업로드가 취소됩니다.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "폴더 이름이 올바르지 않습니다. \"Shared\" 폴더는 ownCloud에서 예약되었습니다.",
+"URL cannot be empty." => "URL을 입력해야 합니다.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "폴더 이름이 유효하지 않습니다. ",
"{count} files scanned" => "파일 {count}개 검색됨",
"error while scanning" => "검색 중 오류 발생",
"Name" => "이름",
diff --git a/apps/files/l10n/ku_IQ.php b/apps/files/l10n/ku_IQ.php
index 49995f8df86..d6cf6450792 100644
--- a/apps/files/l10n/ku_IQ.php
+++ b/apps/files/l10n/ku_IQ.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
"Close" => "داخستن",
+"URL cannot be empty." => "ناونیشانی به‌سته‌ر نابێت به‌تاڵ بێت.",
"Name" => "ناو",
"Save" => "پاشکه‌وتکردن",
"Folder" => "بوخچه",
diff --git a/apps/files/l10n/mk.php b/apps/files/l10n/mk.php
index c47fdbdbf4f..3f48a69874e 100644
--- a/apps/files/l10n/mk.php
+++ b/apps/files/l10n/mk.php
@@ -1,21 +1,45 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Ниту еден фајл не се вчита. Непозната грешка",
"There is no error, the file uploaded with success" => "Нема грешка, датотеката беше подигната успешно",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Подигнатата датотека ја надминува upload_max_filesize директивата во php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Подигнатата датотеката ја надминува MAX_FILE_SIZE директивата која беше поставена во HTML формата",
"The uploaded file was only partially uploaded" => "Датотеката беше само делумно подигната.",
"No file was uploaded" => "Не беше подигната датотека",
"Missing a temporary folder" => "Не постои привремена папка",
"Failed to write to disk" => "Неуспеав да запишам на диск",
"Files" => "Датотеки",
+"Unshare" => "Не споделувај",
"Delete" => "Избриши",
+"Rename" => "Преименувај",
+"{new_name} already exists" => "{new_name} веќе постои",
+"replace" => "замени",
+"suggest name" => "предложи име",
+"cancel" => "откажи",
+"replaced {new_name}" => "земенета {new_name}",
+"undo" => "врати",
+"replaced {new_name} with {old_name}" => "заменета {new_name} со {old_name}",
+"unshared {files}" => "без споделување {files}",
+"deleted {files}" => "избришани {files}",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправилно име. , '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' не се дозволени.",
"generating ZIP-file, it may take some time." => "Се генерира ZIP фајлот, ќе треба извесно време.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Не може да се преземе вашата датотека бидејќи фолдерот во кој се наоѓа фајлот има големина од 0 бајти",
"Upload Error" => "Грешка при преземање",
"Close" => "Затвои",
"Pending" => "Чека",
+"1 file uploading" => "1 датотека се подига",
+"{count} files uploading" => "{count} датотеки се подигаат",
"Upload cancelled." => "Преземањето е прекинато.",
+"File upload is in progress. Leaving the page now will cancel the upload." => "Подигање на датотека е во тек. Напуштење на страницата ќе го прекине.",
+"URL cannot be empty." => "Адресата неможе да биде празна.",
+"{count} files scanned" => "{count} датотеки скенирани",
+"error while scanning" => "грешка при скенирање",
"Name" => "Име",
"Size" => "Големина",
"Modified" => "Променето",
+"1 folder" => "1 папка",
+"{count} folders" => "{count} папки",
+"1 file" => "1 датотека",
+"{count} files" => "{count} датотеки",
"File handling" => "Ракување со датотеки",
"Maximum upload size" => "Максимална големина за подигање",
"max. possible: " => "макс. можно:",
@@ -27,6 +51,7 @@
"New" => "Ново",
"Text file" => "Текстуална датотека",
"Folder" => "Папка",
+"From link" => "Од врска",
"Upload" => "Подигни",
"Cancel upload" => "Откажи прикачување",
"Nothing in here. Upload something!" => "Тука нема ништо. Снимете нешто!",
diff --git a/apps/files/l10n/ms_MY.php b/apps/files/l10n/ms_MY.php
index d7756698d0c..7fa87840842 100644
--- a/apps/files/l10n/ms_MY.php
+++ b/apps/files/l10n/ms_MY.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Tiada fail dimuatnaik. Ralat tidak diketahui.",
"There is no error, the file uploaded with success" => "Tiada ralat, fail berjaya dimuat naik.",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Fail yang dimuat naik melebihi MAX_FILE_SIZE yang dinyatakan dalam form HTML ",
"The uploaded file was only partially uploaded" => "Sebahagian daripada fail telah dimuat naik. ",
diff --git a/apps/files/l10n/nb_NO.php b/apps/files/l10n/nb_NO.php
index e5615a1c29b..9be868164b1 100644
--- a/apps/files/l10n/nb_NO.php
+++ b/apps/files/l10n/nb_NO.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Ingen filer ble lastet opp. Ukjent feil.",
"There is no error, the file uploaded with success" => "Det er ingen feil. Filen ble lastet opp.",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Filstørrelsen overskrider maksgrensen på MAX_FILE_SIZE som ble oppgitt i HTML-skjemaet",
"The uploaded file was only partially uploaded" => "Filopplastningen ble bare delvis gjennomført",
@@ -17,6 +18,7 @@
"undo" => "angre",
"replaced {new_name} with {old_name}" => "erstatt {new_name} med {old_name}",
"deleted {files}" => "slettet {files}",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldig navn, '\\', '/', '<', '>', ':', '\"', '|', '?' og '*' er ikke tillatt.",
"generating ZIP-file, it may take some time." => "opprettet ZIP-fil, dette kan ta litt tid",
"Unable to upload your file as it is a directory or has 0 bytes" => "Kan ikke laste opp filen din siden det er en mappe eller den har 0 bytes",
"Upload Error" => "Opplasting feilet",
@@ -26,6 +28,7 @@
"{count} files uploading" => "{count} filer laster opp",
"Upload cancelled." => "Opplasting avbrutt.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Filopplasting pågår. Forlater du siden nå avbrytes opplastingen.",
+"URL cannot be empty." => "URL-en kan ikke være tom.",
"{count} files scanned" => "{count} filer lest inn",
"error while scanning" => "feil under skanning",
"Name" => "Navn",
@@ -46,6 +49,7 @@
"New" => "Ny",
"Text file" => "Tekstfil",
"Folder" => "Mappe",
+"From link" => "Fra link",
"Upload" => "Last opp",
"Cancel upload" => "Avbryt opplasting",
"Nothing in here. Upload something!" => "Ingenting her. Last opp noe!",
diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php
index 093a5430d53..77219abcf20 100644
--- a/apps/files/l10n/nl.php
+++ b/apps/files/l10n/nl.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Er was geen bestand geladen. Onbekende fout",
"There is no error, the file uploaded with success" => "Geen fout opgetreden, bestand successvol geupload.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Het geüploade bestand overscheidt de upload_max_filesize optie in php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Het geüploade bestand is groter dan de MAX_FILE_SIZE richtlijn die is opgegeven in de HTML-formulier",
@@ -6,6 +7,8 @@
"No file was uploaded" => "Geen bestand geüpload",
"Missing a temporary folder" => "Een tijdelijke map mist",
"Failed to write to disk" => "Schrijven naar schijf mislukt",
+"Not enough space available" => "Niet genoeg ruimte beschikbaar",
+"Invalid directory." => "Ongeldige directory.",
"Files" => "Bestanden",
"Unshare" => "Stop delen",
"Delete" => "Verwijder",
@@ -19,6 +22,8 @@
"replaced {new_name} with {old_name}" => "verving {new_name} met {old_name}",
"unshared {files}" => "delen gestopt {files}",
"deleted {files}" => "verwijderde {files}",
+"'.' is an invalid file name." => "'.' is een ongeldige bestandsnaam.",
+"File name cannot be empty." => "Bestandsnaam kan niet leeg zijn.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Onjuiste naam; '\\', '/', '<', '>', ':', '\"', '|', '?' en '*' zijn niet toegestaan.",
"generating ZIP-file, it may take some time." => "aanmaken ZIP-file, dit kan enige tijd duren.",
"Unable to upload your file as it is a directory or has 0 bytes" => "uploaden van de file mislukt, het is of een directory of de bestandsgrootte is 0 bytes",
@@ -29,7 +34,7 @@
"{count} files uploading" => "{count} bestanden aan het uploaden",
"Upload cancelled." => "Uploaden geannuleerd.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Bestandsupload is bezig. Wanneer de pagina nu verlaten wordt, stopt de upload.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Folder naam niet toegestaan. Het gebruik van \"Shared\" is aan Owncloud voorbehouden",
+"URL cannot be empty." => "URL kan niet leeg zijn.",
"{count} files scanned" => "{count} bestanden gescanned",
"error while scanning" => "Fout tijdens het scannen",
"Name" => "Naam",
diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php
index 8051eae8c42..b96048cf002 100644
--- a/apps/files/l10n/pl.php
+++ b/apps/files/l10n/pl.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Plik nie został załadowany. Nieznany błąd",
"There is no error, the file uploaded with success" => "Przesłano plik",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Wgrany plik przekracza wartość upload_max_filesize zdefiniowaną w php.ini: ",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Rozmiar przesłanego pliku przekracza maksymalną wartość dyrektywy upload_max_filesize, zawartą formularzu HTML",
@@ -6,6 +7,8 @@
"No file was uploaded" => "Nie przesłano żadnego pliku",
"Missing a temporary folder" => "Brak katalogu tymczasowego",
"Failed to write to disk" => "Błąd zapisu na dysk",
+"Not enough space available" => "Za mało miejsca",
+"Invalid directory." => "Zła ścieżka.",
"Files" => "Pliki",
"Unshare" => "Nie udostępniaj",
"Delete" => "Usuwa element",
@@ -19,6 +22,8 @@
"replaced {new_name} with {old_name}" => "zastąpiony {new_name} z {old_name}",
"unshared {files}" => "Udostępniane wstrzymane {files}",
"deleted {files}" => "usunięto {files}",
+"'.' is an invalid file name." => "'.' jest nieprawidłową nazwą pliku.",
+"File name cannot be empty." => "Nazwa pliku nie może być pusta.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Niepoprawna nazwa, Znaki '\\', '/', '<', '>', ':', '\"', '|', '?' oraz '*'są niedozwolone.",
"generating ZIP-file, it may take some time." => "Generowanie pliku ZIP, może potrwać pewien czas.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nie można wczytać pliku jeśli jest katalogiem lub ma 0 bajtów",
@@ -29,7 +34,8 @@
"{count} files uploading" => "{count} przesyłanie plików",
"Upload cancelled." => "Wczytywanie anulowane.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Wysyłanie pliku jest w toku. Teraz opuszczając stronę wysyłanie zostanie anulowane.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Błędna nazwa folderu. Nazwa \"Shared\" jest zarezerwowana dla Owncloud",
+"URL cannot be empty." => "URL nie może być pusty.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nazwa folderu nieprawidłowa. Wykorzystanie \"Shared\" jest zarezerwowane przez Owncloud",
"{count} files scanned" => "{count} pliki skanowane",
"error while scanning" => "Wystąpił błąd podczas skanowania",
"Name" => "Nazwa",
diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php
index 97e5c94fb31..ece24c7a2fa 100644
--- a/apps/files/l10n/pt_BR.php
+++ b/apps/files/l10n/pt_BR.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Nenhum arquivo foi transferido. Erro desconhecido",
"There is no error, the file uploaded with success" => "Não houve nenhum erro, o arquivo foi transferido com sucesso",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O arquivo enviado excede a diretiva upload_max_filesize no php.ini: ",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O arquivo carregado excede o MAX_FILE_SIZE que foi especificado no formulário HTML",
@@ -29,7 +30,7 @@
"{count} files uploading" => "Enviando {count} arquivos",
"Upload cancelled." => "Envio cancelado.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Upload em andamento. Sair da página agora resultará no cancelamento do envio.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Nome de pasta inválido. O nome \"Shared\" é reservado pelo Owncloud",
+"URL cannot be empty." => "URL não pode ficar em branco",
"{count} files scanned" => "{count} arquivos scaneados",
"error while scanning" => "erro durante verificação",
"Name" => "Nome",
diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php
index 8c90fd47714..fb22894b34e 100644
--- a/apps/files/l10n/pt_PT.php
+++ b/apps/files/l10n/pt_PT.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Não foi possível mover o ficheiro %s - Já existe um ficheiro com esse nome",
+"Could not move %s" => "Não foi possível move o ficheiro %s",
+"Unable to rename file" => "Não foi possível renomear o ficheiro",
+"No file was uploaded. Unknown error" => "Nenhum ficheiro foi carregado. Erro desconhecido",
"There is no error, the file uploaded with success" => "Sem erro, ficheiro enviado com sucesso",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "O ficheiro enviado excede o limite permitido na directiva do php.ini upload_max_filesize",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "O ficheiro enviado excede o diretivo MAX_FILE_SIZE especificado no formulário HTML",
@@ -6,6 +10,8 @@
"No file was uploaded" => "Não foi enviado nenhum ficheiro",
"Missing a temporary folder" => "Falta uma pasta temporária",
"Failed to write to disk" => "Falhou a escrita no disco",
+"Not enough space available" => "Espaço em disco insuficiente!",
+"Invalid directory." => "Directório Inválido",
"Files" => "Ficheiros",
"Unshare" => "Deixar de partilhar",
"Delete" => "Apagar",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "substituido {new_name} por {old_name}",
"unshared {files}" => "{files} não partilhado(s)",
"deleted {files}" => "{files} eliminado(s)",
+"'.' is an invalid file name." => "'.' não é um nome de ficheiro válido!",
+"File name cannot be empty." => "O nome do ficheiro não pode estar vazio.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome Inválido, os caracteres '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.",
"generating ZIP-file, it may take some time." => "a gerar o ficheiro ZIP, poderá demorar algum tempo.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Não é possível fazer o envio do ficheiro devido a ser uma pasta ou ter 0 bytes",
@@ -29,7 +37,8 @@
"{count} files uploading" => "A carregar {count} ficheiros",
"Upload cancelled." => "O envio foi cancelado.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Envio de ficheiro em progresso. Irá cancelar o envio se sair da página agora.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Nome de pasta inválido! O uso de \"Shared\" (Partilhado) está reservado pelo OwnCloud",
+"URL cannot be empty." => "O URL não pode estar vazio.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Nome de pasta inválido. O Uso de 'shared' é reservado para o ownCloud",
"{count} files scanned" => "{count} ficheiros analisados",
"error while scanning" => "erro ao analisar",
"Name" => "Nome",
diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php
index 34e8dc8a50e..c34a341e53f 100644
--- a/apps/files/l10n/ro.php
+++ b/apps/files/l10n/ro.php
@@ -1,30 +1,51 @@
<?php $TRANSLATIONS = array(
+"Could not move %s" => "Nu s-a putut muta %s",
+"Unable to rename file" => "Nu s-a putut redenumi fișierul",
+"No file was uploaded. Unknown error" => "Nici un fișier nu a fost încărcat. Eroare necunoscută",
"There is no error, the file uploaded with success" => "Nicio eroare, fișierul a fost încărcat cu succes",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fisierul incarcat depaseste upload_max_filesize permisi in php.ini: ",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Fișierul are o dimensiune mai mare decât variabile MAX_FILE_SIZE specificată în formularul HTML",
"The uploaded file was only partially uploaded" => "Fișierul a fost încărcat doar parțial",
"No file was uploaded" => "Niciun fișier încărcat",
"Missing a temporary folder" => "Lipsește un dosar temporar",
"Failed to write to disk" => "Eroare la scriere pe disc",
+"Not enough space available" => "Nu este suficient spațiu disponibil",
+"Invalid directory." => "Director invalid.",
"Files" => "Fișiere",
"Unshare" => "Anulează partajarea",
"Delete" => "Șterge",
"Rename" => "Redenumire",
+"{new_name} already exists" => "{new_name} deja exista",
"replace" => "înlocuire",
"suggest name" => "sugerează nume",
"cancel" => "anulare",
+"replaced {new_name}" => "inlocuit {new_name}",
"undo" => "Anulează ultima acțiune",
+"replaced {new_name} with {old_name}" => "{new_name} inlocuit cu {old_name}",
+"unshared {files}" => "nedistribuit {files}",
+"deleted {files}" => "Sterse {files}",
+"'.' is an invalid file name." => "'.' este un nume invalid de fișier.",
+"File name cannot be empty." => "Numele fișierului nu poate rămâne gol.",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nume invalid, '\\', '/', '<', '>', ':', '\"', '|', '?' si '*' nu sunt permise.",
"generating ZIP-file, it may take some time." => "se generază fișierul ZIP, va dura ceva timp.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nu s-a putut încărca fișierul tău deoarece pare să fie un director sau are 0 bytes.",
"Upload Error" => "Eroare la încărcare",
"Close" => "Închide",
"Pending" => "În așteptare",
"1 file uploading" => "un fișier se încarcă",
+"{count} files uploading" => "{count} fisiere incarcate",
"Upload cancelled." => "Încărcare anulată.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Fișierul este în curs de încărcare. Părăsirea paginii va întrerupe încărcarea.",
+"URL cannot be empty." => "Adresa URL nu poate fi goală.",
+"{count} files scanned" => "{count} fisiere scanate",
"error while scanning" => "eroare la scanarea",
"Name" => "Nume",
"Size" => "Dimensiune",
"Modified" => "Modificat",
+"1 folder" => "1 folder",
+"{count} folders" => "{count} foldare",
+"1 file" => "1 fisier",
+"{count} files" => "{count} fisiere",
"File handling" => "Manipulare fișiere",
"Maximum upload size" => "Dimensiune maximă admisă la încărcare",
"max. possible: " => "max. posibil:",
@@ -36,6 +57,7 @@
"New" => "Nou",
"Text file" => "Fișier text",
"Folder" => "Dosar",
+"From link" => "de la adresa",
"Upload" => "Încarcă",
"Cancel upload" => "Anulează încărcarea",
"Nothing in here. Upload something!" => "Nimic aici. Încarcă ceva!",
diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php
index 4b6d0a8b151..49ead61f67e 100644
--- a/apps/files/l10n/ru.php
+++ b/apps/files/l10n/ru.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "Невозможно переместить %s - файл с таким именем уже существует",
+"Could not move %s" => "Невозможно переместить %s",
+"Unable to rename file" => "Невозможно переименовать файл",
+"No file was uploaded. Unknown error" => "Файл не был загружен. Неизвестная ошибка",
"There is no error, the file uploaded with success" => "Файл успешно загружен",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Файл превышает размер установленный upload_max_filesize в php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Файл превышает размер MAX_FILE_SIZE, указаный в HTML-форме",
@@ -6,6 +10,8 @@
"No file was uploaded" => "Файл не был загружен",
"Missing a temporary folder" => "Невозможно найти временную папку",
"Failed to write to disk" => "Ошибка записи на диск",
+"Not enough space available" => "Недостаточно свободного места",
+"Invalid directory." => "Неправильный каталог.",
"Files" => "Файлы",
"Unshare" => "Отменить публикацию",
"Delete" => "Удалить",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "заменено {new_name} на {old_name}",
"unshared {files}" => "не опубликованные {files}",
"deleted {files}" => "удаленные {files}",
+"'.' is an invalid file name." => "'.' - неправильное имя файла.",
+"File name cannot be empty." => "Имя файла не может быть пустым.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Неправильное имя, '\\', '/', '<', '>', ':', '\"', '|', '?' и '*' недопустимы.",
"generating ZIP-file, it may take some time." => "создание ZIP-файла, это может занять некоторое время.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Не удается загрузить файл размером 0 байт в каталог",
@@ -29,7 +37,8 @@
"{count} files uploading" => "{count} файлов загружается",
"Upload cancelled." => "Загрузка отменена.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Файл в процессе загрузки. Покинув страницу вы прервёте загрузку.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Не правильное имя папки. Имя \"Shared\" резервировано в Owncloud",
+"URL cannot be empty." => "Ссылка не может быть пустой.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Неправильное имя каталога. Имя 'Shared' зарезервировано.",
"{count} files scanned" => "{count} файлов просканировано",
"error while scanning" => "ошибка во время санирования",
"Name" => "Название",
diff --git a/apps/files/l10n/ru_RU.php b/apps/files/l10n/ru_RU.php
index 5a6c032ed96..16bcc54e59f 100644
--- a/apps/files/l10n/ru_RU.php
+++ b/apps/files/l10n/ru_RU.php
@@ -1,5 +1,7 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Файл не был загружен. Неизвестная ошибка",
"There is no error, the file uploaded with success" => "Ошибка отсутствует, файл загружен успешно.",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Размер загружаемого файла превышает upload_max_filesize директиву в php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Размер загруженного",
"The uploaded file was only partially uploaded" => "Загружаемый файл был загружен частично",
"No file was uploaded" => "Файл не был загружен",
@@ -28,7 +30,7 @@
"{count} files uploading" => "{количество} загружено файлов",
"Upload cancelled." => "Загрузка отменена",
"File upload is in progress. Leaving the page now will cancel the upload." => "Процесс загрузки файла. Если покинуть страницу сейчас, загрузка будет отменена.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Некорректное имя папки. Нименование \"Опубликовано\" зарезервировано ownCloud",
+"URL cannot be empty." => "URL не должен быть пустым.",
"{count} files scanned" => "{количество} файлов отсканировано",
"error while scanning" => "ошибка при сканировании",
"Name" => "Имя",
diff --git a/apps/files/l10n/si_LK.php b/apps/files/l10n/si_LK.php
index e256075896f..e1e06c4f814 100644
--- a/apps/files/l10n/si_LK.php
+++ b/apps/files/l10n/si_LK.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "ගොනුවක් උඩුගත නොවුනි. නොහැඳිනු දෝෂයක්",
"There is no error, the file uploaded with success" => "නිවැරදි ව ගොනුව උඩුගත කෙරිනි",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "උඩුගත කළ ගොනුවේ විශාලත්වය HTML පෝරමයේ නියම කළ ඇති MAX_FILE_SIZE විශාලත්වයට වඩා වැඩිය",
"The uploaded file was only partially uploaded" => "උඩුගත කළ ගොනුවේ කොටසක් පමණක් උඩුගත විය",
@@ -19,6 +20,7 @@
"1 file uploading" => "1 ගොනුවක් උඩගත කෙරේ",
"Upload cancelled." => "උඩුගත කිරීම අත් හරින්න ලදී",
"File upload is in progress. Leaving the page now will cancel the upload." => "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත",
+"URL cannot be empty." => "යොමුව හිස් විය නොහැක",
"error while scanning" => "පරීක්ෂා කිරීමේදී දෝෂයක්",
"Name" => "නම",
"Size" => "ප්‍රමාණය",
diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php
index 21d9710f6ba..003b1aff225 100644
--- a/apps/files/l10n/sk_SK.php
+++ b/apps/files/l10n/sk_SK.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Žiaden súbor nebol odoslaný. Neznáma chyba",
"There is no error, the file uploaded with success" => "Nenastala žiadna chyba, súbor bol úspešne nahraný",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Nahraný súbor predčil konfiguračnú direktívu upload_max_filesize v súbore php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Nahrávaný súbor presiahol MAX_FILE_SIZE direktívu, ktorá bola špecifikovaná v HTML formulári",
@@ -29,7 +30,7 @@
"{count} files uploading" => "{count} súborov odosielaných",
"Upload cancelled." => "Odosielanie zrušené",
"File upload is in progress. Leaving the page now will cancel the upload." => "Opustenie stránky zruší práve prebiehajúce odosielanie súboru.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Nesprávne meno adresára. Použitie slova \"Shared\" (Zdieľané) je vyhradené službou ownCloud.",
+"URL cannot be empty." => "URL nemôže byť prázdne",
"{count} files scanned" => "{count} súborov prehľadaných",
"error while scanning" => "chyba počas kontroly",
"Name" => "Meno",
diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php
index c5ee6c422d5..2a0f4506386 100644
--- a/apps/files/l10n/sl.php
+++ b/apps/files/l10n/sl.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Nobena datoteka ni naložena. Neznana napaka.",
"There is no error, the file uploaded with success" => "Datoteka je uspešno naložena brez napak.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Naložena datoteka presega dovoljeno velikost. Le-ta je določena z vrstico upload_max_filesize v datoteki php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Naložena datoteka presega velikost, ki jo določa parameter MAX_FILE_SIZE v HTML obrazcu",
@@ -29,7 +30,7 @@
"{count} files uploading" => "nalagam {count} datotek",
"Upload cancelled." => "Pošiljanje je preklicano.",
"File upload is in progress. Leaving the page now will cancel the upload." => "V teku je pošiljanje datoteke. Če zapustite to stran zdaj, bo pošiljanje preklicano.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Neveljavno ime datoteke. Uporaba mape \"Share\" je rezervirana za ownCloud.",
+"URL cannot be empty." => "Naslov URL ne sme biti prazen.",
"{count} files scanned" => "{count} files scanned",
"error while scanning" => "napaka med pregledovanjem datotek",
"Name" => "Ime",
diff --git a/apps/files/l10n/sr.php b/apps/files/l10n/sr.php
index 48b258862b5..ecde8be4cc0 100644
--- a/apps/files/l10n/sr.php
+++ b/apps/files/l10n/sr.php
@@ -29,7 +29,6 @@
"{count} files uploading" => "Отпремам {count} датотеке/а",
"Upload cancelled." => "Отпремање је прекинуто.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Отпремање датотеке је у току. Ако сада напустите страницу, прекинућете отпремање.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Неисправан назив фасцикле. „Дељено“ користи Оунклауд.",
"{count} files scanned" => "Скенирано датотека: {count}",
"error while scanning" => "грешка при скенирању",
"Name" => "Назив",
diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php
index bcc849242ac..7277ec17852 100644
--- a/apps/files/l10n/sv.php
+++ b/apps/files/l10n/sv.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Ingen fil uppladdad. Okänt fel",
"There is no error, the file uploaded with success" => "Inga fel uppstod. Filen laddades upp utan problem",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uppladdade filen överskrider upload_max_filesize direktivet php.ini:",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Den uppladdade filen överstiger MAX_FILE_SIZE direktivet som anges i HTML-formulär",
@@ -6,6 +7,8 @@
"No file was uploaded" => "Ingen fil blev uppladdad",
"Missing a temporary folder" => "Saknar en tillfällig mapp",
"Failed to write to disk" => "Misslyckades spara till disk",
+"Not enough space available" => "Inte tillräckligt med utrymme tillgängligt",
+"Invalid directory." => "Felaktig mapp.",
"Files" => "Filer",
"Unshare" => "Sluta dela",
"Delete" => "Radera",
@@ -19,6 +22,8 @@
"replaced {new_name} with {old_name}" => "ersatt {new_name} med {old_name}",
"unshared {files}" => "stoppad delning {files}",
"deleted {files}" => "raderade {files}",
+"'.' is an invalid file name." => "'.' är ett ogiltigt filnamn.",
+"File name cannot be empty." => "Filnamn kan inte vara tomt.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ogiltigt namn, '\\', '/', '<', '>', ':', '\"', '|', '?' och '*' är inte tillåtet.",
"generating ZIP-file, it may take some time." => "genererar ZIP-fil, det kan ta lite tid.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Kunde inte ladda upp dina filer eftersom det antingen är en mapp eller har 0 bytes.",
@@ -29,7 +34,8 @@
"{count} files uploading" => "{count} filer laddas upp",
"Upload cancelled." => "Uppladdning avbruten.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Filuppladdning pågår. Lämnar du sidan så avbryts uppladdningen.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Ogiltigt mappnamn. Ordet \"Delad\" är reserverat av ownCloud.",
+"URL cannot be empty." => "URL kan inte vara tom.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "Ogiltigt mappnamn. Användande av 'Shared' är reserverat av ownCloud",
"{count} files scanned" => "{count} filer skannade",
"error while scanning" => "fel vid skanning",
"Name" => "Namn",
diff --git a/apps/files/l10n/ta_LK.php b/apps/files/l10n/ta_LK.php
index 9399089bc78..16cab5cf963 100644
--- a/apps/files/l10n/ta_LK.php
+++ b/apps/files/l10n/ta_LK.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "ஒரு கோப்பும் பதிவேற்றப்படவில்லை. அறியப்படாத வழு",
"There is no error, the file uploaded with success" => "இங்கு வழு இல்லை, கோப்பு வெற்றிகரமாக பதிவேற்றப்பட்டது",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "பதிவேற்றப்பட்ட கோப்பானது HTML படிவத்தில் குறிப்பிடப்பட்டுள்ள MAX_FILE_SIZE directive ஐ விட கூடியது",
"The uploaded file was only partially uploaded" => "பதிவேற்றப்பட்ட கோப்பானது பகுதியாக மட்டுமே பதிவேற்றப்பட்டுள்ளது",
@@ -28,7 +29,7 @@
"{count} files uploading" => "{எண்ணிக்கை} கோப்புகள் பதிவேற்றப்படுகின்றது",
"Upload cancelled." => "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது",
"File upload is in progress. Leaving the page now will cancel the upload." => "கோப்பு பதிவேற்றம் செயல்பாட்டில் உள்ளது. இந்தப் பக்கத்திலிருந்து வெறியேறுவதானது பதிவேற்றலை இரத்து செய்யும்.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "செல்லுபடியற்ற கோப்புறை பெயர். \"பகிர்வின்\" பாவனை Owncloud இனால் ஒதுக்கப்பட்டுள்ளது",
+"URL cannot be empty." => "URL வெறுமையாக இருக்கமுடியாது.",
"{count} files scanned" => "{எண்ணிக்கை} கோப்புகள் வருடப்பட்டது",
"error while scanning" => "வருடும் போதான வழு",
"Name" => "பெயர்",
diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php
index 343138ba126..3fda142a4e9 100644
--- a/apps/files/l10n/th_TH.php
+++ b/apps/files/l10n/th_TH.php
@@ -1,5 +1,7 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "ยังไม่มีไฟล์ใดที่ถูกอัพโหลด เกิดข้อผิดพลาดที่ไม่ทราบสาเหตุ",
"There is no error, the file uploaded with success" => "ไม่มีข้อผิดพลาดใดๆ ไฟล์ถูกอัพโหลดเรียบร้อยแล้ว",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "ขนาดไฟล์ที่อัพโหลดมีขนาดเกิน upload_max_filesize ที่ระบุไว้ใน php.ini",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "ไฟล์ที่อัพโหลดมีขนาดเกินคำสั่ง MAX_FILE_SIZE ที่ระบุเอาไว้ในรูปแบบคำสั่งในภาษา HTML",
"The uploaded file was only partially uploaded" => "ไฟล์ที่อัพโหลดยังไม่ได้ถูกอัพโหลดอย่างสมบูรณ์",
"No file was uploaded" => "ยังไม่มีไฟล์ที่ถูกอัพโหลด",
@@ -28,7 +30,7 @@
"{count} files uploading" => "กำลังอัพโหลด {count} ไฟล์",
"Upload cancelled." => "การอัพโหลดถูกยกเลิก",
"File upload is in progress. Leaving the page now will cancel the upload." => "การอัพโหลดไฟล์กำลังอยู่ในระหว่างดำเนินการ การออกจากหน้าเว็บนี้จะทำให้การอัพโหลดถูกยกเลิก",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "ชื่อโฟลเดอร์ที่ใช้ไม่ถูกต้อง การใช้งาน \"ถูกแชร์\" ถูกสงวนไว้เฉพาะ Owncloud เท่านั้น",
+"URL cannot be empty." => "URL ไม่สามารถเว้นว่างได้",
"{count} files scanned" => "สแกนไฟล์แล้ว {count} ไฟล์",
"error while scanning" => "พบข้อผิดพลาดในระหว่างการสแกนไฟล์",
"Name" => "ชื่อ",
diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php
index 061ed1f3ae2..b32da7de25e 100644
--- a/apps/files/l10n/tr.php
+++ b/apps/files/l10n/tr.php
@@ -1,5 +1,7 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Dosya yüklenmedi. Bilinmeyen hata",
"There is no error, the file uploaded with success" => "Bir hata yok, dosya başarıyla yüklendi",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "php.ini dosyasında upload_max_filesize ile belirtilen dosya yükleme sınırı aşıldı.",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Yüklenen dosya HTML formundaki MAX_FILE_SIZE sınırını aşıyor",
"The uploaded file was only partially uploaded" => "Yüklenen dosyanın sadece bir kısmı yüklendi",
"No file was uploaded" => "Hiç dosya yüklenmedi",
@@ -15,20 +17,29 @@
"cancel" => "iptal",
"replaced {new_name}" => "değiştirilen {new_name}",
"undo" => "geri al",
+"replaced {new_name} with {old_name}" => "{new_name} ismi {old_name} ile değiştirildi",
"unshared {files}" => "paylaşılmamış {files}",
"deleted {files}" => "silinen {files}",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Geçersiz isim, '\\', '/', '<', '>', ':', '\"', '|', '?' ve '*' karakterlerine izin verilmemektedir.",
"generating ZIP-file, it may take some time." => "ZIP dosyası oluşturuluyor, biraz sürebilir.",
"Unable to upload your file as it is a directory or has 0 bytes" => "Dosyanızın boyutu 0 byte olduğundan veya bir dizin olduğundan yüklenemedi",
"Upload Error" => "Yükleme hatası",
"Close" => "Kapat",
"Pending" => "Bekliyor",
"1 file uploading" => "1 dosya yüklendi",
+"{count} files uploading" => "{count} dosya yükleniyor",
"Upload cancelled." => "Yükleme iptal edildi.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Dosya yükleme işlemi sürüyor. Şimdi sayfadan ayrılırsanız işleminiz iptal olur.",
+"URL cannot be empty." => "URL boş olamaz.",
+"{count} files scanned" => "{count} dosya tarandı",
"error while scanning" => "tararamada hata oluşdu",
"Name" => "Ad",
"Size" => "Boyut",
"Modified" => "Değiştirilme",
+"1 folder" => "1 dizin",
+"{count} folders" => "{count} dizin",
+"1 file" => "1 dosya",
+"{count} files" => "{count} dosya",
"File handling" => "Dosya taşıma",
"Maximum upload size" => "Maksimum yükleme boyutu",
"max. possible: " => "mümkün olan en fazla: ",
@@ -40,6 +51,7 @@
"New" => "Yeni",
"Text file" => "Metin dosyası",
"Folder" => "Klasör",
+"From link" => "Bağlantıdan",
"Upload" => "Yükle",
"Cancel upload" => "Yüklemeyi iptal et",
"Nothing in here. Upload something!" => "Burada hiçbir şey yok. Birşeyler yükleyin!",
diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php
index 00491bcc2d6..eba48a41cb6 100644
--- a/apps/files/l10n/uk.php
+++ b/apps/files/l10n/uk.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Не завантажено жодного файлу. Невідома помилка",
"There is no error, the file uploaded with success" => "Файл успішно вивантажено без помилок.",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Розмір звантаження перевищує upload_max_filesize параметра в php.ini: ",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Розмір відвантаженого файлу перевищує директиву MAX_FILE_SIZE вказану в HTML формі",
@@ -29,7 +30,7 @@
"{count} files uploading" => "{count} файлів завантажується",
"Upload cancelled." => "Завантаження перервано.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Виконується завантаження файлу. Закриття цієї сторінки приведе до відміни завантаження.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Невірне ім'я каталогу. Використання \"Shared\" зарезервовано Owncloud",
+"URL cannot be empty." => "URL не може бути пустим.",
"{count} files scanned" => "{count} файлів проскановано",
"error while scanning" => "помилка при скануванні",
"Name" => "Ім'я",
diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php
index 4f58e623178..7d5c5290502 100644
--- a/apps/files/l10n/vi.php
+++ b/apps/files/l10n/vi.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "Không có tập tin nào được tải lên. Lỗi không xác định",
"There is no error, the file uploaded with success" => "Không có lỗi, các tập tin đã được tải lên thành công",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "Kích thước những tập tin tải lên vượt quá MAX_FILE_SIZE đã được quy định",
"The uploaded file was only partially uploaded" => "Tập tin tải lên mới chỉ tải lên được một phần",
@@ -28,7 +29,7 @@
"{count} files uploading" => "{count} tập tin đang tải lên",
"Upload cancelled." => "Hủy tải lên",
"File upload is in progress. Leaving the page now will cancel the upload." => "Tập tin tải lên đang được xử lý. Nếu bạn rời khỏi trang bây giờ sẽ hủy quá trình này.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "Tên thư mục không hợp lệ. Sử dụng \"Chia sẻ\" được dành riêng bởi Owncloud",
+"URL cannot be empty." => "URL không được để trống.",
"{count} files scanned" => "{count} tập tin đã được quét",
"error while scanning" => "lỗi trong khi quét",
"Name" => "Tên",
diff --git a/apps/files/l10n/zh_CN.GB2312.php b/apps/files/l10n/zh_CN.GB2312.php
index ccf0efff050..e60df8291a9 100644
--- a/apps/files/l10n/zh_CN.GB2312.php
+++ b/apps/files/l10n/zh_CN.GB2312.php
@@ -1,4 +1,5 @@
<?php $TRANSLATIONS = array(
+"No file was uploaded. Unknown error" => "没有上传文件。未知错误",
"There is no error, the file uploaded with success" => "没有任何错误,文件上传成功了",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上传的文件超过了HTML表单指定的MAX_FILE_SIZE",
"The uploaded file was only partially uploaded" => "文件只有部分被上传",
@@ -27,6 +28,7 @@
"{count} files uploading" => "{count} 个文件正在上传",
"Upload cancelled." => "上传取消了",
"File upload is in progress. Leaving the page now will cancel the upload." => "文件正在上传。关闭页面会取消上传。",
+"URL cannot be empty." => "网址不能为空。",
"{count} files scanned" => "{count} 个文件已扫描",
"error while scanning" => "扫描出错",
"Name" => "名字",
diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php
index 8db652f003e..124bb2c3b6c 100644
--- a/apps/files/l10n/zh_CN.php
+++ b/apps/files/l10n/zh_CN.php
@@ -1,4 +1,8 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "无法移动 %s - 同名文件已存在",
+"Could not move %s" => "无法移动 %s",
+"Unable to rename file" => "无法重命名文件",
+"No file was uploaded. Unknown error" => "没有文件被上传。未知错误",
"There is no error, the file uploaded with success" => "没有发生错误,文件上传成功。",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上传文件大小已超过php.ini中upload_max_filesize所规定的值",
"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上传的文件超过了在HTML 表单中指定的MAX_FILE_SIZE",
@@ -6,6 +10,8 @@
"No file was uploaded" => "文件没有上传",
"Missing a temporary folder" => "缺少临时目录",
"Failed to write to disk" => "写入磁盘失败",
+"Not enough space available" => "没有足够可用空间",
+"Invalid directory." => "无效文件夹。",
"Files" => "文件",
"Unshare" => "取消分享",
"Delete" => "删除",
@@ -19,6 +25,8 @@
"replaced {new_name} with {old_name}" => "已将 {old_name}替换成 {new_name}",
"unshared {files}" => "取消了共享 {files}",
"deleted {files}" => "删除了 {files}",
+"'.' is an invalid file name." => "'.' 是一个无效的文件名。",
+"File name cannot be empty." => "文件名不能为空。",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "无效名称,'\\', '/', '<', '>', ':', '\"', '|', '?' 和 '*' 不被允许使用。",
"generating ZIP-file, it may take some time." => "正在生成 ZIP 文件,可能需要一些时间",
"Unable to upload your file as it is a directory or has 0 bytes" => "无法上传文件,因为它是一个目录或者大小为 0 字节",
@@ -29,7 +37,8 @@
"{count} files uploading" => "{count} 个文件上传中",
"Upload cancelled." => "上传已取消",
"File upload is in progress. Leaving the page now will cancel the upload." => "文件正在上传中。现在离开此页会导致上传动作被取消。",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "无效的文件夹名称。”Shared“ 是 Owncloud 保留字符。",
+"URL cannot be empty." => "URL不能为空",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "无效文件夹名。'共享' 是 Owncloud 预留的文件夹名。",
"{count} files scanned" => "{count} 个文件已扫描。",
"error while scanning" => "扫描时出错",
"Name" => "名称",
diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php
index 5333209eff7..7f0f44baca9 100644
--- a/apps/files/l10n/zh_TW.php
+++ b/apps/files/l10n/zh_TW.php
@@ -1,29 +1,45 @@
<?php $TRANSLATIONS = array(
+"Could not move %s - File with this name already exists" => "無法移動 %s - 同名的檔案已經存在",
+"Could not move %s" => "無法移動 %s",
+"Unable to rename file" => "無法重新命名檔案",
+"No file was uploaded. Unknown error" => "沒有檔案被上傳。未知的錯誤。",
"There is no error, the file uploaded with success" => "無錯誤,檔案上傳成功",
-"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上傳黨案的超過 HTML 表單中指定 MAX_FILE_SIZE 限制",
-"The uploaded file was only partially uploaded" => "只有部分檔案被上傳",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "上傳的檔案大小超過 php.ini 當中 upload_max_filesize 參數的設定:",
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form" => "上傳的檔案大小超過 HTML 表單中 MAX_FILE_SIZE 的限制",
+"The uploaded file was only partially uploaded" => "只有檔案的一部分被上傳",
"No file was uploaded" => "無已上傳檔案",
"Missing a temporary folder" => "遺失暫存資料夾",
"Failed to write to disk" => "寫入硬碟失敗",
+"Not enough space available" => "沒有足夠的可用空間",
+"Invalid directory." => "無效的資料夾。",
"Files" => "檔案",
"Unshare" => "取消共享",
"Delete" => "刪除",
"Rename" => "重新命名",
"{new_name} already exists" => "{new_name} 已經存在",
"replace" => "取代",
+"suggest name" => "建議檔名",
"cancel" => "取消",
"replaced {new_name}" => "已取代 {new_name}",
"undo" => "復原",
"replaced {new_name} with {old_name}" => "使用 {new_name} 取代 {old_name}",
-"generating ZIP-file, it may take some time." => "產生壓縮檔, 它可能需要一段時間.",
+"unshared {files}" => "已取消分享 {files}",
+"deleted {files}" => "已刪除 {files}",
+"'.' is an invalid file name." => "'.' 是不合法的檔名。",
+"File name cannot be empty." => "檔名不能為空。",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "檔名不合法,不允許 '\\', '/', '<', '>', ':', '\"', '|', '?' 和 '*' 。",
+"generating ZIP-file, it may take some time." => "產生 ZIP 壓縮檔,這可能需要一段時間。",
"Unable to upload your file as it is a directory or has 0 bytes" => "無法上傳您的檔案因為它可能是一個目錄或檔案大小為0",
"Upload Error" => "上傳發生錯誤",
"Close" => "關閉",
+"Pending" => "等候中",
"1 file uploading" => "1 個檔案正在上傳",
"{count} files uploading" => "{count} 個檔案正在上傳",
"Upload cancelled." => "上傳取消",
-"File upload is in progress. Leaving the page now will cancel the upload." => "檔案上傳中. 離開此頁面將會取消上傳.",
-"Invalid folder name. Usage of \"Shared\" is reserved by Owncloud" => "無效的資料夾名稱. \"Shared\" 名稱已被 Owncloud 所保留使用",
+"File upload is in progress. Leaving the page now will cancel the upload." => "檔案上傳中。離開此頁面將會取消上傳。",
+"URL cannot be empty." => "URL 不能為空白.",
+"Invalid folder name. Usage of 'Shared' is reserved by Owncloud" => "無效的資料夾名稱,'Shared' 的使用被 Owncloud 保留",
+"{count} files scanned" => "{count} 個檔案已掃描",
"error while scanning" => "掃描時發生錯誤",
"Name" => "名稱",
"Size" => "大小",
@@ -33,22 +49,23 @@
"1 file" => "1 個檔案",
"{count} files" => "{count} 個檔案",
"File handling" => "檔案處理",
-"Maximum upload size" => "最大上傳容量",
-"max. possible: " => "最大允許: ",
-"Needed for multi-file and folder downloads." => "針對多檔案和目錄下載是必填的",
+"Maximum upload size" => "最大上傳檔案大小",
+"max. possible: " => "最大允許:",
+"Needed for multi-file and folder downloads." => "針對多檔案和目錄下載是必填的。",
"Enable ZIP-download" => "啟用 Zip 下載",
"0 is unlimited" => "0代表沒有限制",
-"Maximum input size for ZIP files" => "針對ZIP檔案最大輸入大小",
+"Maximum input size for ZIP files" => "針對 ZIP 檔案最大輸入大小",
"Save" => "儲存",
"New" => "新增",
"Text file" => "文字檔",
"Folder" => "資料夾",
+"From link" => "從連結",
"Upload" => "上傳",
"Cancel upload" => "取消上傳",
-"Nothing in here. Upload something!" => "沒有任何東西。請上傳內容!",
+"Nothing in here. Upload something!" => "沒有任何東西。請上傳內容!",
"Download" => "下載",
"Upload too large" => "上傳過大",
-"The files you are trying to upload exceed the maximum size for file uploads on this server." => "你試圖上傳的檔案已超過伺服器的最大容量限制。 ",
+"The files you are trying to upload exceed the maximum size for file uploads on this server." => "您試圖上傳的檔案已超過伺服器的最大檔案大小限制。 ",
"Files are being scanned, please wait." => "正在掃描檔案,請稍等。",
"Current scanning" => "目前掃描"
);
diff --git a/apps/files/templates/admin.php b/apps/files/templates/admin.php
index 66fec4cd536..ad69b5519d9 100644
--- a/apps/files/templates/admin.php
+++ b/apps/files/templates/admin.php
@@ -6,7 +6,10 @@
<?php if($_['uploadChangable']):?>
<label for="maxUploadSize"><?php echo $l->t( 'Maximum upload size' ); ?> </label>
<input name='maxUploadSize' id="maxUploadSize" value='<?php echo $_['uploadMaxFilesize'] ?>'/>
- (<?php echo $l->t('max. possible: '); echo $_['maxPossibleUploadSize'] ?>)<br/>
+ <?php if($_['displayMaxPossibleUploadSize']):?>
+ (<?php echo $l->t('max. possible: '); echo $_['maxPossibleUploadSize'] ?>)
+ <?php endif;?>
+ <br/>
<?php endif;?>
<input type="checkbox" name="allowZipDownload" id="allowZipDownload" value="1"
title="<?php echo $l->t( 'Needed for multi-file and folder downloads.' ); ?>"
@@ -15,11 +18,11 @@
<input name="maxZipInputSize" id="maxZipInputSize" style="width:180px;" value='<?php echo $_['maxZipInputSize'] ?>'
title="<?php echo $l->t( '0 is unlimited' ); ?>"
- <?php if (!$_['allowZipDownload']): ?> disabled="disabled"<?php endif; ?> />
- <label for="maxZipInputSize"><?php echo $l->t( 'Maximum input size for ZIP files' ); ?> </label><br />
+ <?php if (!$_['allowZipDownload']): ?> disabled="disabled"<?php endif; ?> /><br />
+ <em><?php echo $l->t( 'Maximum input size for ZIP files' ); ?> </em><br />
<input type="hidden" value="<?php echo $_['requesttoken']; ?>" name="requesttoken" />
<input type="submit" name="submitFilesAdminSettings" id="submitFilesAdminSettings"
value="<?php echo $l->t( 'Save' ); ?>"/>
</fieldset>
-</form> \ No newline at end of file
+</form>
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index bd34c9a76d9..2e0772443f2 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -5,7 +5,7 @@
<div class="actions <?php if (isset($_['files']) and count($_['files'])==0):?>emptyfolder<?php endif; ?>">
<div id="new" class="button">
<a><?php echo $l->t('New');?></a>
- <ul class="popup popupTop">
+ <ul>
<li style="background-image:url('<?php echo OCP\mimetype_icon('text/plain') ?>')"
data-type='file'><p><?php echo $l->t('Text file');?></p></li>
<li style="background-image:url('<?php echo OCP\mimetype_icon('dir') ?>')"
@@ -14,7 +14,8 @@
data-type='web'><p><?php echo $l->t('From link');?></p></li>
</ul>
</div>
- <div id="upload" class="button">
+ <div id="upload" class="button"
+ title="<?php echo $l->t('Upload') . ' max. '.$_['uploadMaxHumanFilesize'] ?>">
<form data-upload-id='1'
id="data-upload-form"
class="file_upload_form"
@@ -31,10 +32,7 @@
value="(max <?php echo $_['uploadMaxHumanFilesize']; ?>)">
<input type="hidden" name="dir" value="<?php echo $_['dir'] ?>" id="dir">
<input type="file" id="file_upload_start" name='files[]'/>
- <a href="#" class="svg" onclick="return false;"
- title="<?php echo $l->t('Upload') . ' max. '.$_['uploadMaxHumanFilesize'] ?>"></a>
-
- <iframe name="file_upload_target_1" class="file_upload_target" src=""></iframe>
+ <a href="#" class="svg" onclick="return false;"></a>
</form>
</div>
<div id="uploadprogresswrapper">
diff --git a/apps/files/templates/part.breadcrumb.php b/apps/files/templates/part.breadcrumb.php
index 876cd19bc13..87442606b00 100644
--- a/apps/files/templates/part.breadcrumb.php
+++ b/apps/files/templates/part.breadcrumb.php
@@ -1,16 +1,17 @@
- <?php if(count($_["breadcrumb"])):?>
+<?php if(count($_["breadcrumb"])):?>
<div class="crumb">
<a href="<?php echo $_['baseURL'].urlencode($crumb['dir']); ?>">
<img src="<?php echo OCP\image_path('core','places/home.svg');?>" />
</a>
</div>
- <?php endif;?>
- <?php for($i=0; $i<count($_["breadcrumb"]); $i++):
+<?php endif;?>
+<?php for($i=0; $i<count($_["breadcrumb"]); $i++):
$crumb = $_["breadcrumb"][$i];
- $dir = str_replace('+', '%20', urlencode($crumb["dir"])); ?>
- <div class="crumb <?php if($i == count($_["breadcrumb"])-1) echo 'last';?> svg"
- data-dir='<?php echo $dir;?>'
- style='background-image:url("<?php echo OCP\image_path('core', 'breadcrumb.png');?>")'>
- <a href="<?php echo $_['baseURL'].$dir; ?>"><?php echo OCP\Util::sanitizeHTML($crumb["name"]); ?></a>
- </div>
- <?php endfor;
+ $dir = str_replace('+', '%20', urlencode($crumb["dir"]));
+ $dir = str_replace('%2F', '/', $dir); ?>
+ <div class="crumb <?php if($i == count($_["breadcrumb"])-1) echo 'last';?> svg"
+ data-dir='<?php echo $dir;?>'
+ style='background-image:url("<?php echo OCP\image_path('core', 'breadcrumb.png');?>")'>
+ <a href="<?php echo $_['baseURL'].$dir; ?>"><?php echo OCP\Util::sanitizeHTML($crumb["name"]); ?></a>
+ </div>
+<?php endfor;
diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php
index 4c765adb7af..dfac43d1b12 100644
--- a/apps/files/templates/part.list.php
+++ b/apps/files/templates/part.list.php
@@ -1,70 +1,70 @@
- <script type="text/javascript">
- <?php if ( array_key_exists('publicListView', $_) && $_['publicListView'] == true ) :?>
- var publicListView = true;
+<script type="text/javascript">
+<?php if ( array_key_exists('publicListView', $_) && $_['publicListView'] == true ) :?>
+ var publicListView = true;
+<?php else: ?>
+ var publicListView = false;
+<?php endif; ?>
+</script>
+
+<?php foreach($_['files'] as $file):
+ $simple_file_size = OCP\simple_file_size($file['size']);
+ // the bigger the file, the darker the shade of grey; megabytes*2
+ $simple_size_color = intval(200-$file['size']/(1024*1024)*2);
+ if($simple_size_color<0) $simple_size_color = 0;
+ $relative_modified_date = OCP\relative_modified_date($file['mtime']);
+ // the older the file, the brighter the shade of grey; days*14
+ $relative_date_color = round((time()-$file['mtime'])/60/60/24*14);
+ if($relative_date_color>200) $relative_date_color = 200;
+ $name = str_replace('+', '%20', urlencode($file['name']));
+ $name = str_replace('%2F', '/', $name);
+ $directory = str_replace('+', '%20', urlencode($file['directory']));
+ $directory = str_replace('%2F', '/', $directory); ?>
+ <tr data-id="<?php echo $file['id']; ?>"
+ data-file="<?php echo $name;?>"
+ data-type="<?php echo ($file['type'] == 'dir')?'dir':'file'?>"
+ data-mime="<?php echo $file['mimetype']?>"
+ data-size='<?php echo $file['size'];?>'
+ data-permissions='<?php echo $file['permissions']; ?>'>
+ <td class="filename svg"
+ <?php if($file['type'] == 'dir'): ?>
+ style="background-image:url(<?php echo OCP\mimetype_icon('dir'); ?>)"
<?php else: ?>
- var publicListView = false;
+ style="background-image:url(<?php echo OCP\mimetype_icon($file['mimetype']); ?>)"
<?php endif; ?>
- </script>
-
- <?php foreach($_['files'] as $file):
- $simple_file_size = OCP\simple_file_size($file['size']);
- // the bigger the file, the darker the shade of grey; megabytes*2
- $simple_size_color = intval(200-$file['size']/(1024*1024)*2);
- if($simple_size_color<0) $simple_size_color = 0;
- $relative_modified_date = OCP\relative_modified_date($file['mtime']);
- // the older the file, the brighter the shade of grey; days*14
- $relative_date_color = round((time()-$file['mtime'])/60/60/24*14);
- if($relative_date_color>200) $relative_date_color = 200;
- $name = str_replace('+', '%20', urlencode($file['name']));
- $name = str_replace('%2F', '/', $name);
- $directory = str_replace('+', '%20', urlencode($file['directory']));
- $directory = str_replace('%2F', '/', $directory); ?>
- <tr data-id="<?php echo $file['id']; ?>"
- data-file="<?php echo $name;?>"
- data-type="<?php echo ($file['type'] == 'dir')?'dir':'file'?>"
- data-mime="<?php echo $file['mimetype']?>"
- data-size='<?php echo $file['size'];?>'
- data-permissions='<?php echo $file['permissions']; ?>'>
- <td class="filename svg"
- <?php if($file['type'] == 'dir'): ?>
- style="background-image:url(<?php echo OCP\mimetype_icon('dir'); ?>)"
- <?php else: ?>
- style="background-image:url(<?php echo OCP\mimetype_icon($file['mimetype']); ?>)"
- <?php endif; ?>
- >
- <?php if(!isset($_['readonly']) || !$_['readonly']): ?><input type="checkbox" /><?php endif; ?>
- <?php if($file['type'] == 'dir'): ?>
- <a class="name" href="<?php $_['baseURL'].$directory.'/'.$name; ?>)" title="">
- <?php else: ?>
- <a class="name" href="<?php echo $_['downloadURL'].$directory.'/'.$name; ?>" title="">
- <?php endif; ?>
- <span class="nametext">
- <?php if($file['type'] == 'dir'):?>
- <?php echo htmlspecialchars($file['name']);?>
- <?php else:?>
- <?php echo htmlspecialchars($file['basename']);?><span
- class='extension'><?php echo $file['extension'];?></span>
- <?php endif;?>
- </span>
- <?php if($file['type'] == 'dir'):?>
- <span class="uploadtext" currentUploads="0">
- </span>
- <?php endif;?>
- </a>
- </td>
- <td class="filesize"
- title="<?php echo OCP\human_file_size($file['size']); ?>"
- style="color:rgb(<?php echo $simple_size_color.','.$simple_size_color.','.$simple_size_color ?>)">
- <?php echo $simple_file_size; ?>
- </td>
- <td class="date">
- <span class="modified"
- title="<?php echo $file['date']; ?>"
- style="color:rgb(<?php echo $relative_date_color.','
- .$relative_date_color.','
- .$relative_date_color ?>)">
- <?php echo $relative_modified_date; ?>
- </span>
- </td>
- </tr>
- <?php endforeach; \ No newline at end of file
+ >
+ <?php if(!isset($_['readonly']) || !$_['readonly']): ?><input type="checkbox" /><?php endif; ?>
+ <?php if($file['type'] == 'dir'): ?>
+ <a class="name" href="<?php $_['baseURL'].$directory.'/'.$name; ?>)" title="">
+ <?php else: ?>
+ <a class="name" href="<?php echo $_['downloadURL'].$directory.'/'.$name; ?>" title="">
+ <?php endif; ?>
+ <span class="nametext">
+ <?php if($file['type'] == 'dir'):?>
+ <?php echo htmlspecialchars($file['name']);?>
+ <?php else:?>
+ <?php echo htmlspecialchars($file['basename']);?><span
+ class='extension'><?php echo $file['extension'];?></span>
+ <?php endif;?>
+ </span>
+ <?php if($file['type'] == 'dir'):?>
+ <span class="uploadtext" currentUploads="0">
+ </span>
+ <?php endif;?>
+ </a>
+ </td>
+ <td class="filesize"
+ title="<?php echo OCP\human_file_size($file['size']); ?>"
+ style="color:rgb(<?php echo $simple_size_color.','.$simple_size_color.','.$simple_size_color ?>)">
+ <?php echo $simple_file_size; ?>
+ </td>
+ <td class="date">
+ <span class="modified"
+ title="<?php echo $file['date']; ?>"
+ style="color:rgb(<?php echo $relative_date_color.','
+ .$relative_date_color.','
+ .$relative_date_color ?>)">
+ <?php echo $relative_modified_date; ?>
+ </span>
+ </td>
+ </tr>
+<?php endforeach; \ No newline at end of file
diff --git a/apps/files_encryption/l10n/bg_BG.php b/apps/files_encryption/l10n/bg_BG.php
new file mode 100644
index 00000000000..cb1613ef375
--- /dev/null
+++ b/apps/files_encryption/l10n/bg_BG.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "Криптиране",
+"Enable Encryption" => "Включване на криптирането",
+"None" => "Няма",
+"Exclude the following file types from encryption" => "Изключване на следните файлови типове от криптирането"
+);
diff --git a/apps/files_encryption/l10n/bn_BD.php b/apps/files_encryption/l10n/bn_BD.php
new file mode 100644
index 00000000000..c8f041d7622
--- /dev/null
+++ b/apps/files_encryption/l10n/bn_BD.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "সংকেতায়ন",
+"Enable Encryption" => "সংকেতায়ন সক্রিয় কর",
+"None" => "কোনটিই নয়",
+"Exclude the following file types from encryption" => "সংকেতায়ন থেকে নিম্নোক্ত ধরণসমূহ বাদ দাও"
+);
diff --git a/apps/files_encryption/l10n/he.php b/apps/files_encryption/l10n/he.php
new file mode 100644
index 00000000000..0332d59520a
--- /dev/null
+++ b/apps/files_encryption/l10n/he.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "הצפנה",
+"Enable Encryption" => "הפעל הצפנה",
+"None" => "כלום",
+"Exclude the following file types from encryption" => "הוצא את סוגי הקבצים הבאים מהצפנה"
+);
diff --git a/apps/files_encryption/l10n/hu_HU.php b/apps/files_encryption/l10n/hu_HU.php
index 4352d8b7712..8ea0f731736 100644
--- a/apps/files_encryption/l10n/hu_HU.php
+++ b/apps/files_encryption/l10n/hu_HU.php
@@ -1,6 +1,6 @@
<?php $TRANSLATIONS = array(
"Encryption" => "Titkosítás",
-"Exclude the following file types from encryption" => "A következő fájl típusok kizárása a titkosításból",
+"Enable Encryption" => "A titkosítás engedélyezése",
"None" => "Egyik sem",
-"Enable Encryption" => "Titkosítás engedélyezése"
+"Exclude the following file types from encryption" => "A következő fájltípusok kizárása a titkosításból"
);
diff --git a/apps/files_encryption/l10n/is.php b/apps/files_encryption/l10n/is.php
new file mode 100644
index 00000000000..3210ecb4f8a
--- /dev/null
+++ b/apps/files_encryption/l10n/is.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "Dulkóðun",
+"Enable Encryption" => "Virkja dulkóðun",
+"None" => "Ekkert",
+"Exclude the following file types from encryption" => "Undanskilja eftirfarandi skráartegundir frá dulkóðun"
+);
diff --git a/apps/files_encryption/l10n/mk.php b/apps/files_encryption/l10n/mk.php
new file mode 100644
index 00000000000..dfcaed9f37e
--- /dev/null
+++ b/apps/files_encryption/l10n/mk.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "Енкрипција",
+"Exclude the following file types from encryption" => "Исклучи ги следните типови на датотеки од енкрипција",
+"None" => "Ништо",
+"Enable Encryption" => "Овозможи енкрипција"
+);
diff --git a/apps/files_encryption/l10n/tr.php b/apps/files_encryption/l10n/tr.php
new file mode 100644
index 00000000000..474ee42b842
--- /dev/null
+++ b/apps/files_encryption/l10n/tr.php
@@ -0,0 +1,6 @@
+<?php $TRANSLATIONS = array(
+"Encryption" => "Şifreleme",
+"Enable Encryption" => "Şifrelemeyi Etkinleştir",
+"None" => "Hiçbiri",
+"Exclude the following file types from encryption" => "Aşağıdaki dosya tiplerini şifrelemeye dahil etme"
+);
diff --git a/apps/files_encryption/settings.php b/apps/files_encryption/settings.php
index 6b2b03211e2..94ff5ab94ba 100644
--- a/apps/files_encryption/settings.php
+++ b/apps/files_encryption/settings.php
@@ -6,6 +6,8 @@
* See the COPYING-README file.
*/
+OC_Util::checkAdminUser();
+
$tmpl = new OCP\Template( 'files_encryption', 'settings');
$blackList=explode(',', OCP\Config::getAppValue('files_encryption',
'type_blacklist',
@@ -17,4 +19,4 @@ $tmpl->assign('encryption_enabled', $enabled);
OCP\Util::addscript('files_encryption', 'settings');
OCP\Util::addscript('core', 'multiselect');
-return $tmpl->fetchPage(); \ No newline at end of file
+return $tmpl->fetchPage();
diff --git a/apps/files_encryption/templates/settings.php b/apps/files_encryption/templates/settings.php
index 75df784e397..268b1a80ccd 100644
--- a/apps/files_encryption/templates/settings.php
+++ b/apps/files_encryption/templates/settings.php
@@ -1,14 +1,14 @@
<form id="calendar">
<fieldset class="personalblock">
- <strong><?php echo $l->t('Encryption'); ?></strong>
- <?php echo $l->t('Exclude the following file types from encryption'); ?>
+ <legend><strong><?php echo $l->t('Encryption');?></strong></legend>
+ <input type='checkbox'<?php if ($_['encryption_enabled']): ?> checked="checked"<?php endif; ?>
+ id='enable_encryption' ></input>
+ <label for='enable_encryption'><?php echo $l->t('Enable Encryption')?></label><br />
<select id='encryption_blacklist' title="<?php echo $l->t('None')?>" multiple="multiple">
<?php foreach ($_['blacklist'] as $type): ?>
<option selected="selected" value="<?php echo $type;?>"><?php echo $type;?></option>
<?php endforeach;?>
- </select>
- <input type='checkbox'<?php if ($_['encryption_enabled']): ?> checked="checked"<?php endif; ?>
- id='enable_encryption' ></input>
- <label for='enable_encryption'><?php echo $l->t('Enable Encryption')?></label>
+ </select><br />
+ <?php echo $l->t('Exclude the following file types from encryption'); ?>
</fieldset>
</form>
diff --git a/apps/files_external/l10n/bg_BG.php b/apps/files_external/l10n/bg_BG.php
index 48779581846..1f2c29d54c5 100644
--- a/apps/files_external/l10n/bg_BG.php
+++ b/apps/files_external/l10n/bg_BG.php
@@ -1,4 +1,18 @@
<?php $TRANSLATIONS = array(
+"Access granted" => "Достъпът е даден",
+"Grant access" => "Даване на достъп",
+"Fill out all required fields" => "Попълнете всички задължителни полета",
+"External Storage" => "Външно хранилище",
+"Backend" => "Администрация",
+"Configuration" => "Конфигурация",
+"Options" => "Опции",
+"None set" => "Няма избрано",
+"All Users" => "Всички потребители",
"Groups" => "Групи",
-"Delete" => "Изтриване"
+"Users" => "Потребители",
+"Delete" => "Изтриване",
+"Enable User External Storage" => "Вкл. на поддръжка за външно потр. хранилище",
+"Allow users to mount their own external storage" => "Позволено е на потребителите да ползват тяхно лично външно хранилище",
+"SSL root certificates" => "SSL основни сертификати",
+"Import Root Certificate" => "Импортиране на основен сертификат"
);
diff --git a/apps/files_external/l10n/bn_BD.php b/apps/files_external/l10n/bn_BD.php
new file mode 100644
index 00000000000..a4a2b23030b
--- /dev/null
+++ b/apps/files_external/l10n/bn_BD.php
@@ -0,0 +1,24 @@
+<?php $TRANSLATIONS = array(
+"Access granted" => "অধিগমনের অনুমতি প্রদান করা হলো",
+"Error configuring Dropbox storage" => "Dropbox সংরক্ষণাগার নির্ধারণ করতে সমস্যা ",
+"Grant access" => "অধিগমনের অনুমতি প্রদান কর",
+"Fill out all required fields" => "আবশ্যিক সমস্ত ক্ষেত্র পূরণ করুন",
+"Please provide a valid Dropbox app key and secret." => "দয়া করে সঠিক এবং বৈধ Dropbox app key and secret প্রদান করুন।",
+"Error configuring Google Drive storage" => "Google Drive সংরক্ষণাগার নির্ধারণ করতে সমস্যা ",
+"External Storage" => "বাহ্যিক সংরক্ষণাগার",
+"Mount point" => "মাউন্ট পয়েন্ট",
+"Backend" => "পশ্চাদপট",
+"Configuration" => "কনফিগারেসন",
+"Options" => "বিকল্পসমূহ",
+"Applicable" => "প্রযোজ্য",
+"Add mount point" => "মাউন্ট পয়েন্ট যোগ কর",
+"None set" => "কোনটিই নির্ধারণ করা হয় নি",
+"All Users" => "সমস্ত ব্যবহারকারী",
+"Groups" => "গোষ্ঠীসমূহ",
+"Users" => "ব্যবহারকারী",
+"Delete" => "মুছে ফেল",
+"Enable User External Storage" => "ব্যবহারকারীর বাহ্যিক সংরক্ষণাগার সক্রিয় কর",
+"Allow users to mount their own external storage" => "ব্যবহারকারীদেরকে তাদের নিজস্ব বাহ্যিক সংরক্ষনাগার সাউন্ট করতে অনুমোদন দাও",
+"SSL root certificates" => "SSL রুট সনদপত্র",
+"Import Root Certificate" => "রুট সনদপত্রটি আমদানি করুন"
+);
diff --git a/apps/files_external/l10n/da.php b/apps/files_external/l10n/da.php
index 00a81f3da16..bae89a6cfdd 100644
--- a/apps/files_external/l10n/da.php
+++ b/apps/files_external/l10n/da.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "Udfyld alle nødvendige felter",
"Please provide a valid Dropbox app key and secret." => "Angiv venligst en valid Dropbox app nøgle og hemmelighed",
"Error configuring Google Drive storage" => "Fejl ved konfiguration af Google Drive plads",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b> Advarsel: </ b> \"smbclient\" ikke er installeret. Montering af CIFS / SMB delinger er ikke muligt. Spørg din systemadministrator om at installere det.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b> Advarsel: </ b> FTP-understøttelse i PHP ikke er aktiveret eller installeret. Montering af FTP delinger er ikke muligt. Spørg din systemadministrator om at installere det.",
"External Storage" => "Ekstern opbevaring",
"Mount point" => "Monteringspunkt",
"Backend" => "Backend",
diff --git a/apps/files_external/l10n/de.php b/apps/files_external/l10n/de.php
index 196b3af2038..277cc2e6efe 100644
--- a/apps/files_external/l10n/de.php
+++ b/apps/files_external/l10n/de.php
@@ -5,8 +5,8 @@
"Fill out all required fields" => "Bitte alle notwendigen Felder füllen",
"Please provide a valid Dropbox app key and secret." => "Bitte trage einen gültigen Dropbox-App-Key mit Secret ein.",
"Error configuring Google Drive storage" => "Fehler beim Einrichten von Google Drive",
-"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Warnung:</b> \"smbclient\" ist nicht installiert. Das Einhängen von CIFS/SMB-Freigaben ist nicht möglich. Bitte Deinen System-Verwalter dies zu installieren.",
-"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Warnung:</b> \"smbclient\" ist nicht aktiv oder nicht installiert. Das Einhängen von FTP-Freigaben ist nicht möglich. Bitte Deinen System-Verwalter dies zu installieren.",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Warnung:</b> \"smbclient\" ist nicht installiert. Das Einhängen von CIFS/SMB-Freigaben ist nicht möglich. Bitte Deinen System-Administrator, dies zu installieren.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Warnung::</b> Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Bitte wende Dich an Deinen Systemadministrator.",
"External Storage" => "Externer Speicher",
"Mount point" => "Mount-Point",
"Backend" => "Backend",
diff --git a/apps/files_external/l10n/de_DE.php b/apps/files_external/l10n/de_DE.php
index 357968bd462..5675eb057f0 100644
--- a/apps/files_external/l10n/de_DE.php
+++ b/apps/files_external/l10n/de_DE.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "Bitte alle notwendigen Felder füllen",
"Please provide a valid Dropbox app key and secret." => "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein.",
"Error configuring Google Drive storage" => "Fehler beim Einrichten von Google Drive",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Warnung:</b> \"smbclient\" ist nicht installiert. Das Einhängen von CIFS/SMB-Freigaben ist nicht möglich. Bitten Sie Ihren Systemadministrator, dies zu installieren.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Warnung::</b> Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Bitte wenden Sie sich an Ihren Systemadministrator.",
"External Storage" => "Externer Speicher",
"Mount point" => "Mount-Point",
"Backend" => "Backend",
diff --git a/apps/files_external/l10n/el.php b/apps/files_external/l10n/el.php
index a1dae9d4888..9bf499a911d 100644
--- a/apps/files_external/l10n/el.php
+++ b/apps/files_external/l10n/el.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "Συμπληρώστε όλα τα απαιτούμενα πεδία",
"Please provide a valid Dropbox app key and secret." => "Παρακαλούμε δώστε έγκυρο κλειδί Dropbox και μυστικό.",
"Error configuring Google Drive storage" => "Σφάλμα ρυθμίζωντας αποθήκευση Google Drive ",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Προσοχή:</b> Ο \"smbclient\" δεν εγκαταστάθηκε. Δεν είναι δυνατή η προσάρτηση CIFS/SMB. Παρακαλώ ενημερώστε τον διαχειριστή συστήματος να το εγκαταστήσει.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Προσοχή:</b> Η υποστήριξη FTP στην PHP δεν ενεργοποιήθηκε ή εγκαταστάθηκε. Δεν είναι δυνατή η προσάρτηση FTP. Παρακαλώ ενημερώστε τον διαχειριστή συστήματος να το εγκαταστήσει.",
"External Storage" => "Εξωτερικό Αποθηκευτικό Μέσο",
"Mount point" => "Σημείο προσάρτησης",
"Backend" => "Σύστημα υποστήριξης",
diff --git a/apps/files_external/l10n/eu.php b/apps/files_external/l10n/eu.php
index dccd377b119..597204c894d 100644
--- a/apps/files_external/l10n/eu.php
+++ b/apps/files_external/l10n/eu.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "Bete eskatutako eremu guztiak",
"Please provide a valid Dropbox app key and secret." => "Mesedez eman baliozkoa den Dropbox app giltza eta sekretua",
"Error configuring Google Drive storage" => "Errore bat egon da Google Drive biltegiratzea konfiguratzean",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Abisua:</b> \"smbclient\" ez dago instalatuta. CIFS/SMB partekatutako karpetak montatzea ez da posible. Mesedez eskatu zure sistema kudeatzaileari instalatzea.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Abisua:</b> PHPren FTP modulua ez dago instalatuta edo gaitua. FTP partekatutako karpetak montatzea ez da posible. Mesedez eskatu zure sistema kudeatzaileari instalatzea.",
"External Storage" => "Kanpoko Biltegiratzea",
"Mount point" => "Montatze puntua",
"Backend" => "Motorra",
diff --git a/apps/files_external/l10n/fr.php b/apps/files_external/l10n/fr.php
index 90007aafaaf..0825a961b1c 100644
--- a/apps/files_external/l10n/fr.php
+++ b/apps/files_external/l10n/fr.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "Veuillez remplir tous les champs requis",
"Please provide a valid Dropbox app key and secret." => "Veuillez fournir une clé d'application (app key) ainsi qu'un mot de passe valides.",
"Error configuring Google Drive storage" => "Erreur lors de la configuration du support de stockage Google Drive",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Attention : </b> \"smbclient\" n'est pas installé. Le montage des partages CIFS/SMB n'est pas disponible. Contactez votre administrateur système pour l'installer.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Attention : </b> Le support FTP de PHP n'est pas activé ou installé. Le montage des partages FTP n'est pas disponible. Contactez votre administrateur système pour l'installer.",
"External Storage" => "Stockage externe",
"Mount point" => "Point de montage",
"Backend" => "Infrastructure",
diff --git a/apps/files_external/l10n/gl.php b/apps/files_external/l10n/gl.php
index 5024dac4d8c..f8100e14620 100644
--- a/apps/files_external/l10n/gl.php
+++ b/apps/files_external/l10n/gl.php
@@ -3,8 +3,10 @@
"Error configuring Dropbox storage" => "Produciuse un erro ao configurar o almacenamento en Dropbox",
"Grant access" => "Permitir o acceso",
"Fill out all required fields" => "Cubrir todos os campos obrigatorios",
-"Please provide a valid Dropbox app key and secret." => "Dá o segredo e a chave correcta do aplicativo de Dropbox.",
+"Please provide a valid Dropbox app key and secret." => "Forneza unha chave correcta e segreda do Dropbox.",
"Error configuring Google Drive storage" => "Produciuse un erro ao configurar o almacenamento en Google Drive",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Aviso:</b> «smbclient» non está instalado. Non é posibel a montaxe de comparticións CIFS/SMB. Consulte co administrador do sistema para instalalo.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Aviso:</b> A compatibilidade de FTP en PHP non está activada ou instalada. Non é posibel a montaxe de comparticións FTP. Consulte co administrador do sistema para instalalo.",
"External Storage" => "Almacenamento externo",
"Mount point" => "Punto de montaxe",
"Backend" => "Infraestrutura",
diff --git a/apps/files_external/l10n/hu_HU.php b/apps/files_external/l10n/hu_HU.php
index e915c34b950..b8973c96411 100644
--- a/apps/files_external/l10n/hu_HU.php
+++ b/apps/files_external/l10n/hu_HU.php
@@ -1,5 +1,26 @@
<?php $TRANSLATIONS = array(
+"Access granted" => "Érvényes hozzáférés",
+"Error configuring Dropbox storage" => "A Dropbox tárolót nem sikerült beállítani",
+"Grant access" => "Megadom a hozzáférést",
+"Fill out all required fields" => "Töltse ki az összes szükséges mezőt",
+"Please provide a valid Dropbox app key and secret." => "Adjon meg egy érvényes Dropbox app key-t és secretet!",
+"Error configuring Google Drive storage" => "A Google Drive tárolót nem sikerült beállítani",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Figyelem:</b> az \"smbclient\" nincs telepítve a kiszolgálón. Emiatt nem lehet CIFS/SMB megosztásokat fölcsatolni. Kérje meg a rendszergazdát, hogy telepítse a szükséges programot.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Figyelem:</b> a PHP FTP támogatása vagy nincs telepítve, vagy nincs engedélyezve a kiszolgálón. Emiatt nem lehetséges FTP-tárolókat fölcsatolni. Kérje meg a rendszergazdát, hogy telepítse a szükséges programot.",
+"External Storage" => "Külső tárolási szolgáltatások becsatolása",
+"Mount point" => "Hova csatoljuk",
+"Backend" => "Külső tárolórendszer",
+"Configuration" => "Beállítások",
+"Options" => "Opciók",
+"Applicable" => "Érvényességi kör",
+"Add mount point" => "Új csatolás létrehozása",
+"None set" => "Nincs beállítva",
+"All Users" => "Az összes felhasználó",
"Groups" => "Csoportok",
"Users" => "Felhasználók",
-"Delete" => "Törlés"
+"Delete" => "Törlés",
+"Enable User External Storage" => "Külső tárolók engedélyezése a felhasználók részére",
+"Allow users to mount their own external storage" => "Lehetővé teszi, hogy a felhasználók külső tárolási szolgáltatásokat csatoljanak be a saját területükre",
+"SSL root certificates" => "SSL tanúsítványok",
+"Import Root Certificate" => "SSL tanúsítványok importálása"
);
diff --git a/apps/files_external/l10n/is.php b/apps/files_external/l10n/is.php
new file mode 100644
index 00000000000..5110bf5ad27
--- /dev/null
+++ b/apps/files_external/l10n/is.php
@@ -0,0 +1,26 @@
+<?php $TRANSLATIONS = array(
+"Access granted" => "Aðgengi veitt",
+"Error configuring Dropbox storage" => "Villa við að setja upp Dropbox gagnasvæði",
+"Grant access" => "Veita aðgengi",
+"Fill out all required fields" => "Fylltu út alla skilyrta reiti",
+"Please provide a valid Dropbox app key and secret." => "Gefðu upp virkan Dropbox lykil og leynikóða",
+"Error configuring Google Drive storage" => "Villa kom upp við að setja upp Google Drive gagnasvæði",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Aðvörun:</b> \"smbclient\" er ekki uppsettur. Uppsetning á CIFS/SMB gagnasvæðum er ekki möguleg. Hafðu samband við kerfisstjóra til að fá hann uppsettan.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Aðvörun:</b> FTP stuðningur í PHP er ekki virkur. Uppsetning á FTP gagnasvæðum er ekki möguleg. Hafðu samband við kerfisstjóra til að fá hann uppsettan.",
+"External Storage" => "Ytri gagnageymsla",
+"Mount point" => "Mount svæði",
+"Backend" => "Stjórnun",
+"Configuration" => "Uppsetning",
+"Options" => "Stillingar",
+"Applicable" => "Gilt",
+"Add mount point" => "Bæta við mount svæði",
+"None set" => "Ekkert sett",
+"All Users" => "Allir notendur",
+"Groups" => "Hópar",
+"Users" => "Notendur",
+"Delete" => "Eyða",
+"Enable User External Storage" => "Virkja ytra gagnasvæði notenda",
+"Allow users to mount their own external storage" => "Leyfa notendum að bæta við sínum eigin ytri gagnasvæðum",
+"SSL root certificates" => "SSL rótar skilríki",
+"Import Root Certificate" => "Flytja inn rótar skilríki"
+);
diff --git a/apps/files_external/l10n/ko.php b/apps/files_external/l10n/ko.php
index 74a400303b2..cb691cf5e3d 100644
--- a/apps/files_external/l10n/ko.php
+++ b/apps/files_external/l10n/ko.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "모든 필수 항목을 입력하십시오",
"Please provide a valid Dropbox app key and secret." => "올바른 Dropbox 앱 키와 암호를 입력하십시오.",
"Error configuring Google Drive storage" => "Google 드라이브 저장소 설정 오류",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>경고</b>\"smbclient\"가 설치되지 않았습니다. CIFS/SMB 공유애 연결이 불가능 합니다.. 시스템 관리자에게 요청하여 설치하시기 바랍니다.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>경고</b>PHP용 FTP 지원이 사용 불가능 하거나 설치되지 않았습니다. FTP 공유에 연결이 불가능 합니다. 시스템 관리자에게 요청하여 설치하시기 바랍니다. ",
"External Storage" => "외부 저장소",
"Mount point" => "마운트 지점",
"Backend" => "백엔드",
diff --git a/apps/files_external/l10n/mk.php b/apps/files_external/l10n/mk.php
index 8fde4fcde0f..e3c1e4652b3 100644
--- a/apps/files_external/l10n/mk.php
+++ b/apps/files_external/l10n/mk.php
@@ -1,5 +1,26 @@
<?php $TRANSLATIONS = array(
+"Access granted" => "Пристапот е дозволен",
+"Error configuring Dropbox storage" => "Грешка при конфигурација на Dropbox",
+"Grant access" => "Дозволи пристап",
+"Fill out all required fields" => "Пополни ги сите задолжителни полиња",
+"Please provide a valid Dropbox app key and secret." => "Ве молам доставите валиден Dropbox клуч и тајна лозинка.",
+"Error configuring Google Drive storage" => "Грешка при конфигурација на Google Drive",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Внимание:</b> \"smbclient\" не е инсталиран. Не е можно монтирање на CIFS/SMB дискови. Замолете го Вашиот систем администратор да го инсталира.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Внимание:</b> Не е овозможена или инсталирани FTP подршка во PHP. Не е можно монтирање на FTP дискови. Замолете го Вашиот систем администратор да го инсталира.",
+"External Storage" => "Надворешно складиште",
+"Mount point" => "Точка на монтирање",
+"Backend" => "Админ",
+"Configuration" => "Конфигурација",
+"Options" => "Опции",
+"Applicable" => "Применливо",
+"Add mount point" => "Додади точка на монтирање",
+"None set" => "Ништо поставено",
+"All Users" => "Сите корисници",
"Groups" => "Групи",
"Users" => "Корисници",
-"Delete" => "Избриши"
+"Delete" => "Избриши",
+"Enable User External Storage" => "Овозможи надворешни за корисници",
+"Allow users to mount their own external storage" => "Дозволи им на корисниците да монтираат свои надворешни дискови",
+"SSL root certificates" => "SSL root сертификати",
+"Import Root Certificate" => "Увези"
);
diff --git a/apps/files_external/l10n/nl.php b/apps/files_external/l10n/nl.php
index d0c0b02b8f8..132c8cf3ac2 100644
--- a/apps/files_external/l10n/nl.php
+++ b/apps/files_external/l10n/nl.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "Vul alle verplichte in",
"Please provide a valid Dropbox app key and secret." => "Geef een geldige Dropbox key en secret.",
"Error configuring Google Drive storage" => "Fout tijdens het configureren van Google Drive opslag",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Waarschuwing:</b> \"smbclient\" is niet geïnstalleerd. Mounten van CIFS/SMB shares is niet mogelijk. Vraag uw beheerder om smbclient te installeren.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Waarschuwing:</b> FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van FTP shares is niet mogelijk. Vraag uw beheerder FTP ondersteuning te installeren.",
"External Storage" => "Externe opslag",
"Mount point" => "Aankoppelpunt",
"Backend" => "Backend",
diff --git a/apps/files_external/l10n/pt_PT.php b/apps/files_external/l10n/pt_PT.php
index 4795a51a6b7..06dbc0cf6bd 100644
--- a/apps/files_external/l10n/pt_PT.php
+++ b/apps/files_external/l10n/pt_PT.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "Preencha todos os campos obrigatórios",
"Please provide a valid Dropbox app key and secret." => "Por favor forneça uma \"app key\" e \"secret\" do Dropbox válidas.",
"Error configuring Google Drive storage" => "Erro ao configurar o armazenamento do Google Drive",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Aviso:</b> O cliente \"smbclient\" não está instalado. Não é possível montar as partilhas CIFS/SMB . Peça ao seu administrador para instalar.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Aviso:</b> O suporte FTP no PHP não está activate ou instalado. Não é possível montar as partilhas FTP. Peça ao seu administrador para instalar.",
"External Storage" => "Armazenamento Externo",
"Mount point" => "Ponto de montagem",
"Backend" => "Backend",
diff --git a/apps/files_external/l10n/ru_RU.php b/apps/files_external/l10n/ru_RU.php
index 493e3f5bee4..e539b3cb2cf 100644
--- a/apps/files_external/l10n/ru_RU.php
+++ b/apps/files_external/l10n/ru_RU.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "Заполните все требуемые поля",
"Please provide a valid Dropbox app key and secret." => "Пожалуйста представьте допустимый ключ приложения Dropbox и пароль.",
"Error configuring Google Drive storage" => "Ошибка настройки хранилища Google Drive",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Предупреждение:</b> \"smbclient\" не установлен. Подключение общих папок CIFS/SMB невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить его.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Предупреждение:</b> Поддержка FTP в PHP не включена или не установлена. Подключение по FTP невозможно. Пожалуйста, обратитесь к системному администратору, чтобы установить ее.",
"External Storage" => "Внешние системы хранения данных",
"Mount point" => "Точка монтирования",
"Backend" => "Бэкэнд",
diff --git a/apps/files_external/l10n/sv.php b/apps/files_external/l10n/sv.php
index 0a5e1c66d99..0d42a1f4682 100644
--- a/apps/files_external/l10n/sv.php
+++ b/apps/files_external/l10n/sv.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "Fyll i alla obligatoriska fält",
"Please provide a valid Dropbox app key and secret." => "Ange en giltig Dropbox nyckel och hemlighet.",
"Error configuring Google Drive storage" => "Fel vid konfigurering av Google Drive",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>Varning:</b> \"smb-klienten\" är inte installerad. Montering av CIFS/SMB delningar är inte möjligt. Kontakta din systemadministratör för att få den installerad.",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>Varning:</b> Stöd för FTP i PHP är inte aktiverat eller installerat. Montering av FTP-delningar är inte möjligt. Kontakta din systemadministratör för att få det installerat.",
"External Storage" => "Extern lagring",
"Mount point" => "Monteringspunkt",
"Backend" => "Källa",
diff --git a/apps/files_external/l10n/tr.php b/apps/files_external/l10n/tr.php
index c5e9f8f892f..e9a045aab57 100644
--- a/apps/files_external/l10n/tr.php
+++ b/apps/files_external/l10n/tr.php
@@ -1,5 +1,16 @@
<?php $TRANSLATIONS = array(
+"External Storage" => "Harici Depolama",
+"Mount point" => "Bağlama Noktası",
+"Backend" => "Yönetici",
+"Configuration" => "Yapılandırma",
+"Options" => "Seçenekler",
+"Applicable" => "Uygulanabilir",
+"Add mount point" => "Bağlama noktası ekle",
+"None set" => "Hiçbiri",
+"All Users" => "Tüm Kullanıcılar",
"Groups" => "Gruplar",
"Users" => "Kullanıcılar",
-"Delete" => "Sil"
+"Delete" => "Sil",
+"SSL root certificates" => "SSL kök sertifikaları",
+"Import Root Certificate" => "Kök Sertifikalarını İçe Aktar"
);
diff --git a/apps/files_external/l10n/zh_CN.php b/apps/files_external/l10n/zh_CN.php
index 247ef7ce95c..1bb88564630 100644
--- a/apps/files_external/l10n/zh_CN.php
+++ b/apps/files_external/l10n/zh_CN.php
@@ -5,6 +5,8 @@
"Fill out all required fields" => "完成所有必填项",
"Please provide a valid Dropbox app key and secret." => "请提供有效的Dropbox应用key和secret",
"Error configuring Google Drive storage" => "配置Google Drive存储时出错",
+"<b>Warning:</b> \"smbclient\" is not installed. Mounting of CIFS/SMB shares is not possible. Please ask your system administrator to install it." => "<b>警告:</b>“smbclient” 尚未安装。CIFS/SMB 分享挂载无法实现。请咨询系统管理员进行安装。",
+"<b>Warning:</b> The FTP support in PHP is not enabled or installed. Mounting of FTP shares is not possible. Please ask your system administrator to install it." => "<b>警告:</b>PHP中尚未启用或安装FTP。FTP 分享挂载无法实现。请咨询系统管理员进行安装。",
"External Storage" => "外部存储",
"Mount point" => "挂载点",
"Backend" => "后端",
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index c0864dc50d2..1be544fbc07 100755
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -331,7 +331,7 @@ class OC_Mount_Config {
foreach ($data[self::MOUNT_TYPE_GROUP] as $group => $mounts) {
$content .= "\t\t'".$group."' => array (\n";
foreach ($mounts as $mountPoint => $mount) {
- $content .= "\t\t\t'".$mountPoint."' => ".str_replace("\n", '', var_export($mount, true)).", \n";
+ $content .= "\t\t\t'".addcslashes($mountPoint,"'")."' => ".str_replace("\n", '', var_export($mount, true)).", \n";
}
$content .= "\t\t),\n";
@@ -343,7 +343,7 @@ class OC_Mount_Config {
foreach ($data[self::MOUNT_TYPE_USER] as $user => $mounts) {
$content .= "\t\t'".$user."' => array (\n";
foreach ($mounts as $mountPoint => $mount) {
- $content .= "\t\t\t'".$mountPoint."' => ".str_replace("\n", '', var_export($mount, true)).",\n";
+ $content .= "\t\t\t'".addcslashes($mountPoint,"'")."' => ".str_replace("\n", '', var_export($mount, true)).",\n";
}
$content .= "\t\t),\n";
}
diff --git a/apps/files_external/lib/webdav.php b/apps/files_external/lib/webdav.php
index 68aca228bc5..6c5bc579c30 100644
--- a/apps/files_external/lib/webdav.php
+++ b/apps/files_external/lib/webdav.php
@@ -50,7 +50,7 @@ class OC_FileStorage_DAV extends OC_Filestorage_Common{
'password' => $this->password,
);
- $this->client = new OC_Connector_Sabre_Client($settings);
+ $this->client = new Sabre_DAV_Client($settings);
$caview = \OCP\Files::getStorage('files_external');
if ($caview) {
diff --git a/apps/files_external/settings.php b/apps/files_external/settings.php
index 2f239f7cb95..cd0bfa99585 100644
--- a/apps/files_external/settings.php
+++ b/apps/files_external/settings.php
@@ -20,6 +20,8 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*/
+OC_Util::checkAdminUser();
+
OCP\Util::addScript('files_external', 'settings');
OCP\Util::addscript('3rdparty', 'chosen/chosen.jquery.min');
OCP\Util::addStyle('files_external', 'settings');
diff --git a/apps/files_external/templates/settings.php b/apps/files_external/templates/settings.php
index 50f4a16a5ab..dd537d779a6 100644
--- a/apps/files_external/templates/settings.php
+++ b/apps/files_external/templates/settings.php
@@ -127,19 +127,14 @@
</fieldset>
</form>
+<?php if ( ! $_['isAdminPage']): ?>
<form id="files_external"
method="post"
enctype="multipart/form-data"
action="<?php echo OCP\Util::linkTo('files_external', 'ajax/addRootCertificate.php'); ?>">
<fieldset class="personalblock">
-<?php if ( ! $_['isAdminPage']): ?>
+ <legend><strong><?php echo $l->t('SSL root certificates');?></strong></legend>
<table id="sslCertificate" data-admin='<?php echo json_encode($_['isAdminPage']); ?>'>
- <thead>
- <tr>
- <th><?php echo $l->t('SSL root certificates'); ?></th>
- <th>&nbsp;</th>
- </tr>
- </thead>
<tbody width="100%">
<?php foreach ($_['certs'] as $rootCert): ?>
<tr id="<?php echo $rootCert ?>">
@@ -156,6 +151,6 @@
</table>
<input type="file" id="rootcert_import" name="rootcert_import" style="width:230px;">
<input type="submit" name="cert_import" value="<?php echo $l->t('Import Root Certificate'); ?>" />
- <?php endif; ?>
</fieldset>
</form>
+<?php endif; ?>
diff --git a/apps/files_sharing/appinfo/app.php b/apps/files_sharing/appinfo/app.php
index 109f86b2e87..0104d0d017f 100644
--- a/apps/files_sharing/appinfo/app.php
+++ b/apps/files_sharing/appinfo/app.php
@@ -6,4 +6,4 @@ OC::$CLASSPATH['OC_Filestorage_Shared'] = "apps/files_sharing/lib/sharedstorage.
OCP\Util::connectHook('OC_Filesystem', 'setup', 'OC_Filestorage_Shared', 'setup');
OCP\Share::registerBackend('file', 'OC_Share_Backend_File');
OCP\Share::registerBackend('folder', 'OC_Share_Backend_Folder', 'file');
-OCP\Util::addScript('files_sharing', 'share');
+OCP\Util::addScript('files_sharing', 'share'); \ No newline at end of file
diff --git a/apps/files_sharing/l10n/ar.php b/apps/files_sharing/l10n/ar.php
new file mode 100644
index 00000000000..4cf3f8c0920
--- /dev/null
+++ b/apps/files_sharing/l10n/ar.php
@@ -0,0 +1,9 @@
+<?php $TRANSLATIONS = array(
+"Password" => "كلمة المرور",
+"Submit" => "تطبيق",
+"%s shared the folder %s with you" => "%s شارك المجلد %s معك",
+"%s shared the file %s with you" => "%s شارك الملف %s معك",
+"Download" => "تحميل",
+"No preview available for" => "لا يوجد عرض مسبق لـ",
+"web services under your control" => "خدمات الشبكة تحت سيطرتك"
+);
diff --git a/apps/files_sharing/l10n/bg_BG.php b/apps/files_sharing/l10n/bg_BG.php
new file mode 100644
index 00000000000..ac94358c4f9
--- /dev/null
+++ b/apps/files_sharing/l10n/bg_BG.php
@@ -0,0 +1,9 @@
+<?php $TRANSLATIONS = array(
+"Password" => "Парола",
+"Submit" => "Потвърждение",
+"%s shared the folder %s with you" => "%s сподели папката %s с Вас",
+"%s shared the file %s with you" => "%s сподели файла %s с Вас",
+"Download" => "Изтегляне",
+"No preview available for" => "Няма наличен преглед за",
+"web services under your control" => "уеб услуги под Ваш контрол"
+);
diff --git a/apps/files_sharing/l10n/bn_BD.php b/apps/files_sharing/l10n/bn_BD.php
new file mode 100644
index 00000000000..c3af434ee29
--- /dev/null
+++ b/apps/files_sharing/l10n/bn_BD.php
@@ -0,0 +1,9 @@
+<?php $TRANSLATIONS = array(
+"Password" => "কূটশব্দ",
+"Submit" => "জমা দাও",
+"%s shared the folder %s with you" => "%s আপনার সাথে %s ফোল্ডারটি ভাগাভাগি করেছেন",
+"%s shared the file %s with you" => "%s আপনার সাথে %s ফাইলটি ভাগাভাগি করেছেন",
+"Download" => "ডাউনলোড",
+"No preview available for" => "এর জন্য কোন প্রাকবীক্ষণ সুলভ নয়",
+"web services under your control" => "ওয়েব সার্ভিস আপনার হাতের মুঠোয়"
+);
diff --git a/apps/files_sharing/l10n/hu_HU.php b/apps/files_sharing/l10n/hu_HU.php
index 881b5afd817..f8ca541260d 100644
--- a/apps/files_sharing/l10n/hu_HU.php
+++ b/apps/files_sharing/l10n/hu_HU.php
@@ -1,6 +1,9 @@
<?php $TRANSLATIONS = array(
-"Size" => "Méret",
-"Modified" => "Módosítva",
-"Delete all" => "Összes törlése",
-"Delete" => "Törlés"
+"Password" => "Jelszó",
+"Submit" => "Elküld",
+"%s shared the folder %s with you" => "%s megosztotta Önnel ezt a mappát: %s",
+"%s shared the file %s with you" => "%s megosztotta Önnel ezt az állományt: %s",
+"Download" => "Letöltés",
+"No preview available for" => "Nem áll rendelkezésre előnézet ehhez: ",
+"web services under your control" => "webszolgáltatások saját kézben"
);
diff --git a/apps/files_sharing/l10n/is.php b/apps/files_sharing/l10n/is.php
new file mode 100644
index 00000000000..bf1975c54ae
--- /dev/null
+++ b/apps/files_sharing/l10n/is.php
@@ -0,0 +1,9 @@
+<?php $TRANSLATIONS = array(
+"Password" => "Lykilorð",
+"Submit" => "Senda",
+"%s shared the folder %s with you" => "%s deildi möppunni %s með þér",
+"%s shared the file %s with you" => "%s deildi skránni %s með þér",
+"Download" => "Niðurhal",
+"No preview available for" => "Yfirlit ekki í boði fyrir",
+"web services under your control" => "vefþjónusta undir þinni stjórn"
+);
diff --git a/apps/files_sharing/l10n/mk.php b/apps/files_sharing/l10n/mk.php
new file mode 100644
index 00000000000..16c7ee0eb04
--- /dev/null
+++ b/apps/files_sharing/l10n/mk.php
@@ -0,0 +1,9 @@
+<?php $TRANSLATIONS = array(
+"Password" => "Лозинка",
+"Submit" => "Прати",
+"%s shared the folder %s with you" => "%s ја сподели папката %s со Вас",
+"%s shared the file %s with you" => "%s ја сподели датотеката %s со Вас",
+"Download" => "Преземи",
+"No preview available for" => "Нема достапно преглед за",
+"web services under your control" => "веб сервиси под Ваша контрола"
+);
diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index fef0ed8a8c2..487b9e79961 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -7,7 +7,7 @@ OC_App::loadApps();
// support will be removed in OC 5.0,a
if (isset($_GET['token'])) {
unset($_GET['file']);
- $qry = \OC_DB::prepare('SELECT `source` FROM `*PREFIX*sharing` WHERE `target` = ? LIMIT 1');
+ $qry = \OC_DB::prepare('SELECT `source` FROM `*PREFIX*sharing` WHERE `target` = ?', 1);
$filepath = $qry->execute(array($_GET['token']))->fetchOne();
if(isset($filepath)) {
$info = OC_FileCache_Cached::get($filepath, '');
@@ -16,7 +16,9 @@ if (isset($_GET['token'])) {
} else {
$_GET['file'] = $filepath;
}
- \OCP\Util::writeLog('files_sharing', 'You have files that are shared by link originating from ownCloud 4.0. Redistribute the new links, because backwards compatibility will be removed in ownCloud 5.', \OCP\Util::WARN);
+ \OCP\Util::writeLog('files_sharing', 'You have files that are shared by link originating from ownCloud 4.0.'
+ .' Redistribute the new links, because backwards compatibility will be removed in ownCloud 5.',
+ \OCP\Util::WARN);
}
}
@@ -27,7 +29,10 @@ function getID($path) {
$path_parts = explode('/', $path, 5);
$user = $path_parts[1];
$intPath = '/'.$path_parts[4];
- $query = \OC_DB::prepare('SELECT `item_source` FROM `*PREFIX*share` WHERE `uid_owner` = ? AND `file_target` = ? ');
+ $query = \OC_DB::prepare('SELECT `item_source`'
+ .' FROM `*PREFIX*share`'
+ .' WHERE `uid_owner` = ?'
+ .' AND `file_target` = ? ');
$result = $query->execute(array($user, $intPath));
$row = $result->fetchRow();
$fileSource = $row['item_source'];
@@ -69,7 +74,8 @@ if (isset($_GET['t'])) {
//if this is a reshare check the file owner also exists
if ($shareOwner != $fileOwner && ! OCP\User::userExists($fileOwner)) {
- OCP\Util::writeLog('share', 'original file owner '.$fileOwner.' does not exist for share '.$linkItem['id'], \OCP\Util::ERROR);
+ OCP\Util::writeLog('share', 'original file owner '.$fileOwner
+ .' does not exist for share '.$linkItem['id'], \OCP\Util::ERROR);
header('HTTP/1.0 404 Not Found');
$tmpl = new OCP\Template('', '404', 'guest');
$tmpl->printPage();
@@ -134,7 +140,8 @@ if ($linkItem) {
// Check Password
$forcePortable = (CRYPT_BLOWFISH != 1);
$hasher = new PasswordHash(8, $forcePortable);
- if (!($hasher->CheckPassword($password.OC_Config::getValue('passwordsalt', ''), $linkItem['share_with']))) {
+ if (!($hasher->CheckPassword($password.OC_Config::getValue('passwordsalt', ''),
+ $linkItem['share_with']))) {
$tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest');
$tmpl->assign('URL', $url);
$tmpl->assign('error', true);
@@ -145,19 +152,25 @@ if ($linkItem) {
$_SESSION['public_link_authenticated'] = $linkItem['id'];
}
} else {
- OCP\Util::writeLog('share', 'Unknown share type '.$linkItem['share_type'].' for share id '.$linkItem['id'], \OCP\Util::ERROR);
+ OCP\Util::writeLog('share', 'Unknown share type '.$linkItem['share_type']
+ .' for share id '.$linkItem['id'], \OCP\Util::ERROR);
header('HTTP/1.0 404 Not Found');
$tmpl = new OCP\Template('', '404', 'guest');
$tmpl->printPage();
exit();
}
- // Check if item id is set in session
- } else if (!isset($_SESSION['public_link_authenticated']) || $_SESSION['public_link_authenticated'] !== $linkItem['id']) {
- // Prompt for password
- $tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest');
- $tmpl->assign('URL', $url);
- $tmpl->printPage();
- exit();
+
+ } else {
+ // Check if item id is set in session
+ if (!isset($_SESSION['public_link_authenticated'])
+ || $_SESSION['public_link_authenticated'] !== $linkItem['id']
+ ) {
+ // Prompt for password
+ $tmpl = new OCP\Template('files_sharing', 'authenticate', 'guest');
+ $tmpl->assign('URL', $url);
+ $tmpl->printPage();
+ exit();
+ }
}
}
$basePath = substr($pathAndUser['path'], strlen('/'.$fileOwner.'/files'));
@@ -203,7 +216,9 @@ if ($linkItem) {
$getPath = '';
}
//
- $urlLinkIdentifiers= (isset($token)?'&t='.$token:'').(isset($_GET['dir'])?'&dir='.$_GET['dir']:'').(isset($_GET['file'])?'&file='.$_GET['file']:'');
+ $urlLinkIdentifiers= (isset($token)?'&t='.$token:'')
+ .(isset($_GET['dir'])?'&dir='.$_GET['dir']:'')
+ .(isset($_GET['file'])?'&file='.$_GET['file']:'');
// Show file list
if (OC_Filesystem::is_dir($path)) {
OCP\Util::addStyle('files', 'files');
@@ -260,13 +275,16 @@ if ($linkItem) {
$folder->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
$tmpl->assign('folder', $folder->fetchPage(), false);
$tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true)));
- $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').$urlLinkIdentifiers.'&download&path='.urlencode($getPath));
+ $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files')
+ .$urlLinkIdentifiers.'&download&path='.urlencode($getPath));
} else {
// Show file preview if viewer is available
if ($type == 'file') {
- $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').$urlLinkIdentifiers.'&download');
+ $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files')
+ .$urlLinkIdentifiers.'&download');
} else {
- $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files').$urlLinkIdentifiers.'&download&path='.urlencode($getPath));
+ $tmpl->assign('downloadURL', OCP\Util::linkToPublic('files')
+ .$urlLinkIdentifiers.'&download&path='.urlencode($getPath));
}
}
$tmpl->printPage();
diff --git a/apps/files_versions/ajax/expireAll.php b/apps/files_versions/ajax/expireAll.php
deleted file mode 100644
index 5c95885ffbd..00000000000
--- a/apps/files_versions/ajax/expireAll.php
+++ /dev/null
@@ -1,44 +0,0 @@
-<?php
-
-/**
- * ownCloud - user_migrate
- *
- * @author Sam Tuke
- * @copyright 2012 Sam Tuke samtuke@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/>.
- *
- */
-
-// TODO: Allow admins to expire versions of any user
-// TODO: Provide feedback as to how many versions were deleted
-
-// Check user and app status
-OCP\JSON::checkLoggedIn();
-OCP\App::checkAppEnabled('files_versions');
-OCP\JSON::callCheck();
-
-$versions = new OCA_Versions\Storage();
-
-if( $versions->expireAll() ) {
-
- OCP\JSON::success();
- die();
-
-} else {
-
- OCP\JSON::error();
- die();
-
-} \ No newline at end of file
diff --git a/apps/files_versions/ajax/getVersions.php b/apps/files_versions/ajax/getVersions.php
index 8476e5e8a51..600e69cf798 100644
--- a/apps/files_versions/ajax/getVersions.php
+++ b/apps/files_versions/ajax/getVersions.php
@@ -4,10 +4,9 @@ OCP\JSON::checkAppEnabled('files_versions');
$userDirectory = "/".OCP\USER::getUser()."/files";
$source = $_GET['source'];
-if( OCA_Versions\Storage::isversioned( $source ) ) {
+$count = 5; //show the newest revisions
+if( ($versions = OCA_Versions\Storage::getVersions( $source, $count)) ) {
- $count=5; //show the newest revisions
- $versions = OCA_Versions\Storage::getVersions( $source, $count);
$versionsFormatted = array();
foreach ( $versions AS $version ) {
diff --git a/apps/files_versions/ajax/rollbackVersion.php b/apps/files_versions/ajax/rollbackVersion.php
index f1b02eb4b92..f2c211d9c1e 100644
--- a/apps/files_versions/ajax/rollbackVersion.php
+++ b/apps/files_versions/ajax/rollbackVersion.php
@@ -8,10 +8,9 @@ $userDirectory = "/".OCP\USER::getUser()."/files";
$file = $_GET['file'];
$revision=(int)$_GET['revision'];
-if( OCA_Versions\Storage::isversioned( $file ) ) {
- if(OCA_Versions\Storage::rollback( $file, $revision )) {
- OCP\JSON::success(array("data" => array( "revision" => $revision, "file" => $file )));
- }else{
- OCP\JSON::error(array("data" => array( "message" => "Could not revert:" . $file )));
- }
+if(OCA_Versions\Storage::rollback( $file, $revision )) {
+ OCP\JSON::success(array("data" => array( "revision" => $revision, "file" => $file )));
+}else{
+ OCP\JSON::error(array("data" => array( "message" => "Could not revert:" . $file )));
}
+
diff --git a/apps/files_versions/history.php b/apps/files_versions/history.php
index d4c278ebd85..6e27f43d576 100644
--- a/apps/files_versions/history.php
+++ b/apps/files_versions/history.php
@@ -52,10 +52,8 @@ if ( isset( $_GET['path'] ) ) {
}
// show the history only if there is something to show
- if( OCA_Versions\Storage::isversioned( $path ) ) {
-
- $count = 999; //show the newest revisions
- $versions = OCA_Versions\Storage::getVersions( $path, $count);
+ $count = 999; //show the newest revisions
+ if( ($versions = OCA_Versions\Storage::getVersions( $path, $count)) ) {
$tmpl->assign( 'versions', array_reverse( $versions ) );
diff --git a/apps/files_versions/js/settings-personal.js b/apps/files_versions/js/settings-personal.js
deleted file mode 100644
index 1e6b036fdab..00000000000
--- a/apps/files_versions/js/settings-personal.js
+++ /dev/null
@@ -1,39 +0,0 @@
-// TODO: allow the button to be clicked only once
-
-$( document ).ready(function(){
- //
- $( '#expireAllBtn' ).click(
-
- function( event ) {
-
- // Prevent page from reloading
- event.preventDefault();
-
- // Show loading gif
- $('.expireAllLoading').show();
-
- $.getJSON(
- OC.filePath('files_versions','ajax','expireAll.php'),
- function(result){
- if (result.status == 'success') {
- $('.expireAllLoading').hide();
- $('#expireAllBtn').html('Expiration successful');
- } else {
-
- // Cancel loading
- $('#expireAllBtn').html('Expiration failed');
-
- // Show Dialog
- OC.dialogs.alert(
- 'Something went wrong, your files may not have been expired',
- 'An error has occurred',
- function(){
- $('#expireAllBtn').html(t('files_versions', 'Expire all versions')+'<img style="display: none;" class="loading" src="'+OC.filePath('core','img','loading.gif')+'" />');
- }
- );
- }
- }
- );
- }
- );
-}); \ No newline at end of file
diff --git a/apps/files_versions/l10n/ar.php b/apps/files_versions/l10n/ar.php
new file mode 100644
index 00000000000..1f1f3100405
--- /dev/null
+++ b/apps/files_versions/l10n/ar.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"History" => "السجل الزمني",
+"Files Versioning" => "أصدرة الملفات",
+"Enable" => "تفعيل"
+);
diff --git a/apps/files_versions/l10n/bg_BG.php b/apps/files_versions/l10n/bg_BG.php
new file mode 100644
index 00000000000..6ecf12d0b00
--- /dev/null
+++ b/apps/files_versions/l10n/bg_BG.php
@@ -0,0 +1,4 @@
+<?php $TRANSLATIONS = array(
+"History" => "История",
+"Enable" => "Включено"
+);
diff --git a/apps/files_versions/l10n/bn_BD.php b/apps/files_versions/l10n/bn_BD.php
new file mode 100644
index 00000000000..dffa4d79a06
--- /dev/null
+++ b/apps/files_versions/l10n/bn_BD.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"History" => "ইতিহাস",
+"Files Versioning" => "ফাইল ভার্সন করা",
+"Enable" => "সক্রিয় "
+);
diff --git a/apps/files_versions/l10n/ca.php b/apps/files_versions/l10n/ca.php
index 0076d02992f..01e0a116873 100644
--- a/apps/files_versions/l10n/ca.php
+++ b/apps/files_versions/l10n/ca.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Expira totes les versions",
"History" => "Historial",
-"Versions" => "Versions",
-"This will delete all existing backup versions of your files" => "Això eliminarà totes les versions de còpia de seguretat dels vostres fitxers",
"Files Versioning" => "Fitxers de Versions",
"Enable" => "Habilita"
);
diff --git a/apps/files_versions/l10n/cs_CZ.php b/apps/files_versions/l10n/cs_CZ.php
index 3995334d9ee..d219c3e68da 100644
--- a/apps/files_versions/l10n/cs_CZ.php
+++ b/apps/files_versions/l10n/cs_CZ.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Vypršet všechny verze",
"History" => "Historie",
-"Versions" => "Verze",
-"This will delete all existing backup versions of your files" => "Odstraní všechny existující zálohované verze Vašich souborů",
"Files Versioning" => "Verzování souborů",
"Enable" => "Povolit"
);
diff --git a/apps/files_versions/l10n/da.php b/apps/files_versions/l10n/da.php
index bc02b47f2ad..98579747643 100644
--- a/apps/files_versions/l10n/da.php
+++ b/apps/files_versions/l10n/da.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Lad alle versioner udløbe",
"History" => "Historik",
-"Versions" => "Versioner",
-"This will delete all existing backup versions of your files" => "Dette vil slette alle eksisterende backupversioner af dine filer",
"Files Versioning" => "Versionering af filer",
"Enable" => "Aktiver"
);
diff --git a/apps/files_versions/l10n/de.php b/apps/files_versions/l10n/de.php
index 092bbfbff70..2fcb996de7b 100644
--- a/apps/files_versions/l10n/de.php
+++ b/apps/files_versions/l10n/de.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Alle Versionen löschen",
"History" => "Historie",
-"Versions" => "Versionen",
-"This will delete all existing backup versions of your files" => "Dies löscht alle vorhandenen Sicherungsversionen Deiner Dateien.",
"Files Versioning" => "Dateiversionierung",
"Enable" => "Aktivieren"
);
diff --git a/apps/files_versions/l10n/de_DE.php b/apps/files_versions/l10n/de_DE.php
index a568112d02d..2fcb996de7b 100644
--- a/apps/files_versions/l10n/de_DE.php
+++ b/apps/files_versions/l10n/de_DE.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Alle Versionen löschen",
"History" => "Historie",
-"Versions" => "Versionen",
-"This will delete all existing backup versions of your files" => "Dies löscht alle vorhandenen Sicherungsversionen Ihrer Dateien.",
"Files Versioning" => "Dateiversionierung",
"Enable" => "Aktivieren"
);
diff --git a/apps/files_versions/l10n/el.php b/apps/files_versions/l10n/el.php
index f6b9a5b2998..6b189c2cdd3 100644
--- a/apps/files_versions/l10n/el.php
+++ b/apps/files_versions/l10n/el.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Λήξη όλων των εκδόσεων",
"History" => "Ιστορικό",
-"Versions" => "Εκδόσεις",
-"This will delete all existing backup versions of your files" => "Αυτό θα διαγράψει όλες τις υπάρχουσες εκδόσεις των αντιγράφων ασφαλείας των αρχείων σας",
"Files Versioning" => "Εκδόσεις Αρχείων",
"Enable" => "Ενεργοποίηση"
);
diff --git a/apps/files_versions/l10n/eo.php b/apps/files_versions/l10n/eo.php
index 0c3835373ef..87b314655c0 100644
--- a/apps/files_versions/l10n/eo.php
+++ b/apps/files_versions/l10n/eo.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Eksvalidigi ĉiujn eldonojn",
"History" => "Historio",
-"Versions" => "Eldonoj",
-"This will delete all existing backup versions of your files" => "Ĉi tio forigos ĉiujn estantajn sekurkopiajn eldonojn de viaj dosieroj",
"Files Versioning" => "Dosiereldonigo",
"Enable" => "Kapabligi"
);
diff --git a/apps/files_versions/l10n/es.php b/apps/files_versions/l10n/es.php
index f6b63df7c2b..4a8c34e5180 100644
--- a/apps/files_versions/l10n/es.php
+++ b/apps/files_versions/l10n/es.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Expirar todas las versiones",
"History" => "Historial",
-"Versions" => "Versiones",
-"This will delete all existing backup versions of your files" => "Esto eliminará todas las versiones guardadas como copia de seguridad de tus archivos",
"Files Versioning" => "Versionado de archivos",
"Enable" => "Habilitar"
);
diff --git a/apps/files_versions/l10n/es_AR.php b/apps/files_versions/l10n/es_AR.php
index a78264de03f..74d8907fc35 100644
--- a/apps/files_versions/l10n/es_AR.php
+++ b/apps/files_versions/l10n/es_AR.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Expirar todas las versiones",
"History" => "Historia",
-"Versions" => "Versiones",
-"This will delete all existing backup versions of your files" => "Hacer estom borrará todas las versiones guardadas como copia de seguridad de tus archivos",
"Files Versioning" => "Versionado de archivos",
"Enable" => "Activar"
);
diff --git a/apps/files_versions/l10n/et_EE.php b/apps/files_versions/l10n/et_EE.php
index f1296f23fcd..ff119d5374e 100644
--- a/apps/files_versions/l10n/et_EE.php
+++ b/apps/files_versions/l10n/et_EE.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Kõikide versioonide aegumine",
"History" => "Ajalugu",
-"Versions" => "Versioonid",
-"This will delete all existing backup versions of your files" => "See kustutab kõik sinu failidest tehtud varuversiooni",
"Files Versioning" => "Failide versioonihaldus",
"Enable" => "Luba"
);
diff --git a/apps/files_versions/l10n/eu.php b/apps/files_versions/l10n/eu.php
index d84d9011707..c6b4cd7692d 100644
--- a/apps/files_versions/l10n/eu.php
+++ b/apps/files_versions/l10n/eu.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Iraungi bertsio guztiak",
"History" => "Historia",
-"Versions" => "Bertsioak",
-"This will delete all existing backup versions of your files" => "Honek zure fitxategien bertsio guztiak ezabatuko ditu",
"Files Versioning" => "Fitxategien Bertsioak",
"Enable" => "Gaitu"
);
diff --git a/apps/files_versions/l10n/fi_FI.php b/apps/files_versions/l10n/fi_FI.php
index 3cec4c04bfe..bdce8e9fe52 100644
--- a/apps/files_versions/l10n/fi_FI.php
+++ b/apps/files_versions/l10n/fi_FI.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Vanhenna kaikki versiot",
"History" => "Historia",
-"Versions" => "Versiot",
-"This will delete all existing backup versions of your files" => "Tämä poistaa kaikki tiedostojesi olemassa olevat varmuuskopioversiot",
"Files Versioning" => "Tiedostojen versiointi",
"Enable" => "Käytä"
);
diff --git a/apps/files_versions/l10n/fr.php b/apps/files_versions/l10n/fr.php
index e6dbc274456..2d26b98860a 100644
--- a/apps/files_versions/l10n/fr.php
+++ b/apps/files_versions/l10n/fr.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Supprimer les versions intermédiaires",
"History" => "Historique",
-"Versions" => "Versions",
-"This will delete all existing backup versions of your files" => "Cette opération va effacer toutes les versions intermédiaires de vos fichiers (et ne garder que la dernière version en date).",
"Files Versioning" => "Versionnage des fichiers",
"Enable" => "Activer"
);
diff --git a/apps/files_versions/l10n/gl.php b/apps/files_versions/l10n/gl.php
index f10c1e16263..7e44b8898bf 100644
--- a/apps/files_versions/l10n/gl.php
+++ b/apps/files_versions/l10n/gl.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Caducan todas as versións",
"History" => "Historial",
-"Versions" => "Versións",
-"This will delete all existing backup versions of your files" => "Isto eliminará todas as copias de seguranza que haxa dos seus ficheiros",
"Files Versioning" => "Sistema de versión de ficheiros",
"Enable" => "Activar"
);
diff --git a/apps/files_versions/l10n/he.php b/apps/files_versions/l10n/he.php
index 061e88b0dbf..9eb4df64857 100644
--- a/apps/files_versions/l10n/he.php
+++ b/apps/files_versions/l10n/he.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "הפגת תוקף כל הגרסאות",
"History" => "היסטוריה",
-"Versions" => "גרסאות",
-"This will delete all existing backup versions of your files" => "פעולה זו תמחק את כל גיבויי הגרסאות הקיימים של הקבצים שלך",
"Files Versioning" => "שמירת הבדלי גרסאות של קבצים",
"Enable" => "הפעלה"
);
diff --git a/apps/files_versions/l10n/hu_HU.php b/apps/files_versions/l10n/hu_HU.php
new file mode 100644
index 00000000000..95d37ad06ed
--- /dev/null
+++ b/apps/files_versions/l10n/hu_HU.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"History" => "Korábbi változatok",
+"Files Versioning" => "Az állományok verzionálása",
+"Enable" => "engedélyezve"
+);
diff --git a/apps/files_versions/l10n/id.php b/apps/files_versions/l10n/id.php
index d8ac66c9763..6c553327c42 100644
--- a/apps/files_versions/l10n/id.php
+++ b/apps/files_versions/l10n/id.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "kadaluarsakan semua versi",
"History" => "riwayat",
-"Versions" => "versi",
-"This will delete all existing backup versions of your files" => "ini akan menghapus semua versi backup yang ada dari file anda",
"Files Versioning" => "pembuatan versi file",
"Enable" => "aktifkan"
);
diff --git a/apps/files_versions/l10n/is.php b/apps/files_versions/l10n/is.php
new file mode 100644
index 00000000000..ccb8287b71e
--- /dev/null
+++ b/apps/files_versions/l10n/is.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"History" => "Saga",
+"Files Versioning" => "Útgáfur af skrám",
+"Enable" => "Virkja"
+);
diff --git a/apps/files_versions/l10n/it.php b/apps/files_versions/l10n/it.php
index 0b1e70823d5..c57b0930111 100644
--- a/apps/files_versions/l10n/it.php
+++ b/apps/files_versions/l10n/it.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Scadenza di tutte le versioni",
"History" => "Cronologia",
-"Versions" => "Versioni",
-"This will delete all existing backup versions of your files" => "Ciò eliminerà tutte le versioni esistenti dei tuoi file",
"Files Versioning" => "Controllo di versione dei file",
"Enable" => "Abilita"
);
diff --git a/apps/files_versions/l10n/ja_JP.php b/apps/files_versions/l10n/ja_JP.php
index 367152c0743..c97ba3d00ee 100644
--- a/apps/files_versions/l10n/ja_JP.php
+++ b/apps/files_versions/l10n/ja_JP.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "すべてのバージョンを削除する",
"History" => "履歴",
-"Versions" => "バージョン",
-"This will delete all existing backup versions of your files" => "これは、あなたのファイルのすべてのバックアップバージョンを削除します",
"Files Versioning" => "ファイルのバージョン管理",
"Enable" => "有効化"
);
diff --git a/apps/files_versions/l10n/ko.php b/apps/files_versions/l10n/ko.php
index 688babb1121..f40925e1be2 100644
--- a/apps/files_versions/l10n/ko.php
+++ b/apps/files_versions/l10n/ko.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "모든 버전 삭제",
"History" => "역사",
-"Versions" => "버전",
-"This will delete all existing backup versions of your files" => "이 파일의 모든 백업 버전을 삭제합니다",
"Files Versioning" => "파일 버전 관리",
"Enable" => "사용함"
);
diff --git a/apps/files_versions/l10n/ku_IQ.php b/apps/files_versions/l10n/ku_IQ.php
index 5fa3b9080d7..db5dbad49fc 100644
--- a/apps/files_versions/l10n/ku_IQ.php
+++ b/apps/files_versions/l10n/ku_IQ.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "وه‌شانه‌کان گشتیان به‌سه‌رده‌چن",
"History" => "مێژوو",
-"Versions" => "وه‌شان",
-"This will delete all existing backup versions of your files" => "ئه‌مه‌ سه‌رجه‌م پاڵپشتی وه‌شانه‌ هه‌بووه‌کانی په‌ڕگه‌کانت ده‌سڕینته‌وه",
"Files Versioning" => "وه‌شانی په‌ڕگه",
"Enable" => "چالاککردن"
);
diff --git a/apps/files_versions/l10n/lt_LT.php b/apps/files_versions/l10n/lt_LT.php
index 3250ddc7c3c..adf4893020e 100644
--- a/apps/files_versions/l10n/lt_LT.php
+++ b/apps/files_versions/l10n/lt_LT.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Panaikinti visų versijų galiojimą",
"History" => "Istorija",
-"Versions" => "Versijos",
-"This will delete all existing backup versions of your files" => "Tai ištrins visas esamas failo versijas",
"Files Versioning" => "Failų versijos",
"Enable" => "Įjungti"
);
diff --git a/apps/files_versions/l10n/mk.php b/apps/files_versions/l10n/mk.php
new file mode 100644
index 00000000000..d3ec233fe41
--- /dev/null
+++ b/apps/files_versions/l10n/mk.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"History" => "Историја",
+"Files Versioning" => "Верзии на датотеки",
+"Enable" => "Овозможи"
+);
diff --git a/apps/files_versions/l10n/nb_NO.php b/apps/files_versions/l10n/nb_NO.php
index b441008db01..18c72506102 100644
--- a/apps/files_versions/l10n/nb_NO.php
+++ b/apps/files_versions/l10n/nb_NO.php
@@ -1,7 +1,5 @@
<?php $TRANSLATIONS = array(
"History" => "Historie",
-"Versions" => "Versjoner",
-"This will delete all existing backup versions of your files" => "Dette vil slette alle tidligere versjoner av alle filene dine",
"Files Versioning" => "Fil versjonering",
"Enable" => "Aktiver"
);
diff --git a/apps/files_versions/l10n/nl.php b/apps/files_versions/l10n/nl.php
index f9b5507621d..cd147ca693f 100644
--- a/apps/files_versions/l10n/nl.php
+++ b/apps/files_versions/l10n/nl.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Alle versies laten verlopen",
"History" => "Geschiedenis",
-"Versions" => "Versies",
-"This will delete all existing backup versions of your files" => "Dit zal alle bestaande backup versies van uw bestanden verwijderen",
"Files Versioning" => "Bestand versies",
"Enable" => "Activeer"
);
diff --git a/apps/files_versions/l10n/pl.php b/apps/files_versions/l10n/pl.php
index 46c28d4590a..a0247b8abc6 100644
--- a/apps/files_versions/l10n/pl.php
+++ b/apps/files_versions/l10n/pl.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Wygasają wszystkie wersje",
"History" => "Historia",
-"Versions" => "Wersje",
-"This will delete all existing backup versions of your files" => "Spowoduje to usunięcie wszystkich istniejących wersji kopii zapasowych plików",
"Files Versioning" => "Wersjonowanie plików",
"Enable" => "Włącz"
);
diff --git a/apps/files_versions/l10n/pt_BR.php b/apps/files_versions/l10n/pt_BR.php
index 3d39a533d65..854a30e6bee 100644
--- a/apps/files_versions/l10n/pt_BR.php
+++ b/apps/files_versions/l10n/pt_BR.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Expirar todas as versões",
"History" => "Histórico",
-"Versions" => "Versões",
-"This will delete all existing backup versions of your files" => "Isso removerá todas as versões de backup existentes dos seus arquivos",
"Files Versioning" => "Versionamento de Arquivos",
"Enable" => "Habilitar"
);
diff --git a/apps/files_versions/l10n/pt_PT.php b/apps/files_versions/l10n/pt_PT.php
index 2ddf70cc6c5..dc1bde08cad 100644
--- a/apps/files_versions/l10n/pt_PT.php
+++ b/apps/files_versions/l10n/pt_PT.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Expirar todas as versões",
"History" => "Histórico",
-"Versions" => "Versões",
-"This will delete all existing backup versions of your files" => "Isto irá apagar todas as versões de backup do seus ficheiros",
"Files Versioning" => "Versionamento de Ficheiros",
"Enable" => "Activar"
);
diff --git a/apps/files_versions/l10n/ro.php b/apps/files_versions/l10n/ro.php
index e23e771e392..7dfaee3672b 100644
--- a/apps/files_versions/l10n/ro.php
+++ b/apps/files_versions/l10n/ro.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Expiră toate versiunile",
"History" => "Istoric",
-"Versions" => "Versiuni",
-"This will delete all existing backup versions of your files" => "Această acțiune va șterge toate versiunile salvate ale fișierelor tale",
"Files Versioning" => "Versionare fișiere",
"Enable" => "Activare"
);
diff --git a/apps/files_versions/l10n/ru.php b/apps/files_versions/l10n/ru.php
index d698e90b8b8..4c7fb501091 100644
--- a/apps/files_versions/l10n/ru.php
+++ b/apps/files_versions/l10n/ru.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Просрочить все версии",
"History" => "История",
-"Versions" => "Версии",
-"This will delete all existing backup versions of your files" => "Очистить список версий ваших файлов",
"Files Versioning" => "Версии файлов",
"Enable" => "Включить"
);
diff --git a/apps/files_versions/l10n/ru_RU.php b/apps/files_versions/l10n/ru_RU.php
index 557c2f8e6d1..8656e346eb6 100644
--- a/apps/files_versions/l10n/ru_RU.php
+++ b/apps/files_versions/l10n/ru_RU.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Срок действия всех версий истекает",
"History" => "История",
-"Versions" => "Версии",
-"This will delete all existing backup versions of your files" => "Это приведет к удалению всех существующих версий резервной копии Ваших файлов",
"Files Versioning" => "Файлы управления версиями",
"Enable" => "Включить"
);
diff --git a/apps/files_versions/l10n/si_LK.php b/apps/files_versions/l10n/si_LK.php
index dbddf6dc2e9..37debf869bc 100644
--- a/apps/files_versions/l10n/si_LK.php
+++ b/apps/files_versions/l10n/si_LK.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "සියලු අනුවාද අවලංගු කරන්න",
"History" => "ඉතිහාසය",
-"Versions" => "අනුවාද",
-"This will delete all existing backup versions of your files" => "මෙයින් ඔබගේ ගොනුවේ රක්ශිත කරනු ලැබු අනුවාද සියල්ල මකා දමනු ලැබේ",
"Files Versioning" => "ගොනු අනුවාදයන්",
"Enable" => "සක්‍රිය කරන්න"
);
diff --git a/apps/files_versions/l10n/sk_SK.php b/apps/files_versions/l10n/sk_SK.php
index 132c6c09682..a3a3567cb4f 100644
--- a/apps/files_versions/l10n/sk_SK.php
+++ b/apps/files_versions/l10n/sk_SK.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Expirovať všetky verzie",
"History" => "História",
-"Versions" => "Verzie",
-"This will delete all existing backup versions of your files" => "Budú zmazané všetky zálohované verzie vašich súborov",
"Files Versioning" => "Vytváranie verzií súborov",
"Enable" => "Zapnúť"
);
diff --git a/apps/files_versions/l10n/sl.php b/apps/files_versions/l10n/sl.php
index 22b890a042d..7f386c9edaa 100644
--- a/apps/files_versions/l10n/sl.php
+++ b/apps/files_versions/l10n/sl.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Zastaraj vse različice",
"History" => "Zgodovina",
-"Versions" => "Različice",
-"This will delete all existing backup versions of your files" => "S tem bodo izbrisane vse obstoječe različice varnostnih kopij vaših datotek",
"Files Versioning" => "Sledenje različicam",
"Enable" => "Omogoči"
);
diff --git a/apps/files_versions/l10n/sv.php b/apps/files_versions/l10n/sv.php
index e36164e30ab..6788d1fb0f9 100644
--- a/apps/files_versions/l10n/sv.php
+++ b/apps/files_versions/l10n/sv.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Upphör alla versioner",
"History" => "Historik",
-"Versions" => "Versioner",
-"This will delete all existing backup versions of your files" => "Detta kommer att radera alla befintliga säkerhetskopior av dina filer",
"Files Versioning" => "Versionshantering av filer",
"Enable" => "Aktivera"
);
diff --git a/apps/files_versions/l10n/ta_LK.php b/apps/files_versions/l10n/ta_LK.php
index f1215b3ecc1..aca76dcc262 100644
--- a/apps/files_versions/l10n/ta_LK.php
+++ b/apps/files_versions/l10n/ta_LK.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "எல்லா பதிப்புகளும் காலாவதியாகிவிட்டது",
"History" => "வரலாறு",
-"Versions" => "பதிப்புகள்",
-"This will delete all existing backup versions of your files" => "உங்களுடைய கோப்புக்களில் ஏற்கனவே உள்ள ஆதாரநகல்களின் பதிப்புக்களை இவை அழித்துவிடும்",
"Files Versioning" => "கோப்பு பதிப்புகள்",
"Enable" => "இயலுமைப்படுத்துக"
);
diff --git a/apps/files_versions/l10n/th_TH.php b/apps/files_versions/l10n/th_TH.php
index 89b9f626911..e1e996903ae 100644
--- a/apps/files_versions/l10n/th_TH.php
+++ b/apps/files_versions/l10n/th_TH.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "หมดอายุทุกรุ่น",
"History" => "ประวัติ",
-"Versions" => "รุ่น",
-"This will delete all existing backup versions of your files" => "นี่จะเป็นลบทิ้งไฟล์รุ่นที่ทำการสำรองข้อมูลทั้งหมดที่มีอยู่ของคุณทิ้งไป",
"Files Versioning" => "การกำหนดเวอร์ชั่นของไฟล์",
"Enable" => "เปิดใช้งาน"
);
diff --git a/apps/files_versions/l10n/tr.php b/apps/files_versions/l10n/tr.php
new file mode 100644
index 00000000000..e9a4c4702e1
--- /dev/null
+++ b/apps/files_versions/l10n/tr.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"History" => "Geçmiş",
+"Files Versioning" => "Dosya Sürümleri",
+"Enable" => "Etkinleştir"
+);
diff --git a/apps/files_versions/l10n/uk.php b/apps/files_versions/l10n/uk.php
index 7532f755c88..49acda81079 100644
--- a/apps/files_versions/l10n/uk.php
+++ b/apps/files_versions/l10n/uk.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Термін дії всіх версій",
"History" => "Історія",
-"Versions" => "Версії",
-"This will delete all existing backup versions of your files" => "Це призведе до знищення всіх існуючих збережених версій Ваших файлів",
"Files Versioning" => "Версії файлів",
"Enable" => "Включити"
);
diff --git a/apps/files_versions/l10n/vi.php b/apps/files_versions/l10n/vi.php
index 260c3b6b39c..bb7163f6b18 100644
--- a/apps/files_versions/l10n/vi.php
+++ b/apps/files_versions/l10n/vi.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "Hết hạn tất cả các phiên bản",
"History" => "Lịch sử",
-"Versions" => "Phiên bản",
-"This will delete all existing backup versions of your files" => "Khi bạn thực hiện thao tác này sẽ xóa tất cả các phiên bản sao lưu hiện có ",
"Files Versioning" => "Phiên bản tập tin",
"Enable" => "Bật "
);
diff --git a/apps/files_versions/l10n/zh_CN.GB2312.php b/apps/files_versions/l10n/zh_CN.GB2312.php
index 107805221b8..d9e788033aa 100644
--- a/apps/files_versions/l10n/zh_CN.GB2312.php
+++ b/apps/files_versions/l10n/zh_CN.GB2312.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "作废所有版本",
"History" => "历史",
-"Versions" => "版本",
-"This will delete all existing backup versions of your files" => "这将删除所有您现有文件的备份版本",
"Files Versioning" => "文件版本",
"Enable" => "启用"
);
diff --git a/apps/files_versions/l10n/zh_CN.php b/apps/files_versions/l10n/zh_CN.php
index 48e7157c98f..14301ff0c04 100644
--- a/apps/files_versions/l10n/zh_CN.php
+++ b/apps/files_versions/l10n/zh_CN.php
@@ -1,8 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "过期所有版本",
"History" => "历史",
-"Versions" => "版本",
-"This will delete all existing backup versions of your files" => "将会删除您的文件的所有备份版本",
"Files Versioning" => "文件版本",
"Enable" => "开启"
);
diff --git a/apps/files_versions/l10n/zh_TW.php b/apps/files_versions/l10n/zh_TW.php
index a21fdc85f8d..a7b496b37db 100644
--- a/apps/files_versions/l10n/zh_TW.php
+++ b/apps/files_versions/l10n/zh_TW.php
@@ -1,7 +1,5 @@
<?php $TRANSLATIONS = array(
-"Expire all versions" => "所有逾期的版本",
"History" => "歷史",
-"Versions" => "版本",
"Files Versioning" => "檔案版本化中...",
"Enable" => "啟用"
);
diff --git a/apps/files_versions/lib/hooks.php b/apps/files_versions/lib/hooks.php
index e897a81f7af..5fb9dc3c3c5 100644
--- a/apps/files_versions/lib/hooks.php
+++ b/apps/files_versions/lib/hooks.php
@@ -39,15 +39,15 @@ class Hooks {
* cleanup the versions directory if the actual file gets deleted
*/
public static function remove_hook($params) {
- $versions_fileview = \OCP\Files::getStorage('files_versions');
- $rel_path = $params['path'];
- $abs_path = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$rel_path.'.v';
- if(Storage::isversioned($rel_path)) {
- $versions = Storage::getVersions($rel_path);
- foreach ($versions as $v) {
- unlink($abs_path . $v['version']);
- }
- }
+ if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
+
+ $versions = new Storage( new \OC_FilesystemView('') );
+
+ $path = $params[\OC_Filesystem::signal_param_path];
+
+ if($path<>'') $versions->delete( $path );
+
+ }
}
/**
@@ -58,18 +58,16 @@ class Hooks {
* of the stored versions along the actual file
*/
public static function rename_hook($params) {
- $versions_fileview = \OCP\Files::getStorage('files_versions');
- $rel_oldpath = $params['oldpath'];
- $abs_oldpath = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$rel_oldpath.'.v';
- $abs_newpath = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$params['newpath'].'.v';
- if(Storage::isversioned($rel_oldpath)) {
- $info=pathinfo($abs_newpath);
- if(!file_exists($info['dirname'])) mkdir($info['dirname'], 0750, true);
- $versions = Storage::getVersions($rel_oldpath);
- foreach ($versions as $v) {
- rename($abs_oldpath.$v['version'], $abs_newpath.$v['version']);
- }
+ if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
+
+ $versions = new Storage( new \OC_FilesystemView('') );
+
+ $oldpath = $params['oldpath'];
+ $newpath = $params['newpath'];
+
+ if($oldpath<>'' && $newpath<>'') $versions->rename( $oldpath, $newpath );
+
}
}
-
+
}
diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php
index 0ccaaf1095d..f938a2dbe84 100644
--- a/apps/files_versions/lib/versions.php
+++ b/apps/files_versions/lib/versions.php
@@ -1,6 +1,7 @@
<?php
/**
* Copyright (c) 2012 Frank Karlitschek <frank@owncloud.org>
+ * 2013 Bjoern Schiessle <schiessle@owncloud.com>
* This file is licensed under the Affero General Public License version 3 or
* later.
* See the COPYING-README file.
@@ -16,24 +17,23 @@ namespace OCA_Versions;
class Storage {
-
- // config.php configuration:
- // - files_versions
- // - files_versionsfolder
- // - files_versionsblacklist
- // - files_versionsmaxfilesize
- // - files_versionsinterval
- // - files_versionmaxversions
- //
- // todo:
- // - finish porting to OC_FilesystemView to enable network transparency
- // - add transparent compression. first test if it´s worth it.
-
const DEFAULTENABLED=true;
- const DEFAULTBLACKLIST='avi mp3 mpg mp4 ctmp';
- const DEFAULTMAXFILESIZE=1048576; // 10MB
- const DEFAULTMININTERVAL=60; // 1 min
- const DEFAULTMAXVERSIONS=50;
+ const DEFAULTMAXSIZE=50; // unit: percentage; 50% of available disk space/quota
+
+ private static $max_versions_per_interval = array(
+ 1 => array('intervalEndsAfter' => 10, //first 10sec, one version every 2sec
+ 'step' => 2),
+ 2 => array('intervalEndsAfter' => 60, //next minute, one version every 10sec
+ 'step' => 10),
+ 3 => array('intervalEndsAfter' => 3600, //next hour, one version every minute
+ 'step' => 60),
+ 4 => array('intervalEndsAfter' => 86400, //next 24h, one version every hour
+ 'step' => 3600),
+ 5 => array('intervalEndsAfter' => 2592000, //next 30days, one version per day
+ 'step' => 86400),
+ 6 => array('intervalEndsAfter' => -1, //until the end one version per week
+ 'step' => 604800),
+ );
private static function getUidAndFilename($filename)
{
@@ -72,40 +72,11 @@ class Storage {
return false;
}
- // check filetype blacklist
- $blacklist=explode(' ', \OCP\Config::getSystemValue('files_versionsblacklist', Storage::DEFAULTBLACKLIST));
- foreach($blacklist as $bl) {
- $parts=explode('.', $filename);
- $ext=end($parts);
- if(strtolower($ext)==$bl) {
- return false;
- }
- }
// we should have a source file to work with
if (!$files_view->file_exists($filename)) {
return false;
}
- // check filesize
- if($files_view->filesize($filename)>\OCP\Config::getSystemValue('files_versionsmaxfilesize', Storage::DEFAULTMAXFILESIZE)) {
- return false;
- }
-
-
- // check mininterval if the file is being modified by the owner (all shared files should be versioned despite mininterval)
- if ($uid == \OCP\User::getUser()) {
- $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
- $versionsName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename);
- $versionsFolderName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('');
- $matches=glob($versionsName.'.v*');
- sort($matches);
- $parts=explode('.v', end($matches));
- if((end($parts)+Storage::DEFAULTMININTERVAL)>time()) {
- return false;
- }
- }
-
-
// create all parent folders
$info=pathinfo($filename);
if(!file_exists($versionsFolderName.'/'.$info['dirname'])) {
@@ -113,15 +84,64 @@ class Storage {
}
// store a new version of a file
- $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.time());
-
+ $result = $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename));
+ if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) {
+ $versionsSize = self::calculateSize($uid);
+ }
+ $versionsSize += $users_view->filesize('files'.$filename);
+
// expire old revisions if necessary
- Storage::expire($filename);
+ $newSize = self::expire($filename, $versionsSize);
+
+ if ( $newSize != $versionsSize ) {
+ \OCP\Config::setAppValue('files_versions', 'size', $versionsSize);
+ }
}
}
/**
+ * Delete versions of a file
+ */
+ public static function delete($filename) {
+ list($uid, $filename) = self::getUidAndFilename($filename);
+ $versions_fileview = new \OC_FilesystemView('/'.$uid .'/files_versions');
+
+ $abs_path = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('').$filename.'.v';
+ if( ($versions = self::getVersions($filename)) ) {
+ if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) {
+ $versionsSize = self::calculateSize($uid);
+ }
+ foreach ($versions as $v) {
+ unlink($abs_path . $v['version']);
+ $versionsSize -= $v['size'];
+ }
+ \OCP\Config::setAppValue('files_versions', 'size', $versionsSize);
+ }
+ }
+
+ /**
+ * rename versions of a file
+ */
+ public static function rename($oldpath, $newpath) {
+ list($uid, $oldpath) = self::getUidAndFilename($oldpath);
+ list($uidn, $newpath) = self::getUidAndFilename($newpath);
+ $versions_view = new \OC_FilesystemView('/'.$uid .'/files_versions');
+ $files_view = new \OC_FilesystemView('/'.$uid .'/files');
+
+ if ( $files_view->is_dir($oldpath) && $versions_view->is_dir($oldpath) ) {
+ $versions_view->rename($oldpath, $newpath);
+ } else if ( ($versions = Storage::getVersions($oldpath)) ) {
+ $info=pathinfo($abs_newpath);
+ if(!file_exists($info['dirname'])) mkdir($info['dirname'], 0750, true);
+ $versions = Storage::getVersions($oldpath);
+ foreach ($versions as $v) {
+ $versions_view->rename($oldpath.'.v'.$v['version'], $newpath.'.v'.$v['version']);
+ }
+ }
+ }
+
+ /**
* rollback to an old version of a file.
*/
public static function rollback($filename, $revision) {
@@ -130,44 +150,27 @@ class Storage {
list($uid, $filename) = self::getUidAndFilename($filename);
$users_view = new \OC_FilesystemView('/'.$uid);
+ //first create a new version
+ $version = 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename);
+ if ( !$users_view->file_exists($version)) {
+ $users_view->copy('files'.$filename, 'files_versions'.$filename.'.v'.$users_view->filemtime('files'.$filename));
+ $versionCreated = true;
+ }
+
// rollback
if( @$users_view->copy('files_versions'.$filename.'.v'.$revision, 'files'.$filename) ) {
-
+ $users_view->touch('files'.$filename, $revision);
+ Storage::expire($filename);
return true;
- }else{
-
- return false;
-
+ }else if ( $versionCreated ) {
+ $users_view->unlink($version);
}
-
}
+ return false;
}
- /**
- * check if old versions of a file exist.
- */
- public static function isversioned($filename) {
- if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
- list($uid, $filename) = self::getUidAndFilename($filename);
- $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
-
- $versionsName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename);
-
- // check for old versions
- $matches=glob($versionsName.'.v*');
- if(count($matches)>0) {
- return true;
- }else{
- return false;
- }
- }else{
- return(false);
- }
- }
-
-
/**
* @brief get a list of all available versions of a file in descending chronological order
@@ -187,92 +190,232 @@ class Storage {
sort( $matches );
- $i = 0;
-
- $files_view = new \OC_FilesystemView('/'.\OCP\User::getUser().'/files');
+ $files_view = new \OC_FilesystemView('/'.$uid.'/files');
$local_file = $files_view->getLocalFile($filename);
- foreach( $matches as $ma ) {
- $i++;
- $versions[$i]['cur'] = 0;
+ foreach( $matches as $ma ) {
$parts = explode( '.v', $ma );
- $versions[$i]['version'] = ( end( $parts ) );
+ $version = ( end( $parts ) );
+ $key = $version.'#'.$filename;
+ $versions[$key]['cur'] = 0;
+ $versions[$key]['version'] = $version;
+ $versions[$key]['path'] = $filename;
+ $versions[$key]['size'] = $versions_fileview->filesize($filename.'.v'.$version);
// if file with modified date exists, flag it in array as currently enabled version
- ( \md5_file( $ma ) == \md5_file( $local_file ) ? $versions[$i]['fileMatch'] = 1 : $versions[$i]['fileMatch'] = 0 );
+ ( \md5_file( $ma ) == \md5_file( $local_file ) ? $versions[$key]['fileMatch'] = 1 : $versions[$key]['fileMatch'] = 0 );
}
$versions = array_reverse( $versions );
foreach( $versions as $key => $value ) {
-
// flag the first matched file in array (which will have latest modification date) as current version
if ( $value['fileMatch'] ) {
-
$value['cur'] = 1;
break;
-
}
-
}
$versions = array_reverse( $versions );
// only show the newest commits
if( $count != 0 and ( count( $versions )>$count ) ) {
-
$versions = array_slice( $versions, count( $versions ) - $count );
-
}
return( $versions );
-
} else {
-
// if versioning isn't enabled then return an empty array
return( array() );
-
}
}
+ /**
+ * @brief get the size of all stored versions from a given user
+ * @param $uid id from the user
+ * @return size of vesions
+ */
+ private static function calculateSize($uid) {
+ if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
+ $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
+ $versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('');
+
+ $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($versionsRoot), \RecursiveIteratorIterator::CHILD_FIRST);
+
+ $size = 0;
+
+ foreach ($iterator as $path) {
+ if ( preg_match('/^.+\.v(\d+)$/', $path, $match) ) {
+ $relpath = substr($path, strlen($versionsRoot)-1);
+ $size += $versions_fileview->filesize($relpath);
+ }
+ }
+
+ return $size;
+ }
+ }
+
/**
- * @brief Erase a file's versions which exceed the set quota
+ * @brief returns all stored file versions from a given user
+ * @param $uid id to the user
+ * @return array with contains two arrays 'all' which contains all versions sorted by age and 'by_file' which contains all versions sorted by filename
*/
- public static function expire($filename) {
- if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
- list($uid, $filename) = self::getUidAndFilename($filename);
+ private static function getAllVersions($uid) {
+ if( \OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true' ) {
$versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
-
- $versionsName=\OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath($filename);
-
- // check for old versions
- $matches = glob( $versionsName.'.v*' );
-
- if( count( $matches ) > \OCP\Config::getSystemValue( 'files_versionmaxversions', Storage::DEFAULTMAXVERSIONS ) ) {
-
- $numberToDelete = count($matches) - \OCP\Config::getSystemValue( 'files_versionmaxversions', Storage::DEFAULTMAXVERSIONS );
-
- // delete old versions of a file
- $deleteItems = array_slice( $matches, 0, $numberToDelete );
-
- foreach( $deleteItems as $de ) {
-
- unlink( $versionsName.'.v'.$de );
-
+ $versionsRoot = \OCP\Config::getSystemValue('datadirectory').$versions_fileview->getAbsolutePath('');
+
+ $iterator = new \RecursiveIteratorIterator(new \RecursiveDirectoryIterator($versionsRoot), \RecursiveIteratorIterator::CHILD_FIRST);
+
+ $versions = array();
+
+ foreach ($iterator as $path) {
+ if ( preg_match('/^.+\.v(\d+)$/', $path, $match) ) {
+ $relpath = substr($path, strlen($versionsRoot)-1);
+ $versions[$match[1].'#'.$relpath] = array('path' => $relpath, 'timestamp' => $match[1]);
}
+ }
+
+ ksort($versions);
+
+ $i = 0;
+
+ $result = array();
+
+ foreach( $versions as $key => $value ) {
+ $i++;
+ $size = $versions_fileview->filesize($value['path']);
+ $filename = substr($value['path'], 0, -strlen($value['timestamp'])-2);
+
+ $result['all'][$key]['version'] = $value['timestamp'];
+ $result['all'][$key]['path'] = $filename;
+ $result['all'][$key]['size'] = $size;
+
+ $filename = substr($value['path'], 0, -strlen($value['timestamp'])-2);
+ $result['by_file'][$filename][$key]['version'] = $value['timestamp'];
+ $result['by_file'][$filename][$key]['path'] = $filename;
+ $result['by_file'][$filename][$key]['size'] = $size;
+
}
+
+ return $result;
}
}
/**
- * @brief Erase all old versions of all user files
- * @return true/false
+ * @brief Erase a file's versions which exceed the set quota
*/
- public function expireAll() {
- $view = \OCP\Files::getStorage('files_versions');
- return $view->deleteAll('', true);
+ private static function expire($filename, $versionsSize = null) {
+ if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
+ list($uid, $filename) = self::getUidAndFilename($filename);
+ $versions_fileview = new \OC_FilesystemView('/'.$uid.'/files_versions');
+
+ // get available disk space for user
+ $quota = \OCP\Util::computerFileSize(\OC_Preferences::getValue($uid, 'files', 'quota'));
+ if ( $quota == null ) {
+ $quota = \OCP\Util::computerFileSize(\OC_Appconfig::getValue('files', 'default_quota'));
+ }
+ if ( $quota == null ) {
+ $quota = \OC_Filesystem::free_space('/');
+ }
+
+ // make sure that we have the current size of the version history
+ if ( $versionsSize === null ) {
+ if ( ($versionsSize = \OCP\Config::getAppValue('files_versions', 'size')) === null ) {
+ $versionsSize = self::calculateSize($uid);
+ }
+ }
+
+ // calculate available space for version history
+ $rootInfo = \OC_FileCache::get('', '/'. $uid . '/files');
+ $free = $quota-$rootInfo['size']; // remaining free space for user
+ if ( $free > 0 ) {
+ $availableSpace = ($free * self::DEFAULTMAXSIZE / 100) - $versionsSize; // how much space can be used for versions
+ } else {
+ $availableSpace = $free-$versionsSize;
+ }
+
+ // after every 1000s run reduce the number of all versions not only for the current file
+ $random = rand(0, 1000);
+ if ($random == 0) {
+ $result = Storage::getAllVersions($uid);
+ $versions_by_file = $result['by_file'];
+ $all_versions = $result['all'];
+ } else {
+ $all_versions = Storage::getVersions($filename);
+ $versions_by_file[$filename] = $all_versions;
+ }
+
+ $time = time();
+
+ // it is possible to expire versions from more than one file
+ // iterate through all given files
+ foreach ($versions_by_file as $filename => $versions) {
+ $versions = array_reverse($versions); // newest version first
+
+ $interval = 1;
+ $step = Storage::$max_versions_per_interval[$interval]['step'];
+ if (Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'] == -1) {
+ $nextInterval = -1;
+ } else {
+ $nextInterval = $time - Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'];
+ }
+
+ $firstVersion = reset($versions);
+ $firstKey = key($versions);
+ $prevTimestamp = $firstVersion['version'];
+ $nextVersion = $firstVersion['version'] - $step;
+ $remaining_versions[$firstKey] = $firstVersion;
+ unset($versions[$firstKey]);
+
+ foreach ($versions as $key => $version) {
+ $newInterval = true;
+ while ( $newInterval ) {
+ if ( $nextInterval == -1 || $version['version'] >= $nextInterval ) {
+ if ( $version['version'] > $nextVersion ) {
+ //distance between two version too small, delete version
+ $versions_fileview->unlink($version['path'].'.v'.$version['version']);
+ $availableSpace += $version['size'];
+ $versionsSize -= $version['size'];
+ unset($all_versions[$key]); // update array with all versions
+ } else {
+ $nextVersion = $version['version'] - $step;
+ }
+ $newInterval = false; // version checked so we can move to the next one
+ } else { // time to move on to the next interval
+ $interval++;
+ $step = Storage::$max_versions_per_interval[$interval]['step'];
+ $nextVersion = $prevTimestamp - $step;
+ if ( Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'] == -1 ) {
+ $nextInterval = -1;
+ } else {
+ $nextInterval = $time - Storage::$max_versions_per_interval[$interval]['intervalEndsAfter'];
+ }
+ $newInterval = true; // we changed the interval -> check same version with new interval
+ }
+ }
+ $prevTimestamp = $version['version'];
+ }
+ }
+
+ // check if enough space is available after versions are rearranged.
+ // if not we delete the oldest versions until we meet the size limit for versions
+ $numOfVersions = count($all_versions);
+ $i = 0;
+ while ($availableSpace < 0) {
+ if ($i = $numOfVersions-2) break; // keep at least the last version
+ $versions_fileview->unlink($all_versions[$i]['path'].'.v'.$all_versions[$i]['version']);
+ $versionsSize -= $all_versions[$i]['size'];
+ $availableSpace += $all_versions[$i]['size'];
+ $i++;
+ }
+
+ return $versionsSize; // finally return the new size of the version history
+ }
+
+ return false;
}
}
diff --git a/apps/files_versions/settings-personal.php b/apps/files_versions/settings-personal.php
deleted file mode 100644
index 6555bc99c3e..00000000000
--- a/apps/files_versions/settings-personal.php
+++ /dev/null
@@ -1,7 +0,0 @@
-<?php
-
-$tmpl = new OCP\Template( 'files_versions', 'settings-personal');
-
-OCP\Util::addscript('files_versions', 'settings-personal');
-
-return $tmpl->fetchPage();
diff --git a/apps/files_versions/templates/settings-personal.php b/apps/files_versions/templates/settings-personal.php
deleted file mode 100644
index 6d97cea46c3..00000000000
--- a/apps/files_versions/templates/settings-personal.php
+++ /dev/null
@@ -1,14 +0,0 @@
-<form id="versions">
- <fieldset class="personalblock">
- <legend>
- <strong><?php echo $l->t('Versions'); ?></strong>
- </legend>
- <p>
- <?php echo $l->t('This will delete all existing backup versions of your files'); ?>
- </p>
- <button id="expireAllBtn">
- <?php echo $l->t('Expire all versions'); ?>
- <img style="display: none;" class="expireAllLoading" src="<?php echo OCP\Util::imagePath('core', 'loading.gif'); ?>" />
- </button>
- </fieldset>
-</form>
diff --git a/apps/user_ldap/css/settings.css b/apps/user_ldap/css/settings.css
index f3f41fb2d8b..84ada0832ab 100644
--- a/apps/user_ldap/css/settings.css
+++ b/apps/user_ldap/css/settings.css
@@ -2,9 +2,11 @@
width: 20%;
max-width: 200px;
display: inline-block;
+ vertical-align: top;
+ padding-top: 9px;
}
-#ldap fieldset input {
+#ldap fieldset input, #ldap fieldset textarea {
width: 70%;
display: inline-block;
}
diff --git a/apps/user_ldap/l10n/ar.php b/apps/user_ldap/l10n/ar.php
new file mode 100644
index 00000000000..ced0b4293b7
--- /dev/null
+++ b/apps/user_ldap/l10n/ar.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"Password" => "كلمة المرور"
+);
diff --git a/apps/user_ldap/l10n/bg_BG.php b/apps/user_ldap/l10n/bg_BG.php
new file mode 100644
index 00000000000..c064534a6b8
--- /dev/null
+++ b/apps/user_ldap/l10n/bg_BG.php
@@ -0,0 +1,4 @@
+<?php $TRANSLATIONS = array(
+"Password" => "Парола",
+"Help" => "Помощ"
+);
diff --git a/apps/user_ldap/l10n/bn_BD.php b/apps/user_ldap/l10n/bn_BD.php
new file mode 100644
index 00000000000..094b20cad2d
--- /dev/null
+++ b/apps/user_ldap/l10n/bn_BD.php
@@ -0,0 +1,37 @@
+<?php $TRANSLATIONS = array(
+"Host" => "হোস্ট",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL আবশ্যক না হলে আপনি এই প্রটোকলটি মুছে ফেলতে পারেন । এরপর শুরু করুন এটা দিয়ে ldaps://",
+"Base DN" => "ভিত্তি DN",
+"You can specify Base DN for users and groups in the Advanced tab" => "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।",
+"User DN" => "ব্যবহারকারি DN",
+"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. পরিচয় গোপন রেখে অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।",
+"Password" => "কূটশব্দ",
+"For anonymous access, leave DN and Password empty." => "অজ্ঞাতকুলশীল অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।",
+"User Login Filter" => "ব্যবহারকারির প্রবেশ ছাঁকনী",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "প্রবেশের চেষ্টা করার সময় প্রযোজ্য ছাঁকনীটি নির্ধারণ করবে। প্রবেশের সময় ব্যবহারকারী নামটি %%uid দিয়ে প্রতিস্থাপিত হবে।",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "%%uid স্থানধারক ব্যবহার করুন, উদাহরণঃ \"uid=%%uid\"",
+"User List Filter" => "ব্যবহারকারী তালিকা ছাঁকনী",
+"Defines the filter to apply, when retrieving users." => "ব্যবহারকারী উদ্ধার করার সময় প্রয়োগের জন্য ছাঁকনী নির্ধারণ করবে।",
+"without any placeholder, e.g. \"objectClass=person\"." => "কোন স্থানধারক ব্যতীত, যেমনঃ \"objectClass=person\"।",
+"Group Filter" => "গোষ্ঠী ছাঁকনী",
+"Defines the filter to apply, when retrieving groups." => "গোষ্ঠীসমূহ উদ্ধার করার সময় প্রয়োগের জন্য ছাঁকনী নির্ধারণ করবে।",
+"without any placeholder, e.g. \"objectClass=posixGroup\"." => "কোন স্থান ধারক ব্যতীত, উদাহরণঃ\"objectClass=posixGroup\"।",
+"Port" => "পোর্ট",
+"Base User Tree" => "ভিত্তি ব্যবহারকারি বৃক্ষাকারে",
+"Base Group Tree" => "ভিত্তি গোষ্ঠী বৃক্ষাকারে",
+"Group-Member association" => "গোষ্ঠী-সদস্য সংস্থাপন",
+"Use TLS" => "TLS ব্যবহার কর",
+"Do not use it for SSL connections, it will fail." => "SSL সংযোগের জন্য এটি ব্যবহার করবেন না, তাহলে ব্যর্থ হবেনই।",
+"Case insensitve LDAP server (Windows)" => "বর্ণ অসংবেদী LDAP সার্ভার (উইন্ডোজ)",
+"Turn off SSL certificate validation." => "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "শুধুমাত্র যদি এই বিকল্পটি ব্যবহার করেই সংযোগ কার্যকরী হয় তবে আপনার ownCloud সার্ভারে LDAP সার্ভারের SSL সনদপত্রটি আমদানি করুন।",
+"Not recommended, use for testing only." => "অনুমোদিত নয়, শুধুমাত্র পরীক্ষামূলক ব্যবহারের জন্য।",
+"User Display Name Field" => "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "ব্যবহারকারীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।",
+"Group Display Name Field" => "গোষ্ঠীর প্রদর্শিতব্য নামের ক্ষেত্র",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "গোষ্ঠীর ownCloud নাম তৈরি করার জন্য ব্যভহৃত LDAP বৈশিষ্ট্য।",
+"in bytes" => "বাইটে",
+"in seconds. A change empties the cache." => "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।",
+"Help" => "সহায়িকা"
+);
diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php
index cce3de085d2..b11b56f9b65 100644
--- a/apps/user_ldap/l10n/da.php
+++ b/apps/user_ldap/l10n/da.php
@@ -2,10 +2,24 @@
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://",
"Base DN" => "Base DN",
+"You can specify Base DN for users and groups in the Advanced tab" => "You can specify Base DN for users and groups in the Advanced tab",
"User DN" => "Bruger DN",
"Password" => "Kodeord",
+"For anonymous access, leave DN and Password empty." => "For anonym adgang, skal du lade DN og Adgangskode tomme.",
+"User Login Filter" => "Bruger Login Filter",
+"User List Filter" => "Brugerliste Filter",
+"Defines the filter to apply, when retrieving users." => "Definere filteret der bruges ved indlæsning af brugere.",
+"Group Filter" => "Gruppe Filter",
+"Defines the filter to apply, when retrieving groups." => "Definere filteret der bruges når der indlæses grupper.",
"Port" => "Port",
+"Base User Tree" => "Base Bruger Træ",
+"Base Group Tree" => "Base Group Tree",
+"Group-Member association" => "Group-Member association",
"Use TLS" => "Brug TLS",
+"Do not use it for SSL connections, it will fail." => "Brug ikke til SSL forbindelser, da den vil fejle.",
+"Turn off SSL certificate validation." => "Deaktiver SSL certifikat validering",
"Not recommended, use for testing only." => "Anbefales ikke, brug kun for at teste.",
+"User Display Name Field" => "User Display Name Field",
+"in bytes" => "i bytes",
"Help" => "Hjælp"
);
diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php
index ed9fb6f8123..87579cb2431 100644
--- a/apps/user_ldap/l10n/de.php
+++ b/apps/user_ldap/l10n/de.php
@@ -1,5 +1,6 @@
<?php $TRANSLATIONS = array(
-"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Warnung:</b> Die Apps user_ldap und user_webdavauth sind nicht kompatible. Unerwartetes Verhalten kann auftreten. Bitte Deinen System-Verwalter eine von beiden zu de-aktivieren.",
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitte Deinen Systemadministator eine der beiden Anwendungen zu deaktivieren.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warnung:</b> Das PHP-Modul, das LDAP benöntigt, ist nicht installiert. Das Backend wird nicht funktionieren. Bitte deinen Systemadministrator das Modul zu installieren.",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kannst das Protokoll auslassen, außer wenn Du SSL benötigst. Beginne dann mit ldaps://",
"Base DN" => "Basis-DN",
diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php
index e6288c78af4..f986ae83e87 100644
--- a/apps/user_ldap/l10n/de_DE.php
+++ b/apps/user_ldap/l10n/de_DE.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warnung:</b> Das PHP-Modul, das LDAP benöntigt, ist nicht installiert. Das Backend wird nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Sie können das Protokoll auslassen, außer wenn Sie SSL benötigen. Beginnen Sie dann mit ldaps://",
"Base DN" => "Basis-DN",
diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php
index e973eaac0a9..8c421cf162b 100644
--- a/apps/user_ldap/l10n/el.php
+++ b/apps/user_ldap/l10n/el.php
@@ -1,18 +1,39 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Προσοχή:</b> Οι εφαρμογές user_ldap και user_webdavauth είναι ασύμβατες. Μπορεί να αντιμετωπίσετε απρόβλεπτη συμπεριφορά. Παρακαλώ ζητήστε από τον διαχειριστή συστήματος να απενεργοποιήσει μία από αυτές.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Προσοχή:</b> Το PHP LDAP module που απαιτείται δεν είναι εγκατεστημένο και ο μηχανισμός δεν θα λειτουργήσει. Παρακαλώ ζητήστε από τον διαχειριστή του συστήματος να το εγκαταστήσει.",
+"Host" => "Διακομιστής",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Μπορείτε να παραλείψετε το πρωτόκολλο, εκτός αν απαιτείται SSL. Σε αυτή την περίπτωση ξεκινήστε με ldaps://",
"Base DN" => "Base DN",
+"You can specify Base DN for users and groups in the Advanced tab" => "Μπορείτε να καθορίσετε το Base DN για χρήστες και ομάδες από την καρτέλα Προηγμένες ρυθμίσεις",
"User DN" => "User DN",
+"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "Το DN του χρήστη πελάτη με το οποίο θα πρέπει να γίνει η σύνδεση, π.χ. uid=agent,dc=example,dc=com. Για χρήση χωρίς πιστοποίηση, αφήστε το DN και τον Κωδικό κενά.",
"Password" => "Συνθηματικό",
+"For anonymous access, leave DN and Password empty." => "Για ανώνυμη πρόσβαση, αφήστε κενά τα πεδία DN και Pasword.",
"User Login Filter" => "User Login Filter",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Καθορίζει το φίλτρο που θα ισχύει κατά την προσπάθεια σύνδεσης χρήστη. %%uid αντικαθιστά το όνομα χρήστη κατά τη σύνδεση. ",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "χρησιμοποιήστε τη μεταβλητή %%uid, π.χ. \"uid=%%uid\"",
"User List Filter" => "User List Filter",
+"Defines the filter to apply, when retrieving users." => "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση επαφών.",
+"without any placeholder, e.g. \"objectClass=person\"." => "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=άτομο\".",
"Group Filter" => "Group Filter",
+"Defines the filter to apply, when retrieving groups." => "Καθορίζει το φίλτρο που θα ισχύει κατά την ανάκτηση ομάδων.",
+"without any placeholder, e.g. \"objectClass=posixGroup\"." => "χωρίς κάποια μεταβλητή, π.χ. \"objectClass=ΟμάδαPosix\".",
"Port" => "Θύρα",
"Base User Tree" => "Base User Tree",
"Base Group Tree" => "Base Group Tree",
"Group-Member association" => "Group-Member association",
"Use TLS" => "Χρήση TLS",
+"Do not use it for SSL connections, it will fail." => "Μην χρησιμοποιείτε για συνδέσεις SSL, θα αποτύχει.",
+"Case insensitve LDAP server (Windows)" => "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ",
+"Turn off SSL certificate validation." => "Απενεργοποίηση επικύρωσης πιστοποιητικού SSL.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Εάν η σύνδεση δουλεύει μόνο με αυτή την επιλογή, εισάγετε το LDAP SSL πιστοποιητικό του διακομιστή στον ownCloud server σας.",
"Not recommended, use for testing only." => "Δεν προτείνεται, χρήση μόνο για δοκιμές.",
"User Display Name Field" => "Πεδίο Ονόματος Χρήστη",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος χρήστη του ownCloud.",
"Group Display Name Field" => "Group Display Name Field",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "Η ιδιότητα LDAP που θα χρησιμοποιείται για τη δημιουργία του ονόματος ομάδας του ownCloud.",
"in bytes" => "σε bytes",
+"in seconds. A change empties the cache." => "σε δευτερόλεπτα. Μια αλλαγή αδειάζει την μνήμη cache.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Αφήστε το κενό για το όνομα χρήστη (προεπιλογή). Διαφορετικά, συμπληρώστε μία ιδιότητα LDAP/AD.",
"Help" => "Βοήθεια"
);
diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php
index c89ceb8eee2..4931af79eaf 100644
--- a/apps/user_ldap/l10n/es.php
+++ b/apps/user_ldap/l10n/es.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Advertencia:</b> Los Apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al administrador del sistema para desactivar uno de ellos.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Advertencia:</b> El módulo PHP LDAP necesario no está instalado, el sistema no funcionará. Pregunte al administrador del sistema para instalarlo.",
"Host" => "Servidor",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Puede omitir el protocolo, excepto si requiere SSL. En ese caso, empiece con ldaps://",
"Base DN" => "DN base",
diff --git a/apps/user_ldap/l10n/es_AR.php b/apps/user_ldap/l10n/es_AR.php
index 6bd452e9d90..0b1340d4397 100644
--- a/apps/user_ldap/l10n/es_AR.php
+++ b/apps/user_ldap/l10n/es_AR.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Advertencia:</b> Los Apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al administrador del sistema para desactivar uno de ellos.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Advertencia:</b> El módulo PHP LDAP necesario no está instalado, el sistema no funcionará. Pregunte al administrador del sistema para instalarlo.",
"Host" => "Servidor",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Podés omitir el protocolo, excepto si SSL es requerido. En ese caso, empezá con ldaps://",
"Base DN" => "DN base",
diff --git a/apps/user_ldap/l10n/eu.php b/apps/user_ldap/l10n/eu.php
index 35dacef3f2f..06ca9cb294e 100644
--- a/apps/user_ldap/l10n/eu.php
+++ b/apps/user_ldap/l10n/eu.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Abisua:</b> user_ldap eta user_webdavauth aplikazioak bateraezinak dira. Portaera berezia izan dezakezu. Mesedez eskatu zure sistema kudeatzaileari bietako bat desgaitzeko.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Abisua:</b> PHPk behar duen LDAP modulua ez dago instalaturik, motorrak ez du funtzionatuko. Mesedez eskatu zure sistema kudeatzaileari instala dezan.",
"Host" => "Hostalaria",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokoloa ez da beharrezkoa, SSL behar baldin ez baduzu. Honela bada hasi ldaps://",
"Base DN" => "Oinarrizko DN",
diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php
index a0b1c6b7d9c..9750d1352a8 100644
--- a/apps/user_ldap/l10n/fr.php
+++ b/apps/user_ldap/l10n/fr.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Avertissement:</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des disfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il désactive l'une d'elles.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Avertissement:</b> Le module PHP LDAP requis n'est pas installé, l'application ne marchera pas. Contactez votre administrateur système pour qu'il l'installe.",
"Host" => "Hôte",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Vous pouvez omettre le protocole, sauf si vous avez besoin de SSL. Dans ce cas préfixez avec ldaps://",
"Base DN" => "DN Racine",
diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php
index 41431293cba..ae05efcd27f 100644
--- a/apps/user_ldap/l10n/gl.php
+++ b/apps/user_ldap/l10n/gl.php
@@ -1,10 +1,12 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Aviso:</b> Os aplicativos user_ldap e user_webdavauth son incompatíbeis. Pode acontecer un comportamento estraño. Consulte co administrador do sistema para desactivar un deles.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Aviso:</b> O módulo PHP LDAP é necesario e non está instalado, a infraestrutura non funcionará. Consulte co administrador do sistema para instalalo.",
"Host" => "Servidor",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Pode omitir o protocolo agás que precise de SSL. Nese caso comece con ldaps://",
"Base DN" => "DN base",
"You can specify Base DN for users and groups in the Advanced tab" => "Pode especificar a DN base para usuarios e grupos na lapela de «Avanzado»",
"User DN" => "DN do usuario",
-"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "O DN do cliente do usuario co que hai que estabelecer unha conexión, p.ex uid=axente, dc=exemplo, dc=com. Para o acceso en anónimo de o DN e o contrasinal baleiros.",
+"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "O DN do cliente do usuario co que hai que estabelecer unha conexión, p.ex uid=axente, dc=exemplo, dc=com. Para o acceso anónimo deixe o DN e o contrasinal baleiros.",
"Password" => "Contrasinal",
"For anonymous access, leave DN and Password empty." => "Para o acceso anónimo deixe o DN e o contrasinal baleiros.",
"User Login Filter" => "Filtro de acceso de usuarios",
@@ -21,7 +23,7 @@
"Base Group Tree" => "Base da árbore de grupo",
"Group-Member association" => "Asociación de grupos e membros",
"Use TLS" => "Usar TLS",
-"Do not use it for SSL connections, it will fail." => "Non empregualo para conexións SSL: fallará.",
+"Do not use it for SSL connections, it will fail." => "Non empregalo para conexións SSL: fallará.",
"Case insensitve LDAP server (Windows)" => "Servidor LDAP que non distingue entre maiúsculas e minúsculas (Windows)",
"Turn off SSL certificate validation." => "Desactiva a validación do certificado SSL.",
"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Se a conexión só funciona con esta opción importa o certificado SSL do servidor LDAP no seu servidor ownCloud.",
diff --git a/apps/user_ldap/l10n/he.php b/apps/user_ldap/l10n/he.php
new file mode 100644
index 00000000000..d33ecaadf05
--- /dev/null
+++ b/apps/user_ldap/l10n/he.php
@@ -0,0 +1,12 @@
+<?php $TRANSLATIONS = array(
+"Host" => "מארח",
+"User DN" => "DN משתמש",
+"Password" => "סיסמא",
+"For anonymous access, leave DN and Password empty." => "לגישה אנונימית, השאר את הDM והסיסמא ריקים.",
+"User Login Filter" => "סנן כניסת משתמש",
+"User List Filter" => "סנן רשימת משתמשים",
+"Group Filter" => "סנן קבוצה",
+"in bytes" => "בבתים",
+"in seconds. A change empties the cache." => "בשניות. שינוי מרוקן את המטמון.",
+"Help" => "עזרה"
+);
diff --git a/apps/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php
new file mode 100644
index 00000000000..577afcef1c9
--- /dev/null
+++ b/apps/user_ldap/l10n/hu_HU.php
@@ -0,0 +1,38 @@
+<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Figyelem:</b> a user_ldap és user_webdavauth alkalmazások nem kompatibilisek. Együttes használatuk váratlan eredményekhez vezethet. Kérje meg a rendszergazdát, hogy a kettő közül kapcsolja ki az egyiket.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Figyelem:</b> a szükséges PHP LDAP modul nincs telepítve. Enélkül az LDAP azonosítás nem fog működni. Kérje meg a rendszergazdát, hogy telepítse a szükséges modult!",
+"Host" => "Kiszolgáló",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "A protokoll előtag elhagyható, kivéve, ha SSL-t kíván használni. Ebben az esetben kezdje így: ldaps://",
+"Base DN" => "DN-gyökér",
+"You can specify Base DN for users and groups in the Advanced tab" => "A Haladó fülre kattintva külön DN-gyökér állítható be a felhasználók és a csoportok számára",
+"User DN" => "A kapcsolódó felhasználó DN-je",
+"Password" => "Jelszó",
+"For anonymous access, leave DN and Password empty." => "Bejelentkezés nélküli eléréshez ne töltse ki a DN és Jelszó mezőket!",
+"User Login Filter" => "Szűrő a bejelentkezéshez",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action." => "Ez a szűrő érvényes a bejelentkezés megkísérlésekor. Ekkor az %%uid változó helyére a bejelentkezési név kerül.",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "használja az %%uid változót, pl. \"uid=%%uid\"",
+"User List Filter" => "A felhasználók szűrője",
+"Defines the filter to apply, when retrieving users." => "Ez a szűrő érvényes a felhasználók listázásakor.",
+"without any placeholder, e.g. \"objectClass=person\"." => "itt ne használjon változót, pl. \"objectClass=person\".",
+"Group Filter" => "A csoportok szűrője",
+"Defines the filter to apply, when retrieving groups." => "Ez a szűrő érvényes a csoportok listázásakor.",
+"without any placeholder, e.g. \"objectClass=posixGroup\"." => "itt ne használjunk változót, pl. \"objectClass=posixGroup\".",
+"Port" => "Port",
+"Base User Tree" => "A felhasználói fa gyökere",
+"Base Group Tree" => "A csoportfa gyökere",
+"Group-Member association" => "A csoporttagság attribútuma",
+"Use TLS" => "Használjunk TLS-t",
+"Do not use it for SSL connections, it will fail." => "Ne használjuk SSL-kapcsolat esetén, mert nem fog működni!",
+"Case insensitve LDAP server (Windows)" => "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)",
+"Turn off SSL certificate validation." => "Ne ellenőrizzük az SSL-tanúsítvány érvényességét",
+"If connection only works with this option, import the LDAP server's SSL certificate in your ownCloud server." => "Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát az ownCloud kiszolgálóra!",
+"Not recommended, use for testing only." => "Nem javasolt, csak tesztelésre érdemes használni.",
+"User Display Name Field" => "A felhasználónév mezője",
+"The LDAP attribute to use to generate the user`s ownCloud name." => "Ebből az LDAP attribútumból képződik a felhasználó elnevezése, ami megjelenik az ownCloudban.",
+"Group Display Name Field" => "A csoport nevének mezője",
+"The LDAP attribute to use to generate the groups`s ownCloud name." => "Ebből az LDAP attribútumból képződik a csoport elnevezése, ami megjelenik az ownCloudban.",
+"in bytes" => "bájtban",
+"in seconds. A change empties the cache." => "másodpercben. A változtatás törli a cache tartalmát.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Hagyja üresen, ha a felhasználónevet kívánja használni. Ellenkező esetben adjon meg egy LDAP/AD attribútumot!",
+"Help" => "Súgó"
+);
diff --git a/apps/user_ldap/l10n/is.php b/apps/user_ldap/l10n/is.php
new file mode 100644
index 00000000000..29bc7692795
--- /dev/null
+++ b/apps/user_ldap/l10n/is.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"Host" => "Netþjónn",
+"Password" => "Lykilorð",
+"Help" => "Hjálp"
+);
diff --git a/apps/user_ldap/l10n/ko.php b/apps/user_ldap/l10n/ko.php
index aa775e42b16..37ac3d1bda5 100644
--- a/apps/user_ldap/l10n/ko.php
+++ b/apps/user_ldap/l10n/ko.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>경고</b>user_ldap 앱과 user_webdavauth 앱은 호환되지 않습니다. 오동작을 일으킬 수 있으므로, 시스템 관리자에게 요청하여, 둘 중 하나를 비활성화 하시기 바랍니다.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>경고</b>PHP LDAP 모듈이 설치되지 않았습니다. 백엔드가 동작하지 않을 것 입니다. 시스템관리자에게 요청하여 해당 모듈을 설치하시기 바랍니다.",
"Host" => "호스트",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL을 사용하는 경우가 아니라면 프로토콜을 입력하지 않아도 됩니다. SSL을 사용하려면 ldaps://를 입력하십시오.",
"Base DN" => "기본 DN",
diff --git a/apps/user_ldap/l10n/mk.php b/apps/user_ldap/l10n/mk.php
new file mode 100644
index 00000000000..70a62e71765
--- /dev/null
+++ b/apps/user_ldap/l10n/mk.php
@@ -0,0 +1,5 @@
+<?php $TRANSLATIONS = array(
+"Host" => "Домаќин",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Може да го скокнете протколот освен ако не ви треба SSL. Тогаш ставете ldaps://",
+"Password" => "Лозинка"
+);
diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php
index 84c36881f9a..23e9a15c010 100644
--- a/apps/user_ldap/l10n/nl.php
+++ b/apps/user_ldap/l10n/nl.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Waarschuwing:</b> De Apps user_ldap en user_webdavauth zijn incompatible. U kunt onverwacht gedrag ervaren. Vraag uw beheerder om een van beide apps de deactiveren.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Waarschuwing:</b> De PHP LDAP module is niet geïnstalleerd, de backend zal dus niet werken. Vraag uw beheerder de module te installeren.",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Je kunt het protocol weglaten, tenzij je SSL vereist. Start in dat geval met ldaps://",
"Base DN" => "Basis DN",
diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php
index 7ebebe1e073..0a3dea14c94 100644
--- a/apps/user_ldap/l10n/pl.php
+++ b/apps/user_ldap/l10n/pl.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Ostrzeżenie:</b> Aplikacje user_ldap i user_webdavauth nie są kompatybilne. Mogą powodować nieoczekiwane zachowanie. Poproś administratora o wyłączenie jednej z nich.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Ostrzeżenie:</b> Moduł PHP LDAP nie jest zainstalowany i nie będzie działał. Poproś administratora o włączenie go.",
"Host" => "Host",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Można pominąć protokół, z wyjątkiem wymaganego protokołu SSL. Następnie uruchom z ldaps://",
"Base DN" => "Baza DN",
diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php
index a17e1a95923..1b21b899a2e 100644
--- a/apps/user_ldap/l10n/pt_PT.php
+++ b/apps/user_ldap/l10n/pt_PT.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Aviso:</b> A aplicação user_ldap e user_webdavauth são incompativeis. A aplicação pode tornar-se instável. Por favor, peça ao seu administrador para desactivar uma das aplicações.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Aviso:</b> O módulo PHP LDAP necessário não está instalado, o backend não irá funcionar. Peça ao seu administrador para o instalar.",
"Host" => "Anfitrião",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Pode omitir o protocolo, excepto se necessitar de SSL. Neste caso, comece com ldaps://",
"Base DN" => "DN base",
diff --git a/apps/user_ldap/l10n/ro.php b/apps/user_ldap/l10n/ro.php
index beeed857455..b4d7d4902fe 100644
--- a/apps/user_ldap/l10n/ro.php
+++ b/apps/user_ldap/l10n/ro.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Atentie:</b> Apps user_ldap si user_webdavauth sunt incompatibile. Este posibil sa experimentati un comportament neasteptat. Vă rugăm să întrebați administratorul de sistem pentru a dezactiva una dintre ele.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Atentie:</b Modulul PHP LDAP care este necesar nu este instalat. Va rugam intrebati administratorul de sistem instalarea acestuia",
"Host" => "Gazdă",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Puteți omite protocolul, decât dacă folosiți SSL. Atunci se începe cu ldaps://",
"Base DN" => "DN de bază",
diff --git a/apps/user_ldap/l10n/ru_RU.php b/apps/user_ldap/l10n/ru_RU.php
index d5adb9fffd3..09d7899249a 100644
--- a/apps/user_ldap/l10n/ru_RU.php
+++ b/apps/user_ldap/l10n/ru_RU.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Предупреждение:</b> Приложения user_ldap и user_webdavauth несовместимы. Вы можете столкнуться с неожиданным поведением системы. Пожалуйста, обратитесь к системному администратору для отключения одного из них.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Предупреждение:</b> Необходимый PHP LDAP-модуль не установлен, backend не будет работать. Пожалуйста, обратитесь к системному администратору, чтобы установить его.",
"Host" => "Хост",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Вы можете пропустить протокол, если Вам не требуется SSL. Затем начните с ldaps://",
"Base DN" => "База DN",
diff --git a/apps/user_ldap/l10n/sv.php b/apps/user_ldap/l10n/sv.php
index 2a0abb92967..e8e14af7aca 100644
--- a/apps/user_ldap/l10n/sv.php
+++ b/apps/user_ldap/l10n/sv.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Varning:</b> Apps user_ldap och user_webdavauth är inkompatibla. Oväntade problem kan uppstå. Be din systemadministratör att inaktivera en av dom.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Varning:</b> PHP LDAP-modulen måste vara installerad, serversidan kommer inte att fungera. Be din systemadministratör att installera den.",
"Host" => "Server",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du behöver inte ange protokoll förutom om du använder SSL. Starta då med ldaps://",
"Base DN" => "Start DN",
diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php
new file mode 100644
index 00000000000..6da65d9832b
--- /dev/null
+++ b/apps/user_ldap/l10n/tr.php
@@ -0,0 +1,24 @@
+<?php $TRANSLATIONS = array(
+"Host" => "Konak",
+"Base DN" => "Base DN",
+"User DN" => "User DN",
+"Password" => "Parola",
+"For anonymous access, leave DN and Password empty." => "Anonim erişim için DN ve Parola alanlarını boş bırakın.",
+"User Login Filter" => "Kullanıcı Oturum Açma Süzgeci",
+"use %%uid placeholder, e.g. \"uid=%%uid\"" => "%%uid yer tutucusunu kullanın, örneğin \"uid=%%uid\"",
+"User List Filter" => "Kullanıcı Liste Süzgeci",
+"without any placeholder, e.g. \"objectClass=person\"." => "bir yer tutucusu olmadan, örneğin \"objectClass=person\"",
+"Group Filter" => "Grup Süzgeci",
+"Port" => "Port",
+"Base User Tree" => "Temel Kullanıcı Ağacı",
+"Base Group Tree" => "Temel Grup Ağacı",
+"Group-Member association" => "Grup-Üye işbirliği",
+"Use TLS" => "TLS kullan",
+"Do not use it for SSL connections, it will fail." => "SSL bağlantıları ile kullanmayın, başarısız olacaktır.",
+"Turn off SSL certificate validation." => "SSL sertifika doğrulamasını kapat.",
+"Not recommended, use for testing only." => "Önerilmez, sadece test için kullanın.",
+"in bytes" => "byte cinsinden",
+"in seconds. A change empties the cache." => "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir.",
+"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Kullanıcı adı bölümünü boş bırakın (varsayılan). ",
+"Help" => "Yardım"
+);
diff --git a/apps/user_ldap/l10n/uk.php b/apps/user_ldap/l10n/uk.php
index 1bbd24f679b..f82e9f2a420 100644
--- a/apps/user_ldap/l10n/uk.php
+++ b/apps/user_ldap/l10n/uk.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>Увага:</b> Застосунки user_ldap та user_webdavauth не сумісні. Ви можете зіткнутися з несподіваною поведінкою. Будь ласка, зверніться до системного адміністратора, щоб відключити одну з них.",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Увага:</ b> Потрібний модуль PHP LDAP не встановлено, базова програма працювати не буде. Будь ласка, зверніться до системного адміністратора, щоб встановити його.",
"Host" => "Хост",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Можна не вказувати протокол, якщо вам не потрібен SSL. Тоді почніть з ldaps://",
"Base DN" => "Базовий DN",
diff --git a/apps/user_ldap/l10n/zh_CN.php b/apps/user_ldap/l10n/zh_CN.php
index bb961d534b7..cd320b5cf6c 100644
--- a/apps/user_ldap/l10n/zh_CN.php
+++ b/apps/user_ldap/l10n/zh_CN.php
@@ -1,4 +1,6 @@
<?php $TRANSLATIONS = array(
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them." => "<b>警告:</b>应用 user_ldap 和 user_webdavauth 不兼容。您可能遭遇未预料的行为。请垂询您的系统管理员禁用其中一个。",
+"<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>警告:</b>需要的 PHP LDAP 模块未安装,后端将无法工作。请垂询您的系统管理员来安装它。",
"Host" => "主机",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "可以忽略协议,但如要使用SSL,则需以ldaps://开头",
"Base DN" => "Base DN",
@@ -31,6 +33,7 @@
"Group Display Name Field" => "组显示名称字段",
"The LDAP attribute to use to generate the groups`s ownCloud name." => "用来生成组的ownCloud名称的LDAP属性",
"in bytes" => "字节数",
+"in seconds. A change empties the cache." => "以秒计。修改将清空缓存。",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "将用户名称留空(默认)。否则指定一个LDAP/AD属性",
"Help" => "帮助"
);
diff --git a/apps/user_ldap/lib/access.php b/apps/user_ldap/lib/access.php
index f888577aedb..422e43fc003 100644
--- a/apps/user_ldap/lib/access.php
+++ b/apps/user_ldap/lib/access.php
@@ -114,6 +114,15 @@ abstract class Access {
* @return the sanitized DN
*/
private function sanitizeDN($dn) {
+ //treating multiple base DNs
+ if(is_array($dn)) {
+ $result = array();
+ foreach($dn as $singleDN) {
+ $result[] = $this->sanitizeDN($singleDN);
+ }
+ return $result;
+ }
+
//OID sometimes gives back DNs with whitespace after the comma a la "uid=foo, cn=bar, dn=..." We need to tackle this!
$dn = preg_replace('/([^\\\]),(\s+)/u', '\1,', $dn);
@@ -212,9 +221,13 @@ abstract class Access {
* returns the internal ownCloud name for the given LDAP DN of the group, false on DN outside of search DN or failure
*/
public function dn2groupname($dn, $ldapname = null) {
- if(mb_strripos($dn, $this->sanitizeDN($this->connection->ldapBaseGroups), 0, 'UTF-8') !== (mb_strlen($dn, 'UTF-8')-mb_strlen($this->sanitizeDN($this->connection->ldapBaseGroups), 'UTF-8'))) {
+ //To avoid bypassing the base DN settings under certain circumstances
+ //with the group support, check whether the provided DN matches one of
+ //the given Bases
+ if(!$this->isDNPartOfBase($dn, $this->connection->ldapBaseGroups)) {
return false;
}
+
return $this->dn2ocname($dn, $ldapname, false);
}
@@ -227,9 +240,13 @@ abstract class Access {
* returns the internal ownCloud name for the given LDAP DN of the user, false on DN outside of search DN or failure
*/
public function dn2username($dn, $ldapname = null) {
- if(mb_strripos($dn, $this->sanitizeDN($this->connection->ldapBaseUsers), 0, 'UTF-8') !== (mb_strlen($dn, 'UTF-8')-mb_strlen($this->sanitizeDN($this->connection->ldapBaseUsers), 'UTF-8'))) {
+ //To avoid bypassing the base DN settings under certain circumstances
+ //with the group support, check whether the provided DN matches one of
+ //the given Bases
+ if(!$this->isDNPartOfBase($dn, $this->connection->ldapBaseUsers)) {
return false;
}
+
return $this->dn2ocname($dn, $ldapname, true);
}
@@ -521,7 +538,7 @@ abstract class Access {
/**
* @brief executes an LDAP search
* @param $filter the LDAP filter for the search
- * @param $base the LDAP subtree that shall be searched
+ * @param $base an array containing the LDAP subtree(s) that shall be searched
* @param $attr optional, when a certain attribute shall be filtered out
* @returns array with the search result
*
@@ -544,18 +561,28 @@ abstract class Access {
//check wether paged search should be attempted
$pagedSearchOK = $this->initPagedSearch($filter, $base, $attr, $limit, $offset);
- $sr = ldap_search($link_resource, $base, $filter, $attr);
- if(!$sr) {
+ $linkResources = array_pad(array(), count($base), $link_resource);
+ $sr = ldap_search($linkResources, $base, $filter, $attr);
+ $error = ldap_errno($link_resource);
+ if(!is_array($sr) || $error > 0) {
\OCP\Util::writeLog('user_ldap', 'Error when searching: '.ldap_error($link_resource).' code '.ldap_errno($link_resource), \OCP\Util::ERROR);
\OCP\Util::writeLog('user_ldap', 'Attempt for Paging? '.print_r($pagedSearchOK, true), \OCP\Util::ERROR);
return array();
}
- $findings = ldap_get_entries($link_resource, $sr );
+ $findings = array();
+ foreach($sr as $key => $res) {
+ $findings = array_merge($findings, ldap_get_entries($link_resource, $res ));
+ }
if($pagedSearchOK) {
\OCP\Util::writeLog('user_ldap', 'Paged search successful', \OCP\Util::INFO);
- ldap_control_paged_result_response($link_resource, $sr, $cookie);
- \OCP\Util::writeLog('user_ldap', 'Set paged search cookie '.$cookie, \OCP\Util::INFO);
- $this->setPagedResultCookie($filter, $limit, $offset, $cookie);
+ foreach($sr as $key => $res) {
+ $cookie = null;
+ if(ldap_control_paged_result_response($link_resource, $res, $cookie)) {
+ \OCP\Util::writeLog('user_ldap', 'Set paged search cookie', \OCP\Util::INFO);
+ $this->setPagedResultCookie($base[$key], $filter, $limit, $offset, $cookie);
+ }
+ }
+
//browsing through prior pages to get the cookie for the new one
if($skipHandling) {
return;
@@ -565,7 +592,9 @@ abstract class Access {
$this->pagedSearchedSuccessful = true;
}
} else {
- \OCP\Util::writeLog('user_ldap', 'Paged search failed :(', \OCP\Util::INFO);
+ if(!is_null($limit)) {
+ \OCP\Util::writeLog('user_ldap', 'Paged search failed :(', \OCP\Util::INFO);
+ }
}
// if we're here, probably no connection resource is returned.
@@ -792,19 +821,40 @@ abstract class Access {
}
/**
+ * @brief checks if the given DN is part of the given base DN(s)
+ * @param $dn the DN
+ * @param $bases array containing the allowed base DN or DNs
+ * @returns Boolean
+ */
+ private function isDNPartOfBase($dn, $bases) {
+ $bases = $this->sanitizeDN($bases);
+ foreach($bases as $base) {
+ $belongsToBase = true;
+ if(mb_strripos($dn, $base, 0, 'UTF-8') !== (mb_strlen($dn, 'UTF-8')-mb_strlen($base))) {
+ $belongsToBase = false;
+ }
+ if($belongsToBase) {
+ break;
+ }
+ }
+ return $belongsToBase;
+ }
+
+ /**
* @brief get a cookie for the next LDAP paged search
+ * @param $base a string with the base DN for the search
* @param $filter the search filter to identify the correct search
* @param $limit the limit (or 'pageSize'), to identify the correct search well
* @param $offset the offset for the new search to identify the correct search really good
* @returns string containing the key or empty if none is cached
*/
- private function getPagedResultCookie($filter, $limit, $offset) {
+ private function getPagedResultCookie($base, $filter, $limit, $offset) {
if($offset == 0) {
return '';
}
$offset -= $limit;
//we work with cache here
- $cachekey = 'lc' . dechex(crc32($filter)) . '-' . $limit . '-' . $offset;
+ $cachekey = 'lc' . crc32($base) . '-' . crc32($filter) . '-' . $limit . '-' . $offset;
$cookie = $this->connection->getFromCache($cachekey);
if(is_null($cookie)) {
$cookie = '';
@@ -814,15 +864,16 @@ abstract class Access {
/**
* @brief set a cookie for LDAP paged search run
+ * @param $base a string with the base DN for the search
* @param $filter the search filter to identify the correct search
* @param $limit the limit (or 'pageSize'), to identify the correct search well
* @param $offset the offset for the run search to identify the correct search really good
* @param $cookie string containing the cookie returned by ldap_control_paged_result_response
* @return void
*/
- private function setPagedResultCookie($filter, $limit, $offset) {
+ private function setPagedResultCookie($base, $filter, $limit, $offset, $cookie) {
if(!empty($cookie)) {
- $cachekey = 'lc' . dechex(crc32($filter)) . '-' . $limit . '-' . $offset;
+ $cachekey = 'lc' . dechex(crc32($base)) . '-' . dechex(crc32($filter)) . '-' .$limit . '-' . $offset;
$cookie = $this->connection->writeToCache($cachekey, $cookie);
}
}
@@ -841,40 +892,47 @@ abstract class Access {
/**
* @brief prepares a paged search, if possible
* @param $filter the LDAP filter for the search
- * @param $base the LDAP subtree that shall be searched
+ * @param $bases an array containing the LDAP subtree(s) that shall be searched
* @param $attr optional, when a certain attribute shall be filtered outside
* @param $limit
* @param $offset
*
*/
- private function initPagedSearch($filter, $base, $attr, $limit, $offset) {
+ private function initPagedSearch($filter, $bases, $attr, $limit, $offset) {
$pagedSearchOK = false;
if($this->connection->hasPagedResultSupport && !is_null($limit)) {
$offset = intval($offset); //can be null
- \OCP\Util::writeLog('user_ldap', 'initializing paged search for Filter'.$filter.' base '.$base.' attr '.print_r($attr, true). ' limit ' .$limit.' offset '.$offset, \OCP\Util::DEBUG);
+ \OCP\Util::writeLog('user_ldap', 'initializing paged search for Filter'.$filter.' base '.print_r($bases, true).' attr '.print_r($attr, true). ' limit ' .$limit.' offset '.$offset, \OCP\Util::INFO);
//get the cookie from the search for the previous search, required by LDAP
- $cookie = $this->getPagedResultCookie($filter, $limit, $offset);
- if(empty($cookie) && ($offset > 0)) {
- //no cookie known, although the offset is not 0. Maybe cache run out. We need to start all over *sigh* (btw, Dear Reader, did you need LDAP paged searching was designed by MSFT?)
- $reOffset = ($offset - $limit) < 0 ? 0 : $offset - $limit;
- //a bit recursive, $offset of 0 is the exit
- \OCP\Util::writeLog('user_ldap', 'Looking for cookie L/O '.$limit.'/'.$reOffset, \OCP\Util::INFO);
- $this->search($filter, $base, $attr, $limit, $reOffset, true);
- $cookie = $this->getPagedResultCookie($filter, $limit, $offset);
- //still no cookie? obviously, the server does not like us. Let's skip paging efforts.
- //TODO: remember this, probably does not change in the next request...
- if(empty($cookie)) {
- $cookie = null;
+ foreach($bases as $base) {
+
+ $cookie = $this->getPagedResultCookie($base, $filter, $limit, $offset);
+ if(empty($cookie) && ($offset > 0)) {
+ //no cookie known, although the offset is not 0. Maybe cache run out. We need to start all over *sigh* (btw, Dear Reader, did you need LDAP paged searching was designed by MSFT?)
+ $reOffset = ($offset - $limit) < 0 ? 0 : $offset - $limit;
+ //a bit recursive, $offset of 0 is the exit
+ \OCP\Util::writeLog('user_ldap', 'Looking for cookie L/O '.$limit.'/'.$reOffset, \OCP\Util::INFO);
+ $this->search($filter, $base, $attr, $limit, $reOffset, true);
+ $cookie = $this->getPagedResultCookie($base, $filter, $limit, $offset);
+ //still no cookie? obviously, the server does not like us. Let's skip paging efforts.
+ //TODO: remember this, probably does not change in the next request...
+ if(empty($cookie)) {
+ $cookie = null;
+ }
}
- }
- if(!is_null($cookie)) {
- if($offset > 0) {
- \OCP\Util::writeLog('user_ldap', 'Cookie '.$cookie, \OCP\Util::INFO);
+ if(!is_null($cookie)) {
+ if($offset > 0) {
+ \OCP\Util::writeLog('user_ldap', 'Cookie '.$cookie, \OCP\Util::INFO);
+ }
+ $pagedSearchOK = ldap_control_paged_result($this->connection->getConnectionResource(), $limit, false, $cookie);
+ if(!$pagedSearchOK) {
+ return false;
+ }
+ \OCP\Util::writeLog('user_ldap', 'Ready for a paged search', \OCP\Util::INFO);
+ } else {
+ \OCP\Util::writeLog('user_ldap', 'No paged search for us, Cpt., Limit '.$limit.' Offset '.$offset, \OCP\Util::INFO);
}
- $pagedSearchOK = ldap_control_paged_result($this->connection->getConnectionResource(), $limit, false, $cookie);
- \OCP\Util::writeLog('user_ldap', 'Ready for a paged search', \OCP\Util::INFO);
- } else {
- \OCP\Util::writeLog('user_ldap', 'No paged search for us, Cpt., Limit '.$limit.' Offset '.$offset, \OCP\Util::INFO);
+
}
}
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index b14cdafff89..7046cbbfc78 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -187,9 +187,9 @@ class Connection {
$this->config['ldapPort'] = \OCP\Config::getAppValue($this->configID, 'ldap_port', 389);
$this->config['ldapAgentName'] = \OCP\Config::getAppValue($this->configID, 'ldap_dn', '');
$this->config['ldapAgentPassword'] = base64_decode(\OCP\Config::getAppValue($this->configID, 'ldap_agent_password', ''));
- $this->config['ldapBase'] = \OCP\Config::getAppValue($this->configID, 'ldap_base', '');
- $this->config['ldapBaseUsers'] = \OCP\Config::getAppValue($this->configID, 'ldap_base_users', $this->config['ldapBase']);
- $this->config['ldapBaseGroups'] = \OCP\Config::getAppValue($this->configID, 'ldap_base_groups', $this->config['ldapBase']);
+ $this->config['ldapBase'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, 'ldap_base', ''));
+ $this->config['ldapBaseUsers'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, 'ldap_base_users', $this->config['ldapBase']));
+ $this->config['ldapBaseGroups'] = preg_split('/\r\n|\r|\n/', \OCP\Config::getAppValue($this->configID, 'ldap_base_groups', $this->config['ldapBase']));
$this->config['ldapTLS'] = \OCP\Config::getAppValue($this->configID, 'ldap_tls', 0);
$this->config['ldapNoCase'] = \OCP\Config::getAppValue($this->configID, 'ldap_nocase', 0);
$this->config['turnOffCertCheck'] = \OCP\Config::getAppValue($this->configID, 'ldap_turn_off_cert_check', 0);
diff --git a/apps/user_ldap/settings.php b/apps/user_ldap/settings.php
index 2ee936d29a8..58ec8e7f7a4 100644
--- a/apps/user_ldap/settings.php
+++ b/apps/user_ldap/settings.php
@@ -20,6 +20,9 @@
* License along with this library. If not, see <http://www.gnu.org/licenses/>.
*
*/
+
+OC_Util::checkAdminUser();
+
$params = array('ldap_host', 'ldap_port', 'ldap_dn', 'ldap_agent_password', 'ldap_base', 'ldap_base_users', 'ldap_base_groups', 'ldap_userlist_filter', 'ldap_login_filter', 'ldap_group_filter', 'ldap_display_name', 'ldap_group_display_name', 'ldap_tls', 'ldap_turn_off_cert_check', 'ldap_nocase', 'ldap_quota_def', 'ldap_quota_attr', 'ldap_email_attr', 'ldap_group_member_assoc_attribute', 'ldap_cache_ttl', 'home_folder_naming_rule');
OCP\Util::addscript('user_ldap', 'settings');
diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php
index 8522d2f835c..b24c6e2f025 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -8,12 +8,12 @@
echo '<p class="ldapwarning">'.$l->t('<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behaviour. Please ask your system administrator to disable one of them.').'</p>';
}
if(!function_exists('ldap_connect')) {
- echo '<p class="ldapwarning">'.$l->t('<b>Warning:</b> The PHP LDAP module needs is not installed, the backend will not work. Please ask your system administrator to install it.').'</p>';
+ echo '<p class="ldapwarning">'.$l->t('<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it.').'</p>';
}
?>
<fieldset id="ldapSettings-1">
<p><label for="ldap_host"><?php echo $l->t('Host');?></label><input type="text" id="ldap_host" name="ldap_host" value="<?php echo $_['ldap_host']; ?>" title="<?php echo $l->t('You can omit the protocol, except you require SSL. Then start with ldaps://');?>"></p>
- <p><label for="ldap_base"><?php echo $l->t('Base DN');?></label><input type="text" id="ldap_base" name="ldap_base" value="<?php echo $_['ldap_base']; ?>" title="<?php echo $l->t('You can specify Base DN for users and groups in the Advanced tab');?>" /></p>
+ <p><label for="ldap_base"><?php echo $l->t('Base DN');?></label><textarea id="ldap_base" name="ldap_base" placeholder="<?php echo $l->t('One Base DN per line');?>" title="<?php echo $l->t('You can specify Base DN for users and groups in the Advanced tab');?>"><?php echo $_['ldap_base']; ?></textarea></p>
<p><label for="ldap_dn"><?php echo $l->t('User DN');?></label><input type="text" id="ldap_dn" name="ldap_dn" value="<?php echo $_['ldap_dn']; ?>" title="<?php echo $l->t('The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty.');?>" /></p>
<p><label for="ldap_agent_password"><?php echo $l->t('Password');?></label><input type="password" id="ldap_agent_password" name="ldap_agent_password" value="<?php echo $_['ldap_agent_password']; ?>" title="<?php echo $l->t('For anonymous access, leave DN and Password empty.');?>" /></p>
<p><label for="ldap_login_filter"><?php echo $l->t('User Login Filter');?></label><input type="text" id="ldap_login_filter" name="ldap_login_filter" value="<?php echo $_['ldap_login_filter']; ?>" title="<?php echo $l->t('Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action.');?>" /><br /><small><?php echo $l->t('use %%uid placeholder, e.g. "uid=%%uid"');?></small></p>
@@ -22,8 +22,8 @@
</fieldset>
<fieldset id="ldapSettings-2">
<p><label for="ldap_port"><?php echo $l->t('Port');?></label><input type="text" id="ldap_port" name="ldap_port" value="<?php echo $_['ldap_port']; ?>" /></p>
- <p><label for="ldap_base_users"><?php echo $l->t('Base User Tree');?></label><input type="text" id="ldap_base_users" name="ldap_base_users" value="<?php echo $_['ldap_base_users']; ?>" /></p>
- <p><label for="ldap_base_groups"><?php echo $l->t('Base Group Tree');?></label><input type="text" id="ldap_base_groups" name="ldap_base_groups" value="<?php echo $_['ldap_base_groups']; ?>" /></p>
+ <p><label for="ldap_base_users"><?php echo $l->t('Base User Tree');?></label><textarea id="ldap_base_users" name="ldap_base_users" placeholder="<?php echo $l->t('One User Base DN per line');?>" title="<?php echo $l->t('Base User Tree');?>"><?php echo $_['ldap_base_users']; ?></textarea></p>
+ <p><label for="ldap_base_groups"><?php echo $l->t('Base Group Tree');?></label><textarea id="ldap_base_groups" name="ldap_base_groups" placeholder="<?php echo $l->t('One Group Base DN per line');?>" title="<?php echo $l->t('Base Group Tree');?>"><?php echo $_['ldap_base_groups']; ?></textarea></p>
<p><label for="ldap_group_member_assoc_attribute"><?php echo $l->t('Group-Member association');?></label><select id="ldap_group_member_assoc_attribute" name="ldap_group_member_assoc_attribute"><option value="uniqueMember"<?php if (isset($_['ldap_group_member_assoc_attribute']) && ($_['ldap_group_member_assoc_attribute'] == 'uniqueMember')) echo ' selected'; ?>>uniqueMember</option><option value="memberUid"<?php if (isset($_['ldap_group_member_assoc_attribute']) && ($_['ldap_group_member_assoc_attribute'] == 'memberUid')) echo ' selected'; ?>>memberUid</option><option value="member"<?php if (isset($_['ldap_group_member_assoc_attribute']) && ($_['ldap_group_member_assoc_attribute'] == 'member')) echo ' selected'; ?>>member (AD)</option></select></p>
<p><label for="ldap_tls"><?php echo $l->t('Use TLS');?></label><input type="checkbox" id="ldap_tls" name="ldap_tls" value="1"<?php if ($_['ldap_tls']) echo ' checked'; ?> title="<?php echo $l->t('Do not use it for SSL connections, it will fail.');?>" /></p>
<p><label for="ldap_nocase"><?php echo $l->t('Case insensitve LDAP server (Windows)');?></label> <input type="checkbox" id="ldap_nocase" name="ldap_nocase" value="1"<?php if (isset($_['ldap_nocase']) && ($_['ldap_nocase'])) echo ' checked'; ?>></p>
diff --git a/apps/user_webdavauth/l10n/ar.php b/apps/user_webdavauth/l10n/ar.php
index 9bd32954b05..cf59cd2519e 100644
--- a/apps/user_webdavauth/l10n/ar.php
+++ b/apps/user_webdavauth/l10n/ar.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "الرابط: http://"
);
diff --git a/apps/user_webdavauth/l10n/bn_BD.php b/apps/user_webdavauth/l10n/bn_BD.php
new file mode 100644
index 00000000000..5366552efae
--- /dev/null
+++ b/apps/user_webdavauth/l10n/bn_BD.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"URL: http://" => "URL:http://"
+);
diff --git a/apps/user_webdavauth/l10n/ca.php b/apps/user_webdavauth/l10n/ca.php
index a59bffb870d..245a5101341 100644
--- a/apps/user_webdavauth/l10n/ca.php
+++ b/apps/user_webdavauth/l10n/ca.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "Adreça WebDAV: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/cs_CZ.php b/apps/user_webdavauth/l10n/cs_CZ.php
index a5b7e56771f..245a5101341 100644
--- a/apps/user_webdavauth/l10n/cs_CZ.php
+++ b/apps/user_webdavauth/l10n/cs_CZ.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "URL WebDAV: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/da.php b/apps/user_webdavauth/l10n/da.php
new file mode 100644
index 00000000000..245a5101341
--- /dev/null
+++ b/apps/user_webdavauth/l10n/da.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"URL: http://" => "URL: http://"
+);
diff --git a/apps/user_webdavauth/l10n/de.php b/apps/user_webdavauth/l10n/de.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/de.php
+++ b/apps/user_webdavauth/l10n/de.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/de_DE.php b/apps/user_webdavauth/l10n/de_DE.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/de_DE.php
+++ b/apps/user_webdavauth/l10n/de_DE.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/el.php b/apps/user_webdavauth/l10n/el.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/el.php
+++ b/apps/user_webdavauth/l10n/el.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/eo.php b/apps/user_webdavauth/l10n/eo.php
index b4a2652d33e..245a5101341 100644
--- a/apps/user_webdavauth/l10n/eo.php
+++ b/apps/user_webdavauth/l10n/eo.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV-a URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/es.php b/apps/user_webdavauth/l10n/es.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/es.php
+++ b/apps/user_webdavauth/l10n/es.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/es_AR.php b/apps/user_webdavauth/l10n/es_AR.php
index 81f2ea1e578..245a5101341 100644
--- a/apps/user_webdavauth/l10n/es_AR.php
+++ b/apps/user_webdavauth/l10n/es_AR.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "URL de WebDAV: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/eu.php b/apps/user_webdavauth/l10n/eu.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/eu.php
+++ b/apps/user_webdavauth/l10n/eu.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/fr.php b/apps/user_webdavauth/l10n/fr.php
index 759d45b230e..339931c7cee 100644
--- a/apps/user_webdavauth/l10n/fr.php
+++ b/apps/user_webdavauth/l10n/fr.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "URL WebDAV : http://"
+"URL: http://" => "URL : http://"
);
diff --git a/apps/user_webdavauth/l10n/gl.php b/apps/user_webdavauth/l10n/gl.php
index a5b7e56771f..245a5101341 100644
--- a/apps/user_webdavauth/l10n/gl.php
+++ b/apps/user_webdavauth/l10n/gl.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "URL WebDAV: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/hu_HU.php b/apps/user_webdavauth/l10n/hu_HU.php
new file mode 100644
index 00000000000..245a5101341
--- /dev/null
+++ b/apps/user_webdavauth/l10n/hu_HU.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"URL: http://" => "URL: http://"
+);
diff --git a/apps/user_webdavauth/l10n/is.php b/apps/user_webdavauth/l10n/is.php
new file mode 100644
index 00000000000..8fe0d974b32
--- /dev/null
+++ b/apps/user_webdavauth/l10n/is.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"URL: http://" => "Vefslóð: http://"
+);
diff --git a/apps/user_webdavauth/l10n/it.php b/apps/user_webdavauth/l10n/it.php
index a5b7e56771f..245a5101341 100644
--- a/apps/user_webdavauth/l10n/it.php
+++ b/apps/user_webdavauth/l10n/it.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "URL WebDAV: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/ja_JP.php b/apps/user_webdavauth/l10n/ja_JP.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/ja_JP.php
+++ b/apps/user_webdavauth/l10n/ja_JP.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/ko.php b/apps/user_webdavauth/l10n/ko.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/ko.php
+++ b/apps/user_webdavauth/l10n/ko.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/mk.php b/apps/user_webdavauth/l10n/mk.php
new file mode 100644
index 00000000000..245a5101341
--- /dev/null
+++ b/apps/user_webdavauth/l10n/mk.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"URL: http://" => "URL: http://"
+);
diff --git a/apps/user_webdavauth/l10n/nb_NO.php b/apps/user_webdavauth/l10n/nb_NO.php
new file mode 100644
index 00000000000..245a5101341
--- /dev/null
+++ b/apps/user_webdavauth/l10n/nb_NO.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"URL: http://" => "URL: http://"
+);
diff --git a/apps/user_webdavauth/l10n/nl.php b/apps/user_webdavauth/l10n/nl.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/nl.php
+++ b/apps/user_webdavauth/l10n/nl.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/pl.php b/apps/user_webdavauth/l10n/pl.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/pl.php
+++ b/apps/user_webdavauth/l10n/pl.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/pt_PT.php b/apps/user_webdavauth/l10n/pt_PT.php
index 1aca5caeff1..245a5101341 100644
--- a/apps/user_webdavauth/l10n/pt_PT.php
+++ b/apps/user_webdavauth/l10n/pt_PT.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "Endereço WebDAV: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/ro.php b/apps/user_webdavauth/l10n/ro.php
new file mode 100644
index 00000000000..245a5101341
--- /dev/null
+++ b/apps/user_webdavauth/l10n/ro.php
@@ -0,0 +1,3 @@
+<?php $TRANSLATIONS = array(
+"URL: http://" => "URL: http://"
+);
diff --git a/apps/user_webdavauth/l10n/ru.php b/apps/user_webdavauth/l10n/ru.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/ru.php
+++ b/apps/user_webdavauth/l10n/ru.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/ru_RU.php b/apps/user_webdavauth/l10n/ru_RU.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/ru_RU.php
+++ b/apps/user_webdavauth/l10n/ru_RU.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/sl.php b/apps/user_webdavauth/l10n/sl.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/sl.php
+++ b/apps/user_webdavauth/l10n/sl.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/sv.php b/apps/user_webdavauth/l10n/sv.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/sv.php
+++ b/apps/user_webdavauth/l10n/sv.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/tr.php b/apps/user_webdavauth/l10n/tr.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/tr.php
+++ b/apps/user_webdavauth/l10n/tr.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/uk.php b/apps/user_webdavauth/l10n/uk.php
index 9bd32954b05..245a5101341 100644
--- a/apps/user_webdavauth/l10n/uk.php
+++ b/apps/user_webdavauth/l10n/uk.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV URL: http://"
+"URL: http://" => "URL: http://"
);
diff --git a/apps/user_webdavauth/l10n/zh_CN.php b/apps/user_webdavauth/l10n/zh_CN.php
index 33c77f7d30e..5b06409b42e 100644
--- a/apps/user_webdavauth/l10n/zh_CN.php
+++ b/apps/user_webdavauth/l10n/zh_CN.php
@@ -1,3 +1,3 @@
<?php $TRANSLATIONS = array(
-"WebDAV URL: http://" => "WebDAV地址: http://"
+"URL: http://" => "URL:http://"
);
diff --git a/apps/user_webdavauth/settings.php b/apps/user_webdavauth/settings.php
index 910073c7841..41d7fa51cd2 100755
--- a/apps/user_webdavauth/settings.php
+++ b/apps/user_webdavauth/settings.php
@@ -21,6 +21,8 @@
*
*/
+OC_Util::checkAdminUser();
+
if($_POST) {
if(isset($_POST['webdav_url'])) {
diff --git a/apps/user_webdavauth/templates/settings.php b/apps/user_webdavauth/templates/settings.php
index e6ca5d97d3c..880b77ac959 100755
--- a/apps/user_webdavauth/templates/settings.php
+++ b/apps/user_webdavauth/templates/settings.php
@@ -1,7 +1,8 @@
<form id="webdavauth" action="#" method="post">
<fieldset class="personalblock">
- <legend><strong>WebDAV Authentication</strong></legend>
- <p><label for="webdav_url"><?php echo $l->t('WebDAV URL: http://');?><input type="text" id="webdav_url" name="webdav_url" value="<?php echo $_['webdav_url']; ?>"></label>
+ <legend><strong><?php echo $l->t('WebDAV Authentication');?></strong></legend>
+ <p><label for="webdav_url"><?php echo $l->t('URL: http://');?><input type="text" id="webdav_url" name="webdav_url" value="<?php echo $_['webdav_url']; ?>"></label>
<input type="submit" value="Save" />
+ <br /><?php echo $l->t('ownCloud will send the user credentials to this URL. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials.'); ?>
</fieldset>
</form>
diff --git a/apps/user_webdavauth/user_webdavauth.php b/apps/user_webdavauth/user_webdavauth.php
index 839196c114c..1459781a3b4 100755
--- a/apps/user_webdavauth/user_webdavauth.php
+++ b/apps/user_webdavauth/user_webdavauth.php
@@ -65,7 +65,7 @@ class OC_USER_WEBDAVAUTH extends OC_User_Backend {
}
/*
- * we don´t know if a user exists without the password. so we have to return false all the time
+ * we don´t know if a user exists without the password. so we have to return true all the time
*/
public function userExists( $uid ){
return true;