summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
authorSam Tuke <samtuke@owncloud.com>2013-01-22 16:50:20 +0000
committerSam Tuke <samtuke@owncloud.com>2013-01-22 16:50:20 +0000
commit619780a67de6d4e1592e4c6e08e0689b022ec5c0 (patch)
treed18fa54a628b26540eaa0acb4313868d3d28e8cb /apps
parent3fbf362ba2f60917023833800e9e2dc47e190af1 (diff)
parentcd802ed45bca8fabb0252e40ab14fa8bb0f935ec (diff)
downloadnextcloud-server-619780a67de6d4e1592e4c6e08e0689b022ec5c0.tar.gz
nextcloud-server-619780a67de6d4e1592e4c6e08e0689b022ec5c0.zip
Merge branch 'master' into files_encryption
Diffstat (limited to 'apps')
-rw-r--r--apps/files/l10n/bn_BD.php61
-rw-r--r--apps/files/l10n/ca.php3
-rw-r--r--apps/files/l10n/cs_CZ.php3
-rw-r--r--apps/files/l10n/de.php12
-rw-r--r--apps/files/l10n/de_DE.php4
-rw-r--r--apps/files/l10n/es.php3
-rw-r--r--apps/files/l10n/fi_FI.php3
-rw-r--r--apps/files/l10n/fr.php3
-rw-r--r--apps/files/l10n/gl.php6
-rw-r--r--apps/files/l10n/is.php13
-rw-r--r--apps/files/l10n/it.php3
-rw-r--r--apps/files/l10n/ja_JP.php3
-rw-r--r--apps/files/l10n/ko.php4
-rw-r--r--apps/files/l10n/pt_PT.php4
-rw-r--r--apps/files/l10n/ro.php6
-rw-r--r--apps/files/l10n/ru.php8
-rw-r--r--apps/files/l10n/zh_TW.php29
-rw-r--r--apps/files_encryption/l10n/bn_BD.php6
-rw-r--r--apps/files_external/l10n/bn_BD.php26
-rw-r--r--apps/files_sharing/l10n/bn_BD.php7
-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/bn_BD.php7
-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.php12
-rw-r--r--apps/user_ldap/l10n/bn_BD.php33
-rw-r--r--apps/user_ldap/l10n/he.php12
-rw-r--r--apps/user_webdavauth/l10n/bn_BD.php4
-rw-r--r--apps/user_webdavauth/l10n/fr.php2
35 files changed, 547 insertions, 319 deletions
diff --git a/apps/files/l10n/bn_BD.php b/apps/files/l10n/bn_BD.php
index 45cf1c2313d..e55c8811393 100644
--- a/apps/files/l10n/bn_BD.php
+++ b/apps/files/l10n/bn_BD.php
@@ -1,46 +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 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" => "āĻĄāĻŋāĻ¸ā§āĻ•ā§‡ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻĒāĻžāĻ°āĻž āĻ—ā§‡āĻ˛ āĻ¨āĻž",
+"Missing a temporary folder" => "āĻ…āĻ¸ā§āĻĨāĻžā§Ÿā§€ āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ° āĻ–ā§‹ā§ŸāĻž āĻ—āĻŋā§Ÿā§‡āĻ›ā§‡",
+"Failed to write to disk" => "āĻĄāĻŋāĻ¸ā§āĻ•ā§‡ āĻ˛āĻŋāĻ–āĻ¤ā§‡ āĻŦā§āĻ¯āĻ°ā§āĻĨ",
+"Not enough space available" => "āĻ¯āĻĨā§‡āĻˇā§āĻ  āĻĒāĻ°āĻŋāĻŽāĻžāĻŖ āĻ¸ā§āĻĨāĻžāĻ¨ āĻ¨ā§‡āĻ‡",
+"Invalid directory." => "āĻ­ā§āĻ˛ āĻĄāĻŋāĻ°ā§‡āĻ•ā§āĻŸāĻ°āĻŋ",
"Files" => "āĻĢāĻžāĻ‡āĻ˛",
-"Unshare" => "āĻ­āĻžāĻ—āĻžāĻ­āĻžāĻ—āĻŋ āĻŦāĻžāĻ¤āĻŋāĻ˛",
+"Unshare" => "āĻ­āĻžāĻ—āĻžāĻ­āĻžāĻ—āĻŋ āĻŦāĻžāĻ¤āĻŋāĻ˛ ",
"Delete" => "āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛",
"Rename" => "āĻĒā§‚āĻ¨āĻƒāĻ¨āĻžāĻŽāĻ•āĻ°āĻŖ",
"{new_name} already exists" => "{new_name} āĻŸāĻŋ āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨",
"replace" => "āĻĒā§āĻ°āĻ¤āĻŋāĻ¸ā§āĻĨāĻžāĻĒāĻ¨",
-"suggest name" => "āĻ¨āĻžāĻŽ āĻ¸ā§āĻĒāĻžāĻ°āĻŋāĻļ āĻ•āĻ°",
+"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} āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻž āĻšā§Ÿā§‡āĻ›ā§‡",
-"Upload Error" => "āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°āĻ¤ā§‡ āĻ¸āĻŽāĻ¸ā§āĻ¯āĻž",
+"'.' 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" => "ā§§ āĻŸāĻŋ āĻĢāĻžāĻ‡āĻ˛ āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡",
-"Upload cancelled." => "āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻŦāĻžāĻ¤āĻŋāĻ˛ āĻ•āĻ°āĻž āĻšā§Ÿā§‡āĻ›ā§‡ āĨ¤",
+"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" => "āĻĒāĻ°āĻŋāĻŦāĻ°ā§āĻ¤āĻŋāĻ¤",
-"File handling" => "āĻĢāĻžāĻ‡āĻ˛ āĻšā§āĻ¯āĻžāĻ¨ā§āĻĄāĻ˛āĻŋāĻ‚",
+"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" => "āĻœāĻŋāĻĒ āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ āĻ¸āĻ•ā§āĻ°āĻŋā§Ÿ āĻ•āĻ°",
-"0 is unlimited" => "ā§Ļ āĻāĻ° āĻ…āĻ°ā§āĻĨ āĻšāĻ˛ā§‹ āĻ…āĻ¸ā§€āĻŽ",
-"Maximum input size for ZIP files" => "āĻœāĻŋāĻĒ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻœāĻ¨ā§āĻ¯ āĻ¸āĻ°ā§āĻŦā§‹āĻšā§āĻš āĻ‡āĻ¨āĻĒā§āĻŸ",
-"Save" => "āĻ¸āĻ‚āĻ°āĻ•ā§āĻˇāĻŖ āĻ•āĻ°",
+"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!" => "āĻāĻ–āĻžāĻ¨ā§‡ āĻ•ā§‹āĻ¨ āĻ•āĻŋāĻ›ā§āĻ‡ āĻ¨ā§‡āĻ‡āĨ¤ āĻ•āĻŋāĻ›ā§ āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨ !",
+"Nothing in here. Upload something!" => "āĻāĻ–āĻžāĻ¨ā§‡ āĻ•āĻŋāĻ›ā§āĻ‡ āĻ¨ā§‡āĻ‡āĨ¤ āĻ•āĻŋāĻ›ā§ āĻ†āĻĒāĻ˛ā§‹āĻĄ āĻ•āĻ°ā§āĻ¨ !",
"Download" => "āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ",
-"Upload too large" => "āĻ†āĻĒāĻ˛ā§‹āĻĄā§‡āĻ° āĻ†āĻ•āĻžāĻ° āĻ…āĻ¨ā§‡āĻ• āĻŦā§œ",
-"Files are being scanned, please wait." => "āĻĢāĻžāĻ‡āĻ˛ āĻ¸ā§āĻ•ā§āĻ¯āĻžāĻ¨ āĻ•āĻ°āĻž āĻšāĻšā§āĻ›ā§‡, āĻĻā§ŸāĻž āĻ•āĻ°ā§‡ āĻ…āĻĒā§‡āĻ•ā§āĻˇāĻž āĻ•āĻ°ā§āĻ¨āĨ¤",
+"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 df099c6331d..f6ddbcd8e18 100644
--- a/apps/files/l10n/ca.php
+++ b/apps/files/l10n/ca.php
@@ -1,4 +1,7 @@
<?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:",
diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php
index 301a54c343a..65ac4b04931 100644
--- a/apps/files/l10n/cs_CZ.php
+++ b/apps/files/l10n/cs_CZ.php
@@ -1,4 +1,7 @@
<?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:",
diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php
index 1c0af30be5c..089ce1c0a26 100644
--- a/apps/files/l10n/de.php
+++ b/apps/files/l10n/de.php
@@ -1,4 +1,7 @@
<?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",
@@ -8,7 +11,7 @@
"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.",
+"Invalid directory." => "UngÃŧltiges Verzeichnis",
"Files" => "Dateien",
"Unshare" => "Nicht mehr freigeben",
"Delete" => "LÃļschen",
@@ -22,8 +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.",
+"'.' 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.",
@@ -34,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.",
-"URL cannot be empty." => "Die URL darf nicht leer sein.",
+"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 a7526d35646..5cd4ef70425 100644
--- a/apps/files/l10n/de_DE.php
+++ b/apps/files/l10n/de_DE.php
@@ -1,4 +1,7 @@
<?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",
@@ -35,6 +38,7 @@
"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.",
"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/es.php b/apps/files/l10n/es.php
index 7489d3b555e..885ed3770e9 100644
--- a/apps/files/l10n/es.php
+++ b/apps/files/l10n/es.php
@@ -1,4 +1,7 @@
<?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",
diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php
index 3847590c99e..e7e4b044372 100644
--- a/apps/files/l10n/fi_FI.php
+++ b/apps/files/l10n/fi_FI.php
@@ -1,4 +1,7 @@
<?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",
diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php
index 9e911324d25..f14759ff8f0 100644
--- a/apps/files/l10n/fr.php
+++ b/apps/files/l10n/fr.php
@@ -1,4 +1,7 @@
<?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:",
diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php
index 5bd30e95d17..c15066163cf 100644
--- a/apps/files/l10n/gl.php
+++ b/apps/files/l10n/gl.php
@@ -1,4 +1,7 @@
<?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",
@@ -22,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",
@@ -33,6 +38,7 @@
"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.",
"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/is.php b/apps/files/l10n/is.php
index b70d212c9c7..2eff686611a 100644
--- a/apps/files/l10n/is.php
+++ b/apps/files/l10n/is.php
@@ -1,4 +1,8 @@
<?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.",
@@ -6,6 +10,8 @@
"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",
@@ -19,6 +25,8 @@
"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.",
@@ -30,6 +38,7 @@
"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",
@@ -53,9 +62,9 @@
"From link" => "Af tengli",
"Upload" => "Senda inn",
"Cancel upload" => "HÃĻtta við innsendingu",
-"Nothing in here. Upload something!" => "Ekkert hÊr. Sendu eitthvað inn!",
+"Nothing in here. Upload something!" => "Ekkert hÊr. Settu eitthvað inn!",
"Download" => "Niðurhal",
-"Upload too large" => "Innsend skrÃĄ of stÃŗr",
+"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 8c3173d5d50..a54e424694f 100644
--- a/apps/files/l10n/it.php
+++ b/apps/files/l10n/it.php
@@ -1,4 +1,7 @@
<?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:",
diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php
index eab693c3431..4621cc5d4ea 100644
--- a/apps/files/l10n/ja_JP.php
+++ b/apps/files/l10n/ja_JP.php
@@ -1,4 +1,7 @@
<?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 ãĢč¨­åŽšã•ã‚ŒãŸã‚ĩイã‚ēをčļ…えãĻいぞす:",
diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php
index dd7df1c0862..928b7cbb7e4 100644
--- a/apps/files/l10n/ko.php
+++ b/apps/files/l10n/ko.php
@@ -1,4 +1,7 @@
<?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ëŗ´ë‹¤ íŊ니다:",
@@ -35,6 +38,7 @@
"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" => "폴더 ė´ëĻ„ė´ ėœ íš¨í•˜ė§€ ė•ŠėŠĩ니다. ",
"{count} files scanned" => "파ėŧ {count}개 검ėƒ‰ë¨",
"error while scanning" => "검ėƒ‰ ė¤‘ ė˜¤ëĨ˜ 발ėƒ",
"Name" => "ė´ëĻ„",
diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php
index 447cd6bdeb6..fb22894b34e 100644
--- a/apps/files/l10n/pt_PT.php
+++ b/apps/files/l10n/pt_PT.php
@@ -1,4 +1,7 @@
<?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",
@@ -35,6 +38,7 @@
"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.",
"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 b816311fac7..c34a341e53f 100644
--- a/apps/files/l10n/ro.php
+++ b/apps/files/l10n/ro.php
@@ -1,4 +1,6 @@
<?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: ",
@@ -7,6 +9,8 @@
"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",
@@ -20,6 +24,8 @@
"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.",
diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php
index bbbeebc93d0..49ead61f67e 100644
--- a/apps/files/l10n/ru.php
+++ b/apps/files/l10n/ru.php
@@ -1,4 +1,7 @@
<?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:",
@@ -7,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" => "ĐŖĐ´Đ°ĐģиŅ‚ŅŒ",
@@ -20,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 йаКŅ‚ в ĐēĐ°Ņ‚Đ°ĐģĐžĐŗ",
@@ -31,6 +38,7 @@
"Upload cancelled." => "ЗаĐŗŅ€ŅƒĐˇĐēĐ° ĐžŅ‚ĐŧĐĩĐŊĐĩĐŊĐ°.",
"File upload is in progress. Leaving the page now will cancel the upload." => "ФаКĐģ в ĐŋŅ€ĐžŅ†ĐĩŅŅĐĩ СаĐŗŅ€ŅƒĐˇĐēи. ПоĐēиĐŊŅƒĐ˛ ŅŅ‚Ņ€Đ°ĐŊиŅ†Ņƒ вŅ‹ ĐŋŅ€ĐĩŅ€Đ˛Ņ‘Ņ‚Đĩ СаĐŗŅ€ŅƒĐˇĐēŅƒ.",
"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/zh_TW.php b/apps/files/l10n/zh_TW.php
index 03ced5f0cbf..7f0f44baca9 100644
--- a/apps/files/l10n/zh_TW.php
+++ b/apps/files/l10n/zh_TW.php
@@ -1,9 +1,12 @@
<?php $TRANSLATIONS = array(
-"No file was uploaded. Unknown error" => "æ˛’æœ‰æĒ”æĄˆčĸĢ上å‚ŗ. æœĒįŸĨįš„錯čĒ¤.",
+"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" => "åĒ有部分æĒ”æĄˆčĸĢ上å‚ŗ",
+"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" => "å¯Ģå…ĨįĄŦįĸŸå¤ąæ•—",
@@ -20,12 +23,12 @@
"replaced {new_name}" => "åˇ˛å–äģŖ {new_name}",
"undo" => "垊原",
"replaced {new_name} with {old_name}" => "äŊŋį”¨ {new_name} 取äģŖ {old_name}",
-"unshared {files}" => "停æ­ĸ分äēĢ {files}",
+"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." => "į”ĸį”ŸåŖ“į¸ŽæĒ”, 厃可čƒŊ需čĻä¸€æŽĩ時間.",
+"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" => "關閉",
@@ -33,8 +36,8 @@
"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." => "URL不čƒŊį‚ēįŠēį™Ŋ.",
+"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" => "掃描時į™ŧį”ŸéŒ¯čĒ¤",
@@ -46,12 +49,12 @@
"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" => "文字æĒ”",
@@ -59,10 +62,10 @@
"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_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_external/l10n/bn_BD.php b/apps/files_external/l10n/bn_BD.php
index ad983b52e43..a4a2b23030b 100644
--- a/apps/files_external/l10n/bn_BD.php
+++ b/apps/files_external/l10n/bn_BD.php
@@ -1,6 +1,24 @@
<?php $TRANSLATIONS = array(
-"Backend" => "āĻĒā§āĻ°āĻļāĻžāĻ¸āĻ•",
-"Groups" => "āĻ—ā§‹āĻˇā§āĻ ā§€",
-"Users" => "āĻŦā§āĻ¯āĻŦāĻšāĻžāĻ°āĻ•āĻžāĻ°āĻŋāĻŦā§ƒāĻ¨ā§āĻĻ",
-"Delete" => "āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛"
+"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_sharing/l10n/bn_BD.php b/apps/files_sharing/l10n/bn_BD.php
index 785dfcd2f1d..c3af434ee29 100644
--- a/apps/files_sharing/l10n/bn_BD.php
+++ b/apps/files_sharing/l10n/bn_BD.php
@@ -1,6 +1,9 @@
<?php $TRANSLATIONS = array(
"Password" => "āĻ•ā§‚āĻŸāĻļāĻŦā§āĻĻ",
-"Submit" => "āĻĒāĻžāĻ āĻžāĻ“",
+"Submit" => "āĻœāĻŽāĻž āĻĻāĻžāĻ“",
+"%s shared the folder %s with you" => "%s āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§‡ %s āĻĢā§‹āĻ˛ā§āĻĄāĻžāĻ°āĻŸāĻŋ āĻ­āĻžāĻ—āĻžāĻ­āĻžāĻ—āĻŋ āĻ•āĻ°ā§‡āĻ›ā§‡āĻ¨",
+"%s shared the file %s with you" => "%s āĻ†āĻĒāĻ¨āĻžāĻ° āĻ¸āĻžāĻĨā§‡ %s āĻĢāĻžāĻ‡āĻ˛āĻŸāĻŋ āĻ­āĻžāĻ—āĻžāĻ­āĻžāĻ—āĻŋ āĻ•āĻ°ā§‡āĻ›ā§‡āĻ¨",
"Download" => "āĻĄāĻžāĻ‰āĻ¨āĻ˛ā§‹āĻĄ",
-"web services under your control" => "āĻ“ā§Ÿā§‡āĻŦ āĻ¸ā§‡āĻŦāĻžāĻ¸āĻŽā§‚āĻš āĻāĻ–āĻ¨ āĻ†āĻĒāĻ¨āĻžāĻ° āĻšāĻžāĻ¤ā§‡āĻ° āĻŽā§āĻ ā§‹ā§Ÿ"
+"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/bn_BD.php b/apps/files_versions/l10n/bn_BD.php
index d44ea131313..88349342fa9 100644
--- a/apps/files_versions/l10n/bn_BD.php
+++ b/apps/files_versions/l10n/bn_BD.php
@@ -1,3 +1,8 @@
<?php $TRANSLATIONS = array(
-"Enable" => "āĻ¸āĻ•ā§āĻ°āĻŋā§Ÿ"
+"Expire all versions" => "āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻ­āĻžāĻ°ā§āĻ¸āĻ¨ āĻŽā§‡ā§ŸāĻžāĻĻā§‹āĻ¤ā§āĻ¤ā§€āĻ°ā§āĻŖ",
+"History" => "āĻ‡āĻ¤āĻŋāĻšāĻžāĻ¸",
+"Versions" => "āĻ­āĻžāĻ°ā§āĻ¸āĻ¨",
+"This will delete all existing backup versions of your files" => "āĻāĻŸāĻŋ āĻ†āĻĒāĻ¨āĻžāĻ° āĻŦāĻŋāĻĻā§āĻ¯āĻŽāĻžāĻ¨ āĻĢāĻžāĻ‡āĻ˛ā§‡āĻ° āĻ¸āĻŽāĻ¸ā§āĻ¤ āĻŦā§āĻ¯āĻžāĻ•-āĻ†āĻĒ āĻ­āĻžāĻ°ā§āĻ¸āĻ¨ āĻŽā§āĻ›ā§‡ āĻĢā§‡āĻ˛āĻŦā§‡āĨ¤",
+"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 2b313a07c88..00000000000
--- a/apps/files_versions/templates/settings-personal.php
+++ /dev/null
@@ -1,12 +0,0 @@
-<form id="versions">
- <fieldset class="personalblock">
- <legend>
- <strong><?php echo $l->t('Versions'); ?></strong>
- </legend>
- <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>
- <br /><em><?php echo $l->t('This will delete all existing backup versions of your files'); ?></em>
- </fieldset>
-</form>
diff --git a/apps/user_ldap/l10n/bn_BD.php b/apps/user_ldap/l10n/bn_BD.php
index eca40c171f8..094b20cad2d 100644
--- a/apps/user_ldap/l10n/bn_BD.php
+++ b/apps/user_ldap/l10n/bn_BD.php
@@ -1,4 +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/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_webdavauth/l10n/bn_BD.php b/apps/user_webdavauth/l10n/bn_BD.php
new file mode 100644
index 00000000000..773e7f7eb76
--- /dev/null
+++ b/apps/user_webdavauth/l10n/bn_BD.php
@@ -0,0 +1,4 @@
+<?php $TRANSLATIONS = array(
+"URL: http://" => "URL:http://",
+"ownCloud will send the user credentials to this URL is interpret http 401 and http 403 as credentials wrong and all other codes as credentials correct." => "ownCloud will send the user credentials to this URL is interpret http 401 and http 403 as credentials wrong and all other codes as credentials correct."
+);
diff --git a/apps/user_webdavauth/l10n/fr.php b/apps/user_webdavauth/l10n/fr.php
index 238c8d3a2fb..557a22e6c82 100644
--- a/apps/user_webdavauth/l10n/fr.php
+++ b/apps/user_webdavauth/l10n/fr.php
@@ -1,4 +1,4 @@
<?php $TRANSLATIONS = array(
"URL: http://" => "URL : http://",
-"ownCloud will send the user credentials to this URL is interpret http 401 and http 403 as credentials wrong and all other codes as credentials correct." => "Owncloud enverra les identifiants de sÊcuritÊ de l'utilisateur à cet URL et interprète les http 401 et 403 comme des erreurs d'identification et tous les autres codes seront considÊrÊs comme une identification valide."
+"ownCloud will send the user credentials to this URL is interpret http 401 and http 403 as credentials wrong and all other codes as credentials correct." => "ownCloud "
);