summaryrefslogtreecommitdiffstats
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/files/ajax/upload.php27
-rw-r--r--apps/files/appinfo/remote.php1
-rw-r--r--apps/files/js/breadcrumb.js5
-rw-r--r--apps/files/js/file-upload.js26
-rw-r--r--apps/files/js/filelist.js169
-rw-r--r--apps/files/js/files.js8
-rw-r--r--apps/files/l10n/ast.php2
-rw-r--r--apps/files/lib/helper.php3
-rw-r--r--apps/files_encryption/l10n/km.php11
-rwxr-xr-xapps/files_encryption/lib/crypt.php4
-rw-r--r--apps/files_external/l10n/ast.php2
-rw-r--r--apps/files_external/l10n/ca.php7
-rw-r--r--apps/files_external/l10n/de.php5
-rw-r--r--apps/files_external/l10n/de_DE.php5
-rw-r--r--apps/files_external/l10n/en_GB.php5
-rw-r--r--apps/files_external/l10n/es.php6
-rw-r--r--apps/files_external/l10n/fi_FI.php5
-rw-r--r--apps/files_external/l10n/fr.php5
-rw-r--r--apps/files_external/l10n/gl.php5
-rw-r--r--apps/files_external/l10n/it.php5
-rw-r--r--apps/files_external/l10n/km.php1
-rw-r--r--apps/files_external/l10n/nl.php5
-rw-r--r--apps/files_external/l10n/pl.php5
-rw-r--r--apps/files_external/l10n/pt_BR.php5
-rw-r--r--apps/files_external/l10n/sv.php5
-rw-r--r--apps/files_external/l10n/tr.php5
-rwxr-xr-xapps/files_external/lib/config.php6
-rw-r--r--apps/files_sharing/js/public.js8
-rw-r--r--apps/files_sharing/js/share.js5
-rw-r--r--apps/files_sharing/tests/api.php23
-rw-r--r--apps/files_trashbin/l10n/ar.php4
-rw-r--r--apps/files_trashbin/l10n/ast.php1
-rw-r--r--apps/files_trashbin/l10n/bg_BG.php4
-rw-r--r--apps/files_trashbin/l10n/ca.php4
-rw-r--r--apps/files_trashbin/l10n/cs_CZ.php4
-rw-r--r--apps/files_trashbin/l10n/cy_GB.php4
-rw-r--r--apps/files_trashbin/l10n/da.php4
-rw-r--r--apps/files_trashbin/l10n/de.php4
-rw-r--r--apps/files_trashbin/l10n/de_CH.php4
-rw-r--r--apps/files_trashbin/l10n/de_DE.php4
-rw-r--r--apps/files_trashbin/l10n/el.php4
-rw-r--r--apps/files_trashbin/l10n/en_GB.php4
-rw-r--r--apps/files_trashbin/l10n/eo.php4
-rw-r--r--apps/files_trashbin/l10n/es.php4
-rw-r--r--apps/files_trashbin/l10n/es_AR.php4
-rw-r--r--apps/files_trashbin/l10n/es_MX.php4
-rw-r--r--apps/files_trashbin/l10n/et_EE.php4
-rw-r--r--apps/files_trashbin/l10n/eu.php4
-rw-r--r--apps/files_trashbin/l10n/fa.php4
-rw-r--r--apps/files_trashbin/l10n/fi_FI.php4
-rw-r--r--apps/files_trashbin/l10n/fr.php4
-rw-r--r--apps/files_trashbin/l10n/gl.php4
-rw-r--r--apps/files_trashbin/l10n/he.php4
-rw-r--r--apps/files_trashbin/l10n/hu_HU.php4
-rw-r--r--apps/files_trashbin/l10n/id.php4
-rw-r--r--apps/files_trashbin/l10n/it.php4
-rw-r--r--apps/files_trashbin/l10n/ja.php4
-rw-r--r--apps/files_trashbin/l10n/ka_GE.php4
-rw-r--r--apps/files_trashbin/l10n/ko.php4
-rw-r--r--apps/files_trashbin/l10n/lt_LT.php4
-rw-r--r--apps/files_trashbin/l10n/lv.php4
-rw-r--r--apps/files_trashbin/l10n/mk.php4
-rw-r--r--apps/files_trashbin/l10n/ms_MY.php4
-rw-r--r--apps/files_trashbin/l10n/nb_NO.php4
-rw-r--r--apps/files_trashbin/l10n/nl.php4
-rw-r--r--apps/files_trashbin/l10n/nn_NO.php4
-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/ru.php4
-rw-r--r--apps/files_trashbin/l10n/sk_SK.php4
-rw-r--r--apps/files_trashbin/l10n/sl.php4
-rw-r--r--apps/files_trashbin/l10n/sq.php4
-rw-r--r--apps/files_trashbin/l10n/sv.php4
-rw-r--r--apps/files_trashbin/l10n/th_TH.php4
-rw-r--r--apps/files_trashbin/l10n/tr.php6
-rw-r--r--apps/files_trashbin/l10n/uk.php4
-rw-r--r--apps/files_trashbin/l10n/vi.php4
-rw-r--r--apps/files_trashbin/l10n/zh_CN.php4
-rw-r--r--apps/files_trashbin/l10n/zh_TW.php4
-rw-r--r--apps/user_ldap/group_ldap.php83
-rw-r--r--apps/user_ldap/group_proxy.php11
-rw-r--r--apps/user_ldap/l10n/ast.php1
-rw-r--r--apps/user_ldap/l10n/bn_BD.php1
-rw-r--r--apps/user_ldap/l10n/ca.php4
-rw-r--r--apps/user_ldap/l10n/cs_CZ.php1
-rw-r--r--apps/user_ldap/l10n/da.php1
-rw-r--r--apps/user_ldap/l10n/de.php4
-rw-r--r--apps/user_ldap/l10n/de_CH.php1
-rw-r--r--apps/user_ldap/l10n/de_DE.php4
-rw-r--r--apps/user_ldap/l10n/el.php1
-rw-r--r--apps/user_ldap/l10n/en_GB.php1
-rw-r--r--apps/user_ldap/l10n/eo.php1
-rw-r--r--apps/user_ldap/l10n/es.php2
-rw-r--r--apps/user_ldap/l10n/es_AR.php1
-rw-r--r--apps/user_ldap/l10n/es_MX.php1
-rw-r--r--apps/user_ldap/l10n/et_EE.php1
-rw-r--r--apps/user_ldap/l10n/eu.php1
-rw-r--r--apps/user_ldap/l10n/fa.php1
-rw-r--r--apps/user_ldap/l10n/fi_FI.php1
-rw-r--r--apps/user_ldap/l10n/fr.php4
-rw-r--r--apps/user_ldap/l10n/gl.php2
-rw-r--r--apps/user_ldap/l10n/hu_HU.php1
-rw-r--r--apps/user_ldap/l10n/id.php1
-rw-r--r--apps/user_ldap/l10n/it.php4
-rw-r--r--apps/user_ldap/l10n/ja.php1
-rw-r--r--apps/user_ldap/l10n/ka_GE.php1
-rw-r--r--apps/user_ldap/l10n/ko.php1
-rw-r--r--apps/user_ldap/l10n/lv.php1
-rw-r--r--apps/user_ldap/l10n/nb_NO.php1
-rw-r--r--apps/user_ldap/l10n/nl.php2
-rw-r--r--apps/user_ldap/l10n/pl.php2
-rw-r--r--apps/user_ldap/l10n/pt_BR.php2
-rw-r--r--apps/user_ldap/l10n/pt_PT.php1
-rw-r--r--apps/user_ldap/l10n/ro.php1
-rw-r--r--apps/user_ldap/l10n/ru.php1
-rw-r--r--apps/user_ldap/l10n/sk_SK.php1
-rw-r--r--apps/user_ldap/l10n/sl.php1
-rw-r--r--apps/user_ldap/l10n/sq.php1
-rw-r--r--apps/user_ldap/l10n/sr.php1
-rw-r--r--apps/user_ldap/l10n/sv.php2
-rw-r--r--apps/user_ldap/l10n/ta_LK.php1
-rw-r--r--apps/user_ldap/l10n/th_TH.php1
-rw-r--r--apps/user_ldap/l10n/tr.php38
-rw-r--r--apps/user_ldap/l10n/uk.php1
-rw-r--r--apps/user_ldap/l10n/vi.php1
-rw-r--r--apps/user_ldap/l10n/zh_CN.php1
-rw-r--r--apps/user_ldap/l10n/zh_TW.php1
-rw-r--r--apps/user_ldap/lib/wizard.php34
-rw-r--r--apps/user_ldap/templates/settings.php2
-rw-r--r--apps/user_ldap/tests/group_ldap.php115
-rw-r--r--apps/user_ldap/tests/wizard.php210
132 files changed, 854 insertions, 278 deletions
diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php
index b21a9dfba2e..a5ce7b257da 100644
--- a/apps/files/ajax/upload.php
+++ b/apps/files/ajax/upload.php
@@ -111,22 +111,32 @@ if ($maxUploadFileSize >= 0 and $totalSize > $maxUploadFileSize) {
}
$result = array();
+$directory = '';
if (strpos($dir, '..') === false) {
$fileCount = count($files['name']);
for ($i = 0; $i < $fileCount; $i++) {
+
+ // Get the files directory
+ if(isset($_POST['file_directory']) === true) {
+ $directory = '/'.$_POST['file_directory'];
+ }
+
// $path needs to be normalized - this failed within drag'n'drop upload to a sub-folder
if (isset($_POST['resolution']) && $_POST['resolution']==='autorename') {
// append a number in brackets like 'filename (2).ext'
- $target = OCP\Files::buildNotExistingFileName(stripslashes($dir), $files['name'][$i]);
+ $target = OCP\Files::buildNotExistingFileName(stripslashes($dir.$directory), $files['name'][$i]);
} else {
- $target = \OC\Files\Filesystem::normalizePath(stripslashes($dir).'/'.$files['name'][$i]);
+ $target = \OC\Files\Filesystem::normalizePath(stripslashes($dir.$directory).'/'.$files['name'][$i]);
}
-
- $directory = \OC\Files\Filesystem::normalizePath(stripslashes($dir));
- if (isset($public_directory)) {
- // If we are uploading from the public app,
- // we want to send the relative path in the ajax request.
- $directory = $public_directory;
+
+ if(empty($directory) === true)
+ {
+ $directory = \OC\Files\Filesystem::normalizePath(stripslashes($dir));
+ if (isset($public_directory)) {
+ // If we are uploading from the public app,
+ // we want to send the relative path in the ajax request.
+ $directory = $public_directory;
+ }
}
if ( ! \OC\Files\Filesystem::file_exists($target)
@@ -186,7 +196,6 @@ if (strpos($dir, '..') === false) {
if ($error === false) {
OCP\JSON::encodedPrint($result);
- exit();
} else {
OCP\JSON::error(array(array('data' => array_merge(array('message' => $error, 'code' => $errorCode), $storageStats))));
}
diff --git a/apps/files/appinfo/remote.php b/apps/files/appinfo/remote.php
index a8acfdb6e6e..c70db0b5ae4 100644
--- a/apps/files/appinfo/remote.php
+++ b/apps/files/appinfo/remote.php
@@ -41,6 +41,7 @@ $server->setBaseUri($baseuri);
$defaults = new OC_Defaults();
$server->addPlugin(new Sabre_DAV_Auth_Plugin($authBackend, $defaults->getName()));
$server->addPlugin(new Sabre_DAV_Locks_Plugin($lockBackend));
+$server->addPlugin(new Sabre_DAV_Browser_Plugin(false));
$server->addPlugin(new OC_Connector_Sabre_FilesPlugin());
$server->addPlugin(new OC_Connector_Sabre_AbortedUploadDetectionPlugin());
$server->addPlugin(new OC_Connector_Sabre_QuotaPlugin());
diff --git a/apps/files/js/breadcrumb.js b/apps/files/js/breadcrumb.js
index ff017a22bb5..5bc2fac1369 100644
--- a/apps/files/js/breadcrumb.js
+++ b/apps/files/js/breadcrumb.js
@@ -20,7 +20,6 @@
*/
/* global OC */
-/* global SVGSupport, replaceSVG */
(function() {
/**
* Creates an breadcrumb element in the given container
@@ -104,8 +103,8 @@
$crumb.addClass('last');
// in case svg is not supported by the browser we need to execute the fallback mechanism
- if (!SVGSupport()) {
- replaceSVG();
+ if (!OC.Util.hasSVGSupport()) {
+ OC.Util.replaceSVG(this.$el);
}
// setup drag and drop
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js
index e5d1eacbd14..3879aa65888 100644
--- a/apps/files/js/file-upload.js
+++ b/apps/files/js/file-upload.js
@@ -242,11 +242,19 @@ OC.Upload = {
data.errorThrown = errorMessage;
}
- if (file.type === '' && file.size === 4096) {
- data.textStatus = 'dirorzero';
- data.errorThrown = t('files', 'Unable to upload {filename} as it is a directory or has 0 bytes',
- {filename: file.name}
- );
+ // in case folder drag and drop is not supported file will point to a directory
+ // http://stackoverflow.com/a/20448357
+ if (!file.type && file.size%4096 === 0 && file.size <= 102400) {
+ try {
+ reader = new FileReader();
+ reader.readAsBinaryString(f);
+ } catch (NS_ERROR_FILE_ACCESS_DENIED) {
+ //file is a directory
+ data.textStatus = 'dirorzero';
+ data.errorThrown = t('files', 'Unable to upload {filename} as it is a directory or has 0 bytes',
+ {filename: file.name}
+ );
+ }
}
// add size
@@ -326,10 +334,15 @@ OC.Upload = {
submit: function(e, data) {
OC.Upload.rememberUpload(data);
if ( ! data.formData ) {
+ var fileDirectory = '';
+ if(typeof data.files[0].relativePath !== 'undefined') {
+ fileDirectory = data.files[0].relativePath;
+ }
// noone set update parameters, we set the minimum
data.formData = {
requesttoken: oc_requesttoken,
- dir: $('#dir').val()
+ dir: $('#dir').val(),
+ file_directory: fileDirectory
};
}
},
@@ -683,3 +696,4 @@ $(document).ready(function() {
OC.Upload.init();
});
+
diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js
index 509929d0e55..9c749bb8f34 100644
--- a/apps/files/js/filelist.js
+++ b/apps/files/js/filelist.js
@@ -9,7 +9,7 @@
*/
/* global OC, t, n, FileList, FileActions, Files, BreadCrumb */
-/* global procesSelection, dragOptions, SVGSupport */
+/* global procesSelection, dragOptions, folderDropOptions */
window.FileList = {
appName: t('files', 'Files'),
isEmpty: true,
@@ -160,22 +160,6 @@ window.FileList = {
this.$fileList.trigger(jQuery.Event("updated"));
},
/**
- * If SVG is not supported, replaces the given images's extension
- * from ".svg" to ".png".
- * If SVG is supported, return the image path as is.
- * @param icon image path
- * @return fixed image path
- */
- _replaceSVG: function(icon) {
- if (!SVGSupport()) {
- var i = icon.lastIndexOf('.svg');
- if (i >= 0) {
- icon = icon.substr(0, i) + '.png' + icon.substr(i+4);
- }
- }
- return icon;
- },
- /**
* Creates a new table row element using the given file data.
* @param fileData map of file attributes
* @param options map of attribute "loading" whether the entry is currently loading
@@ -183,7 +167,7 @@ window.FileList = {
*/
_createRow: function(fileData, options) {
var td, simpleSize, basename, extension, sizeColor,
- icon = FileList._replaceSVG(fileData.icon),
+ icon = OC.Util.replaceSVGIcon(fileData.icon),
name = fileData.name,
type = fileData.type || 'file',
mtime = parseInt(fileData.mtime, 10) || new Date().getTime(),
@@ -228,7 +212,7 @@ window.FileList = {
linkUrl = Files.getDownloadUrl(name, FileList.getCurrentDirectory());
}
td.append('<input id="select-' + fileData.id + '" type="checkbox" /><label for="select-' + fileData.id + '"></label>');
- var link_elem = $('<a></a>').attr({
+ var linkElem = $('<a></a>').attr({
"class": "name",
"href": linkUrl
});
@@ -244,19 +228,19 @@ window.FileList = {
basename = name;
extension = false;
}
- var name_span=$('<span></span>').addClass('nametext').text(basename);
- link_elem.append(name_span);
+ var nameSpan=$('<span></span>').addClass('nametext').text(basename);
+ linkElem.append(nameSpan);
if (extension) {
- name_span.append($('<span></span>').addClass('extension').text(extension));
+ nameSpan.append($('<span></span>').addClass('extension').text(extension));
}
// dirs can show the number of uploaded files
if (type === 'dir') {
- link_elem.append($('<span></span>').attr({
+ linkElem.append($('<span></span>').attr({
'class': 'uploadtext',
'currentUploads': 0
}));
}
- td.append(link_elem);
+ td.append(linkElem);
tr.append(td);
// size column
@@ -266,7 +250,7 @@ window.FileList = {
} else {
simpleSize = t('files', 'Pending');
}
- var lastModifiedTime = Math.round(mtime / 1000);
+
td = $('<td></td>').attr({
"class": "filesize",
"style": 'color:rgb(' + sizeColor + ',' + sizeColor + ',' + sizeColor + ')'
@@ -453,8 +437,6 @@ window.FileList = {
});
},
reloadCallback: function(result) {
- var $controls = $('#controls');
-
delete this._reloadCall;
this.hideMask();
@@ -659,7 +641,11 @@ window.FileList = {
}, null, null, result.data.etag);
}
else {
- tr.find('td.filename').removeClass('preview').attr('style','background-image:url('+FileList._replaceSVG(fileInfo.icon)+')');
+ tr.find('td.filename')
+ .removeClass('preview')
+ .attr('style','background-image:url('
+ + OC.Util.replaceSVGIcon(fileInfo.icon)
+ + ')');
}
}
// reinsert row
@@ -822,10 +808,9 @@ window.FileList = {
var info = t('files', '{dirs} and {files}', infoVars);
// don't show the filesize column, if filesize is NaN (e.g. in trashbin)
- if (isNaN(summary.totalSize)) {
- var fileSize = '';
- } else {
- var fileSize = '<td class="filesize">'+humanFileSize(summary.totalSize)+'</td>';
+ var fileSize = '';
+ if (!isNaN(summary.totalSize)) {
+ fileSize = '<td class="filesize">'+humanFileSize(summary.totalSize)+'</td>';
}
var $summary = $('<tr class="summary" data-file="undefined"><td><span class="info">'+info+'</span></td>'+fileSize+'<td></td></tr>');
@@ -911,7 +896,6 @@ window.FileList = {
}
},
updateEmptyContent: function() {
- var $fileList = $('#fileList');
var permissions = $('#permissions').val();
var isCreatable = (permissions & OC.PERMISSION_CREATE) !== 0;
$('#emptycontent').toggleClass('hidden', !isCreatable || !FileList.isEmpty);
@@ -949,13 +933,13 @@ window.FileList = {
},
scrollTo:function(file) {
//scroll to and highlight preselected file
- var $scrolltorow = FileList.findFileEl(file);
- if ($scrolltorow.exists()) {
- $scrolltorow.addClass('searchresult');
- $(window).scrollTop($scrolltorow.position().top);
+ var $scrollToRow = FileList.findFileEl(file);
+ if ($scrollToRow.exists()) {
+ $scrollToRow.addClass('searchresult');
+ $(window).scrollTop($scrollToRow.position().top);
//remove highlight when hovered over
- $scrolltorow.one('hover', function() {
- $scrolltorow.removeClass('searchresult');
+ $scrollToRow.one('hover', function() {
+ $scrollToRow.removeClass('searchresult');
});
}
},
@@ -991,9 +975,9 @@ $(document).ready(function() {
FileList.initialize();
// handle upload events
- var file_upload_start = $('#file_upload_start');
+ var fileUploadStart = $('#file_upload_start');
- file_upload_start.on('fileuploaddrop', function(e, data) {
+ fileUploadStart.on('fileuploaddrop', function(e, data) {
OC.Upload.log('filelist handle fileuploaddrop', e, data);
var dropTarget = $(e.originalEvent.target).closest('tr, .crumb');
@@ -1020,7 +1004,8 @@ $(document).ready(function() {
data.formData = function(form) {
return [
{name: 'dir', value: dir},
- {name: 'requesttoken', value: oc_requesttoken}
+ {name: 'requesttoken', value: oc_requesttoken},
+ {name: 'file_directory', value: data.files[0].relativePath}
];
};
} else {
@@ -1031,7 +1016,7 @@ $(document).ready(function() {
}
}
});
- file_upload_start.on('fileuploadadd', function(e, data) {
+ fileUploadStart.on('fileuploadadd', function(e, data) {
OC.Upload.log('filelist handle fileuploadadd', e, data);
//finish delete if we are uploading a deleted file
@@ -1044,19 +1029,19 @@ $(document).ready(function() {
// add to existing folder
// update upload counter ui
- var uploadtext = data.context.find('.uploadtext');
- var currentUploads = parseInt(uploadtext.attr('currentUploads'));
+ var uploadText = data.context.find('.uploadtext');
+ var currentUploads = parseInt(uploadText.attr('currentUploads'), 10);
currentUploads += 1;
- uploadtext.attr('currentUploads', currentUploads);
+ uploadText.attr('currentUploads', currentUploads);
var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads);
if (currentUploads === 1) {
var img = OC.imagePath('core', 'loading.gif');
data.context.find('td.filename').attr('style','background-image:url('+img+')');
- uploadtext.text(translatedText);
- uploadtext.show();
+ uploadText.text(translatedText);
+ uploadText.show();
} else {
- uploadtext.text(translatedText);
+ uploadText.text(translatedText);
}
}
@@ -1065,7 +1050,7 @@ $(document).ready(function() {
* when file upload done successfully add row to filelist
* update counter when uploading to sub folder
*/
- file_upload_start.on('fileuploaddone', function(e, data) {
+ fileUploadStart.on('fileuploaddone', function(e, data) {
OC.Upload.log('filelist handle fileuploaddone', e, data);
var response;
@@ -1079,38 +1064,69 @@ $(document).ready(function() {
if (typeof result[0] !== 'undefined' && result[0].status === 'success') {
var file = result[0];
+ var size = 0;
if (data.context && data.context.data('type') === 'dir') {
// update upload counter ui
- var uploadtext = data.context.find('.uploadtext');
- var currentUploads = parseInt(uploadtext.attr('currentUploads'));
+ var uploadText = data.context.find('.uploadtext');
+ var currentUploads = parseInt(uploadText.attr('currentUploads'), 10);
currentUploads -= 1;
- uploadtext.attr('currentUploads', currentUploads);
+ uploadText.attr('currentUploads', currentUploads);
var translatedText = n('files', 'Uploading %n file', 'Uploading %n files', currentUploads);
if (currentUploads === 0) {
var img = OC.imagePath('core', 'filetypes/folder');
data.context.find('td.filename').attr('style','background-image:url('+img+')');
- uploadtext.text(translatedText);
- uploadtext.hide();
+ uploadText.text(translatedText);
+ uploadText.hide();
} else {
- uploadtext.text(translatedText);
+ uploadText.text(translatedText);
}
// update folder size
- var size = parseInt(data.context.data('size'));
- size += parseInt(file.size);
+ size = parseInt(data.context.data('size'), 10);
+ size += parseInt(file.size, 10);
data.context.attr('data-size', size);
data.context.find('td.filesize').text(humanFileSize(size));
-
} else {
// only append new file if uploaded into the current folder
- if (file.directory !== FileList.getCurrentDirectory()) {
+ if (file.directory !== '/' && file.directory !== FileList.getCurrentDirectory()) {
+
+ var fileDirectory = file.directory.replace('/','').replace(/\/$/, "").split('/');
+
+ if (fileDirectory.length === 1) {
+ fileDirectory = fileDirectory[0];
+
+ // Get the directory
+ var fd = FileList.findFileEl(fileDirectory);
+ if (fd.length === 0) {
+ var dir = {
+ name: fileDirectory,
+ type: 'dir',
+ mimetype: 'httpd/unix-directory',
+ permissions: file.permissions,
+ size: 0,
+ id: file.parentId
+ };
+ FileList.add(dir, {insert: true});
+ }
+ } else {
+ fileDirectory = fileDirectory[0];
+ }
+
+ fileDirectory = FileList.findFileEl(fileDirectory);
+
+ // update folder size
+ size = parseInt(fileDirectory.attr('data-size'), 10);
+ size += parseInt(file.size, 10);
+ fileDirectory.attr('data-size', size);
+ fileDirectory.find('td.filesize').text(humanFileSize(size));
+
return;
}
// add as stand-alone row to filelist
- var size=t('files', 'Pending');
+ size = t('files', 'Pending');
if (data.files[0].size>=0) {
size=data.files[0].size;
}
@@ -1122,37 +1138,40 @@ $(document).ready(function() {
}
}
});
- file_upload_start.on('fileuploadstop', function(e, data) {
+ fileUploadStart.on('fileuploadstop', function(e, data) {
OC.Upload.log('filelist handle fileuploadstop', e, data);
//if user pressed cancel hide upload chrome
if (data.errorThrown === 'abort') {
//cleanup uploading to a dir
- var uploadtext = $('tr .uploadtext');
+ var uploadText = $('tr .uploadtext');
var img = OC.imagePath('core', 'filetypes/folder');
- uploadtext.parents('td.filename').attr('style','background-image:url('+img+')');
- uploadtext.fadeOut();
- uploadtext.attr('currentUploads', 0);
+ uploadText.parents('td.filename').attr('style','background-image:url('+img+')');
+ uploadText.fadeOut();
+ uploadText.attr('currentUploads', 0);
}
});
- file_upload_start.on('fileuploadfail', function(e, data) {
+ fileUploadStart.on('fileuploadfail', function(e, data) {
OC.Upload.log('filelist handle fileuploadfail', e, data);
//if user pressed cancel hide upload chrome
if (data.errorThrown === 'abort') {
//cleanup uploading to a dir
- var uploadtext = $('tr .uploadtext');
+ var uploadText = $('tr .uploadtext');
var img = OC.imagePath('core', 'filetypes/folder');
- uploadtext.parents('td.filename').attr('style','background-image:url('+img+')');
- uploadtext.fadeOut();
- uploadtext.attr('currentUploads', 0);
+ uploadText.parents('td.filename').attr('style','background-image:url('+img+')');
+ uploadText.fadeOut();
+ uploadText.attr('currentUploads', 0);
}
});
$('#notification').hide();
$('#notification:first-child').on('click', '.replace', function() {
OC.Notification.hide(function() {
- FileList.replace($('#notification > span').attr('data-oldName'), $('#notification > span').attr('data-newName'), $('#notification > span').attr('data-isNewFile'));
+ FileList.replace(
+ $('#notification > span').attr('data-oldName'),
+ $('#notification > span').attr('data-newName'),
+ $('#notification > span').attr('data-isNewFile'));
});
});
$('#notification:first-child').on('click', '.suggest', function() {
@@ -1182,8 +1201,7 @@ $(document).ready(function() {
function parseHashQuery() {
var hash = window.location.hash,
- pos = hash.indexOf('?'),
- query;
+ pos = hash.indexOf('?');
if (pos >= 0) {
return hash.substr(pos + 1);
}
@@ -1192,8 +1210,7 @@ $(document).ready(function() {
function parseCurrentDirFromUrl() {
var query = parseHashQuery(),
- params,
- dir = '/';
+ params;
// try and parse from URL hash first
if (query) {
params = OC.parseQueryString(decodeQuery(query));
diff --git a/apps/files/js/files.js b/apps/files/js/files.js
index ceb096f0941..ac10191618b 100644
--- a/apps/files/js/files.js
+++ b/apps/files/js/files.js
@@ -131,15 +131,15 @@ var Files = {
var encryptedFiles = $('#encryptedFiles').val();
var initStatus = $('#encryptionInitStatus').val();
if (initStatus === '0') { // enc not initialized, but should be
- OC.Notification.show(t('files_encryption', 'Encryption App is enabled but your keys are not initialized, please log-out and log-in again'));
+ OC.Notification.show(t('files', 'Encryption App is enabled but your keys are not initialized, please log-out and log-in again'));
return;
}
if (initStatus === '1') { // encryption tried to init but failed
- OC.Notification.showHtml(t('files_encryption', 'Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.'));
+ OC.Notification.showHtml(t('files', 'Invalid private key for Encryption App. Please update your private key password in your personal settings to recover access to your encrypted files.'));
return;
}
if (encryptedFiles === '1') {
- OC.Notification.show(t('files_encryption', 'Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.'));
+ OC.Notification.show(t('files', 'Encryption was disabled but your files are still encrypted. Please go to your personal settings to decrypt your files.'));
return;
}
},
@@ -635,7 +635,7 @@ Files.getMimeIcon = function(mime, ready) {
ready(Files.getMimeIcon.cache[mime]);
} else {
$.get( OC.filePath('files','ajax','mimeicon.php'), {mime: mime}, function(path) {
- if(SVGSupport()){
+ if(OC.Util.hasSVGSupport()){
path = path.substr(0, path.length-4) + '.svg';
}
Files.getMimeIcon.cache[mime]=path;
diff --git a/apps/files/l10n/ast.php b/apps/files/l10n/ast.php
index 3e1eb722655..93ae47b25c5 100644
--- a/apps/files/l10n/ast.php
+++ b/apps/files/l10n/ast.php
@@ -13,6 +13,7 @@ $TRANSLATIONS = array(
"Files" => "Ficheros",
"Share" => "Compartir",
"Rename" => "Renomar",
+"Error" => "Fallu",
"_%n folder_::_%n folders_" => array("",""),
"_%n file_::_%n files_" => array("",""),
"_Uploading %n file_::_Uploading %n files_" => array("",""),
@@ -20,6 +21,7 @@ $TRANSLATIONS = array(
"Size" => "Tamañu",
"Upload" => "Xubir",
"Save" => "Guardar",
+"New folder" => "Nueva carpeta",
"Cancel upload" => "Encaboxar xuba",
"Download" => "Descargar",
"Delete" => "Desaniciar"
diff --git a/apps/files/lib/helper.php b/apps/files/lib/helper.php
index b765fdaf3e3..f9515d67157 100644
--- a/apps/files/lib/helper.php
+++ b/apps/files/lib/helper.php
@@ -73,13 +73,14 @@ class Helper
/**
* Formats the file info to be returned as JSON to the client.
*
- * @param \OCP\Files\FileInfo file info
+ * @param \OCP\Files\FileInfo $i
* @return array formatted file info
*/
public static function formatFileInfo($i) {
$entry = array();
$entry['id'] = $i['fileid'];
+ $entry['parentId'] = $i['parent'];
$entry['date'] = \OCP\Util::formatDate($i['mtime']);
$entry['mtime'] = $i['mtime'] * 1000;
// only pick out the needed attributes
diff --git a/apps/files_encryption/l10n/km.php b/apps/files_encryption/l10n/km.php
new file mode 100644
index 00000000000..0defe6c5388
--- /dev/null
+++ b/apps/files_encryption/l10n/km.php
@@ -0,0 +1,11 @@
+<?php
+$TRANSLATIONS = array(
+"Password successfully changed." => "បាន​ប្ដូរ​ពាក្យ​សម្ងាត់​ដោយ​ជោគជ័យ។",
+"Could not change the password. Maybe the old password was not correct." => "មិន​អាច​ប្ដូរ​ពាក្យ​សម្ងាត់​បាន​ទេ។ ប្រហែល​ពាក្យ​សម្ងាត់​ចាស់​មិន​ត្រឹម​ត្រូវ។",
+"personal settings" => "ការ​កំណត់​ផ្ទាល់​ខ្លួន",
+"Encryption" => "កូដនីយកម្ម",
+"Enabled" => "បាន​បើក",
+"Disabled" => "បាន​បិទ",
+"Change Password" => "ប្ដូរ​ពាក្យ​សម្ងាត់"
+);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_encryption/lib/crypt.php b/apps/files_encryption/lib/crypt.php
index caca13acece..a4f7bd35497 100755
--- a/apps/files_encryption/lib/crypt.php
+++ b/apps/files_encryption/lib/crypt.php
@@ -497,13 +497,13 @@ class Crypt {
}
/**
- * @brief Generate a pseudo random 1024kb ASCII key, used as file key
+ * @brief Generate a pseudo random 256-bit ASCII key, used as file key
* @returns $key Generated key
*/
public static function generateKey() {
// Generate key
- if ($key = base64_encode(openssl_random_pseudo_bytes(183, $strong))) {
+ if ($key = base64_encode(openssl_random_pseudo_bytes(32, $strong))) {
if (!$strong) {
diff --git a/apps/files_external/l10n/ast.php b/apps/files_external/l10n/ast.php
index 9d4d891dda3..7061cffaa8e 100644
--- a/apps/files_external/l10n/ast.php
+++ b/apps/files_external/l10n/ast.php
@@ -1,7 +1,9 @@
<?php
$TRANSLATIONS = array(
+"Folder name" => "Nome de la carpeta",
"Options" => "Opciones",
"Groups" => "Grupos",
+"Users" => "Usuarios",
"Delete" => "Desaniciar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_external/l10n/ca.php b/apps/files_external/l10n/ca.php
index 50b6f55231b..8411d79306f 100644
--- a/apps/files_external/l10n/ca.php
+++ b/apps/files_external/l10n/ca.php
@@ -6,12 +6,19 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Proporcioneu una clau d'aplicació i secret vàlids per a Dropbox",
"Error configuring Google Drive storage" => "Error en configurar l'emmagatzemament Google Drive",
"Saved" => "Desat",
+"<b>Note:</b> " => "<b>Nota:</b> ",
+" and " => "i",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> El suport cURL no està activat o instal·lat a PHP. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> El suport FTP per PHP no està activat o no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> %s no està instal·lat. No es pot muntar %s. Demaneu a l'administrador del sistema que l'instal·li.",
"External Storage" => "Emmagatzemament extern",
"Folder name" => "Nom de la carpeta",
"External storage" => "Emmagatzemament extern",
"Configuration" => "Configuració",
"Options" => "Options",
+"Available for" => "Disponible per",
"Add storage" => "Afegeix emmagatzemament",
+"No user or group" => "Sense usuaris o grups",
"All Users" => "Tots els usuaris",
"Groups" => "Grups",
"Users" => "Usuaris",
diff --git a/apps/files_external/l10n/de.php b/apps/files_external/l10n/de.php
index 1d5a4f626b0..25c7ffb3af1 100644
--- a/apps/files_external/l10n/de.php
+++ b/apps/files_external/l10n/de.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Bitte trage einen gültigen Dropbox-App-Key mit Secret ein.",
"Error configuring Google Drive storage" => "Fehler beim Einrichten von Google Drive",
"Saved" => "Gespeichert",
+"<b>Note:</b> " => "<b>Hinweis:</b> ",
+" and " => "und",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Hinweis:</b> Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich zur Installation an Deinen Systemadministrator.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Hinweis:</b> Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Hinweis:</b> \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wende Dich sich zur Installation an Deinen Systemadministrator.",
"External Storage" => "Externer Speicher",
"Folder name" => "Ordnername",
"External storage" => "Externer Speicher",
diff --git a/apps/files_external/l10n/de_DE.php b/apps/files_external/l10n/de_DE.php
index c2534f3dd8a..186aa5a299a 100644
--- a/apps/files_external/l10n/de_DE.php
+++ b/apps/files_external/l10n/de_DE.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Bitte tragen Sie einen gültigen Dropbox-App-Key mit Secret ein.",
"Error configuring Google Drive storage" => "Fehler beim Einrichten von Google Drive",
"Saved" => "Gespeichert",
+"<b>Note:</b> " => "<b>Hinweis:</b> ",
+" and " => "und",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Hinweis:</b> Die cURL-Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Hinweis:</b> Die FTP Unterstützung von PHP ist nicht aktiviert oder installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Hinweis:</b> \"%s\" ist nicht installiert. Das Hinzufügen von %s ist nicht möglich. Bitte wenden Sie sich zur Installation an Ihren Systemadministrator.",
"External Storage" => "Externer Speicher",
"Folder name" => "Ordnername",
"External storage" => "Externer Speicher",
diff --git a/apps/files_external/l10n/en_GB.php b/apps/files_external/l10n/en_GB.php
index 3160d514621..4bd3f9daf2a 100644
--- a/apps/files_external/l10n/en_GB.php
+++ b/apps/files_external/l10n/en_GB.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Please provide a valid Dropbox app key and secret.",
"Error configuring Google Drive storage" => "Error configuring Google Drive storage",
"Saved" => "Saved",
+"<b>Note:</b> " => "<b>Note:</b> ",
+" and " => " and ",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it.",
"External Storage" => "External Storage",
"Folder name" => "Folder name",
"External storage" => "External storage",
diff --git a/apps/files_external/l10n/es.php b/apps/files_external/l10n/es.php
index 0af20d939b2..bfe542c6e71 100644
--- a/apps/files_external/l10n/es.php
+++ b/apps/files_external/l10n/es.php
@@ -6,11 +6,17 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Por favor, proporcione un una clave válida de la app Dropbox y una clave secreta.",
"Error configuring Google Drive storage" => "Error configurando el almacenamiento de Google Drive",
"Saved" => "Guardado",
+"<b>Note:</b> " => "<b>Nota:</b> ",
+" and " => "y",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> El soporte de cURL en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> El soporte de FTP en PHP no está activado o instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> \"%s\" no está instalado. No se puede montar %s. Pídale al administrador de sistema que lo instale.",
"External Storage" => "Almacenamiento externo",
"Folder name" => "Nombre de la carpeta",
"External storage" => "Almacenamiento externo",
"Configuration" => "Configuración",
"Options" => "Opciones",
+"Available for" => "Disponible para",
"Add storage" => "Añadir almacenamiento",
"No user or group" => "Ningún usuario o grupo",
"All Users" => "Todos los usuarios",
diff --git a/apps/files_external/l10n/fi_FI.php b/apps/files_external/l10n/fi_FI.php
index 1924478ad23..677425d8a6a 100644
--- a/apps/files_external/l10n/fi_FI.php
+++ b/apps/files_external/l10n/fi_FI.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Anna kelvollinen Dropbox-sovellusavain ja salainen vastaus.",
"Error configuring Google Drive storage" => "Virhe Google Drive levyn asetuksia tehtäessä",
"Saved" => "Tallennettu",
+"<b>Note:</b> " => "<b>Huomio:</b> ",
+" and " => "ja",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Huomio:</b> PHP:n cURL-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan cURL-tuki käyttöön.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Huomio:</b> PHP:n FTP-tuki ei ole käytössä tai sitä ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää ottamaan FTP-tuki käyttöön.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Huomio:</b> \"%s\" ei ole asennettu. Kohteen %s liittäminen ei ole mahdollista. Pyydä järjestelmän ylläpitäjää asentamaan puuttuva kohde.",
"External Storage" => "Erillinen tallennusväline",
"Folder name" => "Kansion nimi",
"External storage" => "Ulkoinen tallennustila",
diff --git a/apps/files_external/l10n/fr.php b/apps/files_external/l10n/fr.php
index 80c18940096..8ff19697182 100644
--- a/apps/files_external/l10n/fr.php
+++ b/apps/files_external/l10n/fr.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Veuillez fournir une clé d'application (app key) ainsi qu'un mot de passe valides.",
"Error configuring Google Drive storage" => "Erreur lors de la configuration du support de stockage Google Drive",
"Saved" => "Sauvegarder",
+"<b>Note:</b> " => "<b>Attention :</b>",
+" and " => "et",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Attention :</b> Le support de cURL de PHP n'est pas activé ou installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Attention : </b> Le support FTP de PHP n'est pas activé ou installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Attention : </b> \"%s\" n'est pas installé. Le montage de %s n'est pas possible. Contactez votre administrateur système pour l'installer.",
"External Storage" => "Stockage externe",
"Folder name" => "Nom du dossier",
"External storage" => "Stockage externe",
diff --git a/apps/files_external/l10n/gl.php b/apps/files_external/l10n/gl.php
index 1117e8590cf..5efa6ce6028 100644
--- a/apps/files_external/l10n/gl.php
+++ b/apps/files_external/l10n/gl.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Forneza unha chave correcta e segreda do Dropbox.",
"Error configuring Google Drive storage" => "Produciuse un erro ao configurar o almacenamento en Google Drive",
"Saved" => "Gardado",
+"<b>Note:</b> " => "<b>Nota:</b> ",
+" and " => "e",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> A compatibilidade de cURL en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> A compatibilidade de FTP en PHP non está activada, ou non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> «%s» non está instalado. Non é posíbel a montaxe de %s. Consulte co administrador do sistema como instalalo.",
"External Storage" => "Almacenamento externo",
"Folder name" => "Nome do cartafol",
"External storage" => "Almacenamento externo",
diff --git a/apps/files_external/l10n/it.php b/apps/files_external/l10n/it.php
index b68bff2474e..f3a6f9af129 100644
--- a/apps/files_external/l10n/it.php
+++ b/apps/files_external/l10n/it.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Fornisci chiave di applicazione e segreto di Dropbox validi.",
"Error configuring Google Drive storage" => "Errore durante la configurazione dell'archivio Google Drive",
"Saved" => "Salvato",
+"<b>Note:</b> " => "<b>Nota:</b>",
+" and " => "e",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> il supporto a cURL di PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> il supporto a FTP in PHP non è abilitato o installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> \"%s\" non è installato. Impossibile montare %s. Chiedi al tuo amministratore di sistema di installarlo.",
"External Storage" => "Archiviazione esterna",
"Folder name" => "Nome della cartella",
"External storage" => "Archiviazione esterna",
diff --git a/apps/files_external/l10n/km.php b/apps/files_external/l10n/km.php
index 4586f866a74..75879f2300e 100644
--- a/apps/files_external/l10n/km.php
+++ b/apps/files_external/l10n/km.php
@@ -1,6 +1,7 @@
<?php
$TRANSLATIONS = array(
"Folder name" => "ឈ្មោះ​ថត",
+"Options" => "ជម្រើស",
"Groups" => "ក្រុ",
"Users" => "អ្នកប្រើ",
"Delete" => "លុប"
diff --git a/apps/files_external/l10n/nl.php b/apps/files_external/l10n/nl.php
index 0226e454f9a..c055be50f87 100644
--- a/apps/files_external/l10n/nl.php
+++ b/apps/files_external/l10n/nl.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Geef een geldige Dropbox key en secret.",
"Error configuring Google Drive storage" => "Fout tijdens het configureren van Google Drive opslag",
"Saved" => "Bewaard",
+"<b>Note:</b> " => "<b>Let op:</b> ",
+" and " => "en",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Let op:</b> Curl ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw systeembeheerder dit te installeren.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Let op:</b> FTP ondersteuning in PHP is niet geactiveerd of geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder dit te installeren.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Let op:</b> \"%s\" is niet geïnstalleerd. Mounten van %s is niet mogelijk. Vraag uw beheerder om dit te installeren.",
"External Storage" => "Externe opslag",
"Folder name" => "Mapnaam",
"External storage" => "Externe opslag",
diff --git a/apps/files_external/l10n/pl.php b/apps/files_external/l10n/pl.php
index 801a72c9bf9..246e12b6ac8 100644
--- a/apps/files_external/l10n/pl.php
+++ b/apps/files_external/l10n/pl.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Proszę podać prawidłowy klucz aplikacji Dropbox i klucz sekretny.",
"Error configuring Google Drive storage" => "Wystąpił błąd podczas konfigurowania zasobu Google Drive",
"Saved" => "Zapisano",
+"<b>Note:</b> " => "<b>Uwaga:</b> ",
+" and " => "oraz",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Uwaga:</b> Wsparcie dla cURL w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Uwaga:</b> Wsparcie dla FTP w PHP nie zostało włączone lub zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Uwaga:</b> \"%s\" nie jest zainstalowane. Zamontowanie %s nie jest możliwe. Proszę poproś Twojego administratora o zainstalowanie go.",
"External Storage" => "Zewnętrzna zasoby dyskowe",
"Folder name" => "Nazwa folderu",
"External storage" => "Zewnętrzne zasoby dyskowe",
diff --git a/apps/files_external/l10n/pt_BR.php b/apps/files_external/l10n/pt_BR.php
index 121c45f45d6..9a5a39f2358 100644
--- a/apps/files_external/l10n/pt_BR.php
+++ b/apps/files_external/l10n/pt_BR.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Por favor forneça um app key e secret válido do Dropbox",
"Error configuring Google Drive storage" => "Erro ao configurar armazenamento do Google Drive",
"Saved" => "Salvo",
+"<b>Note:</b> " => "<b>Nota:</b>",
+" and " => "e",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> O suporte cURL do PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> O suporte FTP no PHP não está habilitado ou instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Nota:</b> \"%s\" não está instalado. Montagem de %s não é possível. Por favor, solicite ao seu administrador do sistema para instalá-lo.",
"External Storage" => "Armazenamento Externo",
"Folder name" => "Nome da pasta",
"External storage" => "Armazenamento Externo",
diff --git a/apps/files_external/l10n/sv.php b/apps/files_external/l10n/sv.php
index ad5e6ad050c..2992460d283 100644
--- a/apps/files_external/l10n/sv.php
+++ b/apps/files_external/l10n/sv.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Ange en giltig Dropbox nyckel och hemlighet.",
"Error configuring Google Drive storage" => "Fel vid konfigurering av Google Drive",
"Saved" => "Sparad",
+"<b>Note:</b> " => "<b> OBS: </ b>",
+" and " => "och",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b> OBS: </ b> cURL stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör för att installera det.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b> OBS: </ b> Den FTP-stöd i PHP inte är aktiverat eller installeras. Montering av %s är inte möjlig. Be din systemadministratör för att installera det.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b> OBS: </ b> \"%s\" är inte installerat. Montering av %s är inte möjlig. Be din systemadministratör för att installera det.",
"External Storage" => "Extern lagring",
"Folder name" => "Mappnamn",
"External storage" => "Extern lagring",
diff --git a/apps/files_external/l10n/tr.php b/apps/files_external/l10n/tr.php
index 07bf1a2354c..3646a47605d 100644
--- a/apps/files_external/l10n/tr.php
+++ b/apps/files_external/l10n/tr.php
@@ -6,6 +6,11 @@ $TRANSLATIONS = array(
"Please provide a valid Dropbox app key and secret." => "Lütfen Dropbox app key ve secret temin ediniz",
"Error configuring Google Drive storage" => "Google Drive depo yapılandırma hatası",
"Saved" => "Kaydedildi",
+"<b>Note:</b> " => "<b>Not:</b> ",
+" and " => "ve",
+"<b>Note:</b> The cURL support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Not:</b> PHP'de cURL desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
+"<b>Note:</b> The FTP support in PHP is not enabled or installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Not:</b> PHP'de FTP desteği etkin veya kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
+"<b>Note:</b> \"%s\" is not installed. Mounting of %s is not possible. Please ask your system administrator to install it." => "<b>Not:</b> \"%s\" kurulu değil. %s bağlaması mümkün olmayacak. Lütfen kurulumu için sistem yöneticilerinizle iletişime geçin.",
"External Storage" => "Harici Depolama",
"Folder name" => "Klasör ismi",
"External storage" => "Harici depolama",
diff --git a/apps/files_external/lib/config.php b/apps/files_external/lib/config.php
index 613f0b2609c..71f6ae78878 100755
--- a/apps/files_external/lib/config.php
+++ b/apps/files_external/lib/config.php
@@ -206,6 +206,12 @@ class OC_Mount_Config {
*/
public static function getPersonalBackends() {
+ // Check whether the user has permissions to add personal storage backends
+ // return an empty array if this is not the case
+ if(OCP\Config::getAppValue('files_external', 'allow_user_mounting', 'yes') !== 'yes') {
+ return array();
+ }
+
$backEnds = self::getBackends();
// Remove local storage and other disabled storages
diff --git a/apps/files_sharing/js/public.js b/apps/files_sharing/js/public.js
index 9ce8985f1fd..ae2412f6a3b 100644
--- a/apps/files_sharing/js/public.js
+++ b/apps/files_sharing/js/public.js
@@ -62,11 +62,17 @@ $(document).ready(function() {
var file_upload_start = $('#file_upload_start');
file_upload_start.on('fileuploadadd', function(e, data) {
+ var fileDirectory = '';
+ if(typeof data.files[0].relativePath !== 'undefined') {
+ fileDirectory = data.files[0].relativePath;
+ }
+
// Add custom data to the upload handler
data.formData = {
requesttoken: $('#publicUploadRequestToken').val(),
dirToken: $('#dirToken').val(),
- subdir: $('input#dir').val()
+ subdir: $('input#dir').val(),
+ file_directory: fileDirectory
};
});
diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js
index ea518f3b70e..3c7c9239a6c 100644
--- a/apps/files_sharing/js/share.js
+++ b/apps/files_sharing/js/share.js
@@ -45,11 +45,6 @@ $(document).ready(function() {
});
FileActions.register('all', 'Share', OC.PERMISSION_READ, OC.imagePath('core', 'actions/share'), function(filename) {
- var dir = $('#dir').val();
- var item = dir + '/' + filename;
- if (dir == '/') {
- item = dir + filename;
- }
var tr = FileList.findFileEl(filename);
var itemType = 'file';
if ($(tr).data('type') == 'dir') {
diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php
index e3c5b6e4315..c7a848315ac 100644
--- a/apps/files_sharing/tests/api.php
+++ b/apps/files_sharing/tests/api.php
@@ -878,6 +878,29 @@ class Test_Files_Sharing_Api extends Test_Files_Sharing_Base {
$this->assertSame($expectedResult, $shareApiDummy->correctPathTest($path, $folder));
}
+ /**
+ * @expectedException \Exception
+ */
+ public function testShareNonExisting() {
+ \Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER1);
+
+ $id = PHP_INT_MAX - 1;
+ \OCP\Share::shareItem('file', $id, \OCP\Share::SHARE_TYPE_LINK, \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2, 31);
+ }
+
+ /**
+ * @expectedException \Exception
+ */
+ public function testShareNotOwner() {
+ \Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2);
+ \OC\Files\Filesystem::file_put_contents('foo.txt', 'bar');
+ $info = \OC\Files\Filesystem::getFileInfo('foo.txt');
+
+ \Test_Files_Sharing_Api::loginHelper(\Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER1);
+
+ \OCP\Share::shareItem('file', $info->getId(), \OCP\Share::SHARE_TYPE_LINK, \Test_Files_Sharing_Api::TEST_FILES_SHARING_API_USER2, 31);
+ }
+
}
/**
diff --git a/apps/files_trashbin/l10n/ar.php b/apps/files_trashbin/l10n/ar.php
index 4084daa127a..b3abc7df86e 100644
--- a/apps/files_trashbin/l10n/ar.php
+++ b/apps/files_trashbin/l10n/ar.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "تعذّر استرجاع %s ",
"Deleted files" => "حذف الملفات",
"Error" => "خطأ",
+"Deleted Files" => "الملفات المحذوفه",
"restored" => "تمت الاستعادة",
"Nothing in here. Your trash bin is empty!" => "لا يوجد شيء هنا. سلة المهملات خاليه.",
"Name" => "اسم",
"Restore" => "استعيد",
"Deleted" => "تم الحذف",
-"Delete" => "إلغاء",
-"Deleted Files" => "الملفات المحذوفه"
+"Delete" => "إلغاء"
);
$PLURAL_FORMS = "nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 && n%100<=10 ? 3 : n%100>=11 && n%100<=99 ? 4 : 5;";
diff --git a/apps/files_trashbin/l10n/ast.php b/apps/files_trashbin/l10n/ast.php
index d2cfafd679c..91c122bd4d3 100644
--- a/apps/files_trashbin/l10n/ast.php
+++ b/apps/files_trashbin/l10n/ast.php
@@ -1,5 +1,6 @@
<?php
$TRANSLATIONS = array(
+"Error" => "Fallu",
"Name" => "Nome",
"Restore" => "Restaurar",
"Delete" => "Desaniciar"
diff --git a/apps/files_trashbin/l10n/bg_BG.php b/apps/files_trashbin/l10n/bg_BG.php
index 2f1521feaa5..8c9e658068c 100644
--- a/apps/files_trashbin/l10n/bg_BG.php
+++ b/apps/files_trashbin/l10n/bg_BG.php
@@ -3,11 +3,11 @@ $TRANSLATIONS = array(
"Couldn't delete %s permanently" => "Невъзможно перманентното изтриване на %s",
"Couldn't restore %s" => "Невъзможно възтановяване на %s",
"Error" => "Грешка",
+"Deleted Files" => "Изтрити файлове",
"Nothing in here. Your trash bin is empty!" => "Няма нищо. Кофата е празна!",
"Name" => "Име",
"Restore" => "Възтановяване",
"Deleted" => "Изтрито",
-"Delete" => "Изтриване",
-"Deleted Files" => "Изтрити файлове"
+"Delete" => "Изтриване"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/ca.php b/apps/files_trashbin/l10n/ca.php
index c99b414c7a8..196d6ac00a4 100644
--- a/apps/files_trashbin/l10n/ca.php
+++ b/apps/files_trashbin/l10n/ca.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "No s'ha pogut restaurar %s",
"Deleted files" => "Fitxers esborrats",
"Error" => "Error",
+"Deleted Files" => "Fitxers eliminats",
"restored" => "restaurat",
"Nothing in here. Your trash bin is empty!" => "La paperera està buida!",
"Name" => "Nom",
"Restore" => "Recupera",
"Deleted" => "Eliminat",
-"Delete" => "Esborra",
-"Deleted Files" => "Fitxers eliminats"
+"Delete" => "Esborra"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/cs_CZ.php b/apps/files_trashbin/l10n/cs_CZ.php
index e0c46c5137d..ed795582e43 100644
--- a/apps/files_trashbin/l10n/cs_CZ.php
+++ b/apps/files_trashbin/l10n/cs_CZ.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nelze obnovit %s",
"Deleted files" => "Odstraněné soubory",
"Error" => "Chyba",
+"Deleted Files" => "Smazané soubory",
"restored" => "obnoveno",
"Nothing in here. Your trash bin is empty!" => "Žádný obsah. Váš koš je prázdný.",
"Name" => "Název",
"Restore" => "Obnovit",
"Deleted" => "Smazáno",
-"Delete" => "Smazat",
-"Deleted Files" => "Smazané soubory"
+"Delete" => "Smazat"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/files_trashbin/l10n/cy_GB.php b/apps/files_trashbin/l10n/cy_GB.php
index bc8a318733b..7b1405777dd 100644
--- a/apps/files_trashbin/l10n/cy_GB.php
+++ b/apps/files_trashbin/l10n/cy_GB.php
@@ -4,11 +4,11 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Methwyd adfer %s",
"Deleted files" => "Ffeiliau ddilewyd",
"Error" => "Gwall",
+"Deleted Files" => "Ffeiliau Ddilewyd",
"Nothing in here. Your trash bin is empty!" => "Does dim byd yma. Mae eich bin sbwriel yn wag!",
"Name" => "Enw",
"Restore" => "Adfer",
"Deleted" => "Wedi dileu",
-"Delete" => "Dileu",
-"Deleted Files" => "Ffeiliau Ddilewyd"
+"Delete" => "Dileu"
);
$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;";
diff --git a/apps/files_trashbin/l10n/da.php b/apps/files_trashbin/l10n/da.php
index 831ba6067da..7f7b65bca2c 100644
--- a/apps/files_trashbin/l10n/da.php
+++ b/apps/files_trashbin/l10n/da.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Kunne ikke gendanne %s",
"Deleted files" => "Slettede filer",
"Error" => "Fejl",
+"Deleted Files" => "Slettede filer",
"restored" => "Gendannet",
"Nothing in here. Your trash bin is empty!" => "Intet at se her. Din papirkurv er tom!",
"Name" => "Navn",
"Restore" => "Gendan",
"Deleted" => "Slettet",
-"Delete" => "Slet",
-"Deleted Files" => "Slettede filer"
+"Delete" => "Slet"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/de.php b/apps/files_trashbin/l10n/de.php
index fd00b4c433f..4778e159e1d 100644
--- a/apps/files_trashbin/l10n/de.php
+++ b/apps/files_trashbin/l10n/de.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Konnte %s nicht wiederherstellen",
"Deleted files" => "Gelöschte Dateien",
"Error" => "Fehler",
+"Deleted Files" => "Gelöschte Dateien",
"restored" => "Wiederhergestellt",
"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, der Papierkorb ist leer!",
"Name" => "Name",
"Restore" => "Wiederherstellen",
"Deleted" => "gelöscht",
-"Delete" => "Löschen",
-"Deleted Files" => "Gelöschte Dateien"
+"Delete" => "Löschen"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/de_CH.php b/apps/files_trashbin/l10n/de_CH.php
index 665be5d5ee7..603d82f5c7a 100644
--- a/apps/files_trashbin/l10n/de_CH.php
+++ b/apps/files_trashbin/l10n/de_CH.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Konnte %s nicht wiederherstellen",
"Deleted files" => "Gelöschte Dateien",
"Error" => "Fehler",
+"Deleted Files" => "Gelöschte Dateien",
"restored" => "Wiederhergestellt",
"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, Ihr Papierkorb ist leer!",
"Name" => "Name",
"Restore" => "Wiederherstellen",
"Deleted" => "Gelöscht",
-"Delete" => "Löschen",
-"Deleted Files" => "Gelöschte Dateien"
+"Delete" => "Löschen"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/de_DE.php b/apps/files_trashbin/l10n/de_DE.php
index 665be5d5ee7..603d82f5c7a 100644
--- a/apps/files_trashbin/l10n/de_DE.php
+++ b/apps/files_trashbin/l10n/de_DE.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Konnte %s nicht wiederherstellen",
"Deleted files" => "Gelöschte Dateien",
"Error" => "Fehler",
+"Deleted Files" => "Gelöschte Dateien",
"restored" => "Wiederhergestellt",
"Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, Ihr Papierkorb ist leer!",
"Name" => "Name",
"Restore" => "Wiederherstellen",
"Deleted" => "Gelöscht",
-"Delete" => "Löschen",
-"Deleted Files" => "Gelöschte Dateien"
+"Delete" => "Löschen"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/el.php b/apps/files_trashbin/l10n/el.php
index 567958de900..23b23ed93a6 100644
--- a/apps/files_trashbin/l10n/el.php
+++ b/apps/files_trashbin/l10n/el.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Αδυναμία επαναφοράς %s",
"Deleted files" => "Διαγραμμένα αρχεία",
"Error" => "Σφάλμα",
+"Deleted Files" => "Διαγραμμένα Αρχεία",
"restored" => "επαναφέρθηκαν",
"Nothing in here. Your trash bin is empty!" => "Δεν υπάρχει τίποτα εδώ. Ο κάδος σας είναι άδειος!",
"Name" => "Όνομα",
"Restore" => "Επαναφορά",
"Deleted" => "Διαγραμμένα",
-"Delete" => "Διαγραφή",
-"Deleted Files" => "Διαγραμμένα Αρχεία"
+"Delete" => "Διαγραφή"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/en_GB.php b/apps/files_trashbin/l10n/en_GB.php
index 04abf2d6f23..a660b4b1ca1 100644
--- a/apps/files_trashbin/l10n/en_GB.php
+++ b/apps/files_trashbin/l10n/en_GB.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Couldn't restore %s",
"Deleted files" => "Deleted files",
"Error" => "Error",
+"Deleted Files" => "Deleted Files",
"restored" => "restored",
"Nothing in here. Your trash bin is empty!" => "Nothing in here. Your recycle bin is empty!",
"Name" => "Name",
"Restore" => "Restore",
"Deleted" => "Deleted",
-"Delete" => "Delete",
-"Deleted Files" => "Deleted Files"
+"Delete" => "Delete"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/eo.php b/apps/files_trashbin/l10n/eo.php
index b3248406f52..d644f0f6420 100644
--- a/apps/files_trashbin/l10n/eo.php
+++ b/apps/files_trashbin/l10n/eo.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Ne povis restaŭriĝi %s",
"Deleted files" => "Forigitaj dosieroj",
"Error" => "Eraro",
+"Deleted Files" => "Forigitaj dosieroj",
"restored" => "restaŭrita",
"Nothing in here. Your trash bin is empty!" => "Nenio estas ĉi tie. Via rubujo malplenas!",
"Name" => "Nomo",
"Restore" => "Restaŭri",
"Deleted" => "Forigita",
-"Delete" => "Forigi",
-"Deleted Files" => "Forigitaj dosieroj"
+"Delete" => "Forigi"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/es.php b/apps/files_trashbin/l10n/es.php
index 79f122ad35b..c0dc6bb45c2 100644
--- a/apps/files_trashbin/l10n/es.php
+++ b/apps/files_trashbin/l10n/es.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "No se puede restaurar %s",
"Deleted files" => "Archivos eliminados",
"Error" => "Error",
+"Deleted Files" => "Archivos Eliminados",
"restored" => "recuperado",
"Nothing in here. Your trash bin is empty!" => "No hay nada aquí. ¡Tu papelera esta vacía!",
"Name" => "Nombre",
"Restore" => "Recuperar",
"Deleted" => "Eliminado",
-"Delete" => "Eliminar",
-"Deleted Files" => "Archivos Eliminados"
+"Delete" => "Eliminar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/es_AR.php b/apps/files_trashbin/l10n/es_AR.php
index 50b337b8144..b354dd656b1 100644
--- a/apps/files_trashbin/l10n/es_AR.php
+++ b/apps/files_trashbin/l10n/es_AR.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "No se pudo restaurar %s",
"Deleted files" => "Archivos borrados",
"Error" => "Error",
+"Deleted Files" => "Archivos eliminados",
"restored" => "recuperado",
"Nothing in here. Your trash bin is empty!" => "No hay nada acá. ¡La papelera está vacía!",
"Name" => "Nombre",
"Restore" => "Recuperar",
"Deleted" => "Borrado",
-"Delete" => "Borrar",
-"Deleted Files" => "Archivos eliminados"
+"Delete" => "Borrar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/es_MX.php b/apps/files_trashbin/l10n/es_MX.php
index 79f122ad35b..c0dc6bb45c2 100644
--- a/apps/files_trashbin/l10n/es_MX.php
+++ b/apps/files_trashbin/l10n/es_MX.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "No se puede restaurar %s",
"Deleted files" => "Archivos eliminados",
"Error" => "Error",
+"Deleted Files" => "Archivos Eliminados",
"restored" => "recuperado",
"Nothing in here. Your trash bin is empty!" => "No hay nada aquí. ¡Tu papelera esta vacía!",
"Name" => "Nombre",
"Restore" => "Recuperar",
"Deleted" => "Eliminado",
-"Delete" => "Eliminar",
-"Deleted Files" => "Archivos Eliminados"
+"Delete" => "Eliminar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/et_EE.php b/apps/files_trashbin/l10n/et_EE.php
index 69ed5cee767..69d20cb195f 100644
--- a/apps/files_trashbin/l10n/et_EE.php
+++ b/apps/files_trashbin/l10n/et_EE.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s ei saa taastada",
"Deleted files" => "Kustutatud failid",
"Error" => "Viga",
+"Deleted Files" => "Kustutatud failid",
"restored" => "taastatud",
"Nothing in here. Your trash bin is empty!" => "Siin pole midagi. Sinu prügikast on tühi!",
"Name" => "Nimi",
"Restore" => "Taasta",
"Deleted" => "Kustutatud",
-"Delete" => "Kustuta",
-"Deleted Files" => "Kustutatud failid"
+"Delete" => "Kustuta"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/eu.php b/apps/files_trashbin/l10n/eu.php
index 648aaaf7383..42476bccfe4 100644
--- a/apps/files_trashbin/l10n/eu.php
+++ b/apps/files_trashbin/l10n/eu.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Ezin izan da %s berreskuratu",
"Deleted files" => "Ezabatutako fitxategiak",
"Error" => "Errorea",
+"Deleted Files" => "Ezabatutako Fitxategiak",
"restored" => "Berrezarrita",
"Nothing in here. Your trash bin is empty!" => "Ez dago ezer ez. Zure zakarrontzia hutsik dago!",
"Name" => "Izena",
"Restore" => "Berrezarri",
"Deleted" => "Ezabatuta",
-"Delete" => "Ezabatu",
-"Deleted Files" => "Ezabatutako Fitxategiak"
+"Delete" => "Ezabatu"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/fa.php b/apps/files_trashbin/l10n/fa.php
index 40cdec8a484..407524eb620 100644
--- a/apps/files_trashbin/l10n/fa.php
+++ b/apps/files_trashbin/l10n/fa.php
@@ -4,11 +4,11 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s را نمی توان بازگرداند",
"Deleted files" => "فایل های حذف شده",
"Error" => "خطا",
+"Deleted Files" => "فایلهای حذف شده",
"Nothing in here. Your trash bin is empty!" => "هیچ چیزی اینجا نیست. سطل زباله ی شما خالی است.",
"Name" => "نام",
"Restore" => "بازیابی",
"Deleted" => "حذف شده",
-"Delete" => "حذف",
-"Deleted Files" => "فایلهای حذف شده"
+"Delete" => "حذف"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_trashbin/l10n/fi_FI.php b/apps/files_trashbin/l10n/fi_FI.php
index e7b62dbb437..da56baf0bd7 100644
--- a/apps/files_trashbin/l10n/fi_FI.php
+++ b/apps/files_trashbin/l10n/fi_FI.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Kohteen %s palautus epäonnistui",
"Deleted files" => "Poistetut tiedostot",
"Error" => "Virhe",
+"Deleted Files" => "Poistetut tiedostot",
"restored" => "palautettu",
"Nothing in here. Your trash bin is empty!" => "Tyhjää täynnä! Roskakorissa ei ole mitään.",
"Name" => "Nimi",
"Restore" => "Palauta",
"Deleted" => "Poistettu",
-"Delete" => "Poista",
-"Deleted Files" => "Poistetut tiedostot"
+"Delete" => "Poista"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/fr.php b/apps/files_trashbin/l10n/fr.php
index 9e74657fc10..b71fbea96ad 100644
--- a/apps/files_trashbin/l10n/fr.php
+++ b/apps/files_trashbin/l10n/fr.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Impossible de restaurer %s",
"Deleted files" => "Fichiers supprimés",
"Error" => "Erreur",
+"Deleted Files" => "Fichiers effacés",
"restored" => "restauré",
"Nothing in here. Your trash bin is empty!" => "Il n'y a rien ici. Votre corbeille est vide !",
"Name" => "Nom",
"Restore" => "Restaurer",
"Deleted" => "Effacé",
-"Delete" => "Supprimer",
-"Deleted Files" => "Fichiers effacés"
+"Delete" => "Supprimer"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_trashbin/l10n/gl.php b/apps/files_trashbin/l10n/gl.php
index bf26936be0b..fe74ab34a02 100644
--- a/apps/files_trashbin/l10n/gl.php
+++ b/apps/files_trashbin/l10n/gl.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Non foi posíbel restaurar %s",
"Deleted files" => "Ficheiros eliminados",
"Error" => "Erro",
+"Deleted Files" => "Ficheiros eliminados",
"restored" => "restaurado",
"Nothing in here. Your trash bin is empty!" => "Aquí non hai nada. O cesto do lixo está baleiro!",
"Name" => "Nome",
"Restore" => "Restablecer",
"Deleted" => "Eliminado",
-"Delete" => "Eliminar",
-"Deleted Files" => "Ficheiros eliminados"
+"Delete" => "Eliminar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/he.php b/apps/files_trashbin/l10n/he.php
index 6d2d184bec2..6cdc5c05c9d 100644
--- a/apps/files_trashbin/l10n/he.php
+++ b/apps/files_trashbin/l10n/he.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "לא ניתן לשחזר את %s",
"Deleted files" => "קבצים שנמחקו",
"Error" => "שגיאה",
+"Deleted Files" => "קבצים שנמחקו",
"restored" => "שוחזר",
"Nothing in here. Your trash bin is empty!" => "אין כאן שום דבר. סל המיחזור שלך ריק!",
"Name" => "שם",
"Restore" => "שחזור",
"Deleted" => "נמחק",
-"Delete" => "מחיקה",
-"Deleted Files" => "קבצים שנמחקו"
+"Delete" => "מחיקה"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/hu_HU.php b/apps/files_trashbin/l10n/hu_HU.php
index 69a2f5d5d45..2912821d96f 100644
--- a/apps/files_trashbin/l10n/hu_HU.php
+++ b/apps/files_trashbin/l10n/hu_HU.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nem sikerült %s visszaállítása",
"Deleted files" => "Törölt fájlok",
"Error" => "Hiba",
+"Deleted Files" => "Törölt fájlok",
"restored" => "visszaállítva",
"Nothing in here. Your trash bin is empty!" => "Itt nincs semmi. Az Ön szemetes mappája üres!",
"Name" => "Név",
"Restore" => "Visszaállítás",
"Deleted" => "Törölve",
-"Delete" => "Törlés",
-"Deleted Files" => "Törölt fájlok"
+"Delete" => "Törlés"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/id.php b/apps/files_trashbin/l10n/id.php
index 11e1675074c..166b9aa811a 100644
--- a/apps/files_trashbin/l10n/id.php
+++ b/apps/files_trashbin/l10n/id.php
@@ -4,11 +4,11 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Tidak dapat memulihkan %s",
"Deleted files" => "Berkas yang dihapus",
"Error" => "Galat",
+"Deleted Files" => "Berkas yang Dihapus",
"Nothing in here. Your trash bin is empty!" => "Tempat sampah anda kosong!",
"Name" => "Nama",
"Restore" => "Pulihkan",
"Deleted" => "Dihapus",
-"Delete" => "Hapus",
-"Deleted Files" => "Berkas yang Dihapus"
+"Delete" => "Hapus"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_trashbin/l10n/it.php b/apps/files_trashbin/l10n/it.php
index 739dda24564..057305ac517 100644
--- a/apps/files_trashbin/l10n/it.php
+++ b/apps/files_trashbin/l10n/it.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Impossibile ripristinare %s",
"Deleted files" => "File eliminati",
"Error" => "Errore",
+"Deleted Files" => "File eliminati",
"restored" => "ripristinati",
"Nothing in here. Your trash bin is empty!" => "Qui non c'è niente. Il tuo cestino è vuoto.",
"Name" => "Nome",
"Restore" => "Ripristina",
"Deleted" => "Eliminati",
-"Delete" => "Elimina",
-"Deleted Files" => "File eliminati"
+"Delete" => "Elimina"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/ja.php b/apps/files_trashbin/l10n/ja.php
index 0aab7d05754..13ca95e6fb4 100644
--- a/apps/files_trashbin/l10n/ja.php
+++ b/apps/files_trashbin/l10n/ja.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s を復元できませんでした",
"Deleted files" => "ゴミ箱",
"Error" => "エラー",
+"Deleted Files" => "ゴミ箱",
"restored" => "復元済",
"Nothing in here. Your trash bin is empty!" => "ここには何もありません。ゴミ箱は空です!",
"Name" => "名前",
"Restore" => "復元",
"Deleted" => "削除済み",
-"Delete" => "削除",
-"Deleted Files" => "ゴミ箱"
+"Delete" => "削除"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_trashbin/l10n/ka_GE.php b/apps/files_trashbin/l10n/ka_GE.php
index f36bbea59bc..4e3ad4260e3 100644
--- a/apps/files_trashbin/l10n/ka_GE.php
+++ b/apps/files_trashbin/l10n/ka_GE.php
@@ -4,11 +4,11 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s–ის აღდგენა ვერ მოხერხდა",
"Deleted files" => "წაშლილი ფაილები",
"Error" => "შეცდომა",
+"Deleted Files" => "წაშლილი ფაილები",
"Nothing in here. Your trash bin is empty!" => "აქ არაფერი არ არის. სანაგვე ყუთი ცარიელია!",
"Name" => "სახელი",
"Restore" => "აღდგენა",
"Deleted" => "წაშლილი",
-"Delete" => "წაშლა",
-"Deleted Files" => "წაშლილი ფაილები"
+"Delete" => "წაშლა"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_trashbin/l10n/ko.php b/apps/files_trashbin/l10n/ko.php
index f95d1432451..d9d87070804 100644
--- a/apps/files_trashbin/l10n/ko.php
+++ b/apps/files_trashbin/l10n/ko.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s을(를) 복원할 수 없습니다",
"Deleted files" => "삭제된 파일",
"Error" => "오류",
+"Deleted Files" => "삭제된 파일",
"restored" => "복원됨",
"Nothing in here. Your trash bin is empty!" => "휴지통이 비어 있습니다!",
"Name" => "이름",
"Restore" => "복원",
"Deleted" => "삭제됨",
-"Delete" => "삭제",
-"Deleted Files" => "삭제된 파일"
+"Delete" => "삭제"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_trashbin/l10n/lt_LT.php b/apps/files_trashbin/l10n/lt_LT.php
index 07325665d78..2bf545483f6 100644
--- a/apps/files_trashbin/l10n/lt_LT.php
+++ b/apps/files_trashbin/l10n/lt_LT.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nepavyko atkurti %s",
"Deleted files" => "Ištrinti failai",
"Error" => "Klaida",
+"Deleted Files" => "Ištrinti failai",
"restored" => "atstatyta",
"Nothing in here. Your trash bin is empty!" => "Nieko nėra. Jūsų šiukšliadėžė tuščia!",
"Name" => "Pavadinimas",
"Restore" => "Atstatyti",
"Deleted" => "Ištrinti",
-"Delete" => "Ištrinti",
-"Deleted Files" => "Ištrinti failai"
+"Delete" => "Ištrinti"
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files_trashbin/l10n/lv.php b/apps/files_trashbin/l10n/lv.php
index d356b344377..c173d050147 100644
--- a/apps/files_trashbin/l10n/lv.php
+++ b/apps/files_trashbin/l10n/lv.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nevarēja atjaunot %s",
"Deleted files" => "Dzēstās datnes",
"Error" => "Kļūda",
+"Deleted Files" => "Dzēstās datnes",
"restored" => "atjaunots",
"Nothing in here. Your trash bin is empty!" => "Šeit nekā nav. Jūsu miskaste ir tukša!",
"Name" => "Nosaukums",
"Restore" => "Atjaunot",
"Deleted" => "Dzēsts",
-"Delete" => "Dzēst",
-"Deleted Files" => "Dzēstās datnes"
+"Delete" => "Dzēst"
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);";
diff --git a/apps/files_trashbin/l10n/mk.php b/apps/files_trashbin/l10n/mk.php
index f025a13db1a..910b11e21e6 100644
--- a/apps/files_trashbin/l10n/mk.php
+++ b/apps/files_trashbin/l10n/mk.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Не можеше да се поврати %s",
"Deleted files" => "Избришани датотеки",
"Error" => "Грешка",
+"Deleted Files" => "Избришани датотеки",
"restored" => "повратени",
"Nothing in here. Your trash bin is empty!" => "Тука нема ништо. Вашата корпа за отпадоци е празна!",
"Name" => "Име",
"Restore" => "Поврати",
"Deleted" => "Избришан",
-"Delete" => "Избриши",
-"Deleted Files" => "Избришани датотеки"
+"Delete" => "Избриши"
);
$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;";
diff --git a/apps/files_trashbin/l10n/ms_MY.php b/apps/files_trashbin/l10n/ms_MY.php
index e7721313918..f084f58465d 100644
--- a/apps/files_trashbin/l10n/ms_MY.php
+++ b/apps/files_trashbin/l10n/ms_MY.php
@@ -3,12 +3,12 @@ $TRANSLATIONS = array(
"Couldn't delete %s permanently" => "Tidak dapat menghapuskan %s secara kekal",
"Couldn't restore %s" => "Tidak dapat memulihkan %s",
"Error" => "Ralat",
+"Deleted Files" => "Fail Dihapus",
"restored" => "dipulihkan",
"Nothing in here. Your trash bin is empty!" => "Tiada apa disini. Tong sampah anda kosong!",
"Name" => "Nama",
"Restore" => "Pulihkan",
"Deleted" => "Dihapuskan",
-"Delete" => "Padam",
-"Deleted Files" => "Fail Dihapus"
+"Delete" => "Padam"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_trashbin/l10n/nb_NO.php b/apps/files_trashbin/l10n/nb_NO.php
index 66e61ee72a1..2293e5a4e7b 100644
--- a/apps/files_trashbin/l10n/nb_NO.php
+++ b/apps/files_trashbin/l10n/nb_NO.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Kunne ikke gjenopprette %s",
"Deleted files" => "Slettede filer",
"Error" => "Feil",
+"Deleted Files" => "Slettede filer",
"restored" => "gjenopprettet",
"Nothing in here. Your trash bin is empty!" => "Ingenting her. Søppelkassen din er tom!",
"Name" => "Navn",
"Restore" => "Gjenopprett",
"Deleted" => "Slettet",
-"Delete" => "Slett",
-"Deleted Files" => "Slettede filer"
+"Delete" => "Slett"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/nl.php b/apps/files_trashbin/l10n/nl.php
index 533571fd9e1..c8fb1288538 100644
--- a/apps/files_trashbin/l10n/nl.php
+++ b/apps/files_trashbin/l10n/nl.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Kon %s niet herstellen",
"Deleted files" => "Verwijderde bestanden",
"Error" => "Fout",
+"Deleted Files" => "Verwijderde bestanden",
"restored" => "hersteld",
"Nothing in here. Your trash bin is empty!" => "Niets te vinden. Uw prullenbak is leeg!",
"Name" => "Naam",
"Restore" => "Herstellen",
"Deleted" => "Verwijderd",
-"Delete" => "Verwijder",
-"Deleted Files" => "Verwijderde bestanden"
+"Delete" => "Verwijder"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/nn_NO.php b/apps/files_trashbin/l10n/nn_NO.php
index 9282d9d49d4..38bc64e6ce5 100644
--- a/apps/files_trashbin/l10n/nn_NO.php
+++ b/apps/files_trashbin/l10n/nn_NO.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Klarte ikkje gjenoppretta %s",
"Deleted files" => "Sletta filer",
"Error" => "Feil",
+"Deleted Files" => "Sletta filer",
"restored" => "gjenoppretta",
"Nothing in here. Your trash bin is empty!" => "Ingenting her. Papirkorga di er tom!",
"Name" => "Namn",
"Restore" => "Gjenopprett",
"Deleted" => "Sletta",
-"Delete" => "Slett",
-"Deleted Files" => "Sletta filer"
+"Delete" => "Slett"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/pl.php b/apps/files_trashbin/l10n/pl.php
index 5075dad271a..b961efd7dae 100644
--- a/apps/files_trashbin/l10n/pl.php
+++ b/apps/files_trashbin/l10n/pl.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nie można przywrócić %s",
"Deleted files" => "Pliki usunięte",
"Error" => "Błąd",
+"Deleted Files" => "Usunięte pliki",
"restored" => "przywrócony",
"Nothing in here. Your trash bin is empty!" => "Nic tu nie ma. Twój kosz jest pusty!",
"Name" => "Nazwa",
"Restore" => "Przywróć",
"Deleted" => "Usunięte",
-"Delete" => "Usuń",
-"Deleted Files" => "Usunięte pliki"
+"Delete" => "Usuń"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files_trashbin/l10n/pt_BR.php b/apps/files_trashbin/l10n/pt_BR.php
index 300235452b4..d524d8879e2 100644
--- a/apps/files_trashbin/l10n/pt_BR.php
+++ b/apps/files_trashbin/l10n/pt_BR.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Não foi possível restaurar %s",
"Deleted files" => "Arquivos apagados",
"Error" => "Erro",
+"Deleted Files" => "Arquivos Apagados",
"restored" => "restaurado",
"Nothing in here. Your trash bin is empty!" => "Nada aqui. Sua lixeira está vazia!",
"Name" => "Nome",
"Restore" => "Restaurar",
"Deleted" => "Excluído",
-"Delete" => "Excluir",
-"Deleted Files" => "Arquivos Apagados"
+"Delete" => "Excluir"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_trashbin/l10n/pt_PT.php b/apps/files_trashbin/l10n/pt_PT.php
index 69f83e8a0e4..94dd0eb707a 100644
--- a/apps/files_trashbin/l10n/pt_PT.php
+++ b/apps/files_trashbin/l10n/pt_PT.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Não foi possível restaurar %s",
"Deleted files" => "Ficheiros eliminados",
"Error" => "Erro",
+"Deleted Files" => "Ficheiros Apagados",
"restored" => "Restaurado",
"Nothing in here. Your trash bin is empty!" => "Não hà ficheiros. O lixo está vazio!",
"Name" => "Nome",
"Restore" => "Restaurar",
"Deleted" => "Apagado",
-"Delete" => "Eliminar",
-"Deleted Files" => "Ficheiros Apagados"
+"Delete" => "Eliminar"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/ru.php b/apps/files_trashbin/l10n/ru.php
index 3210ad7290b..d10369b9ca1 100644
--- a/apps/files_trashbin/l10n/ru.php
+++ b/apps/files_trashbin/l10n/ru.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "%s не может быть восстановлен",
"Deleted files" => "Удалённые файлы",
"Error" => "Ошибка",
+"Deleted Files" => "Удаленные файлы",
"restored" => "восстановлен",
"Nothing in here. Your trash bin is empty!" => "Здесь ничего нет. Ваша корзина пуста!",
"Name" => "Имя",
"Restore" => "Восстановить",
"Deleted" => "Удалён",
-"Delete" => "Удалить",
-"Deleted Files" => "Удаленные файлы"
+"Delete" => "Удалить"
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files_trashbin/l10n/sk_SK.php b/apps/files_trashbin/l10n/sk_SK.php
index 6bb39bb89dd..3badd3a423b 100644
--- a/apps/files_trashbin/l10n/sk_SK.php
+++ b/apps/files_trashbin/l10n/sk_SK.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nemožno obnoviť %s",
"Deleted files" => "Zmazané súbory",
"Error" => "Chyba",
+"Deleted Files" => "Zmazané súbory",
"restored" => "obnovené",
"Nothing in here. Your trash bin is empty!" => "Žiadny obsah. Kôš je prázdny!",
"Name" => "Názov",
"Restore" => "Obnoviť",
"Deleted" => "Zmazané",
-"Delete" => "Zmazať",
-"Deleted Files" => "Zmazané súbory"
+"Delete" => "Zmazať"
);
$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/files_trashbin/l10n/sl.php b/apps/files_trashbin/l10n/sl.php
index ca69c8d2784..08da9b1c6e9 100644
--- a/apps/files_trashbin/l10n/sl.php
+++ b/apps/files_trashbin/l10n/sl.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Ni mogoče obnoviti %s",
"Deleted files" => "Izbrisane datoteke",
"Error" => "Napaka",
+"Deleted Files" => "Izbrisane datoteke",
"restored" => "obnovljeno",
"Nothing in here. Your trash bin is empty!" => "Mapa smeti je prazna.",
"Name" => "Ime",
"Restore" => "Obnovi",
"Deleted" => "Izbrisano",
-"Delete" => "Izbriši",
-"Deleted Files" => "Izbrisane datoteke"
+"Delete" => "Izbriši"
);
$PLURAL_FORMS = "nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n%100==4 ? 2 : 3);";
diff --git a/apps/files_trashbin/l10n/sq.php b/apps/files_trashbin/l10n/sq.php
index 10354e45408..60d16f9b913 100644
--- a/apps/files_trashbin/l10n/sq.php
+++ b/apps/files_trashbin/l10n/sq.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Nuk munda ta rivendos %s",
"Deleted files" => "Skedarë të fshirë ",
"Error" => "Veprim i gabuar",
+"Deleted Files" => "Skedarë të eliminuar",
"restored" => "rivendosur",
"Nothing in here. Your trash bin is empty!" => "Këtu nuk ka asgjë. Koshi juaj është bosh!",
"Name" => "Emri",
"Restore" => "Rivendos",
"Deleted" => "Eliminuar",
-"Delete" => "Elimino",
-"Deleted Files" => "Skedarë të eliminuar"
+"Delete" => "Elimino"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/sv.php b/apps/files_trashbin/l10n/sv.php
index ec9de3acaa2..fd9ca8653f3 100644
--- a/apps/files_trashbin/l10n/sv.php
+++ b/apps/files_trashbin/l10n/sv.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Kunde inte återställa %s",
"Deleted files" => "Raderade filer",
"Error" => "Fel",
+"Deleted Files" => "Raderade filer",
"restored" => "återställd",
"Nothing in here. Your trash bin is empty!" => "Ingenting här. Din papperskorg är tom!",
"Name" => "Namn",
"Restore" => "Återskapa",
"Deleted" => "Raderad",
-"Delete" => "Radera",
-"Deleted Files" => "Raderade filer"
+"Delete" => "Radera"
);
$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_trashbin/l10n/th_TH.php b/apps/files_trashbin/l10n/th_TH.php
index 65fd081a952..857737c59e8 100644
--- a/apps/files_trashbin/l10n/th_TH.php
+++ b/apps/files_trashbin/l10n/th_TH.php
@@ -1,11 +1,11 @@
<?php
$TRANSLATIONS = array(
"Error" => "ข้อผิดพลาด",
+"Deleted Files" => "ไฟล์ที่ลบทิ้ง",
"Nothing in here. Your trash bin is empty!" => "ไม่มีอะไรอยู่ในนี้ ถังขยะของคุณยังว่างอยู่",
"Name" => "ชื่อ",
"Restore" => "คืนค่า",
"Deleted" => "ลบแล้ว",
-"Delete" => "ลบ",
-"Deleted Files" => "ไฟล์ที่ลบทิ้ง"
+"Delete" => "ลบ"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_trashbin/l10n/tr.php b/apps/files_trashbin/l10n/tr.php
index c1234cdfb0c..ff4227e38c7 100644
--- a/apps/files_trashbin/l10n/tr.php
+++ b/apps/files_trashbin/l10n/tr.php
@@ -1,15 +1,15 @@
<?php
$TRANSLATIONS = array(
"Couldn't delete %s permanently" => "%s alıcı olarak silinemedi",
-"Couldn't restore %s" => "%s eri yüklenemedi",
+"Couldn't restore %s" => "%s geri yüklenemedi",
"Deleted files" => "Silinmiş dosyalar",
"Error" => "Hata",
+"Deleted Files" => "Silinen Dosyalar",
"restored" => "geri yüklendi",
"Nothing in here. Your trash bin is empty!" => "Burada hiçbir şey yok. Çöp kutunuz tamamen boş!",
"Name" => "İsim",
"Restore" => "Geri yükle",
"Deleted" => "Silindi",
-"Delete" => "Sil",
-"Deleted Files" => "Silinen Dosyalar"
+"Delete" => "Sil"
);
$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_trashbin/l10n/uk.php b/apps/files_trashbin/l10n/uk.php
index 19d4bda97c7..fa523fa3218 100644
--- a/apps/files_trashbin/l10n/uk.php
+++ b/apps/files_trashbin/l10n/uk.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Неможливо відновити %s",
"Deleted files" => "Видалено файлів",
"Error" => "Помилка",
+"Deleted Files" => "Видалено Файлів",
"restored" => "відновлено",
"Nothing in here. Your trash bin is empty!" => "Нічого немає. Ваший кошик для сміття пустий!",
"Name" => "Ім'я",
"Restore" => "Відновити",
"Deleted" => "Видалено",
-"Delete" => "Видалити",
-"Deleted Files" => "Видалено Файлів"
+"Delete" => "Видалити"
);
$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);";
diff --git a/apps/files_trashbin/l10n/vi.php b/apps/files_trashbin/l10n/vi.php
index 81a0cf14bcc..57c82cea5f7 100644
--- a/apps/files_trashbin/l10n/vi.php
+++ b/apps/files_trashbin/l10n/vi.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "Không thể khôi phục %s",
"Deleted files" => "File đã bị xóa",
"Error" => "Lỗi",
+"Deleted Files" => "File đã xóa",
"restored" => "khôi phục",
"Nothing in here. Your trash bin is empty!" => "Không có gì ở đây. Thùng rác của bạn rỗng!",
"Name" => "Tên",
"Restore" => "Khôi phục",
"Deleted" => "Đã xóa",
-"Delete" => "Xóa",
-"Deleted Files" => "File đã xóa"
+"Delete" => "Xóa"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_trashbin/l10n/zh_CN.php b/apps/files_trashbin/l10n/zh_CN.php
index 4c61aef33b1..ef6a63b2959 100644
--- a/apps/files_trashbin/l10n/zh_CN.php
+++ b/apps/files_trashbin/l10n/zh_CN.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "无法恢复%s",
"Deleted files" => "已删除文件",
"Error" => "错误",
+"Deleted Files" => "已删除文件",
"restored" => "已恢复",
"Nothing in here. Your trash bin is empty!" => "这里没有东西. 你的回收站是空的!",
"Name" => "名称",
"Restore" => "恢复",
"Deleted" => "已删除",
-"Delete" => "删除",
-"Deleted Files" => "已删除文件"
+"Delete" => "删除"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_trashbin/l10n/zh_TW.php b/apps/files_trashbin/l10n/zh_TW.php
index 65b954e2c63..c42d70790e9 100644
--- a/apps/files_trashbin/l10n/zh_TW.php
+++ b/apps/files_trashbin/l10n/zh_TW.php
@@ -4,12 +4,12 @@ $TRANSLATIONS = array(
"Couldn't restore %s" => "無法還原 %s",
"Deleted files" => "回收桶",
"Error" => "錯誤",
+"Deleted Files" => "已刪除的檔案",
"restored" => "已還原",
"Nothing in here. Your trash bin is empty!" => "您的回收桶是空的!",
"Name" => "名稱",
"Restore" => "還原",
"Deleted" => "已刪除",
-"Delete" => "刪除",
-"Deleted Files" => "已刪除的檔案"
+"Delete" => "刪除"
);
$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/group_ldap.php b/apps/user_ldap/group_ldap.php
index 4f2424d9531..40d9dec1410 100644
--- a/apps/user_ldap/group_ldap.php
+++ b/apps/user_ldap/group_ldap.php
@@ -277,6 +277,84 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
}
/**
+ * @brief returns the number of users in a group, who match the search term
+ * @param string the internal group name
+ * @param string optional, a search string
+ * @returns int | bool
+ */
+ public function countUsersInGroup($gid, $search = '') {
+ $cachekey = 'countUsersInGroup-'.$gid.'-'.$search;
+ if(!$this->enabled || !$this->groupExists($gid)) {
+ return false;
+ }
+ $groupUsers = $this->access->connection->getFromCache($cachekey);
+ if(!is_null($groupUsers)) {
+ return $groupUsers;
+ }
+
+ $groupDN = $this->access->groupname2dn($gid);
+ if(!$groupDN) {
+ // group couldn't be found, return empty resultset
+ $this->access->connection->writeToCache($cachekey, false);
+ return false;
+ }
+
+ $members = array_keys($this->_groupMembers($groupDN));
+ if(!$members) {
+ //in case users could not be retrieved, return empty resultset
+ $this->access->connection->writeToCache($cachekey, false);
+ return false;
+ }
+
+ if(empty($search)) {
+ $groupUsers = count($members);
+ $this->access->connection->writeToCache($cachekey, $groupUsers);
+ return $groupUsers;
+ }
+ $isMemberUid =
+ (strtolower($this->access->connection->ldapGroupMemberAssocAttr)
+ === 'memberuid');
+
+ //we need to apply the search filter
+ //alternatives that need to be checked:
+ //a) get all users by search filter and array_intersect them
+ //b) a, but only when less than 1k 10k ?k users like it is
+ //c) put all DNs|uids in a LDAP filter, combine with the search string
+ // and let it count.
+ //For now this is not important, because the only use of this method
+ //does not supply a search string
+ $groupUsers = array();
+ foreach($members as $member) {
+ if($isMemberUid) {
+ //we got uids, need to get their DNs to 'tranlsate' them to usernames
+ $filter = $this->access->combineFilterWithAnd(array(
+ \OCP\Util::mb_str_replace('%uid', $member,
+ $this->access->connection->ldapLoginFilter, 'UTF-8'),
+ $this->access->getFilterPartForUserSearch($search)
+ ));
+ $ldap_users = $this->access->fetchListOfUsers($filter, 'dn');
+ if(count($ldap_users) < 1) {
+ continue;
+ }
+ $groupUsers[] = $this->access->dn2username($ldap_users[0]);
+ } else {
+ //we need to apply the search filter now
+ if(!$this->access->readAttribute($member,
+ $this->access->connection->ldapUserDisplayName,
+ $this->access->getFilterPartForUserSearch($search))) {
+ continue;
+ }
+ // dn2username will also check if the users belong to the allowed base
+ if($ocname = $this->access->dn2username($member)) {
+ $groupUsers[] = $ocname;
+ }
+ }
+ }
+
+ return count($groupUsers);
+ }
+
+ /**
* @brief get a list of all display names in a group
* @returns array with display names (value) and user ids(key)
*/
@@ -418,6 +496,9 @@ class GROUP_LDAP extends BackendUtility implements \OCP\GroupInterface {
* compared with OC_USER_BACKEND_CREATE_USER etc.
*/
public function implementsActions($actions) {
- return (bool)(OC_GROUP_BACKEND_GET_DISPLAYNAME & $actions);
+ return (bool)((
+ OC_GROUP_BACKEND_GET_DISPLAYNAME
+ | OC_GROUP_BACKEND_COUNT_USERS
+ ) & $actions);
}
}
diff --git a/apps/user_ldap/group_proxy.php b/apps/user_ldap/group_proxy.php
index 4404bd7fe3a..c0009736239 100644
--- a/apps/user_ldap/group_proxy.php
+++ b/apps/user_ldap/group_proxy.php
@@ -145,6 +145,17 @@ class Group_Proxy extends lib\Proxy implements \OCP\GroupInterface {
}
/**
+ * @brief returns the number of users in a group, who match the search term
+ * @param string the internal group name
+ * @param string optional, a search string
+ * @returns int | bool
+ */
+ public function countUsersInGroup($gid, $search = '') {
+ return $this->handleRequest(
+ $gid, 'countUsersInGroup', array($gid, $search));
+ }
+
+ /**
* @brief get a list of all display names in a group
* @returns array with display names (value) and user ids(key)
*/
diff --git a/apps/user_ldap/l10n/ast.php b/apps/user_ldap/l10n/ast.php
index e8e2d779d19..2c022880019 100644
--- a/apps/user_ldap/l10n/ast.php
+++ b/apps/user_ldap/l10n/ast.php
@@ -1,6 +1,7 @@
<?php
$TRANSLATIONS = array(
"Deletion failed" => "Falló'l borráu",
+"Error" => "Fallu",
"_%s group found_::_%s groups found_" => array("",""),
"_%s user found_::_%s users found_" => array("",""),
"Save" => "Guardar",
diff --git a/apps/user_ldap/l10n/bn_BD.php b/apps/user_ldap/l10n/bn_BD.php
index 0b43a27df94..90f7b572a95 100644
--- a/apps/user_ldap/l10n/bn_BD.php
+++ b/apps/user_ldap/l10n/bn_BD.php
@@ -13,7 +13,6 @@ $TRANSLATIONS = array(
"Password" => "কূটশব্দ",
"For anonymous access, leave DN and Password empty." => "অজ্ঞাতকুলশীল অধিগমনের জন্য DN এবং কূটশব্দটি ফাঁকা রাখুন।",
"You can specify Base DN for users and groups in the Advanced tab" => "সুচারু ট্যঅবে গিয়ে আপনি ব্যবহারকারি এবং গোষ্ঠীসমূহের জন্য ভিত্তি DN নির্ধারণ করতে পারেন।",
-"Case insensitve LDAP server (Windows)" => "বর্ণ অসংবেদী LDAP সার্ভার (উইন্ডোজ)",
"Turn off SSL certificate validation." => "SSL সনদপত্র যাচাইকরণ বন্ধ রাক।",
"in seconds. A change empties the cache." => "সেকেন্ডে। কোন পরিবর্তন ক্যাসে খালি করবে।",
"User Display Name Field" => "ব্যবহারকারীর প্রদর্শিতব্য নামের ক্ষেত্র",
diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php
index 940c6ea8b66..c8542586f82 100644
--- a/apps/user_ldap/l10n/ca.php
+++ b/apps/user_ldap/l10n/ca.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Port de la còpia de seguretat (rèplica)",
"Disable Main Server" => "Desactiva el servidor principal",
"Only connect to the replica server." => "Connecta només al servidor rèplica.",
-"Case insensitve LDAP server (Windows)" => "Servidor LDAP sense distinció entre majúscules i minúscules (Windows)",
+"Case insensitive LDAP server (Windows)" => "Servidor LDAP sense distinció entre majúscules i minúscules (Windows)",
"Turn off SSL certificate validation." => "Desactiva la validació de 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." => "No es recomana, useu-ho només com a prova! Importeu el certificat SSL del servidor LDAP al servidor %s només si la connexió funciona amb aquesta opció.",
"Cache Time-To-Live" => "Memòria de cau Time-To-Live",
@@ -90,6 +90,8 @@ $TRANSLATIONS = array(
"Group-Member association" => "Associació membres-grup",
"Nested Groups" => "Grups imbricats",
"When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" => "Quan està activat, els grups que contenen grups estan permesos. (Només funciona si l'atribut del grup membre conté DNs.)",
+"Paging chunksize" => "Mida de la pàgina",
+"Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" => "Mida usada per cerques LDAP paginades que podrien retornar respostes de volcat com enumeració d'usuari o grup. (Establint-ho a 0 desactiva les cerques LDAP paginades en aquestes situacions.)",
"Special Attributes" => "Atributs especials",
"Quota Field" => "Camp de quota",
"Quota Default" => "Quota per defecte",
diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php
index 536834ee8b5..d4039e9ef10 100644
--- a/apps/user_ldap/l10n/cs_CZ.php
+++ b/apps/user_ldap/l10n/cs_CZ.php
@@ -70,7 +70,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Záložní (kopie) port",
"Disable Main Server" => "Zakázat hlavní server",
"Only connect to the replica server." => "Připojit jen k záložnímu serveru.",
-"Case insensitve LDAP server (Windows)" => "LDAP server nerozlišující velikost znaků (Windows)",
"Turn off SSL certificate validation." => "Vypnout ověřování SSL certifikátu.",
"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." => "Nedoporučuje se, určeno pouze k testovacímu použití. Pokud spojení funguje jen s touto volbou, importujte SSL certifikát vašeho LDAP serveru na server %s.",
"Cache Time-To-Live" => "TTL vyrovnávací paměti",
diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php
index e375598c9bd..8264a18116c 100644
--- a/apps/user_ldap/l10n/da.php
+++ b/apps/user_ldap/l10n/da.php
@@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Backup (Replika) Port",
"Disable Main Server" => "Deaktiver Hovedserver",
"Only connect to the replica server." => "Forbind kun til replika serveren.",
-"Case insensitve LDAP server (Windows)" => "Ikke versalfølsom LDAP server (Windows)",
"Turn off SSL certificate validation." => "Deaktiver SSL certifikat validering",
"Cache Time-To-Live" => "Cache Time-To-Live",
"User Display Name Field" => "User Display Name Field",
diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php
index 8dad9b34539..43336520739 100644
--- a/apps/user_ldap/l10n/de.php
+++ b/apps/user_ldap/l10n/de.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Backup Port",
"Disable Main Server" => "Hauptserver deaktivieren",
"Only connect to the replica server." => "Nur zum Replikat-Server verbinden.",
-"Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)",
+"Case insensitive LDAP server (Windows)" => "LDAP-Server (Windows - Groß- und Kleinschreibung bleibt unbeachtet)",
"Turn off SSL certificate validation." => "Schalte die SSL-Zertifikatsprüfung aus.",
"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." => "Nur für Testzwecke geeignet, sollte Standardmäßig nicht verwendet werden. Falls die Verbindung nur mit dieser Option funktioniert, importiere das SSL-Zertifikat des LDAP-Servers in deinen %s Server.",
"Cache Time-To-Live" => "Speichere Time-To-Live zwischen",
@@ -90,6 +90,8 @@ $TRANSLATIONS = array(
"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer",
"Nested Groups" => "Eingebundene Gruppen",
"When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" => "Wenn aktiviert, werden Gruppen, die Gruppen enthalten, unterstützt. (Funktioniert nur, wenn das Merkmal des Gruppenmitgliedes den Domain-Namen enthält.)",
+"Paging chunksize" => "Seitenstücke (Paging chunksize)",
+"Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" => "Die Größe der Seitenstücke (Chunksize) wird für seitenbezogene LDAP-Suchen verwendet die sehr viele Ergebnisse z.B. Nutzer- und Gruppenaufzählungen liefern. (Die Einstellung 0 deaktiviert das seitenbezogene LDAP-Suchen in diesen Situationen)",
"Special Attributes" => "Spezielle Eigenschaften",
"Quota Field" => "Kontingent Feld",
"Quota Default" => "Standard Kontingent",
diff --git a/apps/user_ldap/l10n/de_CH.php b/apps/user_ldap/l10n/de_CH.php
index 5f8e2907f07..f60d425a2e6 100644
--- a/apps/user_ldap/l10n/de_CH.php
+++ b/apps/user_ldap/l10n/de_CH.php
@@ -42,7 +42,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Backup Port",
"Disable Main Server" => "Hauptserver deaktivieren",
"Only connect to the replica server." => "Nur zum Replikat-Server verbinden.",
-"Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Gross- und Kleinschreibung bleibt unbeachtet)",
"Turn off SSL certificate validation." => "Schalten Sie die SSL-Zertifikatsprüfung aus.",
"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." => "Nur für Testzwecke geeignet, sollte Standardmäßig nicht verwendet werden. Falls die Verbindung nur mit dieser Option funktioniert, importieren Sie das SSL-Zertifikat des LDAP-Servers in Ihren %s Server.",
"Cache Time-To-Live" => "Speichere Time-To-Live zwischen",
diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php
index 6e6e29ea3db..21c149d1a1d 100644
--- a/apps/user_ldap/l10n/de_DE.php
+++ b/apps/user_ldap/l10n/de_DE.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Backup Port",
"Disable Main Server" => "Hauptserver deaktivieren",
"Only connect to the replica server." => "Nur zum Replikat-Server verbinden.",
-"Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)",
+"Case insensitive LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)",
"Turn off SSL certificate validation." => "Schalten Sie die SSL-Zertifikatsprüfung aus.",
"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." => "Nur für Testzwecke geeignet, sollte Standardmäßig nicht verwendet werden. Falls die Verbindung nur mit dieser Option funktioniert, importieren Sie das SSL-Zertifikat des LDAP-Servers in Ihren %s Server.",
"Cache Time-To-Live" => "Speichere Time-To-Live zwischen",
@@ -90,6 +90,8 @@ $TRANSLATIONS = array(
"Group-Member association" => "Assoziation zwischen Gruppe und Benutzer",
"Nested Groups" => "Eingebundene Gruppen",
"When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" => "Wenn aktiviert, werden Gruppen, die Gruppen enthalten, unterstützt. (Funktioniert nur, wenn das Merkmal des Gruppenmitgliedes den Domain-Namen enthält.)",
+"Paging chunksize" => "Seitenstücke (Paging chunksize)",
+"Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" => "Die Größe der Seitenstücke (Chunksize) wird für seitenbezogene LDAP-Suchen verwendet die sehr viele Ergebnisse z.B. Nutzer- und Gruppenaufzählungen liefern. (Die Einstellung 0 deaktiviert das seitenbezogene LDAP-Suchen in diesen Situationen)",
"Special Attributes" => "Spezielle Eigenschaften",
"Quota Field" => "Kontingent-Feld",
"Quota Default" => "Standard-Kontingent",
diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php
index 926419d86b2..cfc5286a408 100644
--- a/apps/user_ldap/l10n/el.php
+++ b/apps/user_ldap/l10n/el.php
@@ -70,7 +70,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Δημιουργία αντιγράφων ασφαλείας (Replica) Υποδοχη",
"Disable Main Server" => "Απενεργοποιηση του κεντρικου διακομιστη",
"Only connect to the replica server." => "Σύνδεση μόνο με το διακομιστή-αντίγραφο.",
-"Case insensitve LDAP server (Windows)" => "LDAP server (Windows) με διάκριση πεζών-ΚΕΦΑΛΑΙΩΝ",
"Turn off SSL certificate validation." => "Απενεργοποίηση επικύρωσης πιστοποιητικού 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." => "Δεν προτείνεται, χρησιμοποιείστε το μόνο για δοκιμές! Εάν η σύνδεση λειτουργεί μόνο με αυτή την επιλογή, εισάγετε το πιστοποιητικό SSL του διακομιστή LDAP στο %s διακομιστή σας.",
"Cache Time-To-Live" => "Cache Time-To-Live",
diff --git a/apps/user_ldap/l10n/en_GB.php b/apps/user_ldap/l10n/en_GB.php
index b87c99c135c..6dfc3e53f0c 100644
--- a/apps/user_ldap/l10n/en_GB.php
+++ b/apps/user_ldap/l10n/en_GB.php
@@ -70,7 +70,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Backup (Replica) Port",
"Disable Main Server" => "Disable Main Server",
"Only connect to the replica server." => "Only connect to the replica server.",
-"Case insensitve LDAP server (Windows)" => "Case insensitve LDAP server (Windows)",
"Turn off SSL certificate validation." => "Turn off SSL certificate validation.",
"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." => "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.",
"Cache Time-To-Live" => "Cache Time-To-Live",
diff --git a/apps/user_ldap/l10n/eo.php b/apps/user_ldap/l10n/eo.php
index 0cae524bcc1..74928899c8a 100644
--- a/apps/user_ldap/l10n/eo.php
+++ b/apps/user_ldap/l10n/eo.php
@@ -35,7 +35,6 @@ $TRANSLATIONS = array(
"Back" => "Antaŭen",
"Connection Settings" => "Agordo de konekto",
"Disable Main Server" => "Malkapabligi la ĉefan servilon",
-"Case insensitve LDAP server (Windows)" => "LDAP-servilo blinda je litergrandeco (Vindozo)",
"Turn off SSL certificate validation." => "Malkapabligi validkontrolon de SSL-atestiloj.",
"Cache Time-To-Live" => "Vivotempo de la kaŝmemoro",
"in seconds. A change empties the cache." => "sekunde. Ajna ŝanĝo malplenigas la kaŝmemoron.",
diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php
index 1821aa8d446..2c294aff785 100644
--- a/apps/user_ldap/l10n/es.php
+++ b/apps/user_ldap/l10n/es.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"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.",
-"Case insensitve LDAP server (Windows)" => "Servidor de LDAP no sensible a mayúsculas/minúsculas (Windows)",
+"Case insensitive LDAP server (Windows)" => "Servidor de LDAP insensible 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",
diff --git a/apps/user_ldap/l10n/es_AR.php b/apps/user_ldap/l10n/es_AR.php
index 6323fe0c4ad..877141bcdc8 100644
--- a/apps/user_ldap/l10n/es_AR.php
+++ b/apps/user_ldap/l10n/es_AR.php
@@ -67,7 +67,6 @@ $TRANSLATIONS = array(
"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.",
-"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é",
diff --git a/apps/user_ldap/l10n/es_MX.php b/apps/user_ldap/l10n/es_MX.php
index 09c99209a55..bb4c3700ec5 100644
--- a/apps/user_ldap/l10n/es_MX.php
+++ b/apps/user_ldap/l10n/es_MX.php
@@ -67,7 +67,6 @@ $TRANSLATIONS = array(
"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.",
-"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",
diff --git a/apps/user_ldap/l10n/et_EE.php b/apps/user_ldap/l10n/et_EE.php
index 9bf3a189efd..f52449bda8b 100644
--- a/apps/user_ldap/l10n/et_EE.php
+++ b/apps/user_ldap/l10n/et_EE.php
@@ -70,7 +70,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Varuserveri (replika) port",
"Disable Main Server" => "Ära kasuta peaserverit",
"Only connect to the replica server." => "Ühendu ainult replitseeriva serveriga.",
-"Case insensitve LDAP server (Windows)" => "Mittetõstutundlik LDAP server (Windows)",
"Turn off SSL certificate validation." => "Lülita SSL sertifikaadi kontrollimine välja.",
"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." => "Pole soovitatav, kasuta seda ainult testimiseks! Kui ühendus toimib ainult selle valikuga, siis impordi LDAP serveri SSL sertifikaat oma %s serverisse.",
"Cache Time-To-Live" => "Puhvri iga",
diff --git a/apps/user_ldap/l10n/eu.php b/apps/user_ldap/l10n/eu.php
index a7bd52e50ac..c19cb034ad0 100644
--- a/apps/user_ldap/l10n/eu.php
+++ b/apps/user_ldap/l10n/eu.php
@@ -61,7 +61,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Babeskopia (Replica) Ataka",
"Disable Main Server" => "Desgaitu Zerbitzari Nagusia",
"Only connect to the replica server." => "Konektatu bakarrik erreplika zerbitzarira",
-"Case insensitve LDAP server (Windows)" => "Maiuskulak eta minuskulak ezberditzen ez dituen LDAP zerbitzaria (windows)",
"Turn off SSL certificate validation." => "Ezgaitu SSL ziurtagirien egiaztapena.",
"Cache Time-To-Live" => "Katxearen Bizi-Iraupena",
"in seconds. A change empties the cache." => "segundutan. Aldaketak katxea husten du.",
diff --git a/apps/user_ldap/l10n/fa.php b/apps/user_ldap/l10n/fa.php
index 688a6ee0d42..62a949f88bd 100644
--- a/apps/user_ldap/l10n/fa.php
+++ b/apps/user_ldap/l10n/fa.php
@@ -34,7 +34,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Host" => "پشتیبان گیری (بدل) میزبان",
"Backup (Replica) Port" => "پشتیبان گیری (بدل) پورت",
"Disable Main Server" => "غیر فعال کردن سرور اصلی",
-"Case insensitve LDAP server (Windows)" => "غیر حساس به بزرگی و کوچکی حروف LDAP سرور (ویندوز)",
"Turn off SSL certificate validation." => "غیرفعال کردن اعتبار گواهی نامه SSL .",
"Directory Settings" => "تنظیمات پوشه",
"User Display Name Field" => "فیلد نام کاربر",
diff --git a/apps/user_ldap/l10n/fi_FI.php b/apps/user_ldap/l10n/fi_FI.php
index ac1dfcc5ab8..552fd9f923b 100644
--- a/apps/user_ldap/l10n/fi_FI.php
+++ b/apps/user_ldap/l10n/fi_FI.php
@@ -25,7 +25,6 @@ $TRANSLATIONS = array(
"Continue" => "Jatka",
"Connection Settings" => "Yhteysasetukset",
"Disable Main Server" => "Poista pääpalvelin käytöstä",
-"Case insensitve LDAP server (Windows)" => "Kirjainkoosta piittamaton LDAP-palvelin (Windows)",
"Turn off SSL certificate validation." => "Poista käytöstä SSL-varmenteen vahvistus",
"in seconds. A change empties the cache." => "sekunneissa. Muutos tyhjentää välimuistin.",
"Directory Settings" => "Hakemistoasetukset",
diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php
index dbcaadfc2a7..44b92077b92 100644
--- a/apps/user_ldap/l10n/fr.php
+++ b/apps/user_ldap/l10n/fr.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"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.",
-"Case insensitve LDAP server (Windows)" => "Serveur LDAP insensible à la casse (Windows)",
+"Case insensitive 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",
@@ -90,6 +90,8 @@ $TRANSLATIONS = array(
"Group-Member association" => "Association groupe-membre",
"Nested Groups" => "Groupes imbriqués",
"When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" => "Si activé, les groupes contenant d'autres groupes sont supportés (fonctionne uniquement si l'attribut membre du groupe contient des DNs).",
+"Paging chunksize" => "Dimensionnement des paginations",
+"Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" => "La taille d'une part (chunksize) est utilisée pour les recherches paginées de LDAP qui peuvent retourner des résultats par lots comme une énumération d'utilisateurs ou groupes. (Configurer à 0 pour désactiver les recherches paginées de LDAP.)",
"Special Attributes" => "Attributs spéciaux",
"Quota Field" => "Champ du quota",
"Quota Default" => "Quota par défaut",
diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php
index c3524453899..82c484bb95d 100644
--- a/apps/user_ldap/l10n/gl.php
+++ b/apps/user_ldap/l10n/gl.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Porto da copia de seguranza (Réplica)",
"Disable Main Server" => "Desactivar o servidor principal",
"Only connect to the replica server." => "Conectar só co servidor de réplica.",
-"Case insensitve LDAP server (Windows)" => "Servidor LDAP que non distingue entre maiúsculas e minúsculas (Windows)",
+"Case insensitive LDAP server (Windows)" => "Servidor LDAP non sensíbel a maiúsculas (Windows)",
"Turn off SSL certificate validation." => "Desactiva a validación do 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." => "Non recomendado, utilizar só para probas! Se a conexión só funciona con esta opción importa o certificado SSL do servidor LDAP no seu servidor %s.",
"Cache Time-To-Live" => "Tempo de persistencia da caché",
diff --git a/apps/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php
index 277ae96fcd4..34daa25ce68 100644
--- a/apps/user_ldap/l10n/hu_HU.php
+++ b/apps/user_ldap/l10n/hu_HU.php
@@ -67,7 +67,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "A másodkiszolgáló (replika) portszáma",
"Disable Main Server" => "A fő szerver kihagyása",
"Only connect to the replica server." => "Csak a másodlagos (másolati) kiszolgálóhoz kapcsolódjunk.",
-"Case insensitve LDAP server (Windows)" => "Az LDAP-kiszolgáló nem tesz különbséget a kis- és nagybetűk között (Windows)",
"Turn off SSL certificate validation." => "Ne ellenőrizzük az SSL-tanúsítvány érvényességét",
"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." => "Használata nem javasolt (kivéve tesztelési céllal). Ha a kapcsolat csak ezzel a beállítással működik, akkor importálja az LDAP-kiszolgáló SSL tanúsítványát a(z) %s kiszolgálóra!",
"Cache Time-To-Live" => "A gyorsítótár tárolási időtartama",
diff --git a/apps/user_ldap/l10n/id.php b/apps/user_ldap/l10n/id.php
index 03071bb1d0f..1d42031a498 100644
--- a/apps/user_ldap/l10n/id.php
+++ b/apps/user_ldap/l10n/id.php
@@ -39,7 +39,6 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Berikan pilihan host cadangan. Harus merupakan replika dari server LDAP/AD utama.",
"Backup (Replica) Port" => "Port Cadangan (Replika)",
"Disable Main Server" => "Nonaktifkan Server Utama",
-"Case insensitve LDAP server (Windows)" => "Server LDAP dengan kapitalisasi tidak sensitif (Windows)",
"Turn off SSL certificate validation." => "matikan validasi sertivikat SSL",
"Cache Time-To-Live" => "Gunakan Tembolok untuk Time-To-Live",
"in seconds. A change empties the cache." => "dalam detik. perubahan mengosongkan cache",
diff --git a/apps/user_ldap/l10n/it.php b/apps/user_ldap/l10n/it.php
index 4436127747f..095a0619ee1 100644
--- a/apps/user_ldap/l10n/it.php
+++ b/apps/user_ldap/l10n/it.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Porta di backup (Replica)",
"Disable Main Server" => "Disabilita server principale",
"Only connect to the replica server." => "Collegati solo al server di replica.",
-"Case insensitve LDAP server (Windows)" => "Case insensitve LDAP server (Windows)",
+"Case insensitive LDAP server (Windows)" => "Server LDAP non sensibile alle maiuscole (Windows)",
"Turn off SSL certificate validation." => "Disattiva il controllo del certificato 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 consigliata, da utilizzare solo per test! Se la connessione funziona solo con questa opzione, importa il certificate SSL del server LDAP sul tuo server %s.",
"Cache Time-To-Live" => "Tempo di vita della cache",
@@ -90,6 +90,8 @@ $TRANSLATIONS = array(
"Group-Member association" => "Associazione gruppo-utente ",
"Nested Groups" => "Gruppi nidificati",
"When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" => "Quando è attivato, i gruppi che contengono altri gruppi sono supportati. (Funziona solo se l'attributo del gruppo membro contiene DN.)",
+"Paging chunksize" => "Dimensione del blocco di paginazione",
+"Chunksize used for paged LDAP searches that may return bulky results like user or group enumeration. (Setting it 0 disables paged LDAP searches in those situations.)" => "Dimensione del blocco per le ricerche LDAP paginate che potrebbero restituire risultati pesanti come l'enumerazione di utenti o gruppi.(L'impostazione a 0 disabilita le ricerche LDAP paginate in questi casi.)",
"Special Attributes" => "Attributi speciali",
"Quota Field" => "Campo Quota",
"Quota Default" => "Quota predefinita",
diff --git a/apps/user_ldap/l10n/ja.php b/apps/user_ldap/l10n/ja.php
index d13deafe6c3..e7e4706c46a 100644
--- a/apps/user_ldap/l10n/ja.php
+++ b/apps/user_ldap/l10n/ja.php
@@ -70,7 +70,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "バックアップ(レプリカ)ポート",
"Disable Main Server" => "メインサーバーを無効にする",
"Only connect to the replica server." => "レプリカサーバーにのみ接続します。",
-"Case insensitve LDAP server (Windows)" => "大文字/小文字を区別しないLDAPサーバー(Windows)",
"Turn off SSL certificate validation." => "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." => "推奨されません、テストにおいてのみ使用してください!このオプションでのみ接続が動作する場合は、LDAP サーバーのSSL証明書を %s サーバーにインポートしてください。",
"Cache Time-To-Live" => "キャッシュのTTL",
diff --git a/apps/user_ldap/l10n/ka_GE.php b/apps/user_ldap/l10n/ka_GE.php
index ffdf7655517..3ee307b55cc 100644
--- a/apps/user_ldap/l10n/ka_GE.php
+++ b/apps/user_ldap/l10n/ka_GE.php
@@ -37,7 +37,6 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "მიუთითეთ რაიმე ბექაფ ჰოსტი. ის უნდა იყოს ძირითადი LDAP/AD სერვერის რეპლიკა.",
"Backup (Replica) Port" => "ბექაფ (რეპლიკა) პორტი",
"Disable Main Server" => "გამორთეთ ძირითადი სერვერი",
-"Case insensitve LDAP server (Windows)" => "LDAP server (Windows)",
"Turn off SSL certificate validation." => "გამორთეთ SSL სერთიფიკატის ვალიდაცია.",
"Cache Time-To-Live" => "ქეშის სიცოცხლის ხანგრძლივობა",
"in seconds. A change empties the cache." => "წამებში. ცვლილება ასუფთავებს ქეშს.",
diff --git a/apps/user_ldap/l10n/ko.php b/apps/user_ldap/l10n/ko.php
index 5dd2151a411..1ae63bd4d21 100644
--- a/apps/user_ldap/l10n/ko.php
+++ b/apps/user_ldap/l10n/ko.php
@@ -67,7 +67,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "백업 (복제) 포트",
"Disable Main Server" => "주 서버 비활성화",
"Only connect to the replica server." => "복제 서버에만 연결합니다.",
-"Case insensitve LDAP server (Windows)" => "서버에서 대소문자를 구분하지 않음 (Windows)",
"Turn off SSL certificate validation." => "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." => "테스트 목적으로만 사용하십시오! 이 옵션을 사용해야만 연결할 수 있으면 %s 서버에 LDAP 서버의 SSL 인증서를 설치하십시오.",
"Cache Time-To-Live" => "캐시 유지 시간",
diff --git a/apps/user_ldap/l10n/lv.php b/apps/user_ldap/l10n/lv.php
index 769f17e6338..e3cb206e2d6 100644
--- a/apps/user_ldap/l10n/lv.php
+++ b/apps/user_ldap/l10n/lv.php
@@ -36,7 +36,6 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Norādi rezerves serveri (nav obligāti). Tam ir jābūt galvenā LDAP/AD servera kopijai.",
"Backup (Replica) Port" => "Rezerves (kopijas) ports",
"Disable Main Server" => "Deaktivēt galveno serveri",
-"Case insensitve LDAP server (Windows)" => "Reģistrnejutīgs LDAP serveris (Windows)",
"Turn off SSL certificate validation." => "Izslēgt SSL sertifikātu validēšanu.",
"Cache Time-To-Live" => "Kešatmiņas dzīvlaiks",
"in seconds. A change empties the cache." => "sekundēs. Izmaiņas iztukšos kešatmiņu.",
diff --git a/apps/user_ldap/l10n/nb_NO.php b/apps/user_ldap/l10n/nb_NO.php
index 0b60752e9d9..dd4af3e759e 100644
--- a/apps/user_ldap/l10n/nb_NO.php
+++ b/apps/user_ldap/l10n/nb_NO.php
@@ -67,7 +67,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Reserve (Replika) Port",
"Disable Main Server" => "Deaktiver hovedtjeneren",
"Only connect to the replica server." => "Koble til bare replika-tjeneren.",
-"Case insensitve LDAP server (Windows)" => "Case-insensitiv LDAP tjener (Windows)",
"Turn off SSL certificate validation." => "Slå av SSL-sertifikat validering",
"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." => "Ikke anbefalt, bruk kun for testing! Hvis tilkobling bare virker med dette valget, importer LDAP-tjenerens SSL-sertifikat i %s-serveren din.",
"Cache Time-To-Live" => "Levetid i mellomlager",
diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php
index d1ffd4f00d4..196e5a52d12 100644
--- a/apps/user_ldap/l10n/nl.php
+++ b/apps/user_ldap/l10n/nl.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Backup (Replica) Poort",
"Disable Main Server" => "Deactiveren hoofdserver",
"Only connect to the replica server." => "Maak alleen een verbinding met de replica server.",
-"Case insensitve LDAP server (Windows)" => "Niet-hoofdlettergevoelige LDAP server (Windows)",
+"Case insensitive LDAP server (Windows)" => "Niet-hoofdlettergevoelige LDAP server (Windows)",
"Turn off SSL certificate validation." => "Schakel SSL certificaat validatie uit.",
"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." => "Niet aanbevolen, gebruik alleen om te testen! Als de connectie alleen werkt met deze optie, importeer dan het SSL-certificaat van de LDAP-server naar uw %s server.",
"Cache Time-To-Live" => "Cache time-to-live",
diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php
index 69a94ec693c..988e44dbe38 100644
--- a/apps/user_ldap/l10n/pl.php
+++ b/apps/user_ldap/l10n/pl.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Kopia zapasowa (repliki) Port",
"Disable Main Server" => "Wyłącz serwer główny",
"Only connect to the replica server." => "Połącz tylko do repliki serwera.",
-"Case insensitve LDAP server (Windows)" => "Wielkość liter serwera LDAP (Windows)",
+"Case insensitive LDAP server (Windows)" => "Serwer LDAP nie rozróżniający wielkości liter (Windows)",
"Turn off SSL certificate validation." => "Wyłączyć sprawdzanie poprawności certyfikatu 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." => "Nie polecane, używać tylko w celu testowania! Jeśli połączenie działa tylko z tą opcją, zaimportuj certyfikat SSL serwera LDAP na swój %s.",
"Cache Time-To-Live" => "Przechowuj czas życia",
diff --git a/apps/user_ldap/l10n/pt_BR.php b/apps/user_ldap/l10n/pt_BR.php
index 844024a953d..0c15694e3ff 100644
--- a/apps/user_ldap/l10n/pt_BR.php
+++ b/apps/user_ldap/l10n/pt_BR.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Porta do Backup (Réplica)",
"Disable Main Server" => "Desativar Servidor Principal",
"Only connect to the replica server." => "Conectar-se somente ao servidor de réplica.",
-"Case insensitve LDAP server (Windows)" => "Servidor LDAP sensível à caixa alta (Windows)",
+"Case insensitive LDAP server (Windows)" => "Servidor LDAP(Windows) não distigue maiúscula de minúscula",
"Turn off SSL certificate validation." => "Desligar validação de 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." => "Não recomendado, use-o somente para teste! Se a conexão só funciona com esta opção, importar o certificado SSL do servidor LDAP em seu servidor %s.",
"Cache Time-To-Live" => "Cache Time-To-Live",
diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php
index 37142c8175a..e2754785c65 100644
--- a/apps/user_ldap/l10n/pt_PT.php
+++ b/apps/user_ldap/l10n/pt_PT.php
@@ -65,7 +65,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Porta do servidor de backup (Replica)",
"Disable Main Server" => "Desactivar servidor principal",
"Only connect to the replica server." => "Ligar apenas ao servidor de réplicas.",
-"Case insensitve LDAP server (Windows)" => "Servidor LDAP (Windows) não sensível a maiúsculas.",
"Turn off SSL certificate validation." => "Desligar a validação de certificado SSL.",
"Cache Time-To-Live" => "Cache do tempo de vida dos objetos no servidor",
"in seconds. A change empties the cache." => "em segundos. Uma alteração esvazia a cache.",
diff --git a/apps/user_ldap/l10n/ro.php b/apps/user_ldap/l10n/ro.php
index 0214be3f787..26394db0f85 100644
--- a/apps/user_ldap/l10n/ro.php
+++ b/apps/user_ldap/l10n/ro.php
@@ -19,7 +19,6 @@ $TRANSLATIONS = array(
"Back" => "Înapoi",
"Continue" => "Continuă",
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Atenție</b> Modulul PHP LDAP nu este instalat, infrastructura nu va funcționa. Contactează administratorul sistemului pentru al instala.",
-"Case insensitve LDAP server (Windows)" => "Server LDAP insensibil la majuscule (Windows)",
"Turn off SSL certificate validation." => "Oprește validarea certificatelor SSL ",
"in seconds. A change empties the cache." => "în secunde. O schimbare curăță memoria tampon.",
"User Display Name Field" => "Câmpul cu numele vizibil al utilizatorului",
diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php
index d9685368cbc..2cf331d24c0 100644
--- a/apps/user_ldap/l10n/ru.php
+++ b/apps/user_ldap/l10n/ru.php
@@ -67,7 +67,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Порт резервного сервера",
"Disable Main Server" => "Отключить главный сервер",
"Only connect to the replica server." => "Подключаться только к серверу-реплике.",
-"Case insensitve LDAP server (Windows)" => "Нечувствительный к регистру сервер LDAP (Windows)",
"Turn off SSL certificate validation." => "Отключить проверку сертификата 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." => "Не рекомендуется, используйте только в режиме тестирования! Если соединение работает только с этой опцией, импортируйте на ваш %s сервер SSL-сертификат сервера LDAP.",
"Cache Time-To-Live" => "Кэш времени жизни",
diff --git a/apps/user_ldap/l10n/sk_SK.php b/apps/user_ldap/l10n/sk_SK.php
index 460064593ee..edda4244336 100644
--- a/apps/user_ldap/l10n/sk_SK.php
+++ b/apps/user_ldap/l10n/sk_SK.php
@@ -67,7 +67,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Záložný server (kópia) port",
"Disable Main Server" => "Zakázať hlavný server",
"Only connect to the replica server." => "Pripojiť sa len k záložnému serveru.",
-"Case insensitve LDAP server (Windows)" => "LDAP server nerozlišuje veľkosť znakov (Windows)",
"Turn off SSL certificate validation." => "Vypnúť overovanie SSL certifikátu.",
"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." => "Neodporúčané, použite iba pri testovaní! Pokiaľ spojenie funguje iba z daným nastavením, importujte SSL certifikát LDAP servera do vášho %s servera.",
"Cache Time-To-Live" => "Životnosť objektov vo vyrovnávacej pamäti",
diff --git a/apps/user_ldap/l10n/sl.php b/apps/user_ldap/l10n/sl.php
index b6df62ffb79..54c91103a3e 100644
--- a/apps/user_ldap/l10n/sl.php
+++ b/apps/user_ldap/l10n/sl.php
@@ -67,7 +67,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Vrata varnostne kopije (replike)",
"Disable Main Server" => "Onemogoči glavni strežnik",
"Only connect to the replica server." => "Poveži le s podvojenim strežnikom.",
-"Case insensitve LDAP server (Windows)" => "Strežnik LDAP ne upošteva velikosti črk (Windows)",
"Turn off SSL certificate validation." => "Onemogoči določanje veljavnosti potrdila 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." => "Možnosti ni priporočljivo uporabiti; namenjena je zgolj preizkušanju! Če deluje povezava le s to možnostjo, je treba uvoziti potrdilo SSL strežnika LDAP na strežnik %s.",
"Cache Time-To-Live" => "Predpomni podatke TTL",
diff --git a/apps/user_ldap/l10n/sq.php b/apps/user_ldap/l10n/sq.php
index 0f18ac02351..03ff204bbca 100644
--- a/apps/user_ldap/l10n/sq.php
+++ b/apps/user_ldap/l10n/sq.php
@@ -38,7 +38,6 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Jepni një pritës rezervë. Duhet të jetë replikimi i serverit AD/LDAP kryesor.",
"Backup (Replica) Port" => "Porta rezervë (Replika)",
"Disable Main Server" => "Ç'aktivizoni serverin kryesor",
-"Case insensitve LDAP server (Windows)" => " Server LDAP i pavëmëndshëm ndaj gërmëzimit të madh apo jo (Windows)",
"Turn off SSL certificate validation." => "Ç'aktivizoni kontrollin e certifikatës SSL.",
"Cache Time-To-Live" => "Cache Time-To-Live",
"in seconds. A change empties the cache." => "në sekonda Ndryshimi boshatis 'cache'-n.",
diff --git a/apps/user_ldap/l10n/sr.php b/apps/user_ldap/l10n/sr.php
index d2ce2cf08b6..fb016fdd17e 100644
--- a/apps/user_ldap/l10n/sr.php
+++ b/apps/user_ldap/l10n/sr.php
@@ -14,7 +14,6 @@ $TRANSLATIONS = array(
"Password" => "Лозинка",
"For anonymous access, leave DN and Password empty." => "За анониман приступ, оставите поља DN и лозинка празним.",
"Back" => "Назад",
-"Case insensitve LDAP server (Windows)" => "LDAP сервер осетљив на велика и мала слова (Windows)",
"Turn off SSL certificate validation." => "Искључите потврду SSL сертификата.",
"in seconds. A change empties the cache." => "у секундама. Промена испражњава кеш меморију.",
"User Display Name Field" => "Име приказа корисника",
diff --git a/apps/user_ldap/l10n/sv.php b/apps/user_ldap/l10n/sv.php
index 6a4ed0c7204..2a4f8b19655 100644
--- a/apps/user_ldap/l10n/sv.php
+++ b/apps/user_ldap/l10n/sv.php
@@ -70,7 +70,7 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "Säkerhetskopierins-port (Replika)",
"Disable Main Server" => "Inaktivera huvudserver",
"Only connect to the replica server." => "Anslut endast till replikaservern.",
-"Case insensitve LDAP server (Windows)" => "LDAP-servern är okänslig för gemener och versaler (Windows)",
+"Case insensitive LDAP server (Windows)" => "om okänslig LDAP-server (Windows)",
"Turn off SSL certificate validation." => "Stäng av verifiering av SSL-certifikat.",
"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." => "Rekommenderas inte, använd endast för test! Om anslutningen bara fungerar med denna inställning behöver du importera LDAP-serverns SSL-certifikat till din %s server.",
"Cache Time-To-Live" => "Cache Time-To-Live",
diff --git a/apps/user_ldap/l10n/ta_LK.php b/apps/user_ldap/l10n/ta_LK.php
index c7efcf05894..27a3068f963 100644
--- a/apps/user_ldap/l10n/ta_LK.php
+++ b/apps/user_ldap/l10n/ta_LK.php
@@ -13,7 +13,6 @@ $TRANSLATIONS = array(
"Password" => "கடவுச்சொல்",
"You can specify Base DN for users and groups in the Advanced tab" => "நீங்கள் பயனாளர்களுக்கும் மேன்மை தத்தலில் உள்ள குழுவிற்கும் தள DN ஐ குறிப்பிடலாம் ",
"Back" => "பின்னுக்கு",
-"Case insensitve LDAP server (Windows)" => "உணர்ச்சியான LDAP சேவையகம் (சாளரங்கள்)",
"Turn off SSL certificate validation." => "SSL சான்றிதழின் செல்லுபடியை நிறுத்திவிடவும்",
"in seconds. A change empties the cache." => "செக்கன்களில். ஒரு மாற்றம் இடைமாற்றுநினைவகத்தை வெற்றிடமாக்கும்.",
"User Display Name Field" => "பயனாளர் காட்சிப்பெயர் புலம்",
diff --git a/apps/user_ldap/l10n/th_TH.php b/apps/user_ldap/l10n/th_TH.php
index 2202a2f0a83..1c6dbe0473f 100644
--- a/apps/user_ldap/l10n/th_TH.php
+++ b/apps/user_ldap/l10n/th_TH.php
@@ -31,7 +31,6 @@ $TRANSLATIONS = array(
"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>คำเตือน:</b> โมดูล PHP LDAP ยังไม่ได้ถูกติดตั้ง, ระบบด้านหลังจะไม่สามารถทำงานได้ กรุณาติดต่อผู้ดูแลระบบของคุณเพื่อทำการติดตั้งโมดูลดังกล่าว",
"Connection Settings" => "ตั้งค่าการเชื่อมต่อ",
"Disable Main Server" => "ปิดใช้งานเซิร์ฟเวอร์หลัก",
-"Case insensitve LDAP server (Windows)" => "เซิร์ฟเวอร์ LDAP ประเภท Case insensitive (วินโดวส์)",
"Turn off SSL certificate validation." => "ปิดใช้งานการตรวจสอบความถูกต้องของใบรับรองความปลอดภัย SSL",
"in seconds. A change empties the cache." => "ในอีกไม่กี่วินาที ระบบจะเปลี่ยนแปลงข้อมูลในแคชให้ว่างเปล่า",
"Directory Settings" => "ตั้งค่าไดเร็กทอรี่",
diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php
index d654b4e2416..48e39c8523c 100644
--- a/apps/user_ldap/l10n/tr.php
+++ b/apps/user_ldap/l10n/tr.php
@@ -45,48 +45,48 @@ $TRANSLATIONS = array(
"LDAP Email Address:" => "LDAP E-posta Adresi:",
"Other Attributes:" => "Diğer Nitelikler",
"Defines the filter to apply, when login is attempted. %%uid replaces the username in the login action. Example: \"uid=%%uid\"" => "Oturum açma girişimi olduğunda uygulanacak filtreyi tanımlar. %%uid, oturum işleminde kullanıcı adı ile değiştirilir. Örneğin: \"uid=%%uid\"",
-"Add Server Configuration" => "Sunucu Uyunlama birlemek ",
+"Add Server Configuration" => "Sunucu Yapılandırması Ekle",
"Host" => "Sunucu",
-"You can omit the protocol, except you require SSL. Then start with ldaps://" => "Protokol atlamak edesin, sadece SSL istiyorsaniz. O zaman, idapsile baslamak. ",
+"You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL gerektirmediğiniz takdirde protokol belirtmeyebilirsiniz. Ardından ldaps:// ile başlayın",
"Port" => "Port",
"User DN" => "Kullanıcı DN",
-"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "DN musterinin, kimle baglamaya yapacagiz,meselâ uid=agent.dc mesela, dc=com Gecinme adisiz ici, DN ve Parola bos birakmak. ",
+"The DN of the client user with which the bind shall be done, e.g. uid=agent,dc=example,dc=com. For anonymous access, leave DN and Password empty." => "İstemci kullanıcısının yapılacağı atamanın DN'i örn. uid=agent,dc=örnek,dc=com. Anonim erişim için DN ve Parolayı boş bırakın.",
"Password" => "Parola",
"For anonymous access, leave DN and Password empty." => "Anonim erişim için DN ve Parola alanlarını boş bırakın.",
-"One Base DN per line" => "Bir Tabani DN herbir dizi. ",
-"You can specify Base DN for users and groups in the Advanced tab" => "Base DN kullanicileri ve kaynaklari icin tablosu Advanced tayin etmek ederiz. ",
+"One Base DN per line" => "Her satırda tek bir Base DN",
+"You can specify Base DN for users and groups in the Advanced tab" => "Gelişmiş sekmesinde kullanıcılar ve gruplar için Base DN belirtebilirsiniz.",
"Limit %s access to users meeting these criteria:" => "%s erişimini, şu kriterle eşleşen kullanıcılara sınırla:",
"The filter specifies which LDAP users shall have access to the %s instance." => "Filtre, %s örneğine erişmesi gereken LDAP kullanıcılarını belirtir.",
"users found" => "kullanıcı bulundu",
"Back" => "Geri",
"Continue" => "Devam et",
"<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>Uyarı:</b> user_ldap ve user_webdavauth uygulamaları uyumlu değil. Beklenmedik bir davranışla karşılaşabilirsiniz. Lütfen ikisinden birini devre dışı bırakmak için sistem yöneticinizle iletişime geçin.",
-"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Ihbar <b> Modulu PHP LDAP yuklemdi degil, backend calismacak. Lutfen sistem yonetici sormak yuklemek icin.",
+"<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Uyarı:</b> PHP LDAP modülü kurulu değil, arka uç çalışmayacak. Lütfen kurulumu için sistem yöneticinizle iletişime geçin.",
"Connection Settings" => "Bağlantı ayarları",
"Configuration Active" => "Yapılandırma Etkin",
-"When unchecked, this configuration will be skipped." => "Ne zaman iptal, bu uynnlama isletici ",
-"Backup (Replica) Host" => "Sigorta Kopya Cephe ",
-"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Bir kopya cevre vermek, kopya sunucu onemli olmali. ",
-"Backup (Replica) Port" => "Kopya Port ",
+"When unchecked, this configuration will be skipped." => "İşaretli değilse, bu yapılandırma atlanacaktır.",
+"Backup (Replica) Host" => "Yedek (Replica) Sunucu",
+"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "İsteğe bağlı bir yedek sunucusu belirtin. Ana LDAP/AD sunucusunun bir kopyası olmalıdır.",
+"Backup (Replica) Port" => "Yedek (Replica) Bağlantı Noktası",
"Disable Main Server" => "Ana sunucuyu devredışı birak",
"Only connect to the replica server." => "Sadece kopya sunucuya bağlan.",
-"Case insensitve LDAP server (Windows)" => "Dusme sunucu LDAP zor degil. (Windows)",
+"Case insensitive LDAP server (Windows)" => "Büyük küçük harf duyarsız LDAP sunucusu (Windows)",
"Turn off SSL certificate validation." => "SSL sertifika doğrulamasını kapat.",
"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." => "Önerilmez, sadece test için kullanın! Eğer bağlantı sadece bu seçenekle çalışıyorsa %s sunucunuza LDAP sunucusunun SSL sertifikasını ekleyin.",
-"Cache Time-To-Live" => "Cache Time-To-Live ",
+"Cache Time-To-Live" => "Önbellek Time-To-Live Değeri",
"in seconds. A change empties the cache." => "saniye cinsinden. Bir değişiklik önbelleği temizleyecektir.",
-"Directory Settings" => "Parametrar Listesin Adresinin ",
-"User Display Name Field" => "Ekran Adi Kullanici, (Alan Adi Kullanici Ekrane)",
+"Directory Settings" => "Dizin Ayarları",
+"User Display Name Field" => "Kullanıcı Görünen Ad Alanı",
"The LDAP attribute to use to generate the user's display name." => "Kullanıcının görünen adını oluşturmak için kullanılacak LDAP niteliği.",
"Base User Tree" => "Temel Kullanıcı Ağacı",
-"One User Base DN per line" => "Bir Temel Kullanici DN her dizgi ",
-"User Search Attributes" => "Kategorii Arama Kullanici ",
+"One User Base DN per line" => "Her satırda Tek Kullanıcı Base DN'i",
+"User Search Attributes" => "Kullanıcı Arama Nitelikleri",
"Optional; one attribute per line" => "Tercihe bağlı; her bir satırda bir öznitelik",
-"Group Display Name Field" => "Grub Ekrane Alani Adi",
+"Group Display Name Field" => "Grup Görünen Ad Alanı",
"The LDAP attribute to use to generate the groups's display name." => "Grubun görünen adını oluşturmak için kullanılacak LDAP niteliği.",
"Base Group Tree" => "Temel Grup Ağacı",
-"One Group Base DN per line" => "Bir Grubu Tabani DN her dizgi. ",
-"Group Search Attributes" => "Kategorii Arama Grubu",
+"One Group Base DN per line" => "Her satırda Tek Grup Base DN'i",
+"Group Search Attributes" => "Grup Arama Nitelikleri",
"Group-Member association" => "Grup-Üye işbirliği",
"Nested Groups" => "İç içe Gruplar",
"When switched on, groups that contain groups are supported. (Only works if the group member attribute contains DNs.)" => "Etkinleştirildiğinde, grup içeren gruplar desteklenir (Sadece grup üyesi DN niteliği içeriyorsa çalışır).",
diff --git a/apps/user_ldap/l10n/uk.php b/apps/user_ldap/l10n/uk.php
index e87348ec44d..5f4db6d5a03 100644
--- a/apps/user_ldap/l10n/uk.php
+++ b/apps/user_ldap/l10n/uk.php
@@ -39,7 +39,6 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Вкажіть додатковий резервний сервер. Він повинен бути копією головного LDAP/AD сервера.",
"Backup (Replica) Port" => "Порт сервера для резервних копій",
"Disable Main Server" => "Вимкнути Головний Сервер",
-"Case insensitve LDAP server (Windows)" => "Нечутливий до регістру LDAP сервер (Windows)",
"Turn off SSL certificate validation." => "Вимкнути перевірку SSL сертифіката.",
"Cache Time-To-Live" => "Час актуальності Кеша",
"in seconds. A change empties the cache." => "в секундах. Зміна очищує кеш.",
diff --git a/apps/user_ldap/l10n/vi.php b/apps/user_ldap/l10n/vi.php
index 84d001cb596..21b9783897e 100644
--- a/apps/user_ldap/l10n/vi.php
+++ b/apps/user_ldap/l10n/vi.php
@@ -21,7 +21,6 @@ $TRANSLATIONS = array(
"Connection Settings" => "Connection Settings",
"Backup (Replica) Port" => "Cổng sao lưu (Replica)",
"Disable Main Server" => "Tắt máy chủ chính",
-"Case insensitve LDAP server (Windows)" => "Trường hợp insensitve LDAP máy chủ (Windows)",
"Turn off SSL certificate validation." => "Tắt xác thực chứng nhận SSL",
"in seconds. A change empties the cache." => "trong vài giây. Một sự thay đổi bộ nhớ cache.",
"Directory Settings" => "Directory Settings",
diff --git a/apps/user_ldap/l10n/zh_CN.php b/apps/user_ldap/l10n/zh_CN.php
index aae100ef9ad..d56f394f644 100644
--- a/apps/user_ldap/l10n/zh_CN.php
+++ b/apps/user_ldap/l10n/zh_CN.php
@@ -42,7 +42,6 @@ $TRANSLATIONS = array(
"Backup (Replica) Port" => "备份 (镜像) 端口",
"Disable Main Server" => "禁用主服务器",
"Only connect to the replica server." => "只能连接到复制服务器",
-"Case insensitve LDAP server (Windows)" => "大小写敏感LDAP服务器(Windows)",
"Turn off SSL certificate validation." => "关闭SSL证书验证",
"Cache Time-To-Live" => "缓存存活时间",
"in seconds. A change empties the cache." => "以秒计。修改将清空缓存。",
diff --git a/apps/user_ldap/l10n/zh_TW.php b/apps/user_ldap/l10n/zh_TW.php
index a7ae04cd167..a0975b92238 100644
--- a/apps/user_ldap/l10n/zh_TW.php
+++ b/apps/user_ldap/l10n/zh_TW.php
@@ -41,7 +41,6 @@ $TRANSLATIONS = array(
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "可以選擇性設定備用主機,必須是 LDAP/AD 中央伺服器的複本。",
"Backup (Replica) Port" => "備用(複本)連接埠",
"Disable Main Server" => "停用主伺服器",
-"Case insensitve LDAP server (Windows)" => "不區分大小寫的 LDAP 伺服器 (Windows)",
"Turn off SSL certificate validation." => "關閉 SSL 憑證檢查",
"Cache Time-To-Live" => "快取的存活時間",
"in seconds. A change empties the cache." => "以秒為單位。變更後會清空快取。",
diff --git a/apps/user_ldap/lib/wizard.php b/apps/user_ldap/lib/wizard.php
index e79090febc1..3854af617c1 100644
--- a/apps/user_ldap/lib/wizard.php
+++ b/apps/user_ldap/lib/wizard.php
@@ -869,12 +869,14 @@ class Wizard extends LDAPUtility {
* @param string $attr the attribute of which a list of values shall be returned
* @param $lfw bool, whether the last filter is a wildcard which shall not
* be processed if there were already findings, defaults to true
+ * @param int $dnReadLimit the amount of how many DNs should be analyzed.
+ * The lower, the faster
* @param string $maxF string. if not null, this variable will have the filter that
* yields most result entries
* @return mixed, an array with the values on success, false otherwise
*
*/
- private function cumulativeSearchOnAttribute($filters, $attr, $lfw = true, &$maxF = null) {
+ public function cumulativeSearchOnAttribute($filters, $attr, $lfw = true, $dnReadLimit = 3, &$maxF = null) {
$dnRead = array();
$foundItems = array();
$maxEntries = 0;
@@ -884,11 +886,16 @@ class Wizard extends LDAPUtility {
}
$base = $this->configuration->ldapBase[0];
$cr = $this->getConnection();
- if(!is_resource($cr)) {
+ if(!$this->ldap->isResource($cr)) {
return false;
}
+ $lastFilter = null;
+ if(isset($filters[count($filters)-1])) {
+ $lastFilter = $filters[count($filters)-1];
+ }
foreach($filters as $filter) {
- if($lfw && count($foundItems) > 0) {
+ if($lfw && $lastFilter === $filter && count($foundItems) > 0) {
+ //skip when the filter is a wildcard and results were found
continue;
}
$rr = $this->ldap->search($cr, $base, $filter, array($attr));
@@ -902,8 +909,10 @@ class Wizard extends LDAPUtility {
$maxEntries = $entries;
$maxF = $filter;
}
+ $dnReadCount = 0;
do {
$entry = $this->ldap->$getEntryFunc($cr, $rr);
+ $getEntryFunc = 'nextEntry';
if(!$this->ldap->isResource($entry)) {
continue 2;
}
@@ -916,13 +925,14 @@ class Wizard extends LDAPUtility {
$state = $this->getAttributeValuesFromEntry($attributes,
$attr,
$newItems);
+ $dnReadCount++;
$foundItems = array_merge($foundItems, $newItems);
$this->resultCache[$dn][$attr] = $newItems;
$dnRead[] = $dn;
- $getEntryFunc = 'nextEntry';
$rr = $entry; //will be expected by nextEntry next round
- } while($state === self::LRESULT_PROCESSED_SKIP
- || $this->ldap->isResource($entry));
+ } while(($state === self::LRESULT_PROCESSED_SKIP
+ || $this->ldap->isResource($entry))
+ && ($dnReadLimit === 0 || $dnReadCount < $dnReadLimit));
}
}
@@ -950,9 +960,19 @@ class Wizard extends LDAPUtility {
$objectclasses[$key] = $p.$value;
}
$maxEntryObjC = '';
+
+ //how deep to dig?
+ //When looking for objectclasses, testing few entries is sufficient,
+ //when looking for group we need to get all names, though.
+ if(strtolower($attr) === 'objectclass') {
+ $dig = 3;
+ } else {
+ $dig = 0;
+ }
+
$availableFeatures =
$this->cumulativeSearchOnAttribute($objectclasses, $attr,
- true, $maxEntryObjC);
+ true, $dig, $maxEntryObjC);
if(is_array($availableFeatures)
&& count($availableFeatures) > 0) {
natcasesort($availableFeatures);
diff --git a/apps/user_ldap/templates/settings.php b/apps/user_ldap/templates/settings.php
index 32cf44a56b9..0a111225a70 100644
--- a/apps/user_ldap/templates/settings.php
+++ b/apps/user_ldap/templates/settings.php
@@ -23,7 +23,7 @@
<p><label for="ldap_backup_host"><?php p($l->t('Backup (Replica) Host'));?></label><input type="text" id="ldap_backup_host" name="ldap_backup_host" data-default="<?php p($_['ldap_backup_host_default']); ?>" title="<?php p($l->t('Give an optional backup host. It must be a replica of the main LDAP/AD server.'));?>"></p>
<p><label for="ldap_backup_port"><?php p($l->t('Backup (Replica) Port'));?></label><input type="number" id="ldap_backup_port" name="ldap_backup_port" data-default="<?php p($_['ldap_backup_port_default']); ?>" /></p>
<p><label for="ldap_override_main_server"><?php p($l->t('Disable Main Server'));?></label><input type="checkbox" id="ldap_override_main_server" name="ldap_override_main_server" value="1" data-default="<?php p($_['ldap_override_main_server_default']); ?>" title="<?php p($l->t('Only connect to the replica server.'));?>" /></p>
- <p><label for="ldap_nocase"><?php p($l->t('Case insensitve LDAP server (Windows)'));?></label><input type="checkbox" id="ldap_nocase" name="ldap_nocase" data-default="<?php p($_['ldap_nocase_default']); ?>" value="1"<?php if (isset($_['ldap_nocase']) && ($_['ldap_nocase'])) p(' checked'); ?>></p>
+ <p><label for="ldap_nocase"><?php p($l->t('Case insensitive LDAP server (Windows)'));?></label><input type="checkbox" id="ldap_nocase" name="ldap_nocase" data-default="<?php p($_['ldap_nocase_default']); ?>" value="1"<?php if (isset($_['ldap_nocase']) && ($_['ldap_nocase'])) p(' checked'); ?>></p>
<p><label for="ldap_turn_off_cert_check"><?php p($l->t('Turn off SSL certificate validation.'));?></label><input type="checkbox" id="ldap_turn_off_cert_check" name="ldap_turn_off_cert_check" title="<?php p($l->t('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.', $theme->getName() ));?>" data-default="<?php p($_['ldap_turn_off_cert_check_default']); ?>" value="1"><br/></p>
<p><label for="ldap_cache_ttl"><?php p($l->t('Cache Time-To-Live'));?></label><input type="number" id="ldap_cache_ttl" name="ldap_cache_ttl" title="<?php p($l->t('in seconds. A change empties the cache.'));?>" data-default="<?php p($_['ldap_cache_ttl_default']); ?>" /></p>
</div>
diff --git a/apps/user_ldap/tests/group_ldap.php b/apps/user_ldap/tests/group_ldap.php
new file mode 100644
index 00000000000..ecbd42319e3
--- /dev/null
+++ b/apps/user_ldap/tests/group_ldap.php
@@ -0,0 +1,115 @@
+<?php
+/**
+* ownCloud
+*
+* @author Arthur Schiwon
+* @copyright 2014 Arthur Schiwon <blizzz@owncloud.com>
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+namespace OCA\user_ldap\tests;
+
+namespace OCA\user_ldap\tests;
+
+use \OCA\user_ldap\GROUP_LDAP as GroupLDAP;
+use \OCA\user_ldap\lib\Access;
+use \OCA\user_ldap\lib\Connection;
+use \OCA\user_ldap\lib\ILDAPWrapper;
+
+class Test_Group_Ldap extends \PHPUnit_Framework_TestCase {
+ private function getAccessMock() {
+ static $conMethods;
+ static $accMethods;
+
+ if(is_null($conMethods) || is_null($accMethods)) {
+ $conMethods = get_class_methods('\OCA\user_ldap\lib\Connection');
+ $accMethods = get_class_methods('\OCA\user_ldap\lib\Access');
+ }
+ $lw = $this->getMock('\OCA\user_ldap\lib\ILDAPWrapper');
+ $connector = $this->getMock('\OCA\user_ldap\lib\Connection',
+ $conMethods,
+ array($lw, null, null));
+ $access = $this->getMock('\OCA\user_ldap\lib\Access',
+ $accMethods,
+ array($connector, $lw));
+
+ return $access;
+ }
+
+ private function enableGroups($access) {
+ $access->connection->expects($this->any())
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+// if($name === 'ldapLoginFilter') {
+// return '%uid';
+// }
+ return 1;
+ }));
+ }
+
+ public function testCountEmptySearchString() {
+ $access = $this->getAccessMock();
+
+ $this->enableGroups($access);
+
+ $access->expects($this->any())
+ ->method('groupname2dn')
+ ->will($this->returnValue('cn=group,dc=foo,dc=bar'));
+
+ $access->expects($this->any())
+ ->method('readAttribute')
+ ->will($this->returnValue(array('u11', 'u22', 'u33', 'u34')));
+
+ $groupBackend = new GroupLDAP($access);
+ $users = $groupBackend->countUsersInGroup('group');
+
+ $this->assertSame(4, $users);
+ }
+
+ public function testCountWithSearchString() {
+ $access = $this->getAccessMock();
+
+ $this->enableGroups($access);
+
+ $access->expects($this->any())
+ ->method('groupname2dn')
+ ->will($this->returnValue('cn=group,dc=foo,dc=bar'));
+
+ $access->expects($this->any())
+ ->method('readAttribute')
+ ->will($this->returnCallback(function($name) {
+ //the search operation will call readAttribute, thus we need
+ //to anaylze the "dn". All other times we just need to return
+ //something that is neither null or false, but once an array
+ //with the users in the group – so we do so all other times for
+ //simplicicity.
+ if(strpos($name, 'u') === 0) {
+ return strpos($name, '3');
+ }
+ return array('u11', 'u22', 'u33', 'u34');
+ }));
+
+ $access->expects($this->any())
+ ->method('dn2username')
+ ->will($this->returnValue('foobar'));
+
+ $groupBackend = new GroupLDAP($access);
+ $users = $groupBackend->countUsersInGroup('group', '3');
+
+ $this->assertSame(2, $users);
+ }
+
+} \ No newline at end of file
diff --git a/apps/user_ldap/tests/wizard.php b/apps/user_ldap/tests/wizard.php
new file mode 100644
index 00000000000..2b5cabc705d
--- /dev/null
+++ b/apps/user_ldap/tests/wizard.php
@@ -0,0 +1,210 @@
+<?php
+/**
+* ownCloud
+*
+* @author Arthur Schiwon
+* @copyright 2014 Arthur Schiwon blizzz@owncloud.com
+*
+* This library is free software; you can redistribute it and/or
+* modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
+* License as published by the Free Software Foundation; either
+* version 3 of the License, or any later version.
+*
+* This library is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+* GNU AFFERO GENERAL PUBLIC LICENSE for more details.
+*
+* You should have received a copy of the GNU Affero General Public
+* License along with this library. If not, see <http://www.gnu.org/licenses/>.
+*
+*/
+
+namespace OCA\user_ldap\tests;
+
+use \OCA\user_ldap\lib\Wizard;
+
+// use \OCA\user_ldap\USER_LDAP as UserLDAP;
+// use \OCA\user_ldap\lib\Access;
+// use \OCA\user_ldap\lib\Configuration;
+// use \OCA\user_ldap\lib\ILDAPWrapper;
+
+class Test_Wizard extends \PHPUnit_Framework_TestCase {
+ public function setUp() {
+ //we need to make sure the consts are defined, otherwise tests will fail
+ //on systems without php5_ldap
+ $ldapConsts = array('LDAP_OPT_PROTOCOL_VERSION',
+ 'LDAP_OPT_REFERRALS', 'LDAP_OPT_NETWORK_TIMEOUT');
+ foreach($ldapConsts as $const) {
+ if(!defined($const)) {
+ define($const, 42);
+ }
+ }
+ }
+
+ private function getWizardAndMocks() {
+ static $conMethods;
+
+ if(is_null($conMethods)) {
+ $conMethods = get_class_methods('\OCA\user_ldap\lib\Configuration');
+ }
+ $lw = $this->getMock('\OCA\user_ldap\lib\ILDAPWrapper');
+ $conf = $this->getMock('\OCA\user_ldap\lib\Configuration',
+ $conMethods,
+ array($lw, null, null));
+ return array(new Wizard($conf, $lw), $conf, $lw);
+ }
+
+ private function prepareLdapWrapperForConnections(&$ldap) {
+ $ldap->expects($this->once())
+ ->method('connect')
+ //dummy value, usually invalid
+ ->will($this->returnValue(true));
+
+ $ldap->expects($this->exactly(3))
+ ->method('setOption')
+ ->will($this->returnValue(true));
+
+ $ldap->expects($this->once())
+ ->method('bind')
+ ->will($this->returnValue(true));
+
+ }
+
+ public function testCumulativeSearchOnAttributeLimited() {
+ list($wizard, $configuration, $ldap) = $this->getWizardAndMocks();
+
+ $configuration->expects($this->any())
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+ if($name === 'ldapBase') {
+ return array('base');
+ }
+ return null;
+ }));
+
+ $this->prepareLdapWrapperForConnections($ldap);
+
+ $ldap->expects($this->any())
+ ->method('isResource')
+ ->will($this->returnValue(true));
+
+ $ldap->expects($this->exactly(2))
+ ->method('search')
+ //dummy value, usually invalid
+ ->will($this->returnValue(true));
+
+ $ldap->expects($this->exactly(2))
+ ->method('countEntries')
+ //an is_resource check will follow, so we need to return a dummy resource
+ ->will($this->returnValue(23));
+
+ //5 DNs per filter means 2x firstEntry and 8x nextEntry
+ $ldap->expects($this->exactly(2))
+ ->method('firstEntry')
+ //dummy value, usually invalid
+ ->will($this->returnValue(true));
+
+ $ldap->expects($this->exactly(8))
+ ->method('nextEntry')
+ //dummy value, usually invalid
+ ->will($this->returnValue(true));
+
+ $ldap->expects($this->exactly(10))
+ ->method('getAttributes')
+ //dummy value, usually invalid
+ ->will($this->returnValue(array('cn' => array('foo'), 'count' => 1)));
+
+ global $uidnumber;
+ $uidnumber = 1;
+ $ldap->expects($this->exactly(10))
+ ->method('getDN')
+ //dummy value, usually invalid
+ ->will($this->returnCallback(function($a, $b) {
+ global $uidnumber;
+ return $uidnumber++;
+ }));
+
+ # The following expectations are the real test #
+ $filters = array('f1', 'f2', '*');
+ $wizard->cumulativeSearchOnAttribute($filters, 'cn', true, 5);
+ unset($uidnumber);
+ }
+
+ public function testCumulativeSearchOnAttributeUnlimited() {
+ list($wizard, $configuration, $ldap) = $this->getWizardAndMocks();
+
+ $configuration->expects($this->any())
+ ->method('__get')
+ ->will($this->returnCallback(function($name) {
+ if($name === 'ldapBase') {
+ return array('base');
+ }
+ return null;
+ }));
+
+ $this->prepareLdapWrapperForConnections($ldap);
+
+ $ldap->expects($this->any())
+ ->method('isResource')
+ ->will($this->returnCallback(function($r) {
+ if($r === true) {
+ return true;
+ }
+ if($r % 24 === 0) {
+ global $uidnumber;
+ $uidnumber++;
+ return false;
+ }
+ return true;
+ }));
+
+ $ldap->expects($this->exactly(2))
+ ->method('search')
+ //dummy value, usually invalid
+ ->will($this->returnValue(true));
+
+ $ldap->expects($this->exactly(2))
+ ->method('countEntries')
+ //an is_resource check will follow, so we need to return a dummy resource
+ ->will($this->returnValue(23));
+
+ //5 DNs per filter means 2x firstEntry and 8x nextEntry
+ $ldap->expects($this->exactly(2))
+ ->method('firstEntry')
+ //dummy value, usually invalid
+ ->will($this->returnCallback(function($r) {
+ global $uidnumber;
+ return $uidnumber;
+ }));
+
+ $ldap->expects($this->exactly(46))
+ ->method('nextEntry')
+ //dummy value, usually invalid
+ ->will($this->returnCallback(function($r) {
+ global $uidnumber;
+ return $uidnumber;
+ }));
+
+ $ldap->expects($this->exactly(46))
+ ->method('getAttributes')
+ //dummy value, usually invalid
+ ->will($this->returnValue(array('cn' => array('foo'), 'count' => 1)));
+
+ global $uidnumber;
+ $uidnumber = 1;
+ $ldap->expects($this->exactly(46))
+ ->method('getDN')
+ //dummy value, usually invalid
+ ->will($this->returnCallback(function($a, $b) {
+ global $uidnumber;
+ return $uidnumber++;
+ }));
+
+ # The following expectations are the real test #
+ $filters = array('f1', 'f2', '*');
+ $wizard->cumulativeSearchOnAttribute($filters, 'cn', true, 0);
+ unset($uidnumber);
+ }
+
+} \ No newline at end of file