aboutsummaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/files/ajax/list.php1
-rw-r--r--apps/files/ajax/rawlist.php56
-rw-r--r--apps/files/css/files.css19
-rw-r--r--apps/files/index.php1
-rw-r--r--apps/files/js/file-upload.js4
-rw-r--r--apps/files/js/filelist.js4
-rw-r--r--apps/files/l10n/ar.php8
-rw-r--r--apps/files/l10n/bg_BG.php1
-rw-r--r--apps/files/l10n/ca.php2
-rw-r--r--apps/files/l10n/cs_CZ.php2
-rw-r--r--apps/files/l10n/cy_GB.php1
-rw-r--r--apps/files/l10n/da.php2
-rw-r--r--apps/files/l10n/de.php2
-rw-r--r--apps/files/l10n/de_DE.php2
-rw-r--r--apps/files/l10n/el.php1
-rw-r--r--apps/files/l10n/eo.php1
-rw-r--r--apps/files/l10n/es.php9
-rw-r--r--apps/files/l10n/es_AR.php8
-rw-r--r--apps/files/l10n/et_EE.php2
-rw-r--r--apps/files/l10n/eu.php1
-rw-r--r--apps/files/l10n/fa.php1
-rw-r--r--apps/files/l10n/fi_FI.php2
-rw-r--r--apps/files/l10n/fr.php13
-rw-r--r--apps/files/l10n/gl.php2
-rw-r--r--apps/files/l10n/he.php1
-rw-r--r--apps/files/l10n/hu_HU.php1
-rw-r--r--apps/files/l10n/it.php2
-rw-r--r--apps/files/l10n/ja_JP.php2
-rw-r--r--apps/files/l10n/ka_GE.php1
-rw-r--r--apps/files/l10n/ko.php1
-rw-r--r--apps/files/l10n/ku_IQ.php1
-rw-r--r--apps/files/l10n/lt_LT.php1
-rw-r--r--apps/files/l10n/lv.php1
-rw-r--r--apps/files/l10n/nb_NO.php1
-rw-r--r--apps/files/l10n/nl.php2
-rw-r--r--apps/files/l10n/nn_NO.php12
-rw-r--r--apps/files/l10n/pl.php9
-rw-r--r--apps/files/l10n/pt_BR.php9
-rw-r--r--apps/files/l10n/pt_PT.php9
-rw-r--r--apps/files/l10n/ro.php38
-rw-r--r--apps/files/l10n/ru.php1
-rw-r--r--apps/files/l10n/si_LK.php1
-rw-r--r--apps/files/l10n/sk_SK.php1
-rw-r--r--apps/files/l10n/sl.php1
-rw-r--r--apps/files/l10n/sq.php13
-rw-r--r--apps/files/l10n/sr.php1
-rw-r--r--apps/files/l10n/sv.php2
-rw-r--r--apps/files/l10n/ta_LK.php1
-rw-r--r--apps/files/l10n/th_TH.php1
-rw-r--r--apps/files/l10n/tr.php1
-rw-r--r--apps/files/l10n/uk.php2
-rw-r--r--apps/files/l10n/vi.php1
-rw-r--r--apps/files/l10n/zh_CN.php1
-rw-r--r--apps/files/l10n/zh_TW.php50
-rw-r--r--apps/files/lib/helper.php29
-rw-r--r--apps/files/templates/index.php4
-rw-r--r--apps/files/templates/part.list.php23
-rw-r--r--apps/files_encryption/hooks/hooks.php17
-rw-r--r--apps/files_encryption/l10n/es.php2
-rw-r--r--apps/files_encryption/l10n/es_AR.php2
-rw-r--r--apps/files_encryption/l10n/fi_FI.php12
-rw-r--r--apps/files_encryption/l10n/fr.php2
-rw-r--r--apps/files_encryption/l10n/hu_HU.php14
-rw-r--r--apps/files_encryption/l10n/nn_NO.php3
-rwxr-xr-xapps/files_encryption/lib/crypt.php8
-rwxr-xr-xapps/files_encryption/lib/helper.php22
-rwxr-xr-xapps/files_encryption/lib/keymanager.php28
-rw-r--r--apps/files_encryption/lib/stream.php36
-rw-r--r--apps/files_encryption/lib/util.php44
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/Prods.inc.php1
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/ProdsConfig.inc.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/ProdsPath.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/ProdsQuery.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/ProdsRule.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/ProdsStreamer.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RODSAccount.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RODSConn.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RODSConnManager.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RODSException.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueConds.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueResults.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueSelFlds.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RODSKeyValPair.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RODSMessage.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RODSObjIOOpr.inc.php1
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RodsAPINum.inc.php1
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RodsConst.inc.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RodsErrorTable.inc.php1
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RodsGenQueryKeyWd.inc.php1
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/RodsGenQueryNum.inc.php1
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RODSPacket.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_BinBytesBuf.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_CollInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_CollOprStat.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_DataObjCopyInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_DataObjInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ExecCmdOut.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ExecMyRuleInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_GenQueryInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_GenQueryOut.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_InxIvalPair.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_InxValPair.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_KeyValPair.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MiscSvrInfo.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ModAVUMetadataInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsParam.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsParamArray.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsgHeader.class.php3
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_RHostAddr.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_RodsObjStat.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_STR.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_SqlResult.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_StartupPack.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_TransStat.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_Version.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_authRequestOut.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_authResponseInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjCloseInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjReadInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjWriteInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_fileLseekInp.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_fileLseekOut.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_getTempPasswordOut.class.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_pamAuthRequestInp.class.php1
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_pamAuthRequestOut.class.php1
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_sslEndInp.class.php1
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_sslStartInp.class.php1
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/setRodsAPINum.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/setRodsErrorCodes.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryKeyWd.php2
-rw-r--r--apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryNum.php2
-rw-r--r--apps/files_external/lib/irods.php19
-rw-r--r--apps/files_sharing/l10n/es.php2
-rw-r--r--apps/files_sharing/l10n/es_AR.php6
-rw-r--r--apps/files_sharing/l10n/fr.php6
-rw-r--r--apps/files_sharing/l10n/nn_NO.php7
-rw-r--r--apps/files_sharing/l10n/sq.php7
-rw-r--r--apps/files_sharing/l10n/zh_TW.php4
-rw-r--r--apps/files_sharing/public.php15
-rw-r--r--apps/files_trashbin/index.php1
-rw-r--r--apps/files_trashbin/l10n/es.php4
-rw-r--r--apps/files_trashbin/l10n/es_AR.php5
-rw-r--r--apps/files_trashbin/l10n/fr.php5
-rw-r--r--apps/files_trashbin/l10n/nn_NO.php5
-rw-r--r--apps/files_trashbin/l10n/pl.php4
-rw-r--r--apps/files_trashbin/l10n/pt_BR.php4
-rw-r--r--apps/files_trashbin/l10n/pt_PT.php4
-rw-r--r--apps/files_trashbin/l10n/sq.php5
-rw-r--r--apps/files_trashbin/l10n/zh_TW.php2
-rw-r--r--apps/files_trashbin/templates/index.php2
-rw-r--r--apps/files_versions/l10n/es.php2
-rw-r--r--apps/files_versions/l10n/es_AR.php3
-rw-r--r--apps/files_versions/l10n/fr.php3
-rw-r--r--apps/files_versions/l10n/nn_NO.php3
-rw-r--r--apps/user_ldap/l10n/es.php11
-rw-r--r--apps/user_ldap/l10n/es_AR.php9
-rw-r--r--apps/user_ldap/l10n/fr.php11
-rw-r--r--apps/user_ldap/l10n/nn_NO.php1
-rw-r--r--apps/user_webdavauth/l10n/es.php4
-rw-r--r--apps/user_webdavauth/l10n/es_AR.php4
-rw-r--r--apps/user_webdavauth/l10n/fr.php4
-rw-r--r--apps/user_webdavauth/l10n/nn_NO.php4
162 files changed, 508 insertions, 332 deletions
diff --git a/apps/files/ajax/list.php b/apps/files/ajax/list.php
index c50e96b2429..14ed43cbb3a 100644
--- a/apps/files/ajax/list.php
+++ b/apps/files/ajax/list.php
@@ -34,6 +34,7 @@ if($doBreadcrumb) {
$files = array();
foreach( \OC\Files\Filesystem::getDirectoryContent( $dir ) as $i ) {
$i["date"] = OCP\Util::formatDate($i["mtime"] );
+ $i['icon'] = \OCA\files\lib\Helper::determineIcon($i);
$files[] = $i;
}
diff --git a/apps/files/ajax/rawlist.php b/apps/files/ajax/rawlist.php
index f568afad4da..e9ae1f5305f 100644
--- a/apps/files/ajax/rawlist.php
+++ b/apps/files/ajax/rawlist.php
@@ -11,22 +11,56 @@ OCP\JSON::checkLoggedIn();
// Load the files
$dir = isset( $_GET['dir'] ) ? $_GET['dir'] : '';
-$mimetype = isset($_GET['mimetype']) ? $_GET['mimetype'] : '';
+$mimetypes = isset($_GET['mimetypes']) ? json_decode($_GET['mimetypes'], true) : '';
+
+// Clean up duplicates from array and deal with non-array requests
+if (is_array($mimetypes)) {
+ $mimetypes = array_unique($mimetypes);
+} elseif (is_null($mimetypes)) {
+ $mimetypes = array($_GET['mimetypes']);
+}
// make filelist
$files = array();
// If a type other than directory is requested first load them.
-if($mimetype && strpos($mimetype, 'httpd/unix-directory') === false) {
- foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, 'httpd/unix-directory' ) as $i ) {
- $i["date"] = OCP\Util::formatDate($i["mtime"] );
- $i['mimetype_icon'] = $i['type'] == 'dir' ? \mimetype_icon('dir'): \mimetype_icon($i['mimetype']);
- $files[] = $i;
+if($mimetypes && !in_array('httpd/unix-directory', $mimetypes)) {
+ foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, 'httpd/unix-directory' ) as $file ) {
+ $file["date"] = OCP\Util::formatDate($file["mtime"]);
+ $file['mimetype_icon'] = \mimetype_icon('dir');
+ $files[] = $file;
}
}
-foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, $mimetype ) as $i ) {
- $i["date"] = OCP\Util::formatDate($i["mtime"] );
- $i['mimetype_icon'] = $i['type'] == 'dir' ? \mimetype_icon('dir'): \mimetype_icon($i['mimetype']);
- $files[] = $i;
+
+if (is_array($mimetypes) && count($mimetypes)) {
+ foreach ($mimetypes as $mimetype) {
+ foreach( \OC\Files\Filesystem::getDirectoryContent( $dir, $mimetype ) as $file ) {
+ $file["date"] = OCP\Util::formatDate($file["mtime"]);
+ if ($file['type'] === "dir") {
+ $file['mimetype_icon'] = \mimetype_icon('dir');
+ } else {
+ $file['mimetype_icon'] = \mimetype_icon($file['mimetype']);
+ }
+ $files[] = $file;
+ }
+ }
+} else {
+ foreach( \OC\Files\Filesystem::getDirectoryContent( $dir ) as $file ) {
+ $file["date"] = OCP\Util::formatDate($file["mtime"]);
+ if ($file['type'] === "dir") {
+ $file['mimetype_icon'] = \mimetype_icon('dir');
+ } else {
+ $file['mimetype_icon'] = \mimetype_icon($file['mimetype']);
+ }
+ $files[] = $file;
+ }
}
-OCP\JSON::success(array('data' => $files));
+// Sort by name
+usort($files, function ($a, $b) {
+ if ($a['name'] === $b['name']) {
+ return 0;
+ }
+ return ($a['name'] < $b['name']) ? -1 : 1;
+});
+
+OC_JSON::success(array('data' => $files));
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 498e34d70d4..8053649bd55 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -68,18 +68,12 @@
/* FILE TABLE */
-#emptyfolder {
- position:absolute;
- margin:10em 0 0 10em;
- font-size:1.5em; font-weight:bold;
- color:#888; text-shadow:#fff 0 1px 0;
-}
#filestable { position: relative; top:37px; width:100%; }
-tbody tr { background-color:#fff; height:2.5em; }
-tbody tr:hover, tbody tr:active {
+#filestable tbody tr { background-color:#fff; height:2.5em; }
+#filestable tbody tr:hover, tbody tr:active {
background-color: rgb(240,240,240);
}
-tbody tr.selected {
+#filestable tbody tr.selected {
background-color: rgb(230,230,230);
}
tbody a { color:#000; }
@@ -196,10 +190,15 @@ table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; }
#fileList tr:hover td.filename>input[type="checkbox"]:first-child,
#fileList tr td.filename>input[type="checkbox"]:checked:first-child,
#fileList tr.selected td.filename>input[type="checkbox"]:first-child {
+ opacity: 1;
+}
+.lte9 #fileList tr:hover td.filename>input[type="checkbox"]:first-child,
+.lte9 #fileList tr td.filename>input[type="checkbox"][checked=checked]:first-child,
+.lte9 #fileList tr.selected td.filename>input[type="checkbox"]:first-child {
-ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
filter: alpha(opacity=100);
- opacity: 1;
}
+
/* Use label to have bigger clickable size for checkbox */
#fileList tr td.filename>input[type="checkbox"] + label,
#select_all + label {
diff --git a/apps/files/index.php b/apps/files/index.php
index f1e120c872c..4443bf5fde0 100644
--- a/apps/files/index.php
+++ b/apps/files/index.php
@@ -75,6 +75,7 @@ foreach ($content as $i) {
}
$i['directory'] = $dir;
$i['isPreviewAvailable'] = \OCP\Preview::isMimeSupported($i['mimetype']);
+ $i['icon'] = \OCA\files\lib\Helper::determineIcon($i);
$files[] = $i;
}
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js
index 3d620c5640b..970aad1f978 100644
--- a/apps/files/js/file-upload.js
+++ b/apps/files/js/file-upload.js
@@ -344,8 +344,12 @@ $(document).ready(function() {
}
var li=form.parent();
form.remove();
+ /* workaround for IE 9&10 click event trap, 2 lines: */
+ $('input').first().focus();
+ $('#content').focus();
li.append('<p>'+li.data('text')+'</p>');
$('#new>a').click();
});
});
+ window.file_upload_param = file_upload_param;
});
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 05e31094502..29be5e0d362 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -147,7 +147,7 @@ var FileList={
$('tr').filterAttr('data-file',name).remove();
FileList.updateFileSummary();
if($('tr[data-file]').length==0){
- $('#emptyfolder').show();
+ $('#emptycontent').show();
}
},
insertElement:function(name,type,element){
@@ -177,7 +177,7 @@ var FileList={
}else{
$('#fileList').append(element);
}
- $('#emptyfolder').hide();
+ $('#emptycontent').hide();
FileList.updateFileSummary();
},
loadingDone:function(name, id){
diff --git a/apps/files/l10n/ar.php b/apps/files/l10n/ar.php
index 8346eece88b..99eb409a369 100644
--- a/apps/files/l10n/ar.php
+++ b/apps/files/l10n/ar.php
@@ -2,6 +2,8 @@
$TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "فشل في نقل الملف %s - يوجد ملف بنفس هذا الاسم",
"Could not move %s" => "فشل في نقل %s",
+"Unable to set upload directory." => "غير قادر على تحميل المجلد",
+"Invalid Token" => "علامة غير صالحة",
"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 ",
@@ -11,12 +13,15 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "المجلد المؤقت غير موجود",
"Failed to write to disk" => "خطأ في الكتابة على القرص الصلب",
"Not enough storage available" => "لا يوجد مساحة تخزينية كافية",
+"Upload failed" => "عملية الرفع فشلت",
"Invalid directory." => "مسار غير صحيح.",
"Files" => "الملفات",
"Unable to upload your file as it is a directory or has 0 bytes" => "فشل في رفع ملفاتك , إما أنها مجلد أو حجمها 0 بايت",
+"Not enough space available" => "لا توجد مساحة كافية",
"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" => "تسمية ملف غير صالحة. استخدام الاسم \"shared\" محجوز بواسطة ownCloud",
"Error" => "خطأ",
"Share" => "شارك",
"Delete permanently" => "حذف بشكل دائم",
@@ -30,12 +35,15 @@ $TRANSLATIONS = array(
"undo" => "تراجع",
"_%n folder_::_%n folders_" => array("","","","","",""),
"_%n file_::_%n files_" => array("","","","","",""),
+"{dirs} and {files}" => "{dirs} و {files}",
"_Uploading %n file_::_Uploading %n files_" => array("","","","","",""),
+"files uploading" => "يتم تحميل الملفات",
"'.' is an invalid file name." => "\".\" اسم ملف غير صحيح.",
"File name cannot be empty." => "اسم الملف لا يجوز أن يكون فارغا",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "اسم غير صحيح , الرموز '\\', '/', '<', '>', ':', '\"', '|', '?' و \"*\" غير مسموح استخدامها",
"Your storage is full, files can not be updated or synced anymore!" => "مساحتك التخزينية ممتلئة, لا يمكم تحديث ملفاتك أو مزامنتها بعد الآن !",
"Your storage is almost full ({usedSpacePercent}%)" => "مساحتك التخزينية امتلأت تقريبا ",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "تم تعطيل التشفير لكن ملفاتك لا تزال مشفرة. فضلا اذهب إلى الإعدادات الشخصية لإزالة التشفير عن ملفاتك.",
"Your download is being prepared. This might take some time if the files are big." => "جاري تجهيز عملية التحميل. قد تستغرق بعض الوقت اذا كان حجم الملفات كبير.",
"Name" => "اسم",
"Size" => "حجم",
diff --git a/apps/files/l10n/bg_BG.php b/apps/files/l10n/bg_BG.php
index e7dafd1c43a..913875e863a 100644
--- a/apps/files/l10n/bg_BG.php
+++ b/apps/files/l10n/bg_BG.php
@@ -6,6 +6,7 @@ $TRANSLATIONS = array(
"No file was uploaded" => "Фахлът не бе качен",
"Missing a temporary folder" => "Липсва временна папка",
"Failed to write to disk" => "Възникна проблем при запис в диска",
+"Upload failed" => "Качването е неуспешно",
"Invalid directory." => "Невалидна директория.",
"Files" => "Файлове",
"Upload cancelled." => "Качването е спряно.",
diff --git a/apps/files/l10n/ca.php b/apps/files/l10n/ca.php
index 9f90138eebe..eb724d19548 100644
--- a/apps/files/l10n/ca.php
+++ b/apps/files/l10n/ca.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Falta un fitxer temporal",
"Failed to write to disk" => "Ha fallat en escriure al disc",
"Not enough storage available" => "No hi ha prou espai disponible",
+"Upload failed" => "La pujada ha fallat",
"Invalid directory." => "Directori no vàlid.",
"Files" => "Fitxers",
"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",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "desfés",
"_%n folder_::_%n folders_" => array("%n carpeta","%n carpetes"),
"_%n file_::_%n files_" => array("%n fitxer","%n fitxers"),
+"{dirs} and {files}" => "{dirs} i {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Pujant %n fitxer","Pujant %n fitxers"),
"files uploading" => "fitxers pujant",
"'.' is an invalid file name." => "'.' és un nom no vàlid per un fitxer.",
diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php
index c46758c7bcc..691cc92f1ad 100644
--- a/apps/files/l10n/cs_CZ.php
+++ b/apps/files/l10n/cs_CZ.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Chybí adresář pro dočasné soubory",
"Failed to write to disk" => "Zápis na disk selhal",
"Not enough storage available" => "Nedostatek dostupného úložného prostoru",
+"Upload failed" => "Odesílání selhalo",
"Invalid directory." => "Neplatný adresář",
"Files" => "Soubory",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nelze odeslat Váš soubor, protože je to adresář nebo jeho velikost je 0 bajtů",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "vrátit zpět",
"_%n folder_::_%n folders_" => array("%n složka","%n složky","%n složek"),
"_%n file_::_%n files_" => array("%n soubor","%n soubory","%n souborů"),
+"{dirs} and {files}" => "{dirs} a {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Nahrávám %n soubor","Nahrávám %n soubory","Nahrávám %n souborů"),
"files uploading" => "soubory se odesílají",
"'.' is an invalid file name." => "'.' je neplatným názvem souboru.",
diff --git a/apps/files/l10n/cy_GB.php b/apps/files/l10n/cy_GB.php
index 666e90e9db8..157f4f89a23 100644
--- a/apps/files/l10n/cy_GB.php
+++ b/apps/files/l10n/cy_GB.php
@@ -11,6 +11,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Plygell dros dro yn eisiau",
"Failed to write to disk" => "Methwyd ysgrifennu i'r ddisg",
"Not enough storage available" => "Dim digon o le storio ar gael",
+"Upload failed" => "Methwyd llwytho i fyny",
"Invalid directory." => "Cyfeiriadur annilys.",
"Files" => "Ffeiliau",
"Unable to upload your file as it is a directory or has 0 bytes" => "Methu llwytho'ch ffeil i fyny gan ei fod yn gyferiadur neu'n cynnwys 0 beit",
diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php
index 36703322f93..aab12986ec1 100644
--- a/apps/files/l10n/da.php
+++ b/apps/files/l10n/da.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Manglende midlertidig mappe.",
"Failed to write to disk" => "Fejl ved skrivning til disk.",
"Not enough storage available" => "Der er ikke nok plads til rådlighed",
+"Upload failed" => "Upload fejlede",
"Invalid directory." => "Ugyldig mappe.",
"Files" => "Filer",
"Unable to upload your file as it is a directory or has 0 bytes" => "Kan ikke uploade din fil - det er enten en mappe eller en fil med et indhold på 0 bytes.",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "fortryd",
"_%n folder_::_%n folders_" => array("%n mappe","%n mapper"),
"_%n file_::_%n files_" => array("%n fil","%n filer"),
+"{dirs} and {files}" => "{dirs} og {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Uploader %n fil","Uploader %n filer"),
"files uploading" => "uploader filer",
"'.' is an invalid file name." => "'.' er et ugyldigt filnavn.",
diff --git a/apps/files/l10n/de.php b/apps/files/l10n/de.php
index 8d8d30cb6e7..947d4f07461 100644
--- a/apps/files/l10n/de.php
+++ b/apps/files/l10n/de.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Kein temporärer Ordner vorhanden",
"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte",
"Not enough storage available" => "Nicht genug Speicher vorhanden.",
+"Upload failed" => "Hochladen fehlgeschlagen",
"Invalid directory." => "Ungültiges Verzeichnis.",
"Files" => "Dateien",
"Unable to upload your file as it is a directory or has 0 bytes" => "Deine Datei kann nicht hochgeladen werden, weil es sich um einen Ordner handelt oder 0 Bytes groß ist.",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "rückgängig machen",
"_%n folder_::_%n folders_" => array("%n Ordner","%n Ordner"),
"_%n file_::_%n files_" => array("%n Datei","%n Dateien"),
+"{dirs} and {files}" => "{dirs} und {files}",
"_Uploading %n file_::_Uploading %n files_" => array("%n Datei wird hochgeladen","%n Dateien werden hochgeladen"),
"files uploading" => "Dateien werden hoch geladen",
"'.' is an invalid file name." => "'.' ist kein gültiger Dateiname.",
diff --git a/apps/files/l10n/de_DE.php b/apps/files/l10n/de_DE.php
index 309a885d37f..db07ed7fadd 100644
--- a/apps/files/l10n/de_DE.php
+++ b/apps/files/l10n/de_DE.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Kein temporärer Ordner vorhanden",
"Failed to write to disk" => "Fehler beim Schreiben auf die Festplatte",
"Not enough storage available" => "Nicht genug Speicher vorhanden.",
+"Upload failed" => "Hochladen fehlgeschlagen",
"Invalid directory." => "Ungültiges Verzeichnis.",
"Files" => "Dateien",
"Unable to upload your file as it is a directory or has 0 bytes" => "Ihre Datei kann nicht hochgeladen werden, weil es sich um einen Ordner handelt oder 0 Bytes groß ist.",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "rückgängig machen",
"_%n folder_::_%n folders_" => array("%n Ordner","%n Ordner"),
"_%n file_::_%n files_" => array("%n Datei","%n Dateien"),
+"{dirs} and {files}" => "{dirs} und {files}",
"_Uploading %n file_::_Uploading %n files_" => array("%n Datei wird hoch geladen","%n Dateien werden hoch geladen"),
"files uploading" => "Dateien werden hoch geladen",
"'.' is an invalid file name." => "'.' ist kein gültiger Dateiname.",
diff --git a/apps/files/l10n/el.php b/apps/files/l10n/el.php
index 1dca8e41f6d..8c89e5e1feb 100644
--- a/apps/files/l10n/el.php
+++ b/apps/files/l10n/el.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Λείπει ο προσωρινός φάκελος",
"Failed to write to disk" => "Αποτυχία εγγραφής στο δίσκο",
"Not enough storage available" => "Μη επαρκής διαθέσιμος αποθηκευτικός χώρος",
+"Upload failed" => "Η μεταφόρτωση απέτυχε",
"Invalid directory." => "Μη έγκυρος φάκελος.",
"Files" => "Αρχεία",
"Unable to upload your file as it is a directory or has 0 bytes" => "Αδυναμία στην αποστολή του αρχείου σας αφού είναι φάκελος ή έχει 0 bytes",
diff --git a/apps/files/l10n/eo.php b/apps/files/l10n/eo.php
index 2a011ab214b..ad538f2f2a9 100644
--- a/apps/files/l10n/eo.php
+++ b/apps/files/l10n/eo.php
@@ -11,6 +11,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Mankas provizora dosierujo.",
"Failed to write to disk" => "Malsukcesis skribo al disko",
"Not enough storage available" => "Ne haveblas sufiĉa memoro",
+"Upload failed" => "Alŝuto malsukcesis",
"Invalid directory." => "Nevalida dosierujo.",
"Files" => "Dosieroj",
"Unable to upload your file as it is a directory or has 0 bytes" => "Ne eblis alŝuti vian dosieron ĉar ĝi estas dosierujo aŭ havas 0 duumokojn",
diff --git a/apps/files/l10n/es.php b/apps/files/l10n/es.php
index 1ff1506aaf4..ce92ff8f187 100644
--- a/apps/files/l10n/es.php
+++ b/apps/files/l10n/es.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Falta la carpeta temporal",
"Failed to write to disk" => "Falló al escribir al disco",
"Not enough storage available" => "No hay suficiente espacio disponible",
+"Upload failed" => "Error en la subida",
"Invalid directory." => "Directorio inválido.",
"Files" => "Archivos",
"Unable to upload your file as it is a directory or has 0 bytes" => "Incapaz de subir su archivo, es un directorio o tiene 0 bytes",
@@ -32,15 +33,17 @@ $TRANSLATIONS = array(
"cancel" => "cancelar",
"replaced {new_name} with {old_name}" => "reemplazado {new_name} con {old_name}",
"undo" => "deshacer",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
-"_Uploading %n file_::_Uploading %n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("","%n carpetas"),
+"_%n file_::_%n files_" => array("","%n archivos"),
+"{dirs} and {files}" => "{dirs} y {files}",
+"_Uploading %n file_::_Uploading %n files_" => array("Subiendo %n archivo","Subiendo %n archivos"),
"files uploading" => "subiendo archivos",
"'.' is an invalid file name." => "'.' no es un nombre de archivo vá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 ",
"Your storage is full, files can not be updated or synced anymore!" => "Su almacenamiento está lleno, ¡no se pueden actualizar o sincronizar más!",
"Your storage is almost full ({usedSpacePercent}%)" => "Su almacenamiento está casi lleno ({usedSpacePercent}%)",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "El cifrado ha sido deshabilitado pero tus archivos permanecen cifrados. Por favor, ve a tus ajustes personales para descifrar tus archivos.",
"Your download is being prepared. This might take some time if the files are big." => "Su descarga está siendo preparada. Esto puede tardar algún tiempo si los archivos son grandes.",
"Name" => "Nombre",
"Size" => "Tamaño",
diff --git a/apps/files/l10n/es_AR.php b/apps/files/l10n/es_AR.php
index dac4d4e4de2..d9d10362630 100644
--- a/apps/files/l10n/es_AR.php
+++ b/apps/files/l10n/es_AR.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Falta un directorio temporal",
"Failed to write to disk" => "Error al escribir en el disco",
"Not enough storage available" => "No hay suficiente almacenamiento",
+"Upload failed" => "Error al subir el archivo",
"Invalid directory." => "Directorio inválido.",
"Files" => "Archivos",
"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",
@@ -32,9 +33,10 @@ $TRANSLATIONS = array(
"cancel" => "cancelar",
"replaced {new_name} with {old_name}" => "se reemplazó {new_name} con {old_name}",
"undo" => "deshacer",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
-"_Uploading %n file_::_Uploading %n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n carpeta","%n carpetas"),
+"_%n file_::_%n files_" => array("%n archivo","%n archivos"),
+"{dirs} and {files}" => "{carpetas} y {archivos}",
+"_Uploading %n file_::_Uploading %n files_" => array("Subiendo %n archivo","Subiendo %n archivos"),
"files uploading" => "Subiendo archivos",
"'.' 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.",
diff --git a/apps/files/l10n/et_EE.php b/apps/files/l10n/et_EE.php
index e1947cb8f73..52ba1191706 100644
--- a/apps/files/l10n/et_EE.php
+++ b/apps/files/l10n/et_EE.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Ajutiste failide kaust puudub",
"Failed to write to disk" => "Kettale kirjutamine ebaõnnestus",
"Not enough storage available" => "Saadaval pole piisavalt ruumi",
+"Upload failed" => "Üleslaadimine ebaõnnestus",
"Invalid directory." => "Vigane kaust.",
"Files" => "Failid",
"Unable to upload your file as it is a directory or has 0 bytes" => "Faili ei saa üles laadida, kuna see on kaust või selle suurus on 0 baiti",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "tagasi",
"_%n folder_::_%n folders_" => array("%n kataloog","%n kataloogi"),
"_%n file_::_%n files_" => array("%n fail","%n faili"),
+"{dirs} and {files}" => "{dirs} ja {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Laadin üles %n faili","Laadin üles %n faili"),
"files uploading" => "faili üleslaadimisel",
"'.' is an invalid file name." => "'.' on vigane failinimi.",
diff --git a/apps/files/l10n/eu.php b/apps/files/l10n/eu.php
index 6c6e92dda38..524be56af02 100644
--- a/apps/files/l10n/eu.php
+++ b/apps/files/l10n/eu.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Aldi bateko karpeta falta da",
"Failed to write to disk" => "Errore bat izan da diskoan idazterakoan",
"Not enough storage available" => "Ez dago behar aina leku erabilgarri,",
+"Upload failed" => "igotzeak huts egin du",
"Invalid directory." => "Baliogabeko karpeta.",
"Files" => "Fitxategiak",
"Unable to upload your file as it is a directory or has 0 bytes" => "Ezin izan da zure fitxategia igo karpeta bat delako edo 0 byte dituelako",
diff --git a/apps/files/l10n/fa.php b/apps/files/l10n/fa.php
index afa04e53ab2..24584f715b5 100644
--- a/apps/files/l10n/fa.php
+++ b/apps/files/l10n/fa.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "یک پوشه موقت گم شده",
"Failed to write to disk" => "نوشتن بر روی دیسک سخت ناموفق بود",
"Not enough storage available" => "فضای کافی در دسترس نیست",
+"Upload failed" => "بارگزاری ناموفق بود",
"Invalid directory." => "فهرست راهنما نامعتبر می باشد.",
"Files" => "پرونده‌ها",
"Unable to upload your file as it is a directory or has 0 bytes" => "ناتوان در بارگذاری یا فایل یک پوشه است یا 0بایت دارد",
diff --git a/apps/files/l10n/fi_FI.php b/apps/files/l10n/fi_FI.php
index d18ff4f0207..1d29dbf79d2 100644
--- a/apps/files/l10n/fi_FI.php
+++ b/apps/files/l10n/fi_FI.php
@@ -11,6 +11,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Tilapäiskansio puuttuu",
"Failed to write to disk" => "Levylle kirjoitus epäonnistui",
"Not enough storage available" => "Tallennustilaa ei ole riittävästi käytettävissä",
+"Upload failed" => "Lähetys epäonnistui",
"Invalid directory." => "Virheellinen kansio.",
"Files" => "Tiedostot",
"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.",
@@ -30,6 +31,7 @@ $TRANSLATIONS = array(
"undo" => "kumoa",
"_%n folder_::_%n folders_" => array("%n kansio","%n kansiota"),
"_%n file_::_%n files_" => array("%n tiedosto","%n tiedostoa"),
+"{dirs} and {files}" => "{dirs} ja {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Lähetetään %n tiedosto","Lähetetään %n tiedostoa"),
"'.' is an invalid file name." => "'.' on virheellinen nimi tiedostolle.",
"File name cannot be empty." => "Tiedoston nimi ei voi olla tyhjä.",
diff --git a/apps/files/l10n/fr.php b/apps/files/l10n/fr.php
index 40bb81296e6..2d538262a0a 100644
--- a/apps/files/l10n/fr.php
+++ b/apps/files/l10n/fr.php
@@ -6,13 +6,14 @@ $TRANSLATIONS = array(
"Invalid Token" => "Jeton non valide",
"No file was uploaded. Unknown error" => "Aucun fichier n'a été envoyé. Erreur inconnue",
"There is no error, the file uploaded with success" => "Aucune erreur, le fichier a été envoyé 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 envoyé dépasse la directive MAX_FILE_SIZE qui est spécifiée dans le formulaire HTML.",
+"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Le fichier envoyé dépasse l'instruction 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 envoyé dépasse l'instruction MAX_FILE_SIZE qui est spécifiée dans le formulaire HTML.",
"The uploaded file was only partially uploaded" => "Le fichier n'a été que partiellement envoyé.",
"No file was uploaded" => "Pas de fichier envoyé.",
"Missing a temporary folder" => "Absence de dossier temporaire.",
"Failed to write to disk" => "Erreur d'écriture sur le disque",
"Not enough storage available" => "Plus assez d'espace de stockage disponible",
+"Upload failed" => "Échec de l'envoi",
"Invalid directory." => "Dossier invalide.",
"Files" => "Fichiers",
"Unable to upload your file as it is a directory or has 0 bytes" => "Impossible d'envoyer votre fichier dans la mesure où il s'agit d'un répertoire ou d'un fichier de taille nulle",
@@ -32,15 +33,17 @@ $TRANSLATIONS = array(
"cancel" => "annuler",
"replaced {new_name} with {old_name}" => "{new_name} a été remplacé par {old_name}",
"undo" => "annuler",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
-"_Uploading %n file_::_Uploading %n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n dossier","%n dossiers"),
+"_%n file_::_%n files_" => array("%n fichier","%n fichiers"),
+"{dirs} and {files}" => "{dir} et {files}",
+"_Uploading %n file_::_Uploading %n files_" => array("Téléversement de %n fichier","Téléversement de %n fichiers"),
"files uploading" => "fichiers en cours d'envoi",
"'.' 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.",
"Your storage is full, files can not be updated or synced anymore!" => "Votre espage de stockage est plein, les fichiers ne peuvent plus être téléversés ou synchronisés !",
"Your storage is almost full ({usedSpacePercent}%)" => "Votre espace de stockage est presque plein ({usedSpacePercent}%)",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Le chiffrement était désactivé mais vos fichiers sont toujours chiffrés. Veuillez vous rendre sur vos Paramètres personnels pour déchiffrer vos fichiers.",
"Your download is being prepared. This might take some time if the files are big." => "Votre téléchargement est cours de préparation. Ceci peut nécessiter un certain temps si les fichiers sont volumineux.",
"Name" => "Nom",
"Size" => "Taille",
diff --git a/apps/files/l10n/gl.php b/apps/files/l10n/gl.php
index 2df738cb15f..01a6b54f842 100644
--- a/apps/files/l10n/gl.php
+++ b/apps/files/l10n/gl.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Falta o cartafol temporal",
"Failed to write to disk" => "Produciuse un erro ao escribir no disco",
"Not enough storage available" => "Non hai espazo de almacenamento abondo",
+"Upload failed" => "Produciuse un fallou no envío",
"Invalid directory." => "O directorio é incorrecto.",
"Files" => "Ficheiros",
"Unable to upload your file as it is a directory or has 0 bytes" => "Non foi posíbel enviar o ficheiro pois ou é un directorio ou ten 0 bytes",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "desfacer",
"_%n folder_::_%n folders_" => array("%n cartafol","%n cartafoles"),
"_%n file_::_%n files_" => array("%n ficheiro","%n ficheiros"),
+"{dirs} and {files}" => "{dirs} e {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Cargando %n ficheiro","Cargando %n ficheiros"),
"files uploading" => "ficheiros enviándose",
"'.' is an invalid file name." => "«.» é un nome de ficheiro incorrecto",
diff --git a/apps/files/l10n/he.php b/apps/files/l10n/he.php
index 7141c8442e2..40d7cc9c552 100644
--- a/apps/files/l10n/he.php
+++ b/apps/files/l10n/he.php
@@ -11,6 +11,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "תקיה זמנית חסרה",
"Failed to write to disk" => "הכתיבה לכונן נכשלה",
"Not enough storage available" => "אין די שטח פנוי באחסון",
+"Upload failed" => "ההעלאה נכשלה",
"Invalid directory." => "תיקייה שגויה.",
"Files" => "קבצים",
"Unable to upload your file as it is a directory or has 0 bytes" => "לא יכול להעלות את הקובץ מכיוון שזו תקיה או שמשקל הקובץ 0 בתים",
diff --git a/apps/files/l10n/hu_HU.php b/apps/files/l10n/hu_HU.php
index 741964503ff..66edbefbca5 100644
--- a/apps/files/l10n/hu_HU.php
+++ b/apps/files/l10n/hu_HU.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"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 storage available" => "Nincs elég szabad hely.",
+"Upload failed" => "A feltöltés nem sikerült",
"Invalid directory." => "Érvénytelen mappa.",
"Files" => "Fájlok",
"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ű",
diff --git a/apps/files/l10n/it.php b/apps/files/l10n/it.php
index 2d53da21604..b0ec954d907 100644
--- a/apps/files/l10n/it.php
+++ b/apps/files/l10n/it.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Manca una cartella temporanea",
"Failed to write to disk" => "Scrittura su disco non riuscita",
"Not enough storage available" => "Spazio di archiviazione insufficiente",
+"Upload failed" => "Caricamento non riuscito",
"Invalid directory." => "Cartella non valida.",
"Files" => "File",
"Unable to upload your file as it is a directory or has 0 bytes" => "Impossibile caricare il file poiché è una cartella o ha una dimensione di 0 byte",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "annulla",
"_%n folder_::_%n folders_" => array("%n cartella","%n cartelle"),
"_%n file_::_%n files_" => array("%n file","%n file"),
+"{dirs} and {files}" => "{dirs} e {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Caricamento di %n file in corso","Caricamento di %n file in corso"),
"files uploading" => "caricamento file",
"'.' is an invalid file name." => "'.' non è un nome file valido.",
diff --git a/apps/files/l10n/ja_JP.php b/apps/files/l10n/ja_JP.php
index 09675b63f51..5438cbb4976 100644
--- a/apps/files/l10n/ja_JP.php
+++ b/apps/files/l10n/ja_JP.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "一時保存フォルダが見つかりません",
"Failed to write to disk" => "ディスクへの書き込みに失敗しました",
"Not enough storage available" => "ストレージに十分な空き容量がありません",
+"Upload failed" => "アップロードに失敗",
"Invalid directory." => "無効なディレクトリです。",
"Files" => "ファイル",
"Unable to upload your file as it is a directory or has 0 bytes" => "ディレクトリもしくは0バイトのファイルはアップロードできません",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "元に戻す",
"_%n folder_::_%n folders_" => array("%n個のフォルダ"),
"_%n file_::_%n files_" => array("%n個のファイル"),
+"{dirs} and {files}" => "{dirs} と {files}",
"_Uploading %n file_::_Uploading %n files_" => array("%n 個のファイルをアップロード中"),
"files uploading" => "ファイルをアップロード中",
"'.' is an invalid file name." => "'.' は無効なファイル名です。",
diff --git a/apps/files/l10n/ka_GE.php b/apps/files/l10n/ka_GE.php
index 8fd522aebcc..455e3211a55 100644
--- a/apps/files/l10n/ka_GE.php
+++ b/apps/files/l10n/ka_GE.php
@@ -11,6 +11,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "დროებითი საქაღალდე არ არსებობს",
"Failed to write to disk" => "შეცდომა დისკზე ჩაწერისას",
"Not enough storage available" => "საცავში საკმარისი ადგილი არ არის",
+"Upload failed" => "ატვირთვა ვერ განხორციელდა",
"Invalid directory." => "დაუშვებელი დირექტორია.",
"Files" => "ფაილები",
"Unable to upload your file as it is a directory or has 0 bytes" => "თქვენი ფაილის ატვირთვა ვერ მოხერხდა. ის არის საქაღალდე და შეიცავს 0 ბაიტს",
diff --git a/apps/files/l10n/ko.php b/apps/files/l10n/ko.php
index 86666c70569..e2b787e7f91 100644
--- a/apps/files/l10n/ko.php
+++ b/apps/files/l10n/ko.php
@@ -11,6 +11,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "임시 폴더가 없음",
"Failed to write to disk" => "디스크에 쓰지 못했습니다",
"Not enough storage available" => "저장소가 용량이 충분하지 않습니다.",
+"Upload failed" => "업로드 실패",
"Invalid directory." => "올바르지 않은 디렉터리입니다.",
"Files" => "파일",
"Unable to upload your file as it is a directory or has 0 bytes" => "디렉터리 및 빈 파일은 업로드할 수 없습니다",
diff --git a/apps/files/l10n/ku_IQ.php b/apps/files/l10n/ku_IQ.php
index 9ec565da441..d98848a71f0 100644
--- a/apps/files/l10n/ku_IQ.php
+++ b/apps/files/l10n/ku_IQ.php
@@ -2,6 +2,7 @@
$TRANSLATIONS = array(
"URL cannot be empty." => "ناونیشانی به‌سته‌ر نابێت به‌تاڵ بێت.",
"Error" => "هه‌ڵه",
+"Share" => "هاوبەشی کردن",
"_%n folder_::_%n folders_" => array("",""),
"_%n file_::_%n files_" => array("",""),
"_Uploading %n file_::_Uploading %n files_" => array("",""),
diff --git a/apps/files/l10n/lt_LT.php b/apps/files/l10n/lt_LT.php
index 3bcc6b84439..0530adc2ae2 100644
--- a/apps/files/l10n/lt_LT.php
+++ b/apps/files/l10n/lt_LT.php
@@ -11,6 +11,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Nėra laikinojo katalogo",
"Failed to write to disk" => "Nepavyko įrašyti į diską",
"Not enough storage available" => "Nepakanka vietos serveryje",
+"Upload failed" => "Nusiuntimas nepavyko",
"Invalid directory." => "Neteisingas aplankas",
"Files" => "Failai",
"Unable to upload your file as it is a directory or has 0 bytes" => "Neįmanoma įkelti failo - jo dydis gali būti 0 bitų arba tai katalogas",
diff --git a/apps/files/l10n/lv.php b/apps/files/l10n/lv.php
index 52cea5305d0..d24aaca9e4c 100644
--- a/apps/files/l10n/lv.php
+++ b/apps/files/l10n/lv.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Trūkst pagaidu mapes",
"Failed to write to disk" => "Neizdevās saglabāt diskā",
"Not enough storage available" => "Nav pietiekami daudz vietas",
+"Upload failed" => "Neizdevās augšupielādēt",
"Invalid directory." => "Nederīga direktorija.",
"Files" => "Datnes",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nevar augšupielādēt jūsu datni, jo tā ir direktorija vai arī tā ir 0 baitu liela",
diff --git a/apps/files/l10n/nb_NO.php b/apps/files/l10n/nb_NO.php
index 5c7780825fb..55ce978d2a2 100644
--- a/apps/files/l10n/nb_NO.php
+++ b/apps/files/l10n/nb_NO.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Mangler midlertidig mappe",
"Failed to write to disk" => "Klarte ikke å skrive til disk",
"Not enough storage available" => "Ikke nok lagringsplass",
+"Upload failed" => "Opplasting feilet",
"Invalid directory." => "Ugyldig katalog.",
"Files" => "Filer",
"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",
diff --git a/apps/files/l10n/nl.php b/apps/files/l10n/nl.php
index a4386992cf6..8e9454e7945 100644
--- a/apps/files/l10n/nl.php
+++ b/apps/files/l10n/nl.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Er ontbreekt een tijdelijke map",
"Failed to write to disk" => "Schrijven naar schijf mislukt",
"Not enough storage available" => "Niet genoeg opslagruimte beschikbaar",
+"Upload failed" => "Upload mislukt",
"Invalid directory." => "Ongeldige directory.",
"Files" => "Bestanden",
"Unable to upload your file as it is a directory or has 0 bytes" => "Het lukt niet om uw bestand te uploaded, omdat het een folder of 0 bytes is",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "ongedaan maken",
"_%n folder_::_%n folders_" => array("","%n mappen"),
"_%n file_::_%n files_" => array("","%n bestanden"),
+"{dirs} and {files}" => "{dirs} en {files}",
"_Uploading %n file_::_Uploading %n files_" => array("%n bestand aan het uploaden","%n bestanden aan het uploaden"),
"files uploading" => "bestanden aan het uploaden",
"'.' is an invalid file name." => "'.' is een ongeldige bestandsnaam.",
diff --git a/apps/files/l10n/nn_NO.php b/apps/files/l10n/nn_NO.php
index 84402057a3a..58aafac27c4 100644
--- a/apps/files/l10n/nn_NO.php
+++ b/apps/files/l10n/nn_NO.php
@@ -2,6 +2,8 @@
$TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "Klarte ikkje flytta %s – det finst allereie ei fil med dette namnet",
"Could not move %s" => "Klarte ikkje flytta %s",
+"Unable to set upload directory." => "Klarte ikkje å endra opplastingsmappa.",
+"Invalid Token" => "Ugyldig token",
"No file was uploaded. Unknown error" => "Ingen filer lasta opp. Ukjend feil",
"There is no error, the file uploaded with success" => "Ingen feil, fila vart lasta opp",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Fila du lasta opp er større enn det «upload_max_filesize» i php.ini tillater: ",
@@ -11,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Manglar ei mellombels mappe",
"Failed to write to disk" => "Klarte ikkje skriva til disk",
"Not enough storage available" => "Ikkje nok lagringsplass tilgjengeleg",
+"Upload failed" => "Feil ved opplasting",
"Invalid directory." => "Ugyldig mappe.",
"Files" => "Filer",
"Unable to upload your file as it is a directory or has 0 bytes" => "Klarte ikkje lasta opp fila sidan ho er ei mappe eller er på 0 byte",
@@ -30,19 +33,22 @@ $TRANSLATIONS = array(
"cancel" => "avbryt",
"replaced {new_name} with {old_name}" => "bytte ut {new_name} med {old_name}",
"undo" => "angre",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
-"_Uploading %n file_::_Uploading %n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n mappe","%n mapper"),
+"_%n file_::_%n files_" => array("%n fil","%n filer"),
+"{dirs} and {files}" => "{dirs} og {files}",
+"_Uploading %n file_::_Uploading %n files_" => array("Lastar opp %n fil","Lastar opp %n filer"),
"files uploading" => "filer lastar opp",
"'.' is an invalid file name." => "«.» er eit ugyldig filnamn.",
"File name cannot be empty." => "Filnamnet kan ikkje vera tomt.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Ugyldig namn, «\\», «/», «<», «>», «:», «\"», «|», «?» og «*» er ikkje tillate.",
"Your storage is full, files can not be updated or synced anymore!" => "Lagringa di er full, kan ikkje lenger oppdatera eller synkronisera!",
"Your storage is almost full ({usedSpacePercent}%)" => "Lagringa di er nesten full ({usedSpacePercent} %)",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Kryptering er skrudd av, men filene dine er enno krypterte. Du kan dekryptera filene i personlege innstillingar.",
"Your download is being prepared. This might take some time if the files are big." => "Gjer klar nedlastinga di. Dette kan ta ei stund viss filene er store.",
"Name" => "Namn",
"Size" => "Storleik",
"Modified" => "Endra",
+"%s could not be renamed" => "Klarte ikkje å omdøypa på %s",
"Upload" => "Last opp",
"File handling" => "Filhandtering",
"Maximum upload size" => "Maksimal opplastingsstorleik",
diff --git a/apps/files/l10n/pl.php b/apps/files/l10n/pl.php
index c55d81cea2f..d8edf7173a8 100644
--- a/apps/files/l10n/pl.php
+++ b/apps/files/l10n/pl.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Brak folderu tymczasowego",
"Failed to write to disk" => "Błąd zapisu na dysk",
"Not enough storage available" => "Za mało dostępnego miejsca",
+"Upload failed" => "Wysyłanie nie powiodło się",
"Invalid directory." => "Zła ścieżka.",
"Files" => "Pliki",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nie można wczytać pliku, ponieważ jest on katalogiem lub ma 0 bajtów",
@@ -32,15 +33,17 @@ $TRANSLATIONS = array(
"cancel" => "anuluj",
"replaced {new_name} with {old_name}" => "zastąpiono {new_name} przez {old_name}",
"undo" => "cofnij",
-"_%n folder_::_%n folders_" => array("","",""),
-"_%n file_::_%n files_" => array("","",""),
-"_Uploading %n file_::_Uploading %n files_" => array("","",""),
+"_%n folder_::_%n folders_" => array("%n katalog","%n katalogi","%n katalogów"),
+"_%n file_::_%n files_" => array("%n plik","%n pliki","%n plików"),
+"{dirs} and {files}" => "{katalogi} and {pliki}",
+"_Uploading %n file_::_Uploading %n files_" => array("Wysyłanie %n pliku","Wysyłanie %n plików","Wysyłanie %n plików"),
"files uploading" => "pliki wczytane",
"'.' 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." => "Nieprawidłowa nazwa. Znaki '\\', '/', '<', '>', ':', '\"', '|', '?' oraz '*' są niedozwolone.",
"Your storage is full, files can not be updated or synced anymore!" => "Magazyn jest pełny. Pliki nie mogą zostać zaktualizowane lub zsynchronizowane!",
"Your storage is almost full ({usedSpacePercent}%)" => "Twój magazyn jest prawie pełny ({usedSpacePercent}%)",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Szyfrowanie zostało wyłączone, ale nadal pliki są zaszyfrowane. Przejdź do ustawień osobistych i tam odszyfruj pliki.",
"Your download is being prepared. This might take some time if the files are big." => "Pobieranie jest przygotowywane. Może to zająć trochę czasu jeśli pliki są duże.",
"Name" => "Nazwa",
"Size" => "Rozmiar",
diff --git a/apps/files/l10n/pt_BR.php b/apps/files/l10n/pt_BR.php
index bfe34bab21f..f9915f251b4 100644
--- a/apps/files/l10n/pt_BR.php
+++ b/apps/files/l10n/pt_BR.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Pasta temporária não encontrada",
"Failed to write to disk" => "Falha ao escrever no disco",
"Not enough storage available" => "Espaço de armazenamento insuficiente",
+"Upload failed" => "Falha no envio",
"Invalid directory." => "Diretório inválido.",
"Files" => "Arquivos",
"Unable to upload your file as it is a directory or has 0 bytes" => "Impossível enviar seus arquivo por ele ser um diretório ou ter 0 bytes.",
@@ -32,15 +33,17 @@ $TRANSLATIONS = array(
"cancel" => "cancelar",
"replaced {new_name} with {old_name}" => "Substituído {old_name} por {new_name} ",
"undo" => "desfazer",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
-"_Uploading %n file_::_Uploading %n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n pasta","%n pastas"),
+"_%n file_::_%n files_" => array("%n arquivo","%n arquivos"),
+"{dirs} and {files}" => "{dirs} e {files}",
+"_Uploading %n file_::_Uploading %n files_" => array("Enviando %n arquivo","Enviando %n arquivos"),
"files uploading" => "enviando arquivos",
"'.' is an invalid file name." => "'.' é um nome de arquivo inválido.",
"File name cannot be empty." => "O nome do arquivo não pode estar vazio.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nome inválido, '\\', '/', '<', '>', ':', '\"', '|', '?' e '*' não são permitidos.",
"Your storage is full, files can not be updated or synced anymore!" => "Seu armazenamento está cheio, arquivos não podem mais ser atualizados ou sincronizados!",
"Your storage is almost full ({usedSpacePercent}%)" => "Seu armazenamento está quase cheio ({usedSpacePercent}%)",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Encriptação foi desabilitada mas seus arquivos continuam encriptados. Por favor vá a suas configurações pessoais para descriptar seus arquivos.",
"Your download is being prepared. This might take some time if the files are big." => "Seu download está sendo preparado. Isto pode levar algum tempo se os arquivos forem grandes.",
"Name" => "Nome",
"Size" => "Tamanho",
diff --git a/apps/files/l10n/pt_PT.php b/apps/files/l10n/pt_PT.php
index 8cd73a9f70c..33ec8cddce6 100644
--- a/apps/files/l10n/pt_PT.php
+++ b/apps/files/l10n/pt_PT.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Está a faltar a pasta temporária",
"Failed to write to disk" => "Falhou a escrita no disco",
"Not enough storage available" => "Não há espaço suficiente em disco",
+"Upload failed" => "Carregamento falhou",
"Invalid directory." => "Directório Inválido",
"Files" => "Ficheiros",
"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",
@@ -32,15 +33,17 @@ $TRANSLATIONS = array(
"cancel" => "cancelar",
"replaced {new_name} with {old_name}" => "substituido {new_name} por {old_name}",
"undo" => "desfazer",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
-"_Uploading %n file_::_Uploading %n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n pasta","%n pastas"),
+"_%n file_::_%n files_" => array("%n ficheiro","%n ficheiros"),
+"{dirs} and {files}" => "{dirs} e {files}",
+"_Uploading %n file_::_Uploading %n files_" => array("A carregar %n ficheiro","A carregar %n ficheiros"),
"files uploading" => "A enviar os ficheiros",
"'.' 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.",
"Your storage is full, files can not be updated or synced anymore!" => "O seu armazenamento está cheio, os ficheiros não podem ser sincronizados.",
"Your storage is almost full ({usedSpacePercent}%)" => "O seu espaço de armazenamento está quase cheiro ({usedSpacePercent}%)",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "A encriptação foi desactivada mas os seus ficheiros continuam encriptados. Por favor consulte as suas definições pessoais para desencriptar os ficheiros.",
"Your download is being prepared. This might take some time if the files are big." => "O seu download está a ser preparado. Este processo pode demorar algum tempo se os ficheiros forem grandes.",
"Name" => "Nome",
"Size" => "Tamanho",
diff --git a/apps/files/l10n/ro.php b/apps/files/l10n/ro.php
index 3b5359384ac..0a96eaa2479 100644
--- a/apps/files/l10n/ro.php
+++ b/apps/files/l10n/ro.php
@@ -6,26 +6,27 @@ $TRANSLATIONS = array(
"Invalid Token" => "Jeton Invalid",
"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" => "Nu a apărut nici o 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 upload_max_filesize directive in php.ini: " => "Fisierul incarcat depaseste marimea maxima permisa 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" => "Nu a fost încărcat nici un fișier",
-"Missing a temporary folder" => "Lipsește un director temporar",
-"Failed to write to disk" => "Eroare la scriere pe disc",
+"Missing a temporary folder" => "Lipsește un dosar temporar",
+"Failed to write to disk" => "Eroare la scrierea discului",
"Not enough storage available" => "Nu este suficient spațiu disponibil",
-"Invalid directory." => "Director invalid.",
+"Upload failed" => "Încărcarea a eșuat",
+"Invalid directory." => "registru invalid.",
"Files" => "Fișiere",
-"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.",
+"Unable to upload your file as it is a directory or has 0 bytes" => "lista nu se poate incarca poate fi un fisier sau are 0 bytes",
"Not enough space available" => "Nu este suficient spațiu disponibil",
"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ă.",
+"URL cannot be empty." => "Adresa URL nu poate fi golita",
"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Nume de dosar invalid. Utilizarea 'Shared' e rezervată de ownCloud",
"Error" => "Eroare",
-"Share" => "Partajează",
+"Share" => "a imparti",
"Delete permanently" => "Stergere permanenta",
"Rename" => "Redenumire",
-"Pending" => "În așteptare",
+"Pending" => "in timpul",
"{new_name} already exists" => "{new_name} deja exista",
"replace" => "înlocuire",
"suggest name" => "sugerează nume",
@@ -38,10 +39,11 @@ $TRANSLATIONS = array(
"files uploading" => "fișiere se încarcă",
"'.' 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.",
-"Your storage is full, files can not be updated or synced anymore!" => "Spatiul de stocare este plin, nu mai puteti incarca s-au sincroniza alte fisiere.",
-"Your storage is almost full ({usedSpacePercent}%)" => "Spatiul de stocare este aproape plin ({usedSpacePercent}%)",
-"Your download is being prepared. This might take some time if the files are big." => "Se pregătește descărcarea. Aceasta poate să dureze ceva timp dacă fișierele sunt mari.",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Nume invalide, '\\', '/', '<', '>', ':', '\"', '|', '?' si '*' nu sunt permise.",
+"Your storage is full, files can not be updated or synced anymore!" => "Spatiul de stocare este plin, fisierele nu mai pot fi actualizate sau sincronizate",
+"Your storage is almost full ({usedSpacePercent}%)" => "Spatiul de stocare este aproape plin {spatiu folosit}%",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "criptarea a fost disactivata dar fisierele sant inca criptate.va rog intrati in setarile personale pentru a decripta fisierele",
+"Your download is being prepared. This might take some time if the files are big." => "in curs de descarcare. Aceasta poate să dureze ceva timp dacă fișierele sunt mari.",
"Name" => "Nume",
"Size" => "Dimensiune",
"Modified" => "Modificat",
@@ -50,25 +52,25 @@ $TRANSLATIONS = array(
"File handling" => "Manipulare fișiere",
"Maximum upload size" => "Dimensiune maximă admisă la încărcare",
"max. possible: " => "max. posibil:",
-"Needed for multi-file and folder downloads." => "Necesar pentru descărcarea mai multor fișiere și a dosarelor",
-"Enable ZIP-download" => "Activează descărcare fișiere compresate",
+"Needed for multi-file and folder downloads." => "necesar la descarcarea mai multor liste si fisiere",
+"Enable ZIP-download" => "permite descarcarea codurilor ZIP",
"0 is unlimited" => "0 e nelimitat",
"Maximum input size for ZIP files" => "Dimensiunea maximă de intrare pentru fișiere compresate",
"Save" => "Salvează",
"New" => "Nou",
-"Text file" => "Fișier text",
+"Text file" => "lista",
"Folder" => "Dosar",
"From link" => "de la adresa",
"Deleted files" => "Sterge fisierele",
"Cancel upload" => "Anulează încărcarea",
-"You don’t have write permissions here." => "Nu ai permisiunea de a sterge fisiere aici.",
+"You don’t have write permissions here." => "Nu ai permisiunea de a scrie aici.",
"Nothing in here. Upload something!" => "Nimic aici. Încarcă ceva!",
"Download" => "Descarcă",
-"Unshare" => "Anulare partajare",
+"Unshare" => "Anulare",
"Delete" => "Șterge",
"Upload too large" => "Fișierul încărcat este prea mare",
"The files you are trying to upload exceed the maximum size for file uploads on this server." => "Fișierul care l-ai încărcat a depășită limita maximă admisă la încărcare pe acest server.",
-"Files are being scanned, please wait." => "Fișierele sunt scanate, te rog așteptă.",
+"Files are being scanned, please wait." => "Fișierele sunt scanate, asteptati va rog",
"Current scanning" => "În curs de scanare",
"Upgrading filesystem cache..." => "Modernizare fisiere de sistem cache.."
);
diff --git a/apps/files/l10n/ru.php b/apps/files/l10n/ru.php
index e0bf97038d4..96f52a9045c 100644
--- a/apps/files/l10n/ru.php
+++ b/apps/files/l10n/ru.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Отсутствует временная папка",
"Failed to write to disk" => "Ошибка записи на диск",
"Not enough storage available" => "Недостаточно доступного места в хранилище",
+"Upload failed" => "Ошибка загрузки",
"Invalid directory." => "Неправильный каталог.",
"Files" => "Файлы",
"Unable to upload your file as it is a directory or has 0 bytes" => "Файл не был загружен: его размер 0 байт либо это не файл, а директория.",
diff --git a/apps/files/l10n/si_LK.php b/apps/files/l10n/si_LK.php
index 7d24370a092..1fd18d0c56f 100644
--- a/apps/files/l10n/si_LK.php
+++ b/apps/files/l10n/si_LK.php
@@ -7,6 +7,7 @@ $TRANSLATIONS = array(
"No file was uploaded" => "ගොනුවක් උඩුගත නොවුණි",
"Missing a temporary folder" => "තාවකාලික ෆොල්ඩරයක් අතුරුදහන්",
"Failed to write to disk" => "තැටිගත කිරීම අසාර්ථකයි",
+"Upload failed" => "උඩුගත කිරීම අසාර්ථකයි",
"Files" => "ගොනු",
"Upload cancelled." => "උඩුගත කිරීම අත් හරින්න ලදී",
"File upload is in progress. Leaving the page now will cancel the upload." => "උඩුගතකිරීමක් සිදුවේ. පිටුව හැර යාමෙන් එය නැවතෙනු ඇත",
diff --git a/apps/files/l10n/sk_SK.php b/apps/files/l10n/sk_SK.php
index e7ade013792..b30f263d244 100644
--- a/apps/files/l10n/sk_SK.php
+++ b/apps/files/l10n/sk_SK.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Chýba dočasný priečinok",
"Failed to write to disk" => "Zápis na disk sa nepodaril",
"Not enough storage available" => "Nedostatok dostupného úložného priestoru",
+"Upload failed" => "Odoslanie bolo neúspešné",
"Invalid directory." => "Neplatný priečinok.",
"Files" => "Súbory",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nedá sa odoslať Váš súbor, pretože je to priečinok, alebo je jeho veľkosť 0 bajtov",
diff --git a/apps/files/l10n/sl.php b/apps/files/l10n/sl.php
index 6819ed3a3b3..08f789ff866 100644
--- a/apps/files/l10n/sl.php
+++ b/apps/files/l10n/sl.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Manjka začasna mapa",
"Failed to write to disk" => "Pisanje na disk je spodletelo",
"Not enough storage available" => "Na voljo ni dovolj prostora",
+"Upload failed" => "Pošiljanje je spodletelo",
"Invalid directory." => "Neveljavna mapa.",
"Files" => "Datoteke",
"Unable to upload your file as it is a directory or has 0 bytes" => "Pošiljanja ni mogoče izvesti, saj gre za mapo oziroma datoteko velikosti 0 bajtov.",
diff --git a/apps/files/l10n/sq.php b/apps/files/l10n/sq.php
index ff09e7b4f95..3207e3a165c 100644
--- a/apps/files/l10n/sq.php
+++ b/apps/files/l10n/sq.php
@@ -2,6 +2,8 @@
$TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "%s nuk u spostua - Aty ekziston një skedar me të njëjtin emër",
"Could not move %s" => "%s nuk u spostua",
+"Unable to set upload directory." => "Nuk është i mundur caktimi i dosjes së ngarkimit.",
+"Invalid Token" => "Përmbajtje e pavlefshme",
"No file was uploaded. Unknown error" => "Nuk u ngarkua asnjë skedar. Veprim i gabuar i panjohur",
"There is no error, the file uploaded with success" => "Nuk pati veprime të gabuara, skedari u ngarkua me sukses",
"The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Skedari i ngarkuar tejkalon udhëzimin upload_max_filesize tek php.ini:",
@@ -11,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Një dosje e përkohshme nuk u gjet",
"Failed to write to disk" => "Ruajtja në disk dështoi",
"Not enough storage available" => "Nuk ka mbetur hapësirë memorizimi e mjaftueshme",
+"Upload failed" => "Ngarkimi dështoi",
"Invalid directory." => "Dosje e pavlefshme.",
"Files" => "Skedarët",
"Unable to upload your file as it is a directory or has 0 bytes" => "Nuk është i mundur ngarkimi i skedarit tuaj sepse është dosje ose ka dimension 0 byte",
@@ -18,6 +21,7 @@ $TRANSLATIONS = array(
"Upload cancelled." => "Ngarkimi u anulua.",
"File upload is in progress. Leaving the page now will cancel the upload." => "Ngarkimi i skedarit është në vazhdim. Nqse ndërroni faqen tani ngarkimi do të anulohet.",
"URL cannot be empty." => "URL-i nuk mund të jetë bosh.",
+"Invalid folder name. Usage of 'Shared' is reserved by ownCloud" => "Emri i dosjes është i pavlefshëm. Përdorimi i \"Shared\" është i rezervuar nga Owncloud-i",
"Error" => "Veprim i gabuar",
"Share" => "Nda",
"Delete permanently" => "Elimino përfundimisht",
@@ -29,19 +33,22 @@ $TRANSLATIONS = array(
"cancel" => "anulo",
"replaced {new_name} with {old_name}" => "U zëvëndësua {new_name} me {old_name}",
"undo" => "anulo",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
-"_Uploading %n file_::_Uploading %n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n dosje","%n dosje"),
+"_%n file_::_%n files_" => array("%n skedar","%n skedarë"),
+"{dirs} and {files}" => "{dirs} dhe {files}",
+"_Uploading %n file_::_Uploading %n files_" => array("Po ngarkoj %n skedar","Po ngarkoj %n skedarë"),
"files uploading" => "po ngarkoj skedarët",
"'.' is an invalid file name." => "'.' është emër i pavlefshëm.",
"File name cannot be empty." => "Emri i skedarit nuk mund të jetë bosh.",
"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "Emër i pavlefshëm, '\\', '/', '<', '>', ':', '\"', '|', '?' dhe '*' nuk lejohen.",
"Your storage is full, files can not be updated or synced anymore!" => "Hapësira juaj e memorizimit është plot, nuk mund të ngarkoni apo sinkronizoni më skedarët.",
"Your storage is almost full ({usedSpacePercent}%)" => "Hapësira juaj e memorizimit është gati plot ({usedSpacePercent}%)",
+"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "Kodifikimi u çaktivizua por skedarët tuaj vazhdojnë të jenë të kodifikuar. Ju lutem shkoni tek parametrat personale për të dekodifikuar skedarët tuaj.",
"Your download is being prepared. This might take some time if the files are big." => "Shkarkimi juaj po përgatitet. Mund të duhet pak kohë nqse skedarët janë të mëdhenj.",
"Name" => "Emri",
"Size" => "Dimensioni",
"Modified" => "Modifikuar",
+"%s could not be renamed" => "Nuk është i mundur riemërtimi i %s",
"Upload" => "Ngarko",
"File handling" => "Trajtimi i skedarit",
"Maximum upload size" => "Dimensioni maksimal i ngarkimit",
diff --git a/apps/files/l10n/sr.php b/apps/files/l10n/sr.php
index b8cf91f4da6..73f8ace5c81 100644
--- a/apps/files/l10n/sr.php
+++ b/apps/files/l10n/sr.php
@@ -11,6 +11,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Недостаје привремена фасцикла",
"Failed to write to disk" => "Не могу да пишем на диск",
"Not enough storage available" => "Нема довољно простора",
+"Upload failed" => "Отпремање није успело",
"Invalid directory." => "неисправна фасцикла.",
"Files" => "Датотеке",
"Unable to upload your file as it is a directory or has 0 bytes" => "Не могу да отпремим датотеку као фасциклу или она има 0 бајтова",
diff --git a/apps/files/l10n/sv.php b/apps/files/l10n/sv.php
index 20bf77bb609..fbbe1f15910 100644
--- a/apps/files/l10n/sv.php
+++ b/apps/files/l10n/sv.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "En temporär mapp saknas",
"Failed to write to disk" => "Misslyckades spara till disk",
"Not enough storage available" => "Inte tillräckligt med lagringsutrymme tillgängligt",
+"Upload failed" => "Misslyckad uppladdning",
"Invalid directory." => "Felaktig mapp.",
"Files" => "Filer",
"Unable to upload your file as it is a directory or has 0 bytes" => "Kan inte ladda upp din fil eftersom det är en katalog eller har 0 bytes",
@@ -34,6 +35,7 @@ $TRANSLATIONS = array(
"undo" => "ångra",
"_%n folder_::_%n folders_" => array("%n mapp","%n mappar"),
"_%n file_::_%n files_" => array("%n fil","%n filer"),
+"{dirs} and {files}" => "{dirs} och {files}",
"_Uploading %n file_::_Uploading %n files_" => array("Laddar upp %n fil","Laddar upp %n filer"),
"files uploading" => "filer laddas upp",
"'.' is an invalid file name." => "'.' är ett ogiltigt filnamn.",
diff --git a/apps/files/l10n/ta_LK.php b/apps/files/l10n/ta_LK.php
index fc52c16daf3..154e0d6796e 100644
--- a/apps/files/l10n/ta_LK.php
+++ b/apps/files/l10n/ta_LK.php
@@ -7,6 +7,7 @@ $TRANSLATIONS = array(
"No file was uploaded" => "எந்த கோப்பும் பதிவேற்றப்படவில்லை",
"Missing a temporary folder" => "ஒரு தற்காலிகமான கோப்புறையை காணவில்லை",
"Failed to write to disk" => "வட்டில் எழுத முடியவில்லை",
+"Upload failed" => "பதிவேற்றல் தோல்வியுற்றது",
"Files" => "கோப்புகள்",
"Unable to upload your file as it is a directory or has 0 bytes" => "அடைவு அல்லது 0 bytes ஐ கொண்டுள்ளதால் உங்களுடைய கோப்பை பதிவேற்ற முடியவில்லை",
"Upload cancelled." => "பதிவேற்றல் இரத்து செய்யப்பட்டுள்ளது",
diff --git a/apps/files/l10n/th_TH.php b/apps/files/l10n/th_TH.php
index b65c0bc705e..aa8cf4e9b50 100644
--- a/apps/files/l10n/th_TH.php
+++ b/apps/files/l10n/th_TH.php
@@ -11,6 +11,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "โฟลเดอร์ชั่วคราวเกิดการสูญหาย",
"Failed to write to disk" => "เขียนข้อมูลลงแผ่นดิสก์ล้มเหลว",
"Not enough storage available" => "เหลือพื้นที่ไม่เพียงสำหรับใช้งาน",
+"Upload failed" => "อัพโหลดล้มเหลว",
"Invalid directory." => "ไดเร็กทอรี่ไม่ถูกต้อง",
"Files" => "ไฟล์",
"Unable to upload your file as it is a directory or has 0 bytes" => "ไม่สามารถอัพโหลดไฟล์ของคุณได้ เนื่องจากไฟล์ดังกล่าวเป็นไดเร็กทอรี่ หรือ มีขนาดไฟล์ 0 ไบต์",
diff --git a/apps/files/l10n/tr.php b/apps/files/l10n/tr.php
index d317b11d532..dd089757d5f 100644
--- a/apps/files/l10n/tr.php
+++ b/apps/files/l10n/tr.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Geçici dizin eksik",
"Failed to write to disk" => "Diske yazılamadı",
"Not enough storage available" => "Yeterli disk alanı yok",
+"Upload failed" => "Yükleme başarısız",
"Invalid directory." => "Geçersiz dizin.",
"Files" => "Dosyalar",
"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",
diff --git a/apps/files/l10n/uk.php b/apps/files/l10n/uk.php
index 79a18231d2c..bea1d930799 100644
--- a/apps/files/l10n/uk.php
+++ b/apps/files/l10n/uk.php
@@ -2,6 +2,7 @@
$TRANSLATIONS = array(
"Could not move %s - File with this name already exists" => "Не вдалося перемістити %s - Файл з таким ім'ям вже існує",
"Could not move %s" => "Не вдалося перемістити %s",
+"Unable to set upload directory." => "Не вдалося встановити каталог завантаження.",
"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: ",
@@ -11,6 +12,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Відсутній тимчасовий каталог",
"Failed to write to disk" => "Невдалося записати на диск",
"Not enough storage available" => "Місця більше немає",
+"Upload failed" => "Помилка завантаження",
"Invalid directory." => "Невірний каталог.",
"Files" => "Файли",
"Unable to upload your file as it is a directory or has 0 bytes" => "Неможливо завантажити ваш файл тому, що він тека або файл розміром 0 байт",
diff --git a/apps/files/l10n/vi.php b/apps/files/l10n/vi.php
index 02b184d218c..b98a14f6d7b 100644
--- a/apps/files/l10n/vi.php
+++ b/apps/files/l10n/vi.php
@@ -11,6 +11,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "Không tìm thấy thư mục tạm",
"Failed to write to disk" => "Không thể ghi ",
"Not enough storage available" => "Không đủ không gian lưu trữ",
+"Upload failed" => "Tải lên thất bại",
"Invalid directory." => "Thư mục không hợp lệ",
"Files" => "Tập tin",
"Unable to upload your file as it is a directory or has 0 bytes" => "Không thể tải lên tập tin của bạn ,nó như là một thư mục hoặc có 0 byte",
diff --git a/apps/files/l10n/zh_CN.php b/apps/files/l10n/zh_CN.php
index fa2e3403f4b..59b09ad950b 100644
--- a/apps/files/l10n/zh_CN.php
+++ b/apps/files/l10n/zh_CN.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "缺少临时目录",
"Failed to write to disk" => "写入磁盘失败",
"Not enough storage available" => "没有足够的存储空间",
+"Upload failed" => "上传失败",
"Invalid directory." => "无效文件夹。",
"Files" => "文件",
"Unable to upload your file as it is a directory or has 0 bytes" => "无法上传您的文件,文件夹或者空文件",
diff --git a/apps/files/l10n/zh_TW.php b/apps/files/l10n/zh_TW.php
index 6ba8bf35de8..21c929f81a6 100644
--- a/apps/files/l10n/zh_TW.php
+++ b/apps/files/l10n/zh_TW.php
@@ -1,11 +1,11 @@
<?php
$TRANSLATIONS = array(
-"Could not move %s - File with this name already exists" => "無法移動 %s - 同名的檔案已經存在",
+"Could not move %s - File with this name already exists" => "無法移動 %s ,同名的檔案已經存在",
"Could not move %s" => "無法移動 %s",
-"Unable to set upload directory." => "無法設定上傳目錄。",
+"Unable to set upload directory." => "無法設定上傳目錄",
"Invalid Token" => "無效的 token",
-"No file was uploaded. Unknown error" => "沒有檔案被上傳。未知的錯誤。",
-"There is no error, the file uploaded with success" => "無錯誤,檔案上傳成功",
+"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" => "只有檔案的一部分被上傳",
@@ -13,13 +13,14 @@ $TRANSLATIONS = array(
"Missing a temporary folder" => "找不到暫存資料夾",
"Failed to write to disk" => "寫入硬碟失敗",
"Not enough storage available" => "儲存空間不足",
-"Invalid directory." => "無效的資料夾。",
+"Upload failed" => "上傳失敗",
+"Invalid directory." => "無效的資料夾",
"Files" => "檔案",
-"Unable to upload your file as it is a directory or has 0 bytes" => "無法上傳您的檔案因為它可能是一個目錄或檔案大小為0",
+"Unable to upload your file as it is a directory or has 0 bytes" => "無法上傳您的檔案,因為它可能是一個目錄或檔案大小為0",
"Not enough space available" => "沒有足夠的可用空間",
"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 保留",
"Error" => "錯誤",
"Share" => "分享",
@@ -34,43 +35,44 @@ $TRANSLATIONS = array(
"undo" => "復原",
"_%n folder_::_%n folders_" => array("%n 個資料夾"),
"_%n file_::_%n files_" => array("%n 個檔案"),
+"{dirs} and {files}" => "{dirs} 和 {files}",
"_Uploading %n file_::_Uploading %n files_" => array("%n 個檔案正在上傳"),
-"files uploading" => "檔案正在上傳中",
-"'.' is an invalid file name." => "'.' 是不合法的檔名。",
-"File name cannot be empty." => "檔名不能為空。",
-"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "檔名不合法,不允許 '\\', '/', '<', '>', ':', '\"', '|', '?' 和 '*' 。",
+"files uploading" => "檔案上傳中",
+"'.' is an invalid file name." => "'.' 是不合法的檔名",
+"File name cannot be empty." => "檔名不能為空",
+"Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed." => "檔名不合法,不允許 \\ / < > : \" | ? * 字元",
"Your storage is full, files can not be updated or synced anymore!" => "您的儲存空間已滿,沒有辦法再更新或是同步檔案!",
"Your storage is almost full ({usedSpacePercent}%)" => "您的儲存空間快要滿了 ({usedSpacePercent}%)",
"Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files." => "加密已經被停用,但是您的舊檔案還是處於已加密的狀態,請前往個人設定以解密這些檔案。",
"Your download is being prepared. This might take some time if the files are big." => "正在準備您的下載,若您的檔案較大,將會需要更多時間。",
"Name" => "名稱",
"Size" => "大小",
-"Modified" => "修改",
+"Modified" => "修改時間",
"%s could not be renamed" => "無法重新命名 %s",
"Upload" => "上傳",
"File handling" => "檔案處理",
-"Maximum upload size" => "最大上傳檔案大小",
+"Maximum upload size" => "上傳限制",
"max. possible: " => "最大允許:",
-"Needed for multi-file and folder downloads." => "針對多檔案和目錄下載是必填的。",
-"Enable ZIP-download" => "啟用 Zip 下載",
+"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" => "從連結",
-"Deleted files" => "已刪除的檔案",
+"Deleted files" => "回收桶",
"Cancel upload" => "取消上傳",
-"You don’t have write permissions here." => "您在這裡沒有編輯權。",
-"Nothing in here. Upload something!" => "這裡什麼也沒有,上傳一些東西吧!",
+"You don’t have write permissions here." => "您在這裡沒有編輯權",
+"Nothing in here. Upload something!" => "這裡還沒有東西,上傳一些吧!",
"Download" => "下載",
-"Unshare" => "取消共享",
+"Unshare" => "取消分享",
"Delete" => "刪除",
"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" => "目前掃描",
-"Upgrading filesystem cache..." => "正在升級檔案系統快取..."
+"Current scanning" => "正在掃描",
+"Upgrading filesystem cache..." => "正在升級檔案系統快取…"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php
index 7135ef9f656..9170c6e3fc0 100644
--- a/apps/files/lib/helper.php
+++ b/apps/files/lib/helper.php
@@ -17,4 +17,33 @@ class Helper
'maxHumanFilesize' => $maxHumanFilesize,
'usedSpacePercent' => (int)$storageInfo['relative']);
}
+
+ public static function determineIcon($file) {
+ if($file['type'] === 'dir') {
+ $dir = $file['directory'];
+ $absPath = \OC\Files\Filesystem::getView()->getAbsolutePath($dir.'/'.$file['name']);
+ $mount = \OC\Files\Filesystem::getMountManager()->find($absPath);
+ if (!is_null($mount)) {
+ $sid = $mount->getStorageId();
+ if (!is_null($sid)) {
+ $sid = explode(':', $sid);
+ if ($sid[0] === 'shared') {
+ return \OC_Helper::mimetypeIcon('dir-shared');
+ }
+ if ($sid[0] !== 'local') {
+ return \OC_Helper::mimetypeIcon('dir-external');
+ }
+ }
+ }
+ return \OC_Helper::mimetypeIcon('dir');
+ }
+
+ if($file['isPreviewAvailable']) {
+ $relativePath = substr($file['path'], 6);
+ return \OC_Helper::previewIcon($relativePath);
+ }
+ return \OC_Helper::mimetypeIcon($file['mimetype']);
+ }
+
+
}
diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php
index 2f7e0af4f28..29cb457cd5a 100644
--- a/apps/files/templates/index.php
+++ b/apps/files/templates/index.php
@@ -56,7 +56,7 @@
</div>
<?php if (isset($_['files']) and $_['isCreatable'] and count($_['files'])==0):?>
- <div id="emptyfolder"><?php p($l->t('Nothing in here. Upload something!'))?></div>
+ <div id="emptycontent"><?php p($l->t('Nothing in here. Upload something!'))?></div>
<?php endif; ?>
<table id="filestable" data-allow-public-upload="<?php p($_['publicUploadEnabled'])?>" data-preview-x="36" data-preview-y="36">
@@ -104,7 +104,7 @@
<?php print_unescaped($_['fileList']); ?>
</tbody>
</table>
-<div id="editor"></div>
+<div id="editor"></div><!-- FIXME Do not use this div in your app! It is deprecated and will be removed in the future! -->
<div id="uploadsize-message" title="<?php p($l->t('Upload too large'))?>">
<p>
<?php p($l->t('The files you are trying to upload exceed the maximum size for file uploads on this server.'));?>
diff --git a/apps/files/templates/part.list.php b/apps/files/templates/part.list.php
index 4076c1bb331..9e1750faddf 100644
--- a/apps/files/templates/part.list.php
+++ b/apps/files/templates/part.list.php
@@ -1,7 +1,5 @@
<input type="hidden" id="disableSharing" data-status="<?php p($_['disableSharing']); ?>">
<?php foreach($_['files'] as $file):
- //strlen('files/') => 6
- $relativePath = substr($file['path'], 6);
// the bigger the file, the darker the shade of grey; megabytes*2
$simple_size_color = intval(160-$file['size']/(1024*1024)*2);
if($simple_size_color<0) $simple_size_color = 0;
@@ -22,26 +20,7 @@
<?php else: ?>
<td class="filename svg"
<?php endif; ?>
- <?php if($file['type'] == 'dir'): ?>
- style="background-image:url(<?php print_unescaped(OCP\mimetype_icon('dir')); ?>)"
- <?php else: ?>
- <?php if($_['isPublic']): ?>
- <?php
- $relativePath = substr($relativePath, strlen($_['sharingroot']));
- ?>
- <?php if($file['isPreviewAvailable']): ?>
- style="background-image:url(<?php print_unescaped(OCP\publicPreview_icon($relativePath, $_['sharingtoken'])); ?>)"
- <?php else: ?>
- style="background-image:url(<?php print_unescaped(OCP\mimetype_icon($file['mimetype'])); ?>)"
- <?php endif; ?>
- <?php else: ?>
- <?php if($file['isPreviewAvailable']): ?>
- style="background-image:url(<?php print_unescaped(OCP\preview_icon($relativePath)); ?>)"
- <?php else: ?>
- style="background-image:url(<?php print_unescaped(OCP\mimetype_icon($file['mimetype'])); ?>)"
- <?php endif; ?>
- <?php endif; ?>
- <?php endif; ?>
+ style="background-image:url(<?php print_unescaped($file['icon']); ?>)"
>
<?php if(!isset($_['readonly']) || !$_['readonly']): ?>
<input id="select-<?php p($file['fileid']); ?>" type="checkbox" />
diff --git a/apps/files_encryption/hooks/hooks.php b/apps/files_encryption/hooks/hooks.php
index de306462d79..85169e6a1d0 100644
--- a/apps/files_encryption/hooks/hooks.php
+++ b/apps/files_encryption/hooks/hooks.php
@@ -36,14 +36,6 @@ class Hooks {
*/
public static function login($params) {
$l = new \OC_L10N('files_encryption');
- //check if all requirements are met
- if(!Helper::checkRequirements() || !Helper::checkConfiguration() ) {
- $error_msg = $l->t("Missing requirements.");
- $hint = $l->t('Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled.');
- \OC_App::disable('files_encryption');
- \OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR);
- \OCP\Template::printErrorPage($error_msg, $hint);
- }
$view = new \OC_FilesystemView('/');
@@ -54,6 +46,15 @@ class Hooks {
$util = new Util($view, $params['uid']);
+ //check if all requirements are met
+ if(!$util->ready() && (!Helper::checkRequirements() || !Helper::checkConfiguration())) {
+ $error_msg = $l->t("Missing requirements.");
+ $hint = $l->t('Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled.');
+ \OC_App::disable('files_encryption');
+ \OCP\Util::writeLog('Encryption library', $error_msg . ' ' . $hint, \OCP\Util::ERROR);
+ \OCP\Template::printErrorPage($error_msg, $hint);
+ }
+
// setup user, if user not ready force relogin
if (Helper::setupUser($util, $params['password']) === false) {
return false;
diff --git a/apps/files_encryption/l10n/es.php b/apps/files_encryption/l10n/es.php
index 8341bafc9fd..2d644708c59 100644
--- a/apps/files_encryption/l10n/es.php
+++ b/apps/files_encryption/l10n/es.php
@@ -10,6 +10,8 @@ $TRANSLATIONS = array(
"Could not update the private key password. Maybe the old password was not correct." => "No se pudo cambiar la contraseña. Puede que la contraseña antigua no sea correcta.",
"Your private key is not valid! Likely your password was changed outside the ownCloud system (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera. Puede actualizar su clave privada en sus opciones personales para recuperar el acceso a sus ficheros.",
"Missing requirements." => "Requisitos incompletos.",
+"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, asegúrese de que PHP 5.3.3 o posterior está instalado y que la extensión OpenSSL de PHP está habilitada y configurada correctamente. Por el momento, la aplicación de cifrado ha sido deshabilitada.",
+"Following users are not set up for encryption:" => "Los siguientes usuarios no han sido configurados para el cifrado:",
"Saving..." => "Guardando...",
"Your private key is not valid! Maybe the your password was changed from outside." => "¡Su clave privada no es válida! Tal vez su contraseña ha sido cambiada desde fuera.",
"You can unlock your private key in your " => "Puede desbloquear su clave privada en su",
diff --git a/apps/files_encryption/l10n/es_AR.php b/apps/files_encryption/l10n/es_AR.php
index cac8c465362..666ea59687c 100644
--- a/apps/files_encryption/l10n/es_AR.php
+++ b/apps/files_encryption/l10n/es_AR.php
@@ -10,6 +10,8 @@ $TRANSLATIONS = array(
"Could not update the private key password. Maybe the old password was not correct." => "No fue posible actualizar la contraseña de clave privada. Tal vez la contraseña anterior no es correcta.",
"Your private key is not valid! Likely your password was changed outside the ownCloud system (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "¡Tu clave privada no es válida! Tal vez tu contraseña fue cambiada desde fuera del sistema de ownCloud (por ej. desde tu cuenta de sistema). Podés actualizar tu clave privada en la sección de \"configuración personal\", para recuperar el acceso a tus archivos.",
"Missing requirements." => "Requisitos incompletos.",
+"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, asegúrese de que PHP 5.3.3 o una versión más reciente esté instalado y que OpenSSL junto con la extensión PHP esté habilitado y configurado apropiadamente. Por ahora, la aplicación de encriptación ha sido deshabilitada.",
+"Following users are not set up for encryption:" => "Los siguientes usuarios no fueron configurados para encriptar:",
"Saving..." => "Guardando...",
"Your private key is not valid! Maybe the your password was changed from outside." => "¡Tu clave privada no es válida! Tal vez tu contraseña fue cambiada desde afuera.",
"You can unlock your private key in your " => "Podés desbloquear tu clave privada en tu",
diff --git a/apps/files_encryption/l10n/fi_FI.php b/apps/files_encryption/l10n/fi_FI.php
index 53b0a6b25cd..b3df41b1f42 100644
--- a/apps/files_encryption/l10n/fi_FI.php
+++ b/apps/files_encryption/l10n/fi_FI.php
@@ -1,11 +1,21 @@
<?php
$TRANSLATIONS = array(
+"Recovery key successfully enabled" => "Palautusavain kytketty päälle onnistuneesti",
"Password successfully changed." => "Salasana vaihdettiin onnistuneesti.",
"Could not change the password. Maybe the old password was not correct." => "Salasanan vaihto epäonnistui. Kenties vanha salasana oli väärin.",
+"Following users are not set up for encryption:" => "Seuraavat käyttäjät eivät ole määrittäneet salausta:",
"Saving..." => "Tallennetaan...",
+"personal settings" => "henkilökohtaiset asetukset",
"Encryption" => "Salaus",
+"Recovery key password" => "Palautusavaimen salasana",
"Enabled" => "Käytössä",
"Disabled" => "Ei käytössä",
-"Change Password" => "Vaihda salasana"
+"Change recovery key password:" => "Vaihda palautusavaimen salasana:",
+"Old Recovery key password" => "Vanha palautusavaimen salasana",
+"New Recovery key password" => "Uusi palautusavaimen salasana",
+"Change Password" => "Vaihda salasana",
+"Old log-in password" => "Vanha kirjautumis-salasana",
+"Current log-in password" => "Nykyinen kirjautumis-salasana",
+"Enable password recovery:" => "Ota salasanan palautus käyttöön:"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/fr.php b/apps/files_encryption/l10n/fr.php
index 12af8101394..358937441e2 100644
--- a/apps/files_encryption/l10n/fr.php
+++ b/apps/files_encryption/l10n/fr.php
@@ -10,6 +10,8 @@ $TRANSLATIONS = array(
"Could not update the private key password. Maybe the old password was not correct." => "Impossible de mettre à jour le mot de passe de la clé privé. Peut-être que l'ancien mot de passe n'était pas correcte.",
"Your private key is not valid! Likely your password was changed outside the ownCloud system (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Votre clé de sécurité privée n'est pas valide! Il est probable que votre mot de passe ait été changé sans passer par le système ownCloud (par éxemple: le serveur de votre entreprise). Ain d'avoir à nouveau accès à vos fichiers cryptés, vous pouvez mettre à jour votre clé de sécurité privée dans les paramètres personnels de votre compte.",
"Missing requirements." => "Système minimum requis non respecté.",
+"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Veuillez vous assurer qu'une version de PHP 5.3.3 ou supérieure est installée et qu'OpenSSL et son extension PHP sont activés et configurés correctement. En attendant, l'application de chiffrement été désactivée.",
+"Following users are not set up for encryption:" => "Les utilisateurs suivants ne sont pas configurés pour le chiffrement :",
"Saving..." => "Enregistrement...",
"Your private key is not valid! Maybe the your password was changed from outside." => "Votre clef privée est invalide ! Votre mot de passe a peut-être été modifié depuis l'extérieur.",
"You can unlock your private key in your " => "Vous pouvez déverrouiller votre clé privée dans votre",
diff --git a/apps/files_encryption/l10n/hu_HU.php b/apps/files_encryption/l10n/hu_HU.php
index 49dcf817fb7..323291bbfbe 100644
--- a/apps/files_encryption/l10n/hu_HU.php
+++ b/apps/files_encryption/l10n/hu_HU.php
@@ -1,6 +1,18 @@
<?php
$TRANSLATIONS = array(
+"Recovery key successfully disabled" => "Visszaállítási kulcs sikeresen kikapcsolva",
+"Password successfully changed." => "Jelszó sikeresen megváltoztatva.",
+"Could not change the password. Maybe the old password was not correct." => "A jelszót nem lehet megváltoztatni! Lehet, hogy hibás volt a régi jelszó.",
+"Please make sure that PHP 5.3.3 or newer is installed and that OpenSSL together with the PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Kérlek győződj meg arról, hogy PHP 5.3.3 vagy annál frissebb van telepítve, valamint a PHP-hez tartozó OpenSSL bővítmény be van-e kapcsolva és az helyesen van-e konfigurálva! Ki lett kapcsolva ideiglenesen a titkosító alkalmazás.",
"Saving..." => "Mentés...",
-"Encryption" => "Titkosítás"
+"personal settings" => "személyes beállítások",
+"Encryption" => "Titkosítás",
+"Enabled" => "Bekapcsolva",
+"Disabled" => "Kikapcsolva",
+"Change Password" => "Jelszó megváltoztatása",
+"Old log-in password" => "Régi bejelentkezési jelszó",
+"Current log-in password" => "Jelenlegi bejelentkezési jelszó",
+"Update Private Key Password" => "Privát kulcs jelszó frissítése",
+"Enable password recovery:" => "Jelszó-visszaállítás bekapcsolása"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/l10n/nn_NO.php b/apps/files_encryption/l10n/nn_NO.php
index b99d0751540..bb30d69c592 100644
--- a/apps/files_encryption/l10n/nn_NO.php
+++ b/apps/files_encryption/l10n/nn_NO.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
-"Saving..." => "Lagrar …"
+"Saving..." => "Lagrar …",
+"Encryption" => "Kryptering"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php
index e129bc9313e..c009718160a 100755
--- a/apps/files_encryption/lib/crypt.php
+++ b/apps/files_encryption/lib/crypt.php
@@ -52,14 +52,14 @@ class Crypt {
$return = false;
- $res = openssl_pkey_new(array('private_key_bits' => 4096));
+ $res = Helper::getOpenSSLPkey();
if ($res === false) {
\OCP\Util::writeLog('Encryption library', 'couldn\'t generate users key-pair for ' . \OCP\User::getUser(), \OCP\Util::ERROR);
while ($msg = openssl_error_string()) {
\OCP\Util::writeLog('Encryption library', 'openssl_pkey_new() fails: ' . $msg, \OCP\Util::ERROR);
}
- } elseif (openssl_pkey_export($res, $privateKey)) {
+ } elseif (openssl_pkey_export($res, $privateKey, null, Helper::getOpenSSLConfig())) {
// Get public key
$keyDetails = openssl_pkey_get_details($res);
$publicKey = $keyDetails['key'];
@@ -70,7 +70,9 @@ class Crypt {
);
} else {
\OCP\Util::writeLog('Encryption library', 'couldn\'t export users private key, please check your servers openSSL configuration.' . \OCP\User::getUser(), \OCP\Util::ERROR);
- \OCP\Util::writeLog('Encryption library', openssl_error_string(), \OCP\Util::ERROR);
+ while($errMsg = openssl_error_string()) {
+ \OCP\Util::writeLog('Encryption library', $errMsg, \OCP\Util::ERROR);
+ }
}
return $return;
diff --git a/apps/files_encryption/lib/helper.php b/apps/files_encryption/lib/helper.php
index 0209a5d18b7..445d7ff8ca7 100755
--- a/apps/files_encryption/lib/helper.php
+++ b/apps/files_encryption/lib/helper.php
@@ -265,7 +265,7 @@ class Helper {
* @return bool true if configuration seems to be OK
*/
public static function checkConfiguration() {
- if(openssl_pkey_new(array('private_key_bits' => 4096))) {
+ if(self::getOpenSSLPkey()) {
return true;
} else {
while ($msg = openssl_error_string()) {
@@ -276,6 +276,26 @@ class Helper {
}
/**
+ * Create an openssl pkey with config-supplied settings
+ * WARNING: This initializes a new private keypair, which is computationally expensive
+ * @return resource The pkey resource created
+ */
+ public static function getOpenSSLPkey() {
+ return openssl_pkey_new(self::getOpenSSLConfig());
+ }
+
+ /**
+ * Return an array of OpenSSL config options, default + config
+ * Used for multiple OpenSSL functions
+ * @return array The combined defaults and config settings
+ */
+ public static function getOpenSSLConfig() {
+ $config = array('private_key_bits' => 4096);
+ $config = array_merge(\OCP\Config::getSystemValue('openssl', array()), $config);
+ return $config;
+ }
+
+ /**
* @brief glob uses different pattern than regular expressions, escape glob pattern only
* @param unescaped path
* @return escaped path
diff --git a/apps/files_encryption/lib/keymanager.php b/apps/files_encryption/lib/keymanager.php
index 5386de486e1..9be3dda7ce3 100755
--- a/apps/files_encryption/lib/keymanager.php
+++ b/apps/files_encryption/lib/keymanager.php
@@ -220,22 +220,10 @@ class Keymanager {
*/
public static function getFileKey(\OC_FilesystemView $view, $userId, $filePath) {
- // try reusing key file if part file
- if (self::isPartialFilePath($filePath)) {
-
- $result = self::getFileKey($view, $userId, self::fixPartialFilePath($filePath));
-
- if ($result) {
-
- return $result;
-
- }
-
- }
-
$util = new Util($view, \OCP\User::getUser());
list($owner, $filename) = $util->getUidAndFilename($filePath);
+ $filename = self::fixPartialFilePath($filename);
$filePath_f = ltrim($filename, '/');
// in case of system wide mount points the keys are stored directly in the data directory
@@ -424,18 +412,6 @@ class Keymanager {
public static function getShareKey(\OC_FilesystemView $view, $userId, $filePath) {
// try reusing key file if part file
- if (self::isPartialFilePath($filePath)) {
-
- $result = self::getShareKey($view, $userId, self::fixPartialFilePath($filePath));
-
- if ($result) {
-
- return $result;
-
- }
-
- }
-
$proxyStatus = \OC_FileProxy::$enabled;
\OC_FileProxy::$enabled = false;
@@ -443,7 +419,7 @@ class Keymanager {
$util = new Util($view, \OCP\User::getUser());
list($owner, $filename) = $util->getUidAndFilename($filePath);
-
+ $filename = self::fixPartialFilePath($filename);
// in case of system wide mount points the keys are stored directly in the data directory
if ($util->isSystemWideMountPoint($filename)) {
$shareKeyPath = '/files_encryption/share-keys/' . $filename . '.' . $userId . '.shareKey';
diff --git a/apps/files_encryption/lib/stream.php b/apps/files_encryption/lib/stream.php
index 335ea3733eb..083b33c03cb 100644
--- a/apps/files_encryption/lib/stream.php
+++ b/apps/files_encryption/lib/stream.php
@@ -81,7 +81,7 @@ class Stream {
* @return bool
*/
public function stream_open($path, $mode, $options, &$opened_path) {
-
+
// assume that the file already exist before we decide it finally in getKey()
$this->newFile = false;
@@ -106,12 +106,12 @@ class Stream {
if ($this->relPath === false) {
$this->relPath = Helper::getPathToRealFile($this->rawPath);
}
-
+
if($this->relPath === false) {
\OCP\Util::writeLog('Encryption library', 'failed to open file "' . $this->rawPath . '" expecting a path to user/files or to user/files_versions', \OCP\Util::ERROR);
return false;
}
-
+
// Disable fileproxies so we can get the file size and open the source file without recursive encryption
$proxyStatus = \OC_FileProxy::$enabled;
\OC_FileProxy::$enabled = false;
@@ -188,7 +188,7 @@ class Stream {
}
// Get the data from the file handle
- $data = fread($this->handle, 8192);
+ $data = fread($this->handle, $count);
$result = null;
@@ -272,7 +272,7 @@ class Stream {
} else {
$this->newFile = true;
-
+
return false;
}
@@ -296,9 +296,9 @@ class Stream {
return strlen($data);
}
- // Disable the file proxies so that encryption is not
- // automatically attempted when the file is written to disk -
- // we are handling that separately here and we don't want to
+ // Disable the file proxies so that encryption is not
+ // automatically attempted when the file is written to disk -
+ // we are handling that separately here and we don't want to
// get into an infinite loop
$proxyStatus = \OC_FileProxy::$enabled;
\OC_FileProxy::$enabled = false;
@@ -311,7 +311,7 @@ class Stream {
$pointer = ftell($this->handle);
// Get / generate the keyfile for the file we're handling
- // If we're writing a new file (not overwriting an existing
+ // If we're writing a new file (not overwriting an existing
// one), save the newly generated keyfile
if (!$this->getKey()) {
@@ -319,7 +319,7 @@ class Stream {
}
- // If extra data is left over from the last round, make sure it
+ // If extra data is left over from the last round, make sure it
// is integrated into the next 6126 / 8192 block
if ($this->writeCache) {
@@ -344,12 +344,12 @@ class Stream {
if ($remainingLength < 6126) {
// Set writeCache to contents of $data
- // The writeCache will be carried over to the
- // next write round, and added to the start of
- // $data to ensure that written blocks are
- // always the correct length. If there is still
- // data in writeCache after the writing round
- // has finished, then the data will be written
+ // The writeCache will be carried over to the
+ // next write round, and added to the start of
+ // $data to ensure that written blocks are
+ // always the correct length. If there is still
+ // data in writeCache after the writing round
+ // has finished, then the data will be written
// to disk by $this->flush().
$this->writeCache = $data;
@@ -363,7 +363,7 @@ class Stream {
$encrypted = $this->preWriteEncrypt($chunk, $this->plainKey);
- // Write the data chunk to disk. This will be
+ // Write the data chunk to disk. This will be
// attended to the last data chunk if the file
// being handled totals more than 6126 bytes
fwrite($this->handle, $encrypted);
@@ -488,6 +488,7 @@ class Stream {
$this->meta['mode'] !== 'rb' &&
$this->size > 0
) {
+
// only write keyfiles if it was a new file
if ($this->newFile === true) {
@@ -535,6 +536,7 @@ class Stream {
// set fileinfo
$this->rootView->putFileInfo($this->rawPath, $fileInfo);
+
}
return fclose($this->handle);
diff --git a/apps/files_encryption/lib/util.php b/apps/files_encryption/lib/util.php
index b8d68623493..cd4db05fb9b 100644
--- a/apps/files_encryption/lib/util.php
+++ b/apps/files_encryption/lib/util.php
@@ -508,10 +508,11 @@ class Util {
// get the size from filesystem
$fullPath = $this->view->getLocalFile($path);
- $size = filesize($fullPath);
+ $size = $this->view->filesize($path);
// calculate last chunk nr
$lastChunkNr = floor($size / 8192);
+ $lastChunkSize = $size - ($lastChunkNr * 8192);
// open stream
$stream = fopen('crypt://' . $path, "r");
@@ -524,7 +525,7 @@ class Util {
fseek($stream, $lastChunckPos);
// get the content of the last chunk
- $lastChunkContent = fread($stream, 8192);
+ $lastChunkContent = fread($stream, $lastChunkSize);
// calc the real file size with the size of the last chunk
$realSize = (($lastChunkNr * 6126) + strlen($lastChunkContent));
@@ -1136,6 +1137,11 @@ class Util {
// Make sure that a share key is generated for the owner too
list($owner, $ownerPath) = $this->getUidAndFilename($filePath);
+ $pathinfo = pathinfo($ownerPath);
+ if(array_key_exists('extension', $pathinfo) && $pathinfo['extension'] === 'part') {
+ $ownerPath = $pathinfo['dirname'] . '/' . $pathinfo['filename'];
+ }
+
$userIds = array();
if ($sharingEnabled) {
@@ -1289,8 +1295,25 @@ class Util {
*/
public function getUidAndFilename($path) {
+ $pathinfo = pathinfo($path);
+ $partfile = false;
+ $parentFolder = false;
+ if (array_key_exists('extension', $pathinfo) && $pathinfo['extension'] === 'part') {
+ // if the real file exists we check this file
+ $filePath = $this->userFilesDir . '/' .$pathinfo['dirname'] . '/' . $pathinfo['filename'];
+ if ($this->view->file_exists($filePath)) {
+ $pathToCheck = $pathinfo['dirname'] . '/' . $pathinfo['filename'];
+ } else { // otherwise we look for the parent
+ $pathToCheck = $pathinfo['dirname'];
+ $parentFolder = true;
+ }
+ $partfile = true;
+ } else {
+ $pathToCheck = $path;
+ }
+
$view = new \OC\Files\View($this->userFilesDir);
- $fileOwnerUid = $view->getOwner($path);
+ $fileOwnerUid = $view->getOwner($pathToCheck);
// handle public access
if ($this->isPublic) {
@@ -1319,12 +1342,18 @@ class Util {
$filename = $path;
} else {
-
- $info = $view->getFileInfo($path);
+ $info = $view->getFileInfo($pathToCheck);
$ownerView = new \OC\Files\View('/' . $fileOwnerUid . '/files');
// Fetch real file path from DB
- $filename = $ownerView->getPath($info['fileid']); // TODO: Check that this returns a path without including the user data dir
+ $filename = $ownerView->getPath($info['fileid']);
+ if ($parentFolder) {
+ $filename = $filename . '/'. $pathinfo['filename'];
+ }
+
+ if ($partfile) {
+ $filename = $filename . '.' . $pathinfo['extension'];
+ }
}
@@ -1333,10 +1362,9 @@ class Util {
\OC_Filesystem::normalizePath($filename)
);
}
-
-
}
+
/**
* @brief go recursively through a dir and collect all files and sub files.
* @param string $dir relative to the users files folder
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/Prods.inc.php b/apps/files_external/3rdparty/irodsphp/prods/src/Prods.inc.php
index e7fa44b34d1..7e0fafdad83 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/Prods.inc.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/Prods.inc.php
@@ -1,4 +1,3 @@
<?php
require_once("autoload.inc.php");
require_once("ProdsConfig.inc.php");
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/ProdsConfig.inc.php b/apps/files_external/3rdparty/irodsphp/prods/src/ProdsConfig.inc.php
index 478c90d631f..1089932a3e2 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/ProdsConfig.inc.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/ProdsConfig.inc.php
@@ -15,5 +15,3 @@ if (file_exists(__DIR__ . "/prods.ini")) {
else {
$GLOBALS['PRODS_CONFIG'] = array();
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/ProdsPath.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/ProdsPath.class.php
index be7c6c56788..fdf100b77a4 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/ProdsPath.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/ProdsPath.class.php
@@ -279,5 +279,3 @@ abstract class ProdsPath
}
}
-
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/ProdsQuery.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/ProdsQuery.class.php
index 62469725970..5e8dc92d594 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/ProdsQuery.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/ProdsQuery.class.php
@@ -103,5 +103,3 @@ class ProdsQuery
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/ProdsRule.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/ProdsRule.class.php
index 42308d9cc35..d14d87ad1aa 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/ProdsRule.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/ProdsRule.class.php
@@ -58,5 +58,3 @@ class ProdsRule
return $result;
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/ProdsStreamer.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/ProdsStreamer.class.php
index 27b927bb033..67ef096c5c5 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/ProdsStreamer.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/ProdsStreamer.class.php
@@ -432,5 +432,3 @@ stream_wrapper_register('rods', 'ProdsStreamer')
or die ('Failed to register protocol:rods');
stream_wrapper_register('rods+ticket', 'ProdsStreamer')
or die ('Failed to register protocol:rods');
-?>
-
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RODSAccount.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/RODSAccount.class.php
index f47f85bc238..ba4c5ad96b0 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RODSAccount.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RODSAccount.class.php
@@ -199,5 +199,3 @@ class RODSAccount
return $dir->toURI();
}
}
-
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RODSConn.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/RODSConn.class.php
index 0498f42cfaa..c10f880a5cc 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RODSConn.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RODSConn.class.php
@@ -1611,5 +1611,3 @@ class RODSConn
return $results;
}
}
-
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RODSConnManager.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/RODSConnManager.class.php
index 830e01bde84..b3e8155da4d 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RODSConnManager.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RODSConnManager.class.php
@@ -77,5 +77,3 @@ class RODSConnManager
}
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RODSException.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/RODSException.class.php
index 52eb95bbfb5..97116a102c1 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RODSException.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RODSException.class.php
@@ -180,5 +180,3 @@ class RODSException extends Exception
}
}
-
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueConds.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueConds.class.php
index 848f29e85e9..4bc10cc549f 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueConds.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueConds.class.php
@@ -110,5 +110,3 @@ class RODSGenQueConds
return $this->cond;
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueResults.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueResults.class.php
index 41be1069afd..899b4f0e3b4 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueResults.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueResults.class.php
@@ -95,5 +95,3 @@ class RODSGenQueResults
return $this->numrow;
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueSelFlds.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueSelFlds.class.php
index 10a32f6614f..aa391613d07 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueSelFlds.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RODSGenQueSelFlds.class.php
@@ -156,5 +156,3 @@ class RODSGenQueSelFlds
}
}
-
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RODSKeyValPair.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/RODSKeyValPair.class.php
index 31b720cf19c..f347f7c988a 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RODSKeyValPair.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RODSKeyValPair.class.php
@@ -46,5 +46,3 @@ class RODSKeyValPair
return $new_keyval;
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RODSMessage.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/RODSMessage.class.php
index ca3e8bc23a6..243903a42df 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RODSMessage.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RODSMessage.class.php
@@ -181,5 +181,3 @@ class RODSMessage
return $rods_msg->pack();
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RODSObjIOOpr.inc.php b/apps/files_external/3rdparty/irodsphp/prods/src/RODSObjIOOpr.inc.php
index 95807d12ea8..1d367e900bc 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RODSObjIOOpr.inc.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RODSObjIOOpr.inc.php
@@ -17,4 +17,3 @@ define ("RSYNC_OPR", 14);
define ("PHYMV_OPR", 15);
define ("PHYMV_SRC", 16);
define ("PHYMV_DEST", 17);
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RodsAPINum.inc.php b/apps/files_external/3rdparty/irodsphp/prods/src/RodsAPINum.inc.php
index c4e2c031174..258dfcab39d 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RodsAPINum.inc.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RodsAPINum.inc.php
@@ -214,4 +214,3 @@ $GLOBALS['PRODS_API_NUMS_REV'] = array(
'1100' => 'SSL_START_AN',
'1101' => 'SSL_END_AN',
);
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RodsConst.inc.php b/apps/files_external/3rdparty/irodsphp/prods/src/RodsConst.inc.php
index 1d51f619197..ecc2f5c2593 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RodsConst.inc.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RodsConst.inc.php
@@ -4,5 +4,3 @@
// are doing!
define ("ORDER_BY", 0x400);
define ("ORDER_BY_DESC", 0x800);
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RodsErrorTable.inc.php b/apps/files_external/3rdparty/irodsphp/prods/src/RodsErrorTable.inc.php
index 7c4bb170d4a..177ca5b1260 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RodsErrorTable.inc.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RodsErrorTable.inc.php
@@ -584,4 +584,3 @@ $GLOBALS['PRODS_ERR_CODES_REV'] = array(
'-993000' => 'PAM_AUTH_PASSWORD_FAILED',
'-994000' => 'PAM_AUTH_PASSWORD_INVALID_TTL',
);
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RodsGenQueryKeyWd.inc.php b/apps/files_external/3rdparty/irodsphp/prods/src/RodsGenQueryKeyWd.inc.php
index ff830c6d6aa..55ad02e3b82 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RodsGenQueryKeyWd.inc.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RodsGenQueryKeyWd.inc.php
@@ -222,4 +222,3 @@ $GLOBALS['PRODS_GENQUE_KEYWD_REV'] = array(
"lastExeTime" => 'RULE_LAST_EXE_TIME_KW',
"exeStatus" => 'RULE_EXE_STATUS_KW',
);
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/RodsGenQueryNum.inc.php b/apps/files_external/3rdparty/irodsphp/prods/src/RodsGenQueryNum.inc.php
index 82de94095b2..a65823ec877 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/RodsGenQueryNum.inc.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/RodsGenQueryNum.inc.php
@@ -232,4 +232,3 @@ $GLOBALS['PRODS_GENQUE_NUMS_REV'] = array(
'1105' => 'COL_TOKEN_VALUE3',
'1106' => 'COL_TOKEN_COMMENT',
);
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RODSPacket.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RODSPacket.class.php
index 89040882d20..e5cff1f60e3 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RODSPacket.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RODSPacket.class.php
@@ -246,5 +246,3 @@ class RODSPacket
}
*/
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_BinBytesBuf.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_BinBytesBuf.class.php
index 8cabcd0ae42..a7598bb7e62 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_BinBytesBuf.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_BinBytesBuf.class.php
@@ -10,5 +10,3 @@ class RP_BinBytesBuf extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_CollInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_CollInp.class.php
index b7ad6fd0cad..05c51cf56c0 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_CollInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_CollInp.class.php
@@ -15,5 +15,3 @@ class RP_CollInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_CollOprStat.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_CollOprStat.class.php
index 939d2e37596..a9140050bc7 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_CollOprStat.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_CollOprStat.class.php
@@ -13,5 +13,3 @@ class RP_CollOprStat extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_DataObjCopyInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_DataObjCopyInp.class.php
index c16b3628f5e..481ff34a22a 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_DataObjCopyInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_DataObjCopyInp.class.php
@@ -15,5 +15,3 @@ class RP_DataObjCopyInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_DataObjInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_DataObjInp.class.php
index f7a8f939b82..f6200d1761c 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_DataObjInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_DataObjInp.class.php
@@ -18,5 +18,3 @@ class RP_DataObjInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ExecCmdOut.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ExecCmdOut.class.php
index 55dcb02383d..a7559e3c256 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ExecCmdOut.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ExecCmdOut.class.php
@@ -52,5 +52,3 @@ class RP_ExecCmdOut extends RODSPacket
}
}
}
-
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ExecMyRuleInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ExecMyRuleInp.class.php
index 88a62fc2b0c..2eb5dbd6ff9 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ExecMyRuleInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ExecMyRuleInp.class.php
@@ -18,5 +18,3 @@ class RP_ExecMyRuleInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_GenQueryInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_GenQueryInp.class.php
index 2e1e29a2bfe..cf4bf340606 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_GenQueryInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_GenQueryInp.class.php
@@ -21,5 +21,3 @@ class RP_GenQueryInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_GenQueryOut.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_GenQueryOut.class.php
index e9f31dd5368..afec88c45b1 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_GenQueryOut.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_GenQueryOut.class.php
@@ -18,5 +18,3 @@ class RP_GenQueryOut extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_InxIvalPair.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_InxIvalPair.class.php
index ac56bc93df8..e8af5c9fc5c 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_InxIvalPair.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_InxIvalPair.class.php
@@ -23,5 +23,3 @@ class RP_InxIvalPair extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_InxValPair.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_InxValPair.class.php
index 787d27fd103..4a08780f4a3 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_InxValPair.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_InxValPair.class.php
@@ -40,5 +40,3 @@ class RP_InxValPair extends RODSPacket
}
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_KeyValPair.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_KeyValPair.class.php
index 6d8dd12ff12..905d88bc8a2 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_KeyValPair.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_KeyValPair.class.php
@@ -43,5 +43,3 @@ class RP_KeyValPair extends RODSPacket
}
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MiscSvrInfo.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MiscSvrInfo.class.php
index 65ee3580e97..4f54c9c4e76 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MiscSvrInfo.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MiscSvrInfo.class.php
@@ -13,5 +13,3 @@ class RP_MiscSvrInfo extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ModAVUMetadataInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ModAVUMetadataInp.class.php
index b67b7083d44..467541734df 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ModAVUMetadataInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_ModAVUMetadataInp.class.php
@@ -14,5 +14,3 @@ class RP_ModAVUMetadataInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsParam.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsParam.class.php
index abf9bc471bb..fa5d4fcc3dc 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsParam.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsParam.class.php
@@ -41,5 +41,3 @@ class RP_MsParam extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsParamArray.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsParamArray.class.php
index b747c098dd2..b664abe62bc 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsParamArray.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsParamArray.class.php
@@ -17,5 +17,3 @@ class RP_MsParamArray extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsgHeader.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsgHeader.class.php
index 0249da9a05d..f1b03f779d1 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsgHeader.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_MsgHeader.class.php
@@ -12,6 +12,3 @@ class RP_MsgHeader extends RODSPacket
}
}
-
-?>
- \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_RHostAddr.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_RHostAddr.class.php
index 28602f3150f..2ac70dc22cc 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_RHostAddr.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_RHostAddr.class.php
@@ -11,5 +11,3 @@ class RP_RHostAddr extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_RodsObjStat.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_RodsObjStat.class.php
index 290a4c9a5b0..96f427a2de5 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_RodsObjStat.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_RodsObjStat.class.php
@@ -16,5 +16,3 @@ class RP_RodsObjStat extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_STR.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_STR.class.php
index 3f5a91a35d0..af7739988d4 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_STR.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_STR.class.php
@@ -10,5 +10,3 @@ class RP_STR extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_SqlResult.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_SqlResult.class.php
index 1950f096f13..e6ee1c3adbb 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_SqlResult.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_SqlResult.class.php
@@ -11,5 +11,3 @@ class RP_SqlResult extends RODSPacket
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_StartupPack.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_StartupPack.class.php
index a411bd7425b..700fbd34428 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_StartupPack.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_StartupPack.class.php
@@ -14,5 +14,3 @@ class RP_StartupPack extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_TransStat.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_TransStat.class.php
index bb591f01343..5c962649df0 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_TransStat.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_TransStat.class.php
@@ -12,5 +12,3 @@ class RP_TransStat extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_Version.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_Version.class.php
index a08cb6cc24c..9fa9b7d1c35 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_Version.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_Version.class.php
@@ -12,5 +12,3 @@ class RP_Version extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_authRequestOut.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_authRequestOut.class.php
index 9dc87140635..a702650c0eb 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_authRequestOut.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_authRequestOut.class.php
@@ -10,5 +10,3 @@ class RP_authRequestOut extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_authResponseInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_authResponseInp.class.php
index 23d754df0ac..3f9cbc618f7 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_authResponseInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_authResponseInp.class.php
@@ -10,5 +10,3 @@ class RP_authResponseInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjCloseInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjCloseInp.class.php
index d16e1b3f3a4..d37afe23c95 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjCloseInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjCloseInp.class.php
@@ -12,5 +12,3 @@ class RP_dataObjCloseInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjReadInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjReadInp.class.php
index 29bd1b68e35..31b12354714 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjReadInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjReadInp.class.php
@@ -12,5 +12,3 @@ class RP_dataObjReadInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjWriteInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjWriteInp.class.php
index 5327d7a8932..175b7e83402 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjWriteInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_dataObjWriteInp.class.php
@@ -12,5 +12,3 @@ class RP_dataObjWriteInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_fileLseekInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_fileLseekInp.class.php
index e28a7b3b498..83b77f4704f 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_fileLseekInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_fileLseekInp.class.php
@@ -12,5 +12,3 @@ class RP_fileLseekInp extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_fileLseekOut.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_fileLseekOut.class.php
index cf01741bea6..45811e7ca68 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_fileLseekOut.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_fileLseekOut.class.php
@@ -11,5 +11,3 @@ class RP_fileLseekOut extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_getTempPasswordOut.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_getTempPasswordOut.class.php
index ba073e97939..29c1001df68 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_getTempPasswordOut.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_getTempPasswordOut.class.php
@@ -10,5 +10,3 @@ class RP_getTempPasswordOut extends RODSPacket
}
}
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_pamAuthRequestInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_pamAuthRequestInp.class.php
index 0bbc2334a82..e42ac918d45 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_pamAuthRequestInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_pamAuthRequestInp.class.php
@@ -10,4 +10,3 @@ class RP_pamAuthRequestInp extends RODSPacket
}
}
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_pamAuthRequestOut.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_pamAuthRequestOut.class.php
index 01959954c97..b3ec1306556 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_pamAuthRequestOut.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_pamAuthRequestOut.class.php
@@ -10,4 +10,3 @@ class RP_pamAuthRequestOut extends RODSPacket
}
}
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_sslEndInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_sslEndInp.class.php
index 530f3048604..26470378a7d 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_sslEndInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_sslEndInp.class.php
@@ -10,4 +10,3 @@ class RP_sslEndInp extends RODSPacket
}
}
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_sslStartInp.class.php b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_sslStartInp.class.php
index 03c8365898e..a23756e7860 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_sslStartInp.class.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/packet/RP_sslStartInp.class.php
@@ -10,4 +10,3 @@ class RP_sslStartInp extends RODSPacket
}
}
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/setRodsAPINum.php b/apps/files_external/3rdparty/irodsphp/prods/src/setRodsAPINum.php
index 382a85c051e..98c1f6cabdf 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/setRodsAPINum.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/setRodsAPINum.php
@@ -66,5 +66,3 @@ $outputstr = $outputstr . ");\n";
$outputstr = $outputstr . "?>\n";
file_put_contents($prods_api_num_file, $outputstr);
-
-?>
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/setRodsErrorCodes.php b/apps/files_external/3rdparty/irodsphp/prods/src/setRodsErrorCodes.php
index d5c43773845..142b4af5702 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/setRodsErrorCodes.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/setRodsErrorCodes.php
@@ -71,5 +71,3 @@ $outputstr = $outputstr . ");\n";
$outputstr = $outputstr . "?>\n";
file_put_contents($prods_error_table_file, $outputstr);
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryKeyWd.php b/apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryKeyWd.php
index 4372a849aac..5a5968d25af 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryKeyWd.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryKeyWd.php
@@ -69,5 +69,3 @@ $outputstr = $outputstr . ");\n";
$outputstr = $outputstr . "?>\n";
file_put_contents($prods_genque_keywd_file, $outputstr);
-
-?> \ No newline at end of file
diff --git a/apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryNum.php b/apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryNum.php
index 03fa051f092..0be297826e6 100644
--- a/apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryNum.php
+++ b/apps/files_external/3rdparty/irodsphp/prods/src/setRodsGenQueryNum.php
@@ -59,5 +59,3 @@ $outputstr = $outputstr . ");\n";
$outputstr = $outputstr . "?>\n";
file_put_contents($prods_genque_num_file, $outputstr);
-
-?> \ No newline at end of file
diff --git a/apps/files_external/lib/irods.php b/apps/files_external/lib/irods.php
index 7ec3b3a0cfc..b8191db2f2e 100644
--- a/apps/files_external/lib/irods.php
+++ b/apps/files_external/lib/irods.php
@@ -27,12 +27,12 @@ class iRODS extends \OC\Files\Storage\StreamWrapper{
private $auth_mode;
public function __construct($params) {
- if (isset($params['host']) && isset($params['user']) && isset($params['password'])) {
+ if (isset($params['host'])) {
$this->host = $params['host'];
- $this->port = $params['port'];
- $this->user = $params['user'];
- $this->password = $params['password'];
- $this->use_logon_credentials = $params['use_logon_credentials'];
+ $this->port = isset($params['port']) ? $params['port'] : 1247;
+ $this->user = isset($params['user']) ? $params['user'] : '';
+ $this->password = isset($params['password']) ? $params['password'] : '';
+ $this->use_logon_credentials = ($params['use_logon_credentials'] === 'true');
$this->zone = $params['zone'];
$this->auth_mode = isset($params['auth_mode']) ? $params['auth_mode'] : '';
@@ -42,10 +42,11 @@ class iRODS extends \OC\Files\Storage\StreamWrapper{
}
// take user and password from the session
- if ($this->use_logon_credentials && isset($_SESSION['irods-credentials']) )
+ if ($this->use_logon_credentials && \OC::$session->exists('irods-credentials'))
{
- $this->user = $_SESSION['irods-credentials']['uid'];
- $this->password = $_SESSION['irods-credentials']['password'];
+ $params = \OC::$session->get('irods-credentials');
+ $this->user = $params['uid'];
+ $this->password = $params['password'];
}
//create the root folder if necessary
@@ -59,7 +60,7 @@ class iRODS extends \OC\Files\Storage\StreamWrapper{
}
public static function login( $params ) {
- $_SESSION['irods-credentials'] = $params;
+ \OC::$session->set('irods-credentials', $params);
}
public function getId(){
diff --git a/apps/files_sharing/l10n/es.php b/apps/files_sharing/l10n/es.php
index 1f238d083fb..e163da766f3 100644
--- a/apps/files_sharing/l10n/es.php
+++ b/apps/files_sharing/l10n/es.php
@@ -3,7 +3,7 @@ $TRANSLATIONS = array(
"The password is wrong. Try again." => "La contraseña introducida es errónea. Inténtelo de nuevo.",
"Password" => "Contraseña",
"Submit" => "Enviar",
-"Sorry, this link doesn’t seem to work anymore." => "Este enlace parece no funcionar más.",
+"Sorry, this link doesn’t seem to work anymore." => "Vaya, este enlace parece que no volverá a funcionar.",
"Reasons might be:" => "Las causas podrían ser:",
"the item was removed" => "el elemento fue eliminado",
"the link expired" => "el enlace expiró",
diff --git a/apps/files_sharing/l10n/es_AR.php b/apps/files_sharing/l10n/es_AR.php
index fed0b1e7b30..7c9dcb94ac1 100644
--- a/apps/files_sharing/l10n/es_AR.php
+++ b/apps/files_sharing/l10n/es_AR.php
@@ -3,6 +3,12 @@ $TRANSLATIONS = array(
"The password is wrong. Try again." => "La contraseña no es correcta. Probá de nuevo.",
"Password" => "Contraseña",
"Submit" => "Enviar",
+"Sorry, this link doesn’t seem to work anymore." => "Perdón, este enlace parece no funcionar más.",
+"Reasons might be:" => "Las causas podrían ser:",
+"the item was removed" => "el elemento fue borrado",
+"the link expired" => "el enlace expiró",
+"sharing is disabled" => "compartir está desactivado",
+"For more info, please ask the person who sent this link." => "Para mayor información, contactá a la persona que te mandó el enlace.",
"%s shared the folder %s with you" => "%s compartió la carpeta %s con vos",
"%s shared the file %s with you" => "%s compartió el archivo %s con vos",
"Download" => "Descargar",
diff --git a/apps/files_sharing/l10n/fr.php b/apps/files_sharing/l10n/fr.php
index b263cd87959..c97a1db97e4 100644
--- a/apps/files_sharing/l10n/fr.php
+++ b/apps/files_sharing/l10n/fr.php
@@ -3,6 +3,12 @@ $TRANSLATIONS = array(
"The password is wrong. Try again." => "Le mot de passe est incorrect. Veuillez réessayer.",
"Password" => "Mot de passe",
"Submit" => "Envoyer",
+"Sorry, this link doesn’t seem to work anymore." => "Désolé, mais le lien semble ne plus fonctionner.",
+"Reasons might be:" => "Les raisons peuvent être :",
+"the item was removed" => "l'item a été supprimé",
+"the link expired" => "le lien a expiré",
+"sharing is disabled" => "le partage est désactivé",
+"For more info, please ask the person who sent this link." => "Pour plus d'informations, veuillez contacter la personne qui a envoyé ce lien.",
"%s shared the folder %s with you" => "%s a partagé le répertoire %s avec vous",
"%s shared the file %s with you" => "%s a partagé le fichier %s avec vous",
"Download" => "Télécharger",
diff --git a/apps/files_sharing/l10n/nn_NO.php b/apps/files_sharing/l10n/nn_NO.php
index bcb6538b09f..94272943e40 100644
--- a/apps/files_sharing/l10n/nn_NO.php
+++ b/apps/files_sharing/l10n/nn_NO.php
@@ -1,7 +1,14 @@
<?php
$TRANSLATIONS = array(
+"The password is wrong. Try again." => "Passordet er gale. Prøv igjen.",
"Password" => "Passord",
"Submit" => "Send",
+"Sorry, this link doesn’t seem to work anymore." => "Orsak, denne lenkja fungerer visst ikkje lenger.",
+"Reasons might be:" => "Moglege grunnar:",
+"the item was removed" => "fila/mappa er fjerna",
+"the link expired" => "lenkja har gått ut på dato",
+"sharing is disabled" => "deling er slått av",
+"For more info, please ask the person who sent this link." => "Spør den som sende deg lenkje om du vil ha meir informasjon.",
"%s shared the folder %s with you" => "%s delte mappa %s med deg",
"%s shared the file %s with you" => "%s delte fila %s med deg",
"Download" => "Last ned",
diff --git a/apps/files_sharing/l10n/sq.php b/apps/files_sharing/l10n/sq.php
index ae29e5738ff..d2077663e8d 100644
--- a/apps/files_sharing/l10n/sq.php
+++ b/apps/files_sharing/l10n/sq.php
@@ -1,7 +1,14 @@
<?php
$TRANSLATIONS = array(
+"The password is wrong. Try again." => "Kodi është i gabuar. Provojeni përsëri.",
"Password" => "Kodi",
"Submit" => "Parashtro",
+"Sorry, this link doesn’t seem to work anymore." => "Ju kërkojmë ndjesë, kjo lidhje duket sikur nuk punon më.",
+"Reasons might be:" => "Arsyet mund të jenë:",
+"the item was removed" => "elementi është eliminuar",
+"the link expired" => "lidhja ka skaduar",
+"sharing is disabled" => "ndarja është çaktivizuar",
+"For more info, please ask the person who sent this link." => "Për më shumë informacione, ju lutem pyesni personin që iu dërgoi këtë lidhje.",
"%s shared the folder %s with you" => "%s ndau me ju dosjen %s",
"%s shared the file %s with you" => "%s ndau me ju skedarin %s",
"Download" => "Shkarko",
diff --git a/apps/files_sharing/l10n/zh_TW.php b/apps/files_sharing/l10n/zh_TW.php
index 56d67ea7ce7..5cc33fd3830 100644
--- a/apps/files_sharing/l10n/zh_TW.php
+++ b/apps/files_sharing/l10n/zh_TW.php
@@ -1,9 +1,9 @@
<?php
$TRANSLATIONS = array(
-"The password is wrong. Try again." => "請檢查您的密碼並再試一次。",
+"The password is wrong. Try again." => "請檢查您的密碼並再試一次",
"Password" => "密碼",
"Submit" => "送出",
-"Sorry, this link doesn’t seem to work anymore." => "抱歉,這連結看來已經不能用了。",
+"Sorry, this link doesn’t seem to work anymore." => "抱歉,此連結已經失效",
"Reasons might be:" => "可能的原因:",
"the item was removed" => "項目已經移除",
"the link expired" => "連結過期",
diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php
index ec6b4e815f8..ae3e27cab3f 100644
--- a/apps/files_sharing/public.php
+++ b/apps/files_sharing/public.php
@@ -19,6 +19,20 @@ function fileCmp($a, $b) {
}
}
+function determineIcon($file, $sharingRoot, $sharingToken) {
+ // for folders we simply reuse the files logic
+ if($file['type'] == 'dir') {
+ return \OCA\files\lib\Helper::determineIcon($file);
+ }
+
+ $relativePath = substr($file['path'], 6);
+ $relativePath = substr($relativePath, strlen($sharingRoot));
+ if($file['isPreviewAvailable']) {
+ return OCP\publicPreview_icon($relativePath, $sharingToken);
+ }
+ return OCP\mimetype_icon($file['mimetype']);
+}
+
if (isset($_GET['t'])) {
$token = $_GET['t'];
$linkItem = OCP\Share::getShareByToken($token);
@@ -176,6 +190,7 @@ if (isset($path)) {
}
$i['directory'] = $getPath;
$i['permissions'] = OCP\PERMISSION_READ;
+ $i['icon'] = determineIcon($i, $basePath, $token);
$files[] = $i;
}
usort($files, "fileCmp");
diff --git a/apps/files_trashbin/index.php b/apps/files_trashbin/index.php
index 0baeab1de97..d7eb143f9af 100644
--- a/apps/files_trashbin/index.php
+++ b/apps/files_trashbin/index.php
@@ -65,6 +65,7 @@ foreach ($result as $r) {
}
$i['permissions'] = OCP\PERMISSION_READ;
$i['isPreviewAvailable'] = \OCP\Preview::isMimeSupported($r['mime']);
+ $i['icon'] = \OCA\files\lib\Helper::determineIcon($i);
$files[] = $i;
}
diff --git a/apps/files_trashbin/l10n/es.php b/apps/files_trashbin/l10n/es.php
index 956d89ae688..a5639c2c714 100644
--- a/apps/files_trashbin/l10n/es.php
+++ b/apps/files_trashbin/l10n/es.php
@@ -8,8 +8,8 @@ $TRANSLATIONS = array(
"Delete permanently" => "Eliminar permanentemente",
"Name" => "Nombre",
"Deleted" => "Eliminado",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n carpeta","%n carpetas"),
+"_%n file_::_%n files_" => array("%n archivo","%n archivos"),
"restored" => "recuperado",
"Nothing in here. Your trash bin is empty!" => "No hay nada aquí. ¡Tu papelera esta vacía!",
"Restore" => "Recuperar",
diff --git a/apps/files_trashbin/l10n/es_AR.php b/apps/files_trashbin/l10n/es_AR.php
index 6f47255b506..0cb969a3483 100644
--- a/apps/files_trashbin/l10n/es_AR.php
+++ b/apps/files_trashbin/l10n/es_AR.php
@@ -8,8 +8,9 @@ $TRANSLATIONS = array(
"Delete permanently" => "Borrar de manera permanente",
"Name" => "Nombre",
"Deleted" => "Borrado",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n directorio","%n directorios"),
+"_%n file_::_%n files_" => array("%n archivo","%n archivos"),
+"restored" => "recuperado",
"Nothing in here. Your trash bin is empty!" => "No hay nada acá. ¡La papelera está vacía!",
"Restore" => "Recuperar",
"Delete" => "Borrar",
diff --git a/apps/files_trashbin/l10n/fr.php b/apps/files_trashbin/l10n/fr.php
index 8854190e2ce..45527805ce1 100644
--- a/apps/files_trashbin/l10n/fr.php
+++ b/apps/files_trashbin/l10n/fr.php
@@ -8,8 +8,9 @@ $TRANSLATIONS = array(
"Delete permanently" => "Supprimer de façon définitive",
"Name" => "Nom",
"Deleted" => "Effacé",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("","%n dossiers"),
+"_%n file_::_%n files_" => array("","%n fichiers"),
+"restored" => "restauré",
"Nothing in here. Your trash bin is empty!" => "Il n'y a rien ici. Votre corbeille est vide !",
"Restore" => "Restaurer",
"Delete" => "Supprimer",
diff --git a/apps/files_trashbin/l10n/nn_NO.php b/apps/files_trashbin/l10n/nn_NO.php
index 9e351668e33..73fe48211c2 100644
--- a/apps/files_trashbin/l10n/nn_NO.php
+++ b/apps/files_trashbin/l10n/nn_NO.php
@@ -8,8 +8,9 @@ $TRANSLATIONS = array(
"Delete permanently" => "Slett for godt",
"Name" => "Namn",
"Deleted" => "Sletta",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n mappe","%n mapper"),
+"_%n file_::_%n files_" => array("%n fil","%n filer"),
+"restored" => "gjenoppretta",
"Nothing in here. Your trash bin is empty!" => "Ingenting her. Papirkorga di er tom!",
"Restore" => "Gjenopprett",
"Delete" => "Slett",
diff --git a/apps/files_trashbin/l10n/pl.php b/apps/files_trashbin/l10n/pl.php
index e8295e2ff03..c838a6b956c 100644
--- a/apps/files_trashbin/l10n/pl.php
+++ b/apps/files_trashbin/l10n/pl.php
@@ -8,8 +8,8 @@ $TRANSLATIONS = array(
"Delete permanently" => "Trwale usuń",
"Name" => "Nazwa",
"Deleted" => "Usunięte",
-"_%n folder_::_%n folders_" => array("","",""),
-"_%n file_::_%n files_" => array("","",""),
+"_%n folder_::_%n folders_" => array("","","%n katalogów"),
+"_%n file_::_%n files_" => array("","","%n plików"),
"restored" => "przywrócony",
"Nothing in here. Your trash bin is empty!" => "Nic tu nie ma. Twój kosz jest pusty!",
"Restore" => "Przywróć",
diff --git a/apps/files_trashbin/l10n/pt_BR.php b/apps/files_trashbin/l10n/pt_BR.php
index 1e3c67ba027..e0e8c8faec6 100644
--- a/apps/files_trashbin/l10n/pt_BR.php
+++ b/apps/files_trashbin/l10n/pt_BR.php
@@ -8,8 +8,8 @@ $TRANSLATIONS = array(
"Delete permanently" => "Excluir permanentemente",
"Name" => "Nome",
"Deleted" => "Excluído",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("","%n pastas"),
+"_%n file_::_%n files_" => array("%n arquivo","%n arquivos"),
"restored" => "restaurado",
"Nothing in here. Your trash bin is empty!" => "Nada aqui. Sua lixeira está vazia!",
"Restore" => "Restaurar",
diff --git a/apps/files_trashbin/l10n/pt_PT.php b/apps/files_trashbin/l10n/pt_PT.php
index 0c88d132b5c..9dccc773cb1 100644
--- a/apps/files_trashbin/l10n/pt_PT.php
+++ b/apps/files_trashbin/l10n/pt_PT.php
@@ -8,8 +8,8 @@ $TRANSLATIONS = array(
"Delete permanently" => "Eliminar permanentemente",
"Name" => "Nome",
"Deleted" => "Apagado",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n pasta","%n pastas"),
+"_%n file_::_%n files_" => array("%n ficheiro","%n ficheiros"),
"restored" => "Restaurado",
"Nothing in here. Your trash bin is empty!" => "Não hà ficheiros. O lixo está vazio!",
"Restore" => "Restaurar",
diff --git a/apps/files_trashbin/l10n/sq.php b/apps/files_trashbin/l10n/sq.php
index 1b7b5b828c8..50ca7d901b5 100644
--- a/apps/files_trashbin/l10n/sq.php
+++ b/apps/files_trashbin/l10n/sq.php
@@ -8,8 +8,9 @@ $TRANSLATIONS = array(
"Delete permanently" => "Elimino përfundimisht",
"Name" => "Emri",
"Deleted" => "Eliminuar",
-"_%n folder_::_%n folders_" => array("",""),
-"_%n file_::_%n files_" => array("",""),
+"_%n folder_::_%n folders_" => array("%n dosje","%n dosje"),
+"_%n file_::_%n files_" => array("%n skedar","%n skedarë"),
+"restored" => "rivendosur",
"Nothing in here. Your trash bin is empty!" => "Këtu nuk ka asgjë. Koshi juaj është bosh!",
"Restore" => "Rivendos",
"Delete" => "Elimino",
diff --git a/apps/files_trashbin/l10n/zh_TW.php b/apps/files_trashbin/l10n/zh_TW.php
index 2dfc484fc7f..bfc2fc659de 100644
--- a/apps/files_trashbin/l10n/zh_TW.php
+++ b/apps/files_trashbin/l10n/zh_TW.php
@@ -11,7 +11,7 @@ $TRANSLATIONS = array(
"_%n folder_::_%n folders_" => array("%n 個資料夾"),
"_%n file_::_%n files_" => array("%n 個檔案"),
"restored" => "已還原",
-"Nothing in here. Your trash bin is empty!" => "您的垃圾桶是空的!",
+"Nothing in here. Your trash bin is empty!" => "您的回收桶是空的!",
"Restore" => "還原",
"Delete" => "刪除",
"Deleted Files" => "已刪除的檔案"
diff --git a/apps/files_trashbin/templates/index.php b/apps/files_trashbin/templates/index.php
index 371765fa69a..88c32b1f3eb 100644
--- a/apps/files_trashbin/templates/index.php
+++ b/apps/files_trashbin/templates/index.php
@@ -6,7 +6,7 @@
<div id='notification'></div>
<?php if (isset($_['files']) && count($_['files']) === 0 && $_['dirlisting'] === false):?>
- <div id="emptyfolder"><?php p($l->t('Nothing in here. Your trash bin is empty!'))?></div>
+ <div id="emptycontent"><?php p($l->t('Nothing in here. Your trash bin is empty!'))?></div>
<?php endif; ?>
<table id="filestable">
diff --git a/apps/files_versions/l10n/es.php b/apps/files_versions/l10n/es.php
index a6031698e06..b7acc376978 100644
--- a/apps/files_versions/l10n/es.php
+++ b/apps/files_versions/l10n/es.php
@@ -3,7 +3,7 @@ $TRANSLATIONS = array(
"Could not revert: %s" => "No se puede revertir: %s",
"Versions" => "Revisiones",
"Failed to revert {file} to revision {timestamp}." => "No se ha podido revertir {archivo} a revisión {timestamp}.",
-"More versions..." => "Más...",
+"More versions..." => "Más versiones...",
"No other versions available" => "No hay otras versiones disponibles",
"Restore" => "Recuperar"
);
diff --git a/apps/files_versions/l10n/es_AR.php b/apps/files_versions/l10n/es_AR.php
index 068f835d0af..3008220122f 100644
--- a/apps/files_versions/l10n/es_AR.php
+++ b/apps/files_versions/l10n/es_AR.php
@@ -2,6 +2,9 @@
$TRANSLATIONS = array(
"Could not revert: %s" => "No se pudo revertir: %s ",
"Versions" => "Versiones",
+"Failed to revert {file} to revision {timestamp}." => "Falló al revertir {file} a la revisión {timestamp}.",
+"More versions..." => "Más versiones...",
+"No other versions available" => "No hay más versiones disponibles",
"Restore" => "Recuperar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/fr.php b/apps/files_versions/l10n/fr.php
index 537783e6c9f..7f3df1bce41 100644
--- a/apps/files_versions/l10n/fr.php
+++ b/apps/files_versions/l10n/fr.php
@@ -2,6 +2,9 @@
$TRANSLATIONS = array(
"Could not revert: %s" => "Impossible de restaurer %s",
"Versions" => "Versions",
+"Failed to revert {file} to revision {timestamp}." => "Échec du retour du fichier {file} à la révision {timestamp}.",
+"More versions..." => "Plus de versions...",
+"No other versions available" => "Aucune autre version disponible",
"Restore" => "Restaurer"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_versions/l10n/nn_NO.php b/apps/files_versions/l10n/nn_NO.php
index 79b518bc18d..608d72aaaed 100644
--- a/apps/files_versions/l10n/nn_NO.php
+++ b/apps/files_versions/l10n/nn_NO.php
@@ -2,6 +2,9 @@
$TRANSLATIONS = array(
"Could not revert: %s" => "Klarte ikkje å tilbakestilla: %s",
"Versions" => "Utgåver",
+"Failed to revert {file} to revision {timestamp}." => "Klarte ikkje å tilbakestilla {file} til utgåva {timestamp}.",
+"More versions..." => "Fleire utgåver …",
+"No other versions available" => "Ingen andre utgåver tilgjengeleg",
"Restore" => "Gjenopprett"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php
index e5994273635..4f37d5177a7 100644
--- a/apps/user_ldap/l10n/es.php
+++ b/apps/user_ldap/l10n/es.php
@@ -16,6 +16,7 @@ $TRANSLATIONS = array(
"Connection test failed" => "La prueba de conexión falló",
"Do you really want to delete the current Server Configuration?" => "¿Realmente desea eliminar la configuración actual del servidor?",
"Confirm Deletion" => "Confirmar eliminación",
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Advertencia:</b> Las apps user_ldap y user_webdavauth son incompatibles. Puede que experimente un comportamiento inesperado. Pregunte al su administrador de sistemas para desactivar uno de ellos.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Advertencia:</b> El módulo LDAP de PHP no está instalado, el sistema no funcionará. Por favor consulte al administrador del sistema para instalarlo.",
"Server configuration" => "Configuración del Servidor",
"Add Server Configuration" => "Agregar configuracion del servidor",
@@ -29,8 +30,11 @@ $TRANSLATIONS = array(
"Password" => "Contraseña",
"For anonymous access, leave DN and Password empty." => "Para acceso anónimo, deje DN y contraseña vacíos.",
"User Login Filter" => "Filtro de inicio de sesión de usuario",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define el filtro a aplicar cuando se intenta identificar. %%uid remplazará al nombre de usuario en el proceso de identificación. Por ejemplo: \"uid=%%uid\"",
"User List Filter" => "Lista de filtros de usuario",
+"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Define el filtro a aplicar, cuando se obtienen usuarios (sin comodines). Por ejemplo: \"objectClass=person\"",
"Group Filter" => "Filtro de grupo",
+"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Define el filtro a aplicar, cuando se obtienen grupos (sin comodines). Por ejemplo: \"objectClass=posixGroup\"",
"Connection Settings" => "Configuración de conexión",
"Configuration Active" => "Configuracion activa",
"When unchecked, this configuration will be skipped." => "Cuando deseleccione, esta configuracion sera omitida.",
@@ -39,19 +43,23 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Dar un servidor de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP / AD.",
"Backup (Replica) Port" => "Puerto para copias de seguridad (Replica)",
"Disable Main Server" => "Deshabilitar servidor principal",
+"Only connect to the replica server." => "Conectar sólo con el servidor de réplica.",
"Use TLS" => "Usar TLS",
"Do not use it additionally for LDAPS connections, it will fail." => "No lo use para conexiones LDAPS, Fallará.",
"Case insensitve LDAP server (Windows)" => "Servidor de LDAP no sensible a mayúsculas/minúsculas (Windows)",
"Turn off SSL certificate validation." => "Apagar la validación por certificado SSL.",
+"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "No se recomienda, ¡utilízalo únicamente para pruebas! Si la conexión únicamente funciona con esta opción, importa el certificado SSL del servidor LDAP en tu servidor %s.",
"Cache Time-To-Live" => "Cache TTL",
"in seconds. A change empties the cache." => "en segundos. Un cambio vacía la caché.",
"Directory Settings" => "Configuracion de directorio",
"User Display Name Field" => "Campo de nombre de usuario a mostrar",
+"The LDAP attribute to use to generate the user's display name." => "El campo LDAP a usar para generar el nombre para mostrar del usuario.",
"Base User Tree" => "Árbol base de usuario",
"One User Base DN per line" => "Un DN Base de Usuario por línea",
"User Search Attributes" => "Atributos de la busqueda de usuario",
"Optional; one attribute per line" => "Opcional; un atributo por linea",
"Group Display Name Field" => "Campo de nombre de grupo a mostrar",
+"The LDAP attribute to use to generate the groups's display name." => "El campo LDAP a usar para generar el nombre para mostrar del grupo.",
"Base Group Tree" => "Árbol base de grupo",
"One Group Base DN per line" => "Un DN Base de Grupo por línea",
"Group Search Attributes" => "Atributos de busqueda de grupo",
@@ -64,10 +72,13 @@ $TRANSLATIONS = array(
"User Home Folder Naming Rule" => "Regla para la carpeta Home de usuario",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especifique un atributo LDAP/AD.",
"Internal Username" => "Nombre de usuario interno",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "El nombre de usuario interno será creado de forma predeterminada desde el atributo UUID. Esto asegura que el nombre de usuario es único y los caracteres no necesitan ser convertidos. En el nombre de usuario interno sólo se pueden usar estos caracteres: [ a-zA-Z0-9_.@- ]. El resto de caracteres son sustituidos por su correspondiente en ASCII o simplemente omitidos. En caso de duplicidades, se añadirá o incrementará un número. El nombre de usuario interno es usado para identificar un usuario. Es también el nombre predeterminado para la carpeta personal del usuario en ownCloud. También es parte de URLs remotas, por ejemplo, para todos los servicios *DAV. Con esta configuración el comportamiento predeterminado puede ser cambiado. Para conseguir un comportamiento similar a como era antes de ownCloud 5, introduzca el campo del nombre para mostrar del usuario en la siguiente caja. Déjelo vacío para el comportamiento predeterminado. Los cambios solo tendrán efecto en los usuarios LDAP mapeados (añadidos) recientemente.",
"Internal Username Attribute:" => "Atributo Nombre de usuario Interno:",
"Override UUID detection" => "Sobrescribir la detección UUID",
+"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Por defecto, el atributo UUID es autodetectado. Este atributo es usado para identificar indudablemente usuarios y grupos LDAP. Además, el nombre de usuario interno será creado en base al UUID, si no ha sido especificado otro comportamiento arriba. Puedes sobrescribir la configuración y pasar un atributo de tu elección. Debes asegurarte de que el atributo de tu elección sea accesible por los usuarios y grupos y ser único. Déjalo en blanco para usar el comportamiento por defecto. Los cambios tendrán efecto solo en los usuarios y grupos de LDAP mapeados (añadidos) recientemente.",
"UUID Attribute:" => "Atributo UUID:",
"Username-LDAP User Mapping" => "Asignación del Nombre de usuario de un usuario LDAP",
+"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." => "Los usuarios son usados para almacenar y asignar (meta) datos. Con el fin de identificar de forma precisa y reconocer usuarios, cada usuario de LDAP tendrá un nombre de usuario interno. Esto requiere un mapeo entre el nombre de usuario y el usuario del LDAP. El nombre de usuario creado es mapeado respecto al UUID del usuario en el LDAP. De forma adicional, el DN es cacheado para reducir la interacción entre el LDAP, pero no es usado para identificar. Si el DN cambia, los cambios serán aplicados. El nombre de usuario interno es usado por encima de todo. Limpiar los mapeos dejará restos por todas partes, no es sensible a configuración, ¡afecta a todas las configuraciones del LDAP! Nunca limpies los mapeos en un entorno de producción, únicamente en una fase de desarrollo o experimental.",
"Clear Username-LDAP User Mapping" => "Borrar la asignación de los Nombres de usuario de los usuarios LDAP",
"Clear Groupname-LDAP Group Mapping" => "Borrar la asignación de los Nombres de grupo de los grupos de LDAP",
"Test Configuration" => "Configuración de prueba",
diff --git a/apps/user_ldap/l10n/es_AR.php b/apps/user_ldap/l10n/es_AR.php
index ecfcae32f46..b31f41e3dfb 100644
--- a/apps/user_ldap/l10n/es_AR.php
+++ b/apps/user_ldap/l10n/es_AR.php
@@ -16,6 +16,7 @@ $TRANSLATIONS = array(
"Connection test failed" => "Falló es test de conexión",
"Do you really want to delete the current Server Configuration?" => "¿Realmente desea borrar la configuración actual del servidor?",
"Confirm Deletion" => "Confirmar borrado",
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Advertencia:</b> Las apps user_ldap y user_webdavauth son incompatibles. Puede ser que experimentes comportamientos inesperados. Pedile al administrador que desactive uno de ellos.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Atención:</b> El módulo PHP LDAP no está instalado, este elemento no va a funcionar. Por favor, pedile al administrador que lo instale.",
"Server configuration" => "Configuración del Servidor",
"Add Server Configuration" => "Añadir Configuración del Servidor",
@@ -29,8 +30,11 @@ $TRANSLATIONS = array(
"Password" => "Contraseña",
"For anonymous access, leave DN and Password empty." => "Para acceso anónimo, dejá DN y contraseña vacíos.",
"User Login Filter" => "Filtro de inicio de sesión de usuario",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Define el filtro a aplicar cuando se intenta ingresar. %%uid remplaza el nombre de usuario en el proceso de identificación. Por ejemplo: \"uid=%%uid\"",
"User List Filter" => "Lista de filtros de usuario",
+"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Define el filtro a aplicar al obtener usuarios (sin comodines). Por ejemplo: \"objectClass=person\"",
"Group Filter" => "Filtro de grupo",
+"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Define el filtro a aplicar al obtener grupos (sin comodines). Por ejemplo: \"objectClass=posixGroup\"",
"Connection Settings" => "Configuración de Conección",
"Configuration Active" => "Configuración activa",
"When unchecked, this configuration will be skipped." => "Si no está seleccionada, esta configuración será omitida.",
@@ -39,19 +43,23 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Dar un servidor de copia de seguridad opcional. Debe ser una réplica del servidor principal LDAP/AD.",
"Backup (Replica) Port" => "Puerto para copia de seguridad (réplica)",
"Disable Main Server" => "Deshabilitar el Servidor Principal",
+"Only connect to the replica server." => "Conectarse únicamente al servidor de réplica.",
"Use TLS" => "Usar TLS",
"Do not use it additionally for LDAPS connections, it will fail." => "No usar adicionalmente para conexiones LDAPS, las mismas fallarán",
"Case insensitve LDAP server (Windows)" => "Servidor de LDAP sensible a mayúsculas/minúsculas (Windows)",
"Turn off SSL certificate validation." => "Desactivar la validación por certificado SSL.",
+"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "No es recomendado, ¡Usalo solamente para pruebas! Si la conexión únicamente funciona con esta opción, importá el certificado SSL del servidor LDAP en tu servidor %s.",
"Cache Time-To-Live" => "Tiempo de vida del caché",
"in seconds. A change empties the cache." => "en segundos. Cambiarlo vacía la cache.",
"Directory Settings" => "Configuración de Directorio",
"User Display Name Field" => "Campo de nombre de usuario a mostrar",
+"The LDAP attribute to use to generate the user's display name." => "El atributo LDAP a usar para generar el nombre de usuario mostrado.",
"Base User Tree" => "Árbol base de usuario",
"One User Base DN per line" => "Una DN base de usuario por línea",
"User Search Attributes" => "Atributos de la búsqueda de usuario",
"Optional; one attribute per line" => "Opcional; un atributo por linea",
"Group Display Name Field" => "Campo de nombre de grupo a mostrar",
+"The LDAP attribute to use to generate the groups's display name." => "El atributo LDAP a usar para generar el nombre de grupo mostrado.",
"Base Group Tree" => "Árbol base de grupo",
"One Group Base DN per line" => "Una DN base de grupo por línea",
"Group Search Attributes" => "Atributos de búsqueda de grupo",
@@ -64,6 +72,7 @@ $TRANSLATIONS = array(
"User Home Folder Naming Rule" => "Regla de nombre de los directorios de usuario",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Vacío para el nombre de usuario (por defecto). En otro caso, especificá un atributo LDAP/AD.",
"Internal Username" => "Nombre interno de usuario",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "Por defecto, el nombre de usuario interno es creado a partir del atributo UUID. Esto asegura que el nombre de usuario es único y no es necesaria una conversión de caracteres. El nombre de usuario interno sólo se pueden usar estos caracteres: [ a-zA-Z0-9_.@- ]. El resto de caracteres son sustituidos por su correspondiente en ASCII o simplemente omitidos. En caso colisiones, se agregará o incrementará un número. El nombre de usuario interno es usado para identificar un usuario. Es también el nombre predeterminado para el directorio personal del usuario en ownCloud. También es parte de las URLs remotas, por ejemplo, para los servicios *DAV. Con esta opción, se puede cambiar el comportamiento por defecto. Para conseguir un comportamiento similar a versiones anteriores a ownCloud 5, ingresá el atributo del nombre mostrado en el campo siguiente. Dejalo vacío para el comportamiento por defecto. Los cambios solo tendrán efecto en los nuevos usuarios LDAP mapeados (agregados).",
"Internal Username Attribute:" => "Atributo Nombre Interno de usuario:",
"Override UUID detection" => "Sobrescribir la detección UUID",
"UUID Attribute:" => "Atributo UUID:",
diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php
index 0c7d3ad078f..8b6027b81e6 100644
--- a/apps/user_ldap/l10n/fr.php
+++ b/apps/user_ldap/l10n/fr.php
@@ -16,6 +16,7 @@ $TRANSLATIONS = array(
"Connection test failed" => "Test de connexion échoué",
"Do you really want to delete the current Server Configuration?" => "Êtes-vous vraiment sûr de vouloir effacer la configuration actuelle du serveur ?",
"Confirm Deletion" => "Confirmer la suppression",
+"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Avertissement :</b> Les applications user_ldap et user_webdavauth sont incompatibles. Des dysfonctionnements peuvent survenir. Contactez votre administrateur système pour qu'il désactive l'une d'elles.",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Attention :</b> Le module php LDAP n'est pas installé, par conséquent cette extension ne pourra fonctionner. Veuillez contacter votre administrateur système afin qu'il l'installe.",
"Server configuration" => "Configuration du serveur",
"Add Server Configuration" => "Ajouter une configuration du serveur",
@@ -29,8 +30,11 @@ $TRANSLATIONS = array(
"Password" => "Mot de passe",
"For anonymous access, leave DN and Password empty." => "Pour un accès anonyme, laisser le DN utilisateur et le mot de passe vides.",
"User Login Filter" => "Modèle d'authentification utilisateurs",
+"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Définit le filtre à appliquer lors d'une tentative de connexion. %%uid remplace le nom d'utilisateur lors de la connexion. Exemple : \"uid=%%uid\"",
"User List Filter" => "Filtre d'utilisateurs",
+"Defines the filter to apply, when retrieving users (no placeholders). Example: \"objectClass=person\"" => "Définit le filtre à appliquer lors de la récupération des utilisateurs. Exemple : \"objectClass=person\"",
"Group Filter" => "Filtre de groupes",
+"Defines the filter to apply, when retrieving groups (no placeholders). Example: \"objectClass=posixGroup\"" => "Définit le filtre à appliquer lors de la récupération des groupes. Exemple : \"objectClass=posixGroup\"",
"Connection Settings" => "Paramètres de connexion",
"Configuration Active" => "Configuration active",
"When unchecked, this configuration will be skipped." => "Lorsque non cochée, la configuration sera ignorée.",
@@ -39,19 +43,23 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Fournir un serveur de backup optionnel. Il doit s'agir d'une réplique du serveur LDAP/AD principal.",
"Backup (Replica) Port" => "Port du serveur de backup (réplique)",
"Disable Main Server" => "Désactiver le serveur principal",
+"Only connect to the replica server." => "Se connecter uniquement au serveur de replica.",
"Use TLS" => "Utiliser TLS",
"Do not use it additionally for LDAPS connections, it will fail." => "À ne pas utiliser pour les connexions LDAPS (cela échouera).",
"Case insensitve LDAP server (Windows)" => "Serveur LDAP insensible à la casse (Windows)",
"Turn off SSL certificate validation." => "Désactiver la validation du certificat SSL.",
+"Not recommended, use it for testing only! If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Non recommandé, à utiliser à des fins de tests uniquement. Si la connexion ne fonctionne qu'avec cette option, importez le certificat SSL du serveur LDAP dans le serveur %s.",
"Cache Time-To-Live" => "Durée de vie du cache",
"in seconds. A change empties the cache." => "en secondes. Tout changement vide le cache.",
"Directory Settings" => "Paramètres du répertoire",
"User Display Name Field" => "Champ \"nom d'affichage\" de l'utilisateur",
+"The LDAP attribute to use to generate the user's display name." => "L'attribut LDAP utilisé pour générer le nom d'utilisateur affiché.",
"Base User Tree" => "DN racine de l'arbre utilisateurs",
"One User Base DN per line" => "Un DN racine utilisateur par ligne",
"User Search Attributes" => "Recherche des attributs utilisateur",
"Optional; one attribute per line" => "Optionnel, un attribut par ligne",
"Group Display Name Field" => "Champ \"nom d'affichage\" du groupe",
+"The LDAP attribute to use to generate the groups's display name." => "L'attribut LDAP utilisé pour générer le nom de groupe affiché.",
"Base Group Tree" => "DN racine de l'arbre groupes",
"One Group Base DN per line" => "Un DN racine groupe par ligne",
"Group Search Attributes" => "Recherche des attributs du groupe",
@@ -64,10 +72,13 @@ $TRANSLATIONS = array(
"User Home Folder Naming Rule" => "Convention de nommage du répertoire utilisateur",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Laisser vide ",
"Internal Username" => "Nom d'utilisateur interne",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "Par défaut le nom d'utilisateur interne sera créé à partir de l'attribut UUID. Ceci permet d'assurer que le nom d'utilisateur est unique et que les caractères ne nécessitent pas de conversion. Le nom d'utilisateur interne doit contenir uniquement les caractères suivants : [ a-zA-Z0-9_.@- ]. Les autres caractères sont remplacés par leur correspondance ASCII ou simplement omis. En cas de collision, un nombre est incrémenté/décrémenté. Le nom d'utilisateur interne est utilisé pour identifier l'utilisateur au sein du système. C'est aussi le nom par défaut du répertoire utilisateur dans ownCloud. C'est aussi le port d'URLs distants, par exemple pour tous les services *DAV. Le comportement par défaut peut être modifié à l'aide de ce paramètre. Pour obtenir un comportement similaire aux versions précédentes à ownCloud 5, saisir le nom d'utilisateur à afficher dans le champ suivant. Laissez à blanc pour le comportement par défaut. Les modifications prendront effet seulement pour les nouveaux (ajoutés) utilisateurs LDAP.",
"Internal Username Attribute:" => "Nom d'utilisateur interne:",
"Override UUID detection" => "Surcharger la détection d'UUID",
+"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Par défaut, l'attribut UUID est automatiquement détecté. Cet attribut est utilisé pour identifier les utilisateurs et groupes de façon fiable. Un nom d'utilisateur interne basé sur l'UUID sera automatiquement créé, sauf s'il est spécifié autrement ci-dessus. Vous pouvez modifier ce comportement et définir l'attribut de votre choix. Vous devez alors vous assurer que l'attribut de votre choix peut être récupéré pour les utilisateurs ainsi que pour les groupes et qu'il soit unique. Laisser à blanc pour le comportement par défaut. Les modifications seront effectives uniquement pour les nouveaux (ajoutés) utilisateurs et groupes LDAP.",
"UUID Attribute:" => "Attribut UUID :",
"Username-LDAP User Mapping" => "Association Nom d'utilisateur-Utilisateur LDAP",
+"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." => "Les noms d'utilisateurs sont utilisés pour le stockage et l'assignation de (meta) données. Pour identifier et reconnaitre précisément les utilisateurs, chaque utilisateur LDAP aura un nom interne spécifique. Cela requiert l'association d'un nom d'utilisateur ownCloud à un nom d'utilisateur LDAP. Le nom d'utilisateur créé est associé à l'attribut UUID de l'utilisateur LDAP. Par ailleurs, le DN est mémorisé en cache pour limiter les interactions LDAP mais il n'est pas utilisé pour l'identification. Si le DN est modifié, ces modifications seront retrouvées. Seul le nom interne à ownCloud est utilisé au sein du produit. Supprimer les associations créera des orphelins et l'action affectera toutes les configurations LDAP. NE JAMAIS SUPPRIMER LES ASSOCIATIONS EN ENVIRONNEMENT DE PRODUCTION, mais uniquement sur des environnements de tests et d'expérimentation.",
"Clear Username-LDAP User Mapping" => "Supprimer l'association utilisateur interne-utilisateur LDAP",
"Clear Groupname-LDAP Group Mapping" => "Supprimer l'association nom de groupe-groupe LDAP",
"Test Configuration" => "Tester la configuration",
diff --git a/apps/user_ldap/l10n/nn_NO.php b/apps/user_ldap/l10n/nn_NO.php
index 5e584aa31e3..470114d9359 100644
--- a/apps/user_ldap/l10n/nn_NO.php
+++ b/apps/user_ldap/l10n/nn_NO.php
@@ -2,6 +2,7 @@
$TRANSLATIONS = array(
"Deletion failed" => "Feil ved sletting",
"Error" => "Feil",
+"Host" => "Tenar",
"Password" => "Passord",
"Help" => "Hjelp"
);
diff --git a/apps/user_webdavauth/l10n/es.php b/apps/user_webdavauth/l10n/es.php
index cd8ec6659a4..951aabe24ae 100644
--- a/apps/user_webdavauth/l10n/es.php
+++ b/apps/user_webdavauth/l10n/es.php
@@ -1,7 +1,7 @@
<?php
$TRANSLATIONS = array(
-"WebDAV Authentication" => "Autenticación de WevDAV",
+"WebDAV Authentication" => "Autenticación mediante WevDAV",
"Address: " => "Dirección:",
-"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "onwCloud enviará las credenciales de usuario a esta dirección. Este complemento verifica la respuesta e interpretará los códigos de respuesta HTTP 401 y 403 como credenciales inválidas y todas las otras respuestas como credenciales válidas."
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Las credenciales de usuario se enviarán a esta dirección. Este complemento verifica la respuesta e interpretará los códigos de respuesta HTTP 401 y 403 como credenciales inválidas y todas las otras respuestas como credenciales válidas."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/es_AR.php b/apps/user_webdavauth/l10n/es_AR.php
index 608b0ad8179..4ec0bf5a626 100644
--- a/apps/user_webdavauth/l10n/es_AR.php
+++ b/apps/user_webdavauth/l10n/es_AR.php
@@ -1,5 +1,7 @@
<?php
$TRANSLATIONS = array(
-"WebDAV Authentication" => "Autenticación de WevDAV"
+"WebDAV Authentication" => "Autenticación de WebDAV",
+"Address: " => "Dirección:",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Las credenciales del usuario serán enviadas a esta dirección. Este plug-in verificará la respuesta e interpretará los códigos de estado HTTP 401 y 403 como credenciales inválidas y cualquier otra respuesta como válida."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/fr.php b/apps/user_webdavauth/l10n/fr.php
index 0130e35c816..709fa53dac5 100644
--- a/apps/user_webdavauth/l10n/fr.php
+++ b/apps/user_webdavauth/l10n/fr.php
@@ -1,5 +1,7 @@
<?php
$TRANSLATIONS = array(
-"WebDAV Authentication" => "Authentification WebDAV"
+"WebDAV Authentication" => "Authentification WebDAV",
+"Address: " => "Adresse :",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Les informations de connexion de l'utilisateur seront envoyées à cette adresse. Ce module analyse le code de la réponse HTTP et considère les codes 401 et 403 comme une authentification invalide et tout autre valeur comme une authentification valide."
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/user_webdavauth/l10n/nn_NO.php b/apps/user_webdavauth/l10n/nn_NO.php
index 519b942f9f5..909231b5f58 100644
--- a/apps/user_webdavauth/l10n/nn_NO.php
+++ b/apps/user_webdavauth/l10n/nn_NO.php
@@ -1,5 +1,7 @@
<?php
$TRANSLATIONS = array(
-"WebDAV Authentication" => "WebDAV-autentisering"
+"WebDAV Authentication" => "WebDAV-autentisering",
+"Address: " => "Adresse:",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Innloggingsinformasjon blir sendt til denne nettadressa. Dette programtillegget kontrollerer svaret og tolkar HTTP-statuskodane 401 og 403 som ugyldige, og alle andre svar som gyldige."
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";