diff --git a/apps/files/ajax/download.php b/apps/files/ajax/download.php
index 7c8dcb372e24c5d4517b1ac5459e1c03feb9744a..b2bfd53506d66697482f645e1f40cb6e5bff298d 100644
--- a/apps/files/ajax/download.php
+++ b/apps/files/ajax/download.php
@@ -35,7 +35,7 @@ $dir = $_GET["dir"];
$files_list = json_decode($files);
// in case we get only a single file
-if ($files_list === NULL ) {
+if (!is_array($files_list)) {
$files_list = array($files);
}
diff --git a/apps/files/ajax/newfile.php b/apps/files/ajax/newfile.php
index 8548fc95ddf963d6ef131b8b94fa808a5d547e21..d224e79d01ba2dca4be3fc254ac5f3186cd48249 100644
--- a/apps/files/ajax/newfile.php
+++ b/apps/files/ajax/newfile.php
@@ -54,6 +54,8 @@ function progress($notification_code, $severity, $message, $message_code, $bytes
}
}
+$target = $dir.'/'.$filename;
+
if($source) {
if(substr($source, 0, 8)!='https://' and substr($source, 0, 7)!='http://') {
OCP\JSON::error(array("data" => array( "message" => "Not a valid source" )));
@@ -62,7 +64,6 @@ if($source) {
$ctx = stream_context_create(null, array('notification' =>'progress'));
$sourceStream=fopen($source, 'rb', false, $ctx);
- $target=$dir.'/'.$filename;
$result=\OC\Files\Filesystem::file_put_contents($target, $sourceStream);
if($result) {
$meta = \OC\Files\Filesystem::getFileInfo($target);
@@ -75,20 +76,32 @@ if($source) {
$eventSource->close();
exit();
} else {
+ $success = false;
+ if (!$content) {
+ $templateManager = OC_Helper::getFileTemplateManager();
+ $mimeType = OC_Helper::getMimeType($target);
+ $content = $templateManager->getTemplate($mimeType);
+ }
+
if($content) {
- if(\OC\Files\Filesystem::file_put_contents($dir.'/'.$filename, $content)) {
- $meta = \OC\Files\Filesystem::getFileInfo($dir.'/'.$filename);
- $id = $meta['fileid'];
- OCP\JSON::success(array("data" => array('content'=>$content, 'id' => $id)));
- exit();
- }
- }elseif(\OC\Files\Filesystem::touch($dir . '/' . $filename)) {
- $meta = \OC\Files\Filesystem::getFileInfo($dir.'/'.$filename);
+ $success = \OC\Files\Filesystem::file_put_contents($target, $content);
+ } else {
+ $success = \OC\Files\Filesystem::touch($target);
+ }
+
+ if($success) {
+ $meta = \OC\Files\Filesystem::getFileInfo($target);
$id = $meta['fileid'];
- OCP\JSON::success(array("data" => array('content'=>$content, 'id' => $id, 'mime' => $meta['mimetype'])));
+ $mime = $meta['mimetype'];
+ $size = $meta['size'];
+ OCP\JSON::success(array('data' => array(
+ 'id' => $id,
+ 'mime' => $mime,
+ 'size' => $size,
+ 'content' => $content,
+ )));
exit();
}
}
-
OCP\JSON::error(array("data" => array( "message" => "Error when creating the file" )));
diff --git a/apps/files/appinfo/app.php b/apps/files/appinfo/app.php
index 99739cb4cee71461bf43d1a6f0e8143b7e8939a4..aa839b81d1816c67a5ade7b711e6676da7414b4b 100644
--- a/apps/files/appinfo/app.php
+++ b/apps/files/appinfo/app.php
@@ -5,11 +5,11 @@ $l = OC_L10N::get('files');
OCP\App::registerAdmin('files', 'admin');
-OCP\App::addNavigationEntry( array( "id" => "files_index",
- "order" => 0,
- "href" => OCP\Util::linkTo( "files", "index.php" ),
- "icon" => OCP\Util::imagePath( "core", "places/files.svg" ),
- "name" => $l->t("Files") ));
+OCP\App::addNavigationEntry(array("id" => "files_index",
+ "order" => 0,
+ "href" => OCP\Util::linkTo("files", "index.php"),
+ "icon" => OCP\Util::imagePath("core", "places/files.svg"),
+ "name" => $l->t("Files")));
OC_Search::registerProvider('OC_Search_Provider_File');
@@ -21,3 +21,7 @@ OC_Search::registerProvider('OC_Search_Provider_File');
\OC_Hook::connect('OC_Filesystem', 'post_rename', '\OC\Files\Cache\Updater', 'renameHook');
\OCP\BackgroundJob::addRegularTask('\OC\Files\Cache\BackgroundWatcher', 'checkNext');
+
+$templateManager = OC_Helper::getFileTemplateManager();
+$templateManager->registerTemplate('text/html', 'core/templates/filetemplates/template.html');
+
diff --git a/apps/files/console/scan.php b/apps/files/console/scan.php
new file mode 100644
index 0000000000000000000000000000000000000000..70183fc888af90e21b912de1b85927afe866f031
--- /dev/null
+++ b/apps/files/console/scan.php
@@ -0,0 +1,31 @@
+" . PHP_EOL;
+ echo " will rescan all files of the given user" . PHP_EOL;
+ echo " files:scan --all" . PHP_EOL;
+ echo " will rescan all files of all known users" . PHP_EOL;
+ return;
+}
+
+function scanFiles($user) {
+ $scanner = new \OC\Files\Utils\Scanner($user);
+ $scanner->listen('\OC\Files\Utils\Scanner', 'scanFile', function($path) {
+ echo "Scanning $path" . PHP_EOL;
+ });
+ $scanner->listen('\OC\Files\Utils\Scanner', 'scanFolder', function($path) {
+ echo "Scanning $path" . PHP_EOL;
+ });
+ $scanner->scan('');
+}
+
+if ($argv[1] === '--all') {
+ $users = OC_User::getUsers();
+} else {
+ $users = array($argv[1]);
+}
+
+foreach ($users as $user) {
+ scanFiles($user);
+}
diff --git a/apps/files/css/files.css b/apps/files/css/files.css
index 117aac4c93e8ed977d42d467f085b0361ee67b2c..50aa58b53d7cf5b03bfe610eb0c03c31e0774bac 100644
--- a/apps/files/css/files.css
+++ b/apps/files/css/files.css
@@ -114,7 +114,7 @@ table td.filename form { font-size:.85em; margin-left:3em; margin-right:3em; }
position:relative; width:100%;
-webkit-transition:background-image 500ms; -moz-transition:background-image 500ms; -o-transition:background-image 500ms; transition:background-image 500ms;
}
-#select_all { float:left; margin:.3em 0.6em 0 .5em; }
+#select_all { float:left; margin:.4em 0.6em 0 .5em; }
#uploadsize-message,#delete-confirm { display:none; }
/* File actions */
@@ -147,14 +147,14 @@ a.action>img { max-height:16px; max-width:16px; vertical-align:text-bottom; }
display:none;
}
#fileList tr:hover a.action, #fileList a.action.permanent {
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=.5)";
- filter: alpha(opacity=.5);
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
+ filter: alpha(opacity=50);
opacity: .5;
display:inline;
}
#fileList tr:hover a.action:hover {
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=1)";
- filter: alpha(opacity=1);
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
opacity: 1;
display:inline;
}
diff --git a/apps/files/js/file-upload.js b/apps/files/js/file-upload.js
index 87d8b353b68fbfccf9c137ecc24f8b41dacc2308..49e464b810a7cbaa3dab8173ed0bad4e013bad0d 100644
--- a/apps/files/js/file-upload.js
+++ b/apps/files/js/file-upload.js
@@ -1,344 +1,344 @@
$(document).ready(function() {
- var file_upload_param = {
- dropZone: $('#content'), // restrict dropZone to content div
- //singleFileUploads is on by default, so the data.files array will always have length 1
- add: function(e, data) {
+ var file_upload_param = {
+ dropZone: $('#content'), // restrict dropZone to content div
+ //singleFileUploads is on by default, so the data.files array will always have length 1
+ add: function(e, data) {
- if(data.files[0].type === '' && data.files[0].size == 4096)
- {
- data.textStatus = 'dirorzero';
- data.errorThrown = t('files','Unable to upload your file as it is a directory or has 0 bytes');
- var fu = $(this).data('blueimp-fileupload') || $(this).data('fileupload');
- fu._trigger('fail', e, data);
- return true; //don't upload this file but go on with next in queue
- }
-
- var totalSize=0;
- $.each(data.originalFiles, function(i,file){
- totalSize+=file.size;
- });
+ if(data.files[0].type === '' && data.files[0].size == 4096)
+ {
+ data.textStatus = 'dirorzero';
+ data.errorThrown = t('files','Unable to upload your file as it is a directory or has 0 bytes');
+ var fu = $(this).data('blueimp-fileupload') || $(this).data('fileupload');
+ fu._trigger('fail', e, data);
+ return true; //don't upload this file but go on with next in queue
+ }
- if(totalSize>$('#max_upload').val()){
- data.textStatus = 'notenoughspace';
- data.errorThrown = t('files','Not enough space available');
- var fu = $(this).data('blueimp-fileupload') || $(this).data('fileupload');
- fu._trigger('fail', e, data);
- return false; //don't upload anything
- }
+ var totalSize=0;
+ $.each(data.originalFiles, function(i,file){
+ totalSize+=file.size;
+ });
- // start the actual file upload
- var jqXHR = data.submit();
+ if(totalSize>$('#max_upload').val()){
+ data.textStatus = 'notenoughspace';
+ data.errorThrown = t('files','Not enough space available');
+ var fu = $(this).data('blueimp-fileupload') || $(this).data('fileupload');
+ fu._trigger('fail', e, data);
+ return false; //don't upload anything
+ }
- // remember jqXHR to show warning to user when he navigates away but an upload is still in progress
- if (typeof data.context !== 'undefined' && data.context.data('type') === 'dir') {
- var dirName = data.context.data('file');
- if(typeof uploadingFiles[dirName] === 'undefined') {
- uploadingFiles[dirName] = {};
- }
- uploadingFiles[dirName][data.files[0].name] = jqXHR;
- } else {
- uploadingFiles[data.files[0].name] = jqXHR;
- }
+ // start the actual file upload
+ var jqXHR = data.submit();
- //show cancel button
- if($('html.lte9').length === 0 && data.dataType !== 'iframe') {
- $('#uploadprogresswrapper input.stop').show();
- }
- },
- /**
- * called after the first add, does NOT have the data param
- * @param e
- */
- start: function(e) {
- //IE < 10 does not fire the necessary events for the progress bar.
- if($('html.lte9').length > 0) {
- return;
- }
- $('#uploadprogressbar').progressbar({value:0});
- $('#uploadprogressbar').fadeIn();
- },
- fail: function(e, data) {
- if (typeof data.textStatus !== 'undefined' && data.textStatus !== 'success' ) {
- if (data.textStatus === 'abort') {
- $('#notification').text(t('files', 'Upload cancelled.'));
- } else {
- // HTTP connection problem
- $('#notification').text(data.errorThrown);
- }
- $('#notification').fadeIn();
- //hide notification after 5 sec
- setTimeout(function() {
- $('#notification').fadeOut();
- }, 5000);
- }
- delete uploadingFiles[data.files[0].name];
- },
- progress: function(e, data) {
- // TODO: show nice progress bar in file row
- },
- progressall: function(e, data) {
- //IE < 10 does not fire the necessary events for the progress bar.
- if($('html.lte9').length > 0) {
- return;
- }
- var progress = (data.loaded/data.total)*100;
- $('#uploadprogressbar').progressbar('value',progress);
- },
- /**
- * called for every successful upload
- * @param e
- * @param data
- */
- done:function(e, data) {
- // handle different responses (json or body from iframe for ie)
- var response;
- if (typeof data.result === 'string') {
- response = data.result;
- } else {
- //fetch response from iframe
- response = data.result[0].body.innerText;
- }
- var result=$.parseJSON(response);
+ // remember jqXHR to show warning to user when he navigates away but an upload is still in progress
+ if (typeof data.context !== 'undefined' && data.context.data('type') === 'dir') {
+ var dirName = data.context.data('file');
+ if(typeof uploadingFiles[dirName] === 'undefined') {
+ uploadingFiles[dirName] = {};
+ }
+ uploadingFiles[dirName][data.files[0].name] = jqXHR;
+ } else {
+ uploadingFiles[data.files[0].name] = jqXHR;
+ }
- if(typeof result[0] !== 'undefined' && result[0].status === 'success') {
- var file = result[0];
- } else {
- data.textStatus = 'servererror';
- data.errorThrown = t('files', result.data.message);
- var fu = $(this).data('blueimp-fileupload') || $(this).data('fileupload');
- fu._trigger('fail', e, data);
- }
+ //show cancel button
+ if($('html.lte9').length === 0 && data.dataType !== 'iframe') {
+ $('#uploadprogresswrapper input.stop').show();
+ }
+ },
+ /**
+ * called after the first add, does NOT have the data param
+ * @param e
+ */
+ start: function(e) {
+ //IE < 10 does not fire the necessary events for the progress bar.
+ if($('html.lte9').length > 0) {
+ return;
+ }
+ $('#uploadprogressbar').progressbar({value:0});
+ $('#uploadprogressbar').fadeIn();
+ },
+ fail: function(e, data) {
+ if (typeof data.textStatus !== 'undefined' && data.textStatus !== 'success' ) {
+ if (data.textStatus === 'abort') {
+ $('#notification').text(t('files', 'Upload cancelled.'));
+ } else {
+ // HTTP connection problem
+ $('#notification').text(data.errorThrown);
+ }
+ $('#notification').fadeIn();
+ //hide notification after 5 sec
+ setTimeout(function() {
+ $('#notification').fadeOut();
+ }, 5000);
+ }
+ delete uploadingFiles[data.files[0].name];
+ },
+ progress: function(e, data) {
+ // TODO: show nice progress bar in file row
+ },
+ progressall: function(e, data) {
+ //IE < 10 does not fire the necessary events for the progress bar.
+ if($('html.lte9').length > 0) {
+ return;
+ }
+ var progress = (data.loaded/data.total)*100;
+ $('#uploadprogressbar').progressbar('value',progress);
+ },
+ /**
+ * called for every successful upload
+ * @param e
+ * @param data
+ */
+ done:function(e, data) {
+ // handle different responses (json or body from iframe for ie)
+ var response;
+ if (typeof data.result === 'string') {
+ response = data.result;
+ } else {
+ //fetch response from iframe
+ response = data.result[0].body.innerText;
+ }
+ var result=$.parseJSON(response);
- var filename = result[0].originalname;
+ if(typeof result[0] !== 'undefined' && result[0].status === 'success') {
+ var file = result[0];
+ } else {
+ data.textStatus = 'servererror';
+ data.errorThrown = t('files', result.data.message);
+ var fu = $(this).data('blueimp-fileupload') || $(this).data('fileupload');
+ fu._trigger('fail', e, data);
+ }
- // delete jqXHR reference
- if (typeof data.context !== 'undefined' && data.context.data('type') === 'dir') {
- var dirName = data.context.data('file');
- delete uploadingFiles[dirName][filename];
- if ($.assocArraySize(uploadingFiles[dirName]) == 0) {
- delete uploadingFiles[dirName];
- }
- } else {
- delete uploadingFiles[filename];
- }
+ var filename = result[0].originalname;
- },
- /**
- * called after last upload
- * @param e
- * @param data
- */
- stop: function(e, data) {
- if(data.dataType !== 'iframe') {
- $('#uploadprogresswrapper input.stop').hide();
- }
+ // delete jqXHR reference
+ if (typeof data.context !== 'undefined' && data.context.data('type') === 'dir') {
+ var dirName = data.context.data('file');
+ delete uploadingFiles[dirName][filename];
+ if ($.assocArraySize(uploadingFiles[dirName]) == 0) {
+ delete uploadingFiles[dirName];
+ }
+ } else {
+ delete uploadingFiles[filename];
+ }
- //IE < 10 does not fire the necessary events for the progress bar.
- if($('html.lte9').length > 0) {
- return;
- }
+ },
+ /**
+ * called after last upload
+ * @param e
+ * @param data
+ */
+ stop: function(e, data) {
+ if(data.dataType !== 'iframe') {
+ $('#uploadprogresswrapper input.stop').hide();
+ }
- $('#uploadprogressbar').progressbar('value',100);
- $('#uploadprogressbar').fadeOut();
- }
- };
- var file_upload_handler = function() {
- $('#file_upload_start').fileupload(file_upload_param);
- };
+ //IE < 10 does not fire the necessary events for the progress bar.
+ if($('html.lte9').length > 0) {
+ return;
+ }
+ $('#uploadprogressbar').progressbar('value',100);
+ $('#uploadprogressbar').fadeOut();
+ }
+ };
+ var file_upload_handler = function() {
+ $('#file_upload_start').fileupload(file_upload_param);
+ };
- if ( document.getElementById('data-upload-form') ) {
- $(file_upload_handler);
- }
- $.assocArraySize = function(obj) {
- // http://stackoverflow.com/a/6700/11236
- var size = 0, key;
- for (key in obj) {
- if (obj.hasOwnProperty(key)) {
- size++;
- }
- }
- return size;
- };
- // warn user not to leave the page while upload is in progress
- $(window).bind('beforeunload', function(e) {
- if ($.assocArraySize(uploadingFiles) > 0) {
- return t('files','File upload is in progress. Leaving the page now will cancel the upload.');
+ if ( document.getElementById('data-upload-form') ) {
+ $(file_upload_handler);
}
- });
+ $.assocArraySize = function(obj) {
+ // http://stackoverflow.com/a/6700/11236
+ var size = 0, key;
+ for (key in obj) {
+ if (obj.hasOwnProperty(key)) size++;
+ }
+ return size;
+ };
- //add multiply file upload attribute to all browsers except konqueror (which crashes when it's used)
- if(navigator.userAgent.search(/konqueror/i)==-1){
- $('#file_upload_start').attr('multiple','multiple');
- }
+ // warn user not to leave the page while upload is in progress
+ $(window).bind('beforeunload', function(e) {
+ if ($.assocArraySize(uploadingFiles) > 0) {
+ return t('files','File upload is in progress. Leaving the page now will cancel the upload.');
+ }
+ });
- //if the breadcrumb is to long, start by replacing foldernames with '...' except for the current folder
- var crumb=$('div.crumb').first();
- while($('div.controls').height()>40 && crumb.next('div.crumb').length>0){
- crumb.children('a').text('...');
- crumb=crumb.next('div.crumb');
- }
- //if that isn't enough, start removing items from the breacrumb except for the current folder and it's parent
- crumb=$('div.crumb').first();
- var next=crumb.next('div.crumb');
- while($('div.controls').height()>40 && next.next('div.crumb').length>0){
- crumb.remove();
- crumb=next;
- next=crumb.next('div.crumb');
- }
- //still not enough, start shorting down the current folder name
- var crumb=$('div.crumb>a').last();
- while($('div.controls').height()>40 && crumb.text().length>6){
- var text=crumb.text();
- text=text.substr(0,text.length-6)+'...';
- crumb.text(text);
- }
+ //add multiply file upload attribute to all browsers except konqueror (which crashes when it's used)
+ if(navigator.userAgent.search(/konqueror/i)==-1){
+ $('#file_upload_start').attr('multiple','multiple');
+ }
- $(document).click(function(){
- $('#new>ul').hide();
- $('#new').removeClass('active');
- $('#new li').each(function(i,element){
- if($(element).children('p').length==0){
- $(element).children('form').remove();
- $(element).append('
'+$(element).data('text')+'
');
- }
- });
- });
- $('#new li').click(function(){
- if($(this).children('p').length==0){
- return;
+ //if the breadcrumb is to long, start by replacing foldernames with '...' except for the current folder
+ var crumb=$('div.crumb').first();
+ while($('div.controls').height()>40 && crumb.next('div.crumb').length>0){
+ crumb.children('a').text('...');
+ crumb=crumb.next('div.crumb');
+ }
+ //if that isn't enough, start removing items from the breacrumb except for the current folder and it's parent
+ var crumb=$('div.crumb').first();
+ var next=crumb.next('div.crumb');
+ while($('div.controls').height()>40 && next.next('div.crumb').length>0){
+ crumb.remove();
+ crumb=next;
+ next=crumb.next('div.crumb');
+ }
+ //still not enough, start shorting down the current folder name
+ var crumb=$('div.crumb>a').last();
+ while($('div.controls').height()>40 && crumb.text().length>6){
+ var text=crumb.text()
+ text=text.substr(0,text.length-6)+'...';
+ crumb.text(text);
}
- $('#new li').each(function(i,element){
- if($(element).children('p').length==0){
- $(element).children('form').remove();
- $(element).append('
+
style="background-image:url()"
style="background-image:url()"
>
-
+
@@ -43,14 +43,14 @@
-
+
-
+
diff --git a/apps/files_versions/css/versions.css b/apps/files_versions/css/versions.css
index 6146eda337246274b7055e7a90fb006167cb15df..6a9b3a95698a8cb8da9f4d3624a934c9980a39a2 100644
--- a/apps/files_versions/css/versions.css
+++ b/apps/files_versions/css/versions.css
@@ -1,3 +1,7 @@
+#dropdown.drop-versions {
+ width:22em;
+}
+
#found_versions li {
width: 100%;
cursor: default;
@@ -39,6 +43,3 @@
float: right;
}
-.drop-versions #makelink {
- float: left;
-}
diff --git a/apps/files_versions/js/versions.js b/apps/files_versions/js/versions.js
index 9c3c74721f08845c1f54211fc1a90a42fdfd6031..f57e931bad9aa328dd2d6c504ee86f82567e61bc 100644
--- a/apps/files_versions/js/versions.js
+++ b/apps/files_versions/js/versions.js
@@ -104,9 +104,9 @@ function createVersionsDropdown(filename, files) {
success: function(result) {
var versions = result.data.versions;
if (result.data.endReached === true) {
- document.getElementById("show-more-versions").style.display="none";
+ $("#show-more-versions").css("display", "none");
} else {
- document.getElementById("show-more-versions").style.display="block";
+ $("#show-more-versions").css("display", "block");
}
if (versions) {
$.each(versions, function(index, row) {
@@ -132,8 +132,6 @@ function createVersionsDropdown(filename, files) {
var download ='';
download+='';
download+=name;
download+='';
@@ -143,8 +141,6 @@ function createVersionsDropdown(filename, files) {
revert+=' value="' + files + '">';
revert+=''+t('files_versions', 'Restore')+'';
diff --git a/apps/files_versions/l10n/ar.php b/apps/files_versions/l10n/ar.php
index 278b793a86d686db3775e5205e5e77d7d2a78389..53eae8e9feed7c4202aff7eb430be3c8226fd3f3 100644
--- a/apps/files_versions/l10n/ar.php
+++ b/apps/files_versions/l10n/ar.php
@@ -1,4 +1,6 @@
- "الإصدارات",
"Restore" => "استعيد"
);
+$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_versions/l10n/bg_BG.php b/apps/files_versions/l10n/bg_BG.php
index 25254cfb4d8e2b53abf78cff9186f25ad3642b6c..6268f408f7a5d723987fbcbaa7af566e65f80ab2 100644
--- a/apps/files_versions/l10n/bg_BG.php
+++ b/apps/files_versions/l10n/bg_BG.php
@@ -1,4 +1,6 @@
- "Версии",
"Restore" => "Възтановяване"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/bn_BD.php b/apps/files_versions/l10n/bn_BD.php
index f3b0071a356113deb1855f60080875bc13bff700..ce7f81b0095ff9d6fb227f11b1f235e3f8fdd436 100644
--- a/apps/files_versions/l10n/bn_BD.php
+++ b/apps/files_versions/l10n/bn_BD.php
@@ -1,3 +1,5 @@
- "ভার্সন"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/ca.php b/apps/files_versions/l10n/ca.php
index 4f92c3412009fc71611b83329a16323a88e5cc0b..e5c47a277f989ea1fdd89920bffcc183b42c8984 100644
--- a/apps/files_versions/l10n/ca.php
+++ b/apps/files_versions/l10n/ca.php
@@ -1,5 +1,10 @@
- "No s'ha pogut revertir: %s",
"Versions" => "Versions",
+"Failed to revert {file} to revision {timestamp}." => "Ha fallat en retornar {file} a la revisió {timestamp}",
+"More versions..." => "Més versions...",
+"No other versions available" => "No hi ha altres versions disponibles",
"Restore" => "Recupera"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/cs_CZ.php b/apps/files_versions/l10n/cs_CZ.php
index bc6f4cf4a1980c8594b08a95786feed1ef626cd4..45ce297eae5b24dbe398aee74fb14644c020355b 100644
--- a/apps/files_versions/l10n/cs_CZ.php
+++ b/apps/files_versions/l10n/cs_CZ.php
@@ -1,8 +1,10 @@
- "Nelze navrátit: %s",
+ "Nelze vrátit: %s",
"Versions" => "Verze",
-"Failed to revert {file} to revision {timestamp}." => "Selhalo navrácení souboru {file} na verzi {timestamp}.",
+"Failed to revert {file} to revision {timestamp}." => "Selhalo vrácení souboru {file} na verzi {timestamp}.",
"More versions..." => "Více verzí...",
"No other versions available" => "Žádné další verze nejsou dostupné",
"Restore" => "Obnovit"
);
+$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/files_versions/l10n/da.php b/apps/files_versions/l10n/da.php
index 4a94a749f2e4206ec7464171775d70a34c9b9db9..a18bc7177081a67fba82e2aeb5cdfd739c5e6453 100644
--- a/apps/files_versions/l10n/da.php
+++ b/apps/files_versions/l10n/da.php
@@ -1,4 +1,5 @@
- "Kunne ikke genskabe: %s",
"Versions" => "Versioner",
"Failed to revert {file} to revision {timestamp}." => "Kunne ikke tilbagerulle {file} til den tidligere udgave: {timestamp}.",
@@ -6,3 +7,4 @@
"No other versions available" => "Ingen andre versioner tilgængelig",
"Restore" => "Gendan"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/de.php b/apps/files_versions/l10n/de.php
index e89c216fe43861c6913f464e51cda4d7c4f2d9fe..c8b45eee5005516a2e916d685cf3f05645efa049 100644
--- a/apps/files_versions/l10n/de.php
+++ b/apps/files_versions/l10n/de.php
@@ -1,4 +1,5 @@
- "Konnte %s nicht zurücksetzen",
"Versions" => "Versionen",
"Failed to revert {file} to revision {timestamp}." => "Konnte {file} der Revision {timestamp} nicht rückgänging machen.",
@@ -6,3 +7,4 @@
"No other versions available" => "Keine anderen Versionen verfügbar",
"Restore" => "Wiederherstellen"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/de_DE.php b/apps/files_versions/l10n/de_DE.php
index e89c216fe43861c6913f464e51cda4d7c4f2d9fe..c8b45eee5005516a2e916d685cf3f05645efa049 100644
--- a/apps/files_versions/l10n/de_DE.php
+++ b/apps/files_versions/l10n/de_DE.php
@@ -1,4 +1,5 @@
- "Konnte %s nicht zurücksetzen",
"Versions" => "Versionen",
"Failed to revert {file} to revision {timestamp}." => "Konnte {file} der Revision {timestamp} nicht rückgänging machen.",
@@ -6,3 +7,4 @@
"No other versions available" => "Keine anderen Versionen verfügbar",
"Restore" => "Wiederherstellen"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/el.php b/apps/files_versions/l10n/el.php
index d589770553cee7452a341ebcf821ca831a844622..af608e7c04241e37f99a2bc39e7ea6ef2031bad1 100644
--- a/apps/files_versions/l10n/el.php
+++ b/apps/files_versions/l10n/el.php
@@ -1,5 +1,10 @@
- "Αδυναμία επαναφοράς του: %s",
"Versions" => "Εκδόσεις",
+"Failed to revert {file} to revision {timestamp}." => "Αποτυχία επαναφοράς του {file} στην αναθεώρηση {timestamp}.",
+"More versions..." => "Περισσότερες εκδόσεις...",
+"No other versions available" => "Δεν υπάρχουν άλλες εκδόσεις διαθέσιμες",
"Restore" => "Επαναφορά"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/eo.php b/apps/files_versions/l10n/eo.php
index 72d8625be9e44c20bace7c776c79612e4ef188f3..c023d5fbc37cf3eaff556fb03e9cb94ec3ff3b30 100644
--- a/apps/files_versions/l10n/eo.php
+++ b/apps/files_versions/l10n/eo.php
@@ -1,5 +1,7 @@
- "Ne eblas malfari: %s",
"Versions" => "Versioj",
"Restore" => "Restaŭri"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/es.php b/apps/files_versions/l10n/es.php
index b2857bded1758eb6a43d290d56f639c899fc31b8..a6031698e06ba7b0944e638551ddf6f4d12033e8 100644
--- a/apps/files_versions/l10n/es.php
+++ b/apps/files_versions/l10n/es.php
@@ -1,5 +1,10 @@
- "No se puede revertir: %s",
"Versions" => "Revisiones",
+"Failed to revert {file} to revision {timestamp}." => "No se ha podido revertir {archivo} a revisión {timestamp}.",
+"More versions..." => "Más...",
+"No other versions available" => "No hay otras versiones disponibles",
"Restore" => "Recuperar"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/es_AR.php b/apps/files_versions/l10n/es_AR.php
index ec55fa8ebf554c03f2e7dbfdded3330ac3c91037..068f835d0afe84dd2ae43a304ec118eeac5bc18f 100644
--- a/apps/files_versions/l10n/es_AR.php
+++ b/apps/files_versions/l10n/es_AR.php
@@ -1,5 +1,7 @@
- "No se pudo revertir: %s ",
"Versions" => "Versiones",
"Restore" => "Recuperar"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/et_EE.php b/apps/files_versions/l10n/et_EE.php
index 271d424df43f8f2f3d29df0efa7c7b4d5488c8a2..ba8b516e85607db138934b2aed5ae96553b86268 100644
--- a/apps/files_versions/l10n/et_EE.php
+++ b/apps/files_versions/l10n/et_EE.php
@@ -1,5 +1,10 @@
- "Ei suuda taastada faili: %s",
"Versions" => "Versioonid",
+"Failed to revert {file} to revision {timestamp}." => "Ebaõnnestus faili {file} taastamine revisjonile {timestamp}",
+"More versions..." => "Rohkem versioone...",
+"No other versions available" => "Muid versioone pole saadaval",
"Restore" => "Taasta"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/eu.php b/apps/files_versions/l10n/eu.php
index 918b20fb0fd9c35c4e2faacd012f843e447cc4d9..249ae096630ecd1e13e2dea68cda6bf77da3021d 100644
--- a/apps/files_versions/l10n/eu.php
+++ b/apps/files_versions/l10n/eu.php
@@ -1,4 +1,5 @@
- "Ezin izan da leheneratu: %s",
"Versions" => "Bertsioak",
"Failed to revert {file} to revision {timestamp}." => "Errore bat izan da {fitxategia} {timestamp} bertsiora leheneratzean.",
@@ -6,3 +7,4 @@
"No other versions available" => "Ez dago bertsio gehiago eskuragarri",
"Restore" => "Berrezarri"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/fa.php b/apps/files_versions/l10n/fa.php
index 9f77e52662494edcac6ebab862b9449c63487e47..8edfc2ee265594b9a96d9c69b94975f87b9522c9 100644
--- a/apps/files_versions/l10n/fa.php
+++ b/apps/files_versions/l10n/fa.php
@@ -1,5 +1,7 @@
- "بازگردانی امکان ناپذیر است: %s",
"Versions" => "نسخه ها",
"Restore" => "بازیابی"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/fi_FI.php b/apps/files_versions/l10n/fi_FI.php
index 9f6f38ce05d117b311ba2b4ea8ea61b75e0f4dee..fb011df2a1321d1c2024ffb152c7d96c0a6b9a31 100644
--- a/apps/files_versions/l10n/fi_FI.php
+++ b/apps/files_versions/l10n/fi_FI.php
@@ -1,4 +1,5 @@
- "Palautus epäonnistui: %s",
"Versions" => "Versiot",
"Failed to revert {file} to revision {timestamp}." => "Tiedoston {file} palautus versioon {timestamp} epäonnistui.",
@@ -6,3 +7,4 @@
"No other versions available" => "Ei muita versioita saatavilla",
"Restore" => "Palauta"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/fr.php b/apps/files_versions/l10n/fr.php
index 74931bd70463ce14daeff3b9db59c67985b31c9a..537783e6c9f867a3237f6c764344ac2a74192220 100644
--- a/apps/files_versions/l10n/fr.php
+++ b/apps/files_versions/l10n/fr.php
@@ -1,5 +1,7 @@
- "Impossible de restaurer %s",
"Versions" => "Versions",
"Restore" => "Restaurer"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_versions/l10n/gl.php b/apps/files_versions/l10n/gl.php
index 66e3ccc5dc7df6b4341cddb75e5f26fc34bd310c..1ccdc95f1eba50bfdbc47413898313a6f80ec5d2 100644
--- a/apps/files_versions/l10n/gl.php
+++ b/apps/files_versions/l10n/gl.php
@@ -1,4 +1,5 @@
- "Non foi posíbel reverter: %s",
"Versions" => "Versións",
"Failed to revert {file} to revision {timestamp}." => "Non foi posíbel reverter {file} á revisión {timestamp}.",
@@ -6,3 +7,4 @@
"No other versions available" => "Non hai outras versións dispoñíbeis",
"Restore" => "Restablecer"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/he.php b/apps/files_versions/l10n/he.php
index bcac74be08b0675f229074d591597f87a01428dc..848e47122764e20b291b2f68893c77c71eb1104c 100644
--- a/apps/files_versions/l10n/he.php
+++ b/apps/files_versions/l10n/he.php
@@ -1,5 +1,7 @@
- "לא ניתן להחזיר: %s",
"Versions" => "גרסאות",
"Restore" => "שחזור"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/hu_HU.php b/apps/files_versions/l10n/hu_HU.php
index fe3db5211f8ab33f08c676a4ac69f7f0cfc07631..13b3fe7cace1bcc507be6fc03bea587b519ceba6 100644
--- a/apps/files_versions/l10n/hu_HU.php
+++ b/apps/files_versions/l10n/hu_HU.php
@@ -1,5 +1,10 @@
- "Nem sikerült átállni a változatra: %s",
"Versions" => "Az állományok korábbi változatai",
+"Failed to revert {file} to revision {timestamp}." => "Nem sikerült a(z) {file} állományt erre visszaállítani: {timestamp}.",
+"More versions..." => "További változatok...",
+"No other versions available" => "Az állománynak nincs több változata",
"Restore" => "Visszaállítás"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/id.php b/apps/files_versions/l10n/id.php
index 96d96130d18cb02e12aabbdc7082fef002b41885..ee7061805ba102e618650a8cc027bc137469364a 100644
--- a/apps/files_versions/l10n/id.php
+++ b/apps/files_versions/l10n/id.php
@@ -1,5 +1,7 @@
- "Tidak dapat mengembalikan: %s",
"Versions" => "Versi",
"Restore" => "Pulihkan"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/is.php b/apps/files_versions/l10n/is.php
index d165a78c31ef2c7b51d222bc2f657d16c42bb037..0f643122ad03950f75bd4fdb08963d8807eb20f5 100644
--- a/apps/files_versions/l10n/is.php
+++ b/apps/files_versions/l10n/is.php
@@ -1,3 +1,5 @@
- "Útgáfur"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/it.php b/apps/files_versions/l10n/it.php
index b59d2edfec9c03edc98b2877bf1d876b13b75e64..6e4aee450a61c8fe68d539dd984be6822b72f73e 100644
--- a/apps/files_versions/l10n/it.php
+++ b/apps/files_versions/l10n/it.php
@@ -1,4 +1,5 @@
- "Impossibile ripristinare: %s",
"Versions" => "Versioni",
"Failed to revert {file} to revision {timestamp}." => "Ripristino di {file} alla revisione {timestamp} non riuscito.",
@@ -6,3 +7,4 @@
"No other versions available" => "Non sono disponibili altre versioni",
"Restore" => "Ripristina"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/ja_JP.php b/apps/files_versions/l10n/ja_JP.php
index d8a99c4980d09ab0678fe19464ad2f73c3ec1ae9..ec2601aafbd301f1d750242487f95be8ff5c7269 100644
--- a/apps/files_versions/l10n/ja_JP.php
+++ b/apps/files_versions/l10n/ja_JP.php
@@ -1,5 +1,10 @@
- "元に戻せませんでした: %s",
"Versions" => "バージョン",
+"Failed to revert {file} to revision {timestamp}." => "{file} を {timestamp} のリヴィジョンに戻すことができません。",
+"More versions..." => "もっと他のバージョン...",
+"No other versions available" => "利用可能な他のバージョンはありません",
"Restore" => "復元"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/ka_GE.php b/apps/files_versions/l10n/ka_GE.php
index 10fe7e705f3da4522d450c33c56d7764482822b6..41e65903b65008af2da4b87a5a7c8e5ffd00c5de 100644
--- a/apps/files_versions/l10n/ka_GE.php
+++ b/apps/files_versions/l10n/ka_GE.php
@@ -1,5 +1,7 @@
- "ვერ მოხერხდა უკან დაბრუნება: %s",
"Versions" => "ვერსიები",
"Restore" => "აღდგენა"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/ko.php b/apps/files_versions/l10n/ko.php
index 59856397f5ae6b4eb94cbc9159eaa47219ca7bdc..365adc25115977ce91d91d504df6e14c398cbf87 100644
--- a/apps/files_versions/l10n/ko.php
+++ b/apps/files_versions/l10n/ko.php
@@ -1,5 +1,7 @@
- "되돌릴 수 없습니다: %s",
"Versions" => "버전",
"Restore" => "복원"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/ku_IQ.php b/apps/files_versions/l10n/ku_IQ.php
index 9132caf75e3123387298d67c5a24794245dd23bb..de2696509bb778960e65b2b54ae497683c4582d8 100644
--- a/apps/files_versions/l10n/ku_IQ.php
+++ b/apps/files_versions/l10n/ku_IQ.php
@@ -1,3 +1,5 @@
- "وهشان"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/lt_LT.php b/apps/files_versions/l10n/lt_LT.php
index 84963febb539280818888b655e27dbef2b506f9b..4e1af5fcc29ce58b7c82cb7e2cbba0fc42542b74 100644
--- a/apps/files_versions/l10n/lt_LT.php
+++ b/apps/files_versions/l10n/lt_LT.php
@@ -1,5 +1,7 @@
- "Nepavyko atstatyti: %s",
"Versions" => "Versijos",
"Restore" => "Atstatyti"
);
+$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_versions/l10n/lv.php b/apps/files_versions/l10n/lv.php
index 90d54e35de1bcbd9032b23fb7e5a4a8dd879202a..c686370ac3102697b81778992b5e0dbcb495f783 100644
--- a/apps/files_versions/l10n/lv.php
+++ b/apps/files_versions/l10n/lv.php
@@ -1,5 +1,7 @@
- "Nevarēja atgriezt — %s",
"Versions" => "Versijas",
"Restore" => "Atjaunot"
);
+$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);";
diff --git a/apps/files_versions/l10n/mk.php b/apps/files_versions/l10n/mk.php
index 6a1882c2bfddb954b77451753f671f4cabc45ef9..01a98808cfffc6e516e3529a359cf5b6bc2ecc6b 100644
--- a/apps/files_versions/l10n/mk.php
+++ b/apps/files_versions/l10n/mk.php
@@ -1,3 +1,5 @@
- "Версии"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;";
diff --git a/apps/files_versions/l10n/nb_NO.php b/apps/files_versions/l10n/nb_NO.php
index 18ff750f861011931d9883a0ef781f9512ec956a..2a0a6d8a76d8013cf31e7179b68b2c679885967d 100644
--- a/apps/files_versions/l10n/nb_NO.php
+++ b/apps/files_versions/l10n/nb_NO.php
@@ -1,4 +1,6 @@
- "Versjoner",
"Restore" => "Gjenopprett"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/nl.php b/apps/files_versions/l10n/nl.php
index 77f3e1836cfd67a34087e72d92d0385f62afab95..ec7551d9596e338db99952ab13d04e5d6baf50cc 100644
--- a/apps/files_versions/l10n/nl.php
+++ b/apps/files_versions/l10n/nl.php
@@ -1,4 +1,5 @@
- "Kon niet terugdraaien: %s",
"Versions" => "Versies",
"Failed to revert {file} to revision {timestamp}." => "Kon {file} niet terugdraaien naar revisie {timestamp}.",
@@ -6,3 +7,4 @@
"No other versions available" => "Geen andere versies beschikbaar",
"Restore" => "Herstellen"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/nn_NO.php b/apps/files_versions/l10n/nn_NO.php
index ce6db36a55ef8800bc322a551b05d0817cfc9169..79b518bc18d0ec398ad66195c63640318bccbe32 100644
--- a/apps/files_versions/l10n/nn_NO.php
+++ b/apps/files_versions/l10n/nn_NO.php
@@ -1,5 +1,7 @@
- "Klarte ikkje å tilbakestilla: %s",
"Versions" => "Utgåver",
"Restore" => "Gjenopprett"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/pl.php b/apps/files_versions/l10n/pl.php
index 3f4f61ec9e8a4ec5a463f8a049dcc0083ea75a73..3d6be24a63d7aecb67be81b50f7c5fdd6276870d 100644
--- a/apps/files_versions/l10n/pl.php
+++ b/apps/files_versions/l10n/pl.php
@@ -1,5 +1,10 @@
- "Nie można było przywrócić: %s",
"Versions" => "Wersje",
+"Failed to revert {file} to revision {timestamp}." => "Nie udało się przywrócić zmiany {sygnatura czasowa} {plik}.",
+"More versions..." => "Więcej wersji...",
+"No other versions available" => "Nie są dostępne żadne inne wersje",
"Restore" => "Przywróć"
);
+$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_versions/l10n/pt_BR.php b/apps/files_versions/l10n/pt_BR.php
index 711a38b3bf471a74724a77d0e21bafa6b1cd467b..b1958825b4765947e701417f8612517f99a6ebd0 100644
--- a/apps/files_versions/l10n/pt_BR.php
+++ b/apps/files_versions/l10n/pt_BR.php
@@ -1,4 +1,5 @@
- "Impossível reverter: %s",
"Versions" => "Versões",
"Failed to revert {file} to revision {timestamp}." => "Falha ao reverter {file} para a revisão {timestamp}.",
@@ -6,3 +7,4 @@
"No other versions available" => "Nenhuma outra versão disponível",
"Restore" => "Restaurar"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_versions/l10n/pt_PT.php b/apps/files_versions/l10n/pt_PT.php
index b0262765ca1e11441c354fc446d523afd6aafbb4..e4371f53409858590b67d197be7964d27d6e9d07 100644
--- a/apps/files_versions/l10n/pt_PT.php
+++ b/apps/files_versions/l10n/pt_PT.php
@@ -1,4 +1,5 @@
- "Não foi possível reverter: %s",
"Versions" => "Versões",
"Failed to revert {file} to revision {timestamp}." => "Falhou a recuperação do ficheiro {file} para a revisão {timestamp}.",
@@ -6,3 +7,4 @@
"No other versions available" => "Não existem versões mais antigas",
"Restore" => "Restaurar"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/ro.php b/apps/files_versions/l10n/ro.php
index 240cd181aede299def62ba01231ad55a14db2a76..5151b1dceb9522dd740906b09aeb1b83165db2f4 100644
--- a/apps/files_versions/l10n/ro.php
+++ b/apps/files_versions/l10n/ro.php
@@ -1,4 +1,6 @@
- "Nu a putut reveni: %s",
"Versions" => "Versiuni"
);
+$PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));";
diff --git a/apps/files_versions/l10n/ru.php b/apps/files_versions/l10n/ru.php
index eb5e404600ae19341a8e5d5c9a762ede7c8bd20d..12f9f77b94d3dc1dc4cc2dc4cc2869af8ff5382b 100644
--- a/apps/files_versions/l10n/ru.php
+++ b/apps/files_versions/l10n/ru.php
@@ -1,4 +1,5 @@
- "Не может быть возвращён: %s",
"Versions" => "Версии",
"Failed to revert {file} to revision {timestamp}." => "Не удалось возвратить {file} к ревизии {timestamp}.",
@@ -6,3 +7,4 @@
"No other versions available" => "Других версий не доступно",
"Restore" => "Восстановить"
);
+$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_versions/l10n/ru_RU.php b/apps/files_versions/l10n/ru_RU.php
deleted file mode 100644
index 8656e346eb6e51d36f165fc00afd310b2fb93e8d..0000000000000000000000000000000000000000
--- a/apps/files_versions/l10n/ru_RU.php
+++ /dev/null
@@ -1,5 +0,0 @@
- "История",
-"Files Versioning" => "Файлы управления версиями",
-"Enable" => "Включить"
-);
diff --git a/apps/files_versions/l10n/si_LK.php b/apps/files_versions/l10n/si_LK.php
index c7ee63d8ef637ca2775906527634bb3f94ee3509..7ee8da049b76117ae9ce127b273b423875867b6c 100644
--- a/apps/files_versions/l10n/si_LK.php
+++ b/apps/files_versions/l10n/si_LK.php
@@ -1,3 +1,5 @@
- "අනුවාද"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/sk_SK.php b/apps/files_versions/l10n/sk_SK.php
index e22a5bb33f6cbad98e44a795308199f02d843cda..5edcea3606c5687166c5780b74acf5c60660f149 100644
--- a/apps/files_versions/l10n/sk_SK.php
+++ b/apps/files_versions/l10n/sk_SK.php
@@ -1,5 +1,10 @@
- "Nemožno obnoviť: %s",
"Versions" => "Verzie",
+"Failed to revert {file} to revision {timestamp}." => "Zlyhalo obnovenie súboru {file} na verziu {timestamp}.",
+"More versions..." => "Viac verzií...",
+"No other versions available" => "Žiadne ďalšie verzie nie sú dostupné",
"Restore" => "Obnoviť"
);
+$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/files_versions/l10n/sl.php b/apps/files_versions/l10n/sl.php
index 4b1c10c773bb13bebb3938cf66787f575a92e932..809ab34c2621938346b31abfd4c8ea28df7f013c 100644
--- a/apps/files_versions/l10n/sl.php
+++ b/apps/files_versions/l10n/sl.php
@@ -1,5 +1,7 @@
- "Ni mogoče povrniti: %s",
"Versions" => "Različice",
"Restore" => "Obnovi"
);
+$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_versions/l10n/sr.php b/apps/files_versions/l10n/sr.php
index 111fa7768842ecc6df58105a8e90b3b2576d912e..d4eb0be19cb0fbd386669f2202df00210275510c 100644
--- a/apps/files_versions/l10n/sr.php
+++ b/apps/files_versions/l10n/sr.php
@@ -1,3 +1,5 @@
- "Врати"
);
+$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_versions/l10n/sv.php b/apps/files_versions/l10n/sv.php
index 86d215e501693f86d078314b0463c18ebb269b6d..0fd073d5cbe99ee2bbe7eb6ce518ab174e51c589 100644
--- a/apps/files_versions/l10n/sv.php
+++ b/apps/files_versions/l10n/sv.php
@@ -1,4 +1,5 @@
- "Kunde inte återställa: %s",
"Versions" => "Versioner",
"Failed to revert {file} to revision {timestamp}." => "Kunde inte återställa {file} till revision {timestamp}.",
@@ -6,3 +7,4 @@
"No other versions available" => "Inga andra versioner tillgängliga",
"Restore" => "Återskapa"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/ta_LK.php b/apps/files_versions/l10n/ta_LK.php
index 61a47e42f0a13eac7636bf9408137adacaad908c..3c21735fa8448d237c3a8d6949cd26e8afc97f04 100644
--- a/apps/files_versions/l10n/ta_LK.php
+++ b/apps/files_versions/l10n/ta_LK.php
@@ -1,3 +1,5 @@
- "பதிப்புகள்"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/files_versions/l10n/th_TH.php b/apps/files_versions/l10n/th_TH.php
index d42608287a6f5b988973c971c0fe3b9a4b9aba89..97c89b2f8095f1319a8ea45b871e288b47f36d37 100644
--- a/apps/files_versions/l10n/th_TH.php
+++ b/apps/files_versions/l10n/th_TH.php
@@ -1,4 +1,6 @@
- "รุ่น",
"Restore" => "คืนค่า"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/tr.php b/apps/files_versions/l10n/tr.php
index 23da6b6b43d95b1f49b388cb5566812c69234607..f2bc1e6c0aa7924b8c2c7e787354bbf9ae59dfbe 100644
--- a/apps/files_versions/l10n/tr.php
+++ b/apps/files_versions/l10n/tr.php
@@ -1,5 +1,7 @@
- "Geri alınamıyor: %s",
"Versions" => "Sürümler",
"Restore" => "Geri yükle"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/files_versions/l10n/ug.php b/apps/files_versions/l10n/ug.php
index 3b63272d927baef8e55bfb4f1dfca2f2c78ada88..984e6c314c78117350428491c239cec06f67eb77 100644
--- a/apps/files_versions/l10n/ug.php
+++ b/apps/files_versions/l10n/ug.php
@@ -1,4 +1,6 @@
- "ئەسلىگە قايتۇرالمايدۇ: %s",
"Versions" => "نەشرى"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/uk.php b/apps/files_versions/l10n/uk.php
index afe44ff3be09d182e00af85f3e54ad586715698f..d75160f2864232e2a875ba0c7d12be0a4b65b151 100644
--- a/apps/files_versions/l10n/uk.php
+++ b/apps/files_versions/l10n/uk.php
@@ -1,5 +1,7 @@
- "Не вдалося відновити: %s",
"Versions" => "Версії",
"Restore" => "Відновити"
);
+$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_versions/l10n/vi.php b/apps/files_versions/l10n/vi.php
index f3677c8a7754455c4609f0988d103ce768764082..9d72612c2ad9a831c2fdd931d9003d9976f090f6 100644
--- a/apps/files_versions/l10n/vi.php
+++ b/apps/files_versions/l10n/vi.php
@@ -1,5 +1,7 @@
- "Không thể khôi phục: %s",
"Versions" => "Phiên bản",
"Restore" => "Khôi phục"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/zh_CN.GB2312.php b/apps/files_versions/l10n/zh_CN.GB2312.php
index e5f4733da8d8d335bf29f9c9bc6029e5455b2cbb..de340d6dc9499818f89fdb5ccb0b0261eee2468b 100644
--- a/apps/files_versions/l10n/zh_CN.GB2312.php
+++ b/apps/files_versions/l10n/zh_CN.GB2312.php
@@ -1,4 +1,10 @@
- "无法恢复:%s",
-"Versions" => "版本"
+"Versions" => "版本",
+"Failed to revert {file} to revision {timestamp}." => "无法恢复文件 {file} 到 版本 {timestamp}。",
+"More versions..." => "更多版本",
+"No other versions available" => "没有其他可用版本",
+"Restore" => "恢复"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/zh_CN.php b/apps/files_versions/l10n/zh_CN.php
index 8dd2559414eef6cc55481c83ba26eff383cad80e..767ca1cf6465398c8b7367a88b5761ef05e08382 100644
--- a/apps/files_versions/l10n/zh_CN.php
+++ b/apps/files_versions/l10n/zh_CN.php
@@ -1,5 +1,7 @@
- "无法恢复: %s",
"Versions" => "版本",
"Restore" => "恢复"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/zh_HK.php b/apps/files_versions/l10n/zh_HK.php
index 072d5fbdba89d46e22e48a3e6c2f0a236d72488f..6d249af4b169cdd5b41a2bece6b58ca64afbb3d5 100644
--- a/apps/files_versions/l10n/zh_HK.php
+++ b/apps/files_versions/l10n/zh_HK.php
@@ -1,3 +1,5 @@
- "版本"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/l10n/zh_TW.php b/apps/files_versions/l10n/zh_TW.php
index 7498c6951cd9e8f4585dbd69551433ee20685989..55a3dca3c3289965f3d343c8a6c94eafd8befa5a 100644
--- a/apps/files_versions/l10n/zh_TW.php
+++ b/apps/files_versions/l10n/zh_TW.php
@@ -1,5 +1,7 @@
- "無法還原:%s",
"Versions" => "版本",
"Restore" => "復原"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/files_versions/lib/versions.php b/apps/files_versions/lib/versions.php
index 7c75d70f79c15a8030517aae18d05950c4689984..0b4699dc5c032b109c83a0de7ed3be4d3af57bbc 100644
--- a/apps/files_versions/lib/versions.php
+++ b/apps/files_versions/lib/versions.php
@@ -48,14 +48,14 @@ class Storage {
/**
* get current size of all versions from a given user
- *
+ *
* @param $user user who owns the versions
* @return mixed versions size or false if no versions size is stored
*/
private static function getVersionsSize($user) {
$query = \OC_DB::prepare('SELECT `size` FROM `*PREFIX*files_versions` WHERE `user`=?');
$result = $query->execute(array($user))->fetchAll();
-
+
if ($result) {
return $result[0]['size'];
}
@@ -64,7 +64,7 @@ class Storage {
/**
* write to the database how much space is in use for versions
- *
+ *
* @param $user owner of the versions
* @param $size size of the versions
*/
@@ -76,20 +76,20 @@ class Storage {
}
$query->execute(array($size, $user));
}
-
+
/**
* store a new version of a file.
*/
public static function store($filename) {
if(\OCP\Config::getSystemValue('files_versions', Storage::DEFAULTENABLED)=='true') {
-
+
// if the file gets streamed we need to remove the .part extension
// to get the right target
$ext = pathinfo($filename, PATHINFO_EXTENSION);
if ($ext === 'part') {
$filename = substr($filename, 0, strlen($filename)-5);
}
-
+
list($uid, $filename) = self::getUidAndFilename($filename);
$files_view = new \OC\Files\View('/'.$uid .'/files');
@@ -101,17 +101,15 @@ class Storage {
return false;
}
- // we should have a source file to work with
- if (!$files_view->file_exists($filename)) {
+ // we should have a source file to work with, and the file shouldn't
+ // be empty
+ $fileExists = $files_view->file_exists($filename);
+ if (!($fileExists && $files_view->filesize($filename) > 0)) {
return false;
}
// create all parent folders
- $info=pathinfo($filename);
- $versionsFolderName=$versions_view->getLocalFolder('');
- if(!file_exists($versionsFolderName.'/'.$info['dirname'])) {
- mkdir($versionsFolderName.'/'.$info['dirname'], 0750, true);
- }
+ self::createMissingDirectories($filename, $users_view);
$versionsSize = self::getVersionsSize($uid);
if ( $versionsSize === false || $versionsSize < 0 ) {
@@ -171,7 +169,7 @@ class Storage {
list($uidn, $newpath) = self::getUidAndFilename($new_path);
$versions_view = new \OC\Files\View('/'.$uid .'/files_versions');
$files_view = new \OC\Files\View('/'.$uid .'/files');
-
+
// if the file already exists than it was a upload of a existing file
// over the web interface -> store() is the right function we need here
if ($files_view->file_exists($newpath)) {
@@ -180,13 +178,12 @@ class Storage {
self::expire($newpath);
- $abs_newpath = $versions_view->getLocalFile($newpath);
-
if ( $files_view->is_dir($oldpath) && $versions_view->is_dir($oldpath) ) {
$versions_view->rename($oldpath, $newpath);
} else if ( ($versions = Storage::getVersions($uid, $oldpath)) ) {
- $info=pathinfo($abs_newpath);
- if(!file_exists($info['dirname'])) mkdir($info['dirname'], 0750, true);
+ // create missing dirs if necessary
+ self::createMissingDirectories($newpath, new \OC\Files\View('/'. $uidn));
+
foreach ($versions as $v) {
$versions_view->rename($oldpath.'.v'.$v['version'], $newpath.'.v'.$v['version']);
}
@@ -432,7 +429,7 @@ class Storage {
} else {
$quota = \OCP\Util::computerFileSize($quota);
}
-
+
// make sure that we have the current size of the version history
if ( $versionsSize === null ) {
$versionsSize = self::getVersionsSize($uid);
@@ -565,4 +562,21 @@ class Storage {
return $size;
}
+ /**
+ * @brief create recursively missing directories
+ * @param string $filename $path to a file
+ * @param \OC\Files\View $view view on data/user/
+ */
+ private static function createMissingDirectories($filename, $view) {
+ $dirname = \OC_Filesystem::normalizePath(dirname($filename));
+ $dirParts = explode('/', $dirname);
+ $dir = "/files_versions";
+ foreach ($dirParts as $part) {
+ $dir = $dir . '/' . $part;
+ if (!$view->file_exists($dir)) {
+ $view->mkdir($dir);
+ }
+ }
+ }
+
}
diff --git a/apps/user_ldap/l10n/af_ZA.php b/apps/user_ldap/l10n/af_ZA.php
index 944495f3869bbc67552ced6933d235a29d4eb9fb..32feab61b497601c5161eaa962cd5cddf01edad6 100644
--- a/apps/user_ldap/l10n/af_ZA.php
+++ b/apps/user_ldap/l10n/af_ZA.php
@@ -1,4 +1,6 @@
- "Wagwoord",
"Help" => "Hulp"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/ar.php b/apps/user_ldap/l10n/ar.php
index 5f8b6b8145514e00aabda1c4908a04848c0c0544..3dd88eb265598659936c636fdf776a50548c4a07 100644
--- a/apps/user_ldap/l10n/ar.php
+++ b/apps/user_ldap/l10n/ar.php
@@ -1,6 +1,8 @@
- "فشل الحذف",
"Error" => "خطأ",
"Password" => "كلمة المرور",
"Help" => "المساعدة"
);
+$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/user_ldap/l10n/bg_BG.php b/apps/user_ldap/l10n/bg_BG.php
index 0330046d80e00c6018e5b427823472148acbc26f..b750884e9debf294df518873b36943b5408600c1 100644
--- a/apps/user_ldap/l10n/bg_BG.php
+++ b/apps/user_ldap/l10n/bg_BG.php
@@ -1,5 +1,7 @@
- "Грешка",
"Password" => "Парола",
"Help" => "Помощ"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/bn_BD.php b/apps/user_ldap/l10n/bn_BD.php
index 6ae99d69a1cdb13ab819e2b0435603a2d12979e3..ae8571e3d8713a22f50bf7d66628a5c2500a85f7 100644
--- a/apps/user_ldap/l10n/bn_BD.php
+++ b/apps/user_ldap/l10n/bn_BD.php
@@ -1,4 +1,5 @@
- "সমস্যা",
"Host" => "হোস্ট",
"You can omit the protocol, except you require SSL. Then start with ldaps://" => "SSL আবশ্যক না হলে আপনি এই প্রটোকলটি মুছে ফেলতে পারেন । এরপর শুরু করুন এটা দিয়ে ldaps://",
@@ -32,3 +33,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ব্যবহারকারী নামের জন্য ফাঁকা রাখুন (পূর্বনির্ধারিত)। অন্যথায়, LDAP/AD বৈশিষ্ট্য নির্ধারণ করুন।",
"Help" => "সহায়িকা"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/ca.php b/apps/user_ldap/l10n/ca.php
index af5efbcb5402095d30b3b39a0aec86d5e4609eb9..a6b34399cd47e6f4709a6087c1f70f735181f65a 100644
--- a/apps/user_ldap/l10n/ca.php
+++ b/apps/user_ldap/l10n/ca.php
@@ -1,4 +1,5 @@
- "Ha fallat en eliminar els mapatges",
"Failed to delete the server configuration" => "Ha fallat en eliminar la configuració del servidor",
"The configuration is valid and the connection could be established!" => "La configuració és vàlida i s'ha pogut establir la comunicació!",
@@ -15,6 +16,7 @@
"Connection test failed" => "La prova de connexió ha fallat",
"Do you really want to delete the current Server Configuration?" => "Voleu eliminar la configuració actual del servidor?",
"Confirm Deletion" => "Confirma l'eliminació",
+"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "Avís: Les aplicacions user_ldap i user_webdavauth són incompatibles. Podeu experimentar comportaments inesperats. Demaneu a l'administrador del sistema que en desactivi una.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Avís: El mòdul PHP LDAP no està instal·lat, el dorsal no funcionarà. Demaneu a l'administrador del sistema que l'instal·li.",
"Server configuration" => "Configuració del servidor",
"Add Server Configuration" => "Afegeix la configuració del servidor",
@@ -44,20 +46,24 @@
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Afegiu una màquina de còpia de seguretat opcional. Ha de ser una rèplica del servidor LDAP/AD principal.",
"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.",
"Use TLS" => "Usa TLS",
"Do not use it additionally for LDAPS connections, it will fail." => "No ho useu adicionalment per a conexions LDAPS, fallarà.",
"Case insensitve 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.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Si la connexió només funciona amb aquesta opció, importeu el certificat SSL del servidor LDAP en el vostre servidor %s.",
"Not recommended, use for testing only." => "No recomanat, ús només per proves.",
"Cache Time-To-Live" => "Memòria de cau Time-To-Live",
"in seconds. A change empties the cache." => "en segons. Un canvi buidarà la memòria de cau.",
"Directory Settings" => "Arranjaments de carpetes",
"User Display Name Field" => "Camp per mostrar el nom d'usuari",
+"The LDAP attribute to use to generate the user's display name." => "Atribut LDAP a usar per generar el nom a mostrar de l'usuari.",
"Base User Tree" => "Arbre base d'usuaris",
"One User Base DN per line" => "Una DN Base d'Usuari per línia",
"User Search Attributes" => "Atributs de cerca d'usuari",
"Optional; one attribute per line" => "Opcional; Un atribut per línia",
"Group Display Name Field" => "Camp per mostrar el nom del grup",
+"The LDAP attribute to use to generate the groups's display name." => "Atribut LDAP a usar per generar el nom a mostrar del grup.",
"Base Group Tree" => "Arbre base de grups",
"One Group Base DN per line" => "Una DN Base de Grup per línia",
"Group Search Attributes" => "Atributs de cerca de grup",
@@ -70,12 +76,16 @@
"User Home Folder Naming Rule" => "Norma per anomenar la carpeta arrel d'usuari",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Deixeu-ho buit pel nom d'usuari (per defecte). Altrament, especifiqueu un atribut LDAP/AD.",
"Internal Username" => "Nom d'usuari intern",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "Per defecte el nom d'usuari intern es crearà a partir de l'atribut UUID. Això assegura que el nom d'usuari és únic i que els caràcters no s'han de convertir. El nom d'usuari intern té la restricció que només estan permesos els caràcters: [ a-zA-Z0-9_.@- ]. Els altres caràcters es substitueixen pel seu corresponent ASCII o simplement s'ometen. En cas de col·lisió s'incrementa/decrementa en un. El nom d'usuari intern s'utilitza per identificar un usuari internament. També és el nom per defecte de la carpeta home d'usuari. És també un port de URLs remotes, per exemple tots els serveis *DAV. Amb aquest arranjament es pot variar el comportament per defecte. Per obtenir un comportament similar al d'abans de ownCloud 5, escriviu el nom d'usuari a mostrar en el camp següent. Deixei-lo en blanc si preferiu el comportament per defecte. Els canvis tindran efecte només en els nous usuaris LDAP mapats (afegits).",
"Internal Username Attribute:" => "Atribut nom d'usuari intern:",
"Override UUID detection" => "Sobrescriu la detecció UUID",
+"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Per defecte, owncloud autodetecta l'atribut UUID. L'atribut UUID s'utilitza per identificar usuaris i grups de forma indubtable. També el nom d'usuari intern es crearà en base a la UUIS, si no heu especificat res diferent a dalt. Podeu sobreescriure l'arranjament i passar l'atribut que desitgeu. Heu d'assegurar-vos que l'atribut que escolliu pot ser recollit tant pels usuaris com pels grups i que és únic. Deixeu-ho en blanc si preferiu el comportament per defecte. els canvis s'aplicaran als usuaris i grups LDAP mapats de nou (afegits).",
"UUID Attribute:" => "Atribut UUID:",
"Username-LDAP User Mapping" => "Mapatge d'usuari Nom d'usuari-LDAP",
+"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." => "Els noms d'usuari s'usen per desar i assignar (meta)dades. Per tal d'identificar amb precisió i reconèixer els usuaris, cada usuari LDAP tindrà un nom d'usuari intern. Això requereix mapatge del nom d'usuari a l'usuari LDAP. El nom d'usuari creat es mapa a la UUID de l'usuari LDAP. A més, la DN es posa a la memòria de cau per reduir la interacció LDAP, però no s'usa per identificació. En cas que la DN canvïi, els canvis es trobaran. El nom d'usuari intern s'usa a tot arreu. Si esborreu els mapatges quedaran sobrants a tot arreu. Esborrar els mapatges no és sensible a la configuració, afecta a totes les configuracions LDAP! No esborreu mai els mapatges en un entorn de producció, només en un estadi de prova o experimental.",
"Clear Username-LDAP User Mapping" => "Elimina el mapatge d'usuari Nom d'usuari-LDAP",
"Clear Groupname-LDAP Group Mapping" => "Elimina el mapatge de grup Nom de grup-LDAP",
"Test Configuration" => "Comprovació de la configuració",
"Help" => "Ajuda"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php
index dd02f8bc3e40648ca4903e6bceafd7390519123a..165946a3b3040c466660c966cf48ab73fc94ae71 100644
--- a/apps/user_ldap/l10n/cs_CZ.php
+++ b/apps/user_ldap/l10n/cs_CZ.php
@@ -1,4 +1,5 @@
- "Selhalo zrušení mapování.",
"Failed to delete the server configuration" => "Selhalo smazání nastavení serveru",
"The configuration is valid and the connection could be established!" => "Nastavení je v pořádku a spojení bylo navázáno.",
@@ -87,3 +88,4 @@
"Test Configuration" => "Vyzkoušet nastavení",
"Help" => "Nápověda"
);
+$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/user_ldap/l10n/cy_GB.php b/apps/user_ldap/l10n/cy_GB.php
index abe2336b2ba8c9fdbd5e9ca74a0d95030b2746dc..71a38fad25dbfc4acbce44cb5bcbc2c2b750ab07 100644
--- a/apps/user_ldap/l10n/cy_GB.php
+++ b/apps/user_ldap/l10n/cy_GB.php
@@ -1,6 +1,8 @@
- "Methwyd dileu",
"Error" => "Gwall",
"Password" => "Cyfrinair",
"Help" => "Cymorth"
);
+$PLURAL_FORMS = "nplurals=4; plural=(n==1) ? 0 : (n==2) ? 1 : (n != 8 && n != 11) ? 2 : 3;";
diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php
index 71fe042406b3df973d44b698b33fadcb5375b8f6..ab59d3ed506a73898e85412af44aa6886206e82b 100644
--- a/apps/user_ldap/l10n/da.php
+++ b/apps/user_ldap/l10n/da.php
@@ -1,4 +1,5 @@
- "Kunne ikke slette server konfigurationen",
"The configuration is valid and the connection could be established!" => "Konfigurationen er korrekt og forbindelsen kunne etableres!",
"The configuration is invalid. Please look in the ownCloud log for further details." => "Konfigurationen er ugyldig. Se venligst ownCloud loggen for yderligere detaljer.",
@@ -48,3 +49,4 @@
"Test Configuration" => "Test Konfiguration",
"Help" => "Hjælp"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php
index 09b17e01e2e2804653fa2341418cee744dd343f3..73649f7c0ac2879bfba550e5bd2e3128612a4643 100644
--- a/apps/user_ldap/l10n/de.php
+++ b/apps/user_ldap/l10n/de.php
@@ -1,4 +1,5 @@
- "Löschen der Zuordnung fehlgeschlagen.",
"Failed to delete the server configuration" => "Löschen der Serverkonfiguration fehlgeschlagen",
"The configuration is valid and the connection could be established!" => "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!",
@@ -87,3 +88,4 @@
"Test Configuration" => "Testkonfiguration",
"Help" => "Hilfe"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php
index 3240f1653cd2ec73778984bbdeeb30abc8685c3c..0052b75b33a994993e2e08a99692d319114c6c5a 100644
--- a/apps/user_ldap/l10n/de_DE.php
+++ b/apps/user_ldap/l10n/de_DE.php
@@ -1,4 +1,5 @@
- "Löschen der Zuordnung fehlgeschlagen.",
"Failed to delete the server configuration" => "Löschen der Serverkonfiguration fehlgeschlagen",
"The configuration is valid and the connection could be established!" => "Die Konfiguration ist gültig und die Verbindung konnte hergestellt werden!",
@@ -87,3 +88,4 @@
"Test Configuration" => "Testkonfiguration",
"Help" => "Hilfe"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/el.php b/apps/user_ldap/l10n/el.php
index ae982ab4c567128029300af8e613bc32e82d5fe9..140925f61266a13ffb595fe78c675d111e62daf2 100644
--- a/apps/user_ldap/l10n/el.php
+++ b/apps/user_ldap/l10n/el.php
@@ -1,4 +1,5 @@
- "Αποτυχία διαγραφής ρυθμίσεων διακομιστή",
"The configuration is valid and the connection could be established!" => "Οι ρυθμίσεις είναι έγκυρες και η σύνδεση μπορεί να πραγματοποιηθεί!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Οι ρυθμίσεις είναι έγκυρες, αλλά απέτυχε η σύνδεση. Παρακαλώ ελέγξτε τις ρυθμίσεις του διακομιστή και τα διαπιστευτήρια.",
@@ -70,3 +71,4 @@
"Test Configuration" => "Δοκιμαστικες ρυθμισεις",
"Help" => "Βοήθεια"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/en@pirate.php b/apps/user_ldap/l10n/en@pirate.php
index 482632f3fdab19ae3bd7efb9a1ed366c0f00ac9c..e269c57c3d0ab870cda3a02975dc40af05fac9a0 100644
--- a/apps/user_ldap/l10n/en@pirate.php
+++ b/apps/user_ldap/l10n/en@pirate.php
@@ -1,3 +1,5 @@
- "Passcode"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/eo.php b/apps/user_ldap/l10n/eo.php
index 7f9aa0b3f1c69d5924bf3b0deca93f3da4bd682e..2973e05388b43a2f5f70a0c37b9534d9f1131a69 100644
--- a/apps/user_ldap/l10n/eo.php
+++ b/apps/user_ldap/l10n/eo.php
@@ -1,4 +1,5 @@
- "Forigo malsukcesis",
"Success" => "Sukceso",
"Error" => "Eraro",
@@ -32,3 +33,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lasu malplena por uzantonomo (defaŭlto). Alie, specifu LDAP/AD-atributon.",
"Help" => "Helpo"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/es.php b/apps/user_ldap/l10n/es.php
index f11dadfbef5321973335d680dbb49bbe62eb00e5..ca59e2f3eada96ca0716b63a616a9ae94a2774be 100644
--- a/apps/user_ldap/l10n/es.php
+++ b/apps/user_ldap/l10n/es.php
@@ -1,12 +1,13 @@
- "Ocurrió un fallo al borrar las asignaciones.",
"Failed to delete the server configuration" => "No se pudo borrar la configuración del servidor",
-"The configuration is valid and the connection could be established!" => "La configuración es válida y la conexión puede establecerse!",
+"The configuration is valid and the connection could be established!" => "¡La configuración es válida y la conexión puede establecerse!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "La configuración es válida, pero falló el Enlace. Por favor, compruebe la configuración del servidor y las credenciales.",
"The configuration is invalid. Please look in the ownCloud log for further details." => "La configuración no es válida. Por favor, busque en el log de ownCloud para más detalles.",
"Deletion failed" => "Falló el borrado",
"Take over settings from recent server configuration?" => "¿Asumir los ajustes actuales de la configuración del servidor?",
-"Keep settings?" => "Mantener la configuración?",
+"Keep settings?" => "¿Mantener la configuración?",
"Cannot add server configuration" => "No se puede añadir la configuración del servidor",
"mappings cleared" => "Asignaciones borradas",
"Success" => "Éxito",
@@ -48,6 +49,7 @@
"Do not use it additionally for LDAPS connections, it will fail." => "No lo use para conexiones LDAPS, Fallará.",
"Case insensitve LDAP server (Windows)" => "Servidor de LDAP no sensible a mayúsculas/minúsculas (Windows)",
"Turn off SSL certificate validation." => "Apagar la validación por certificado SSL.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Si la conexión funciona sólo con esta opción, importe el certificado SSL del servidor LDAP en su servidor %s.",
"Not recommended, use for testing only." => "No recomendado, sólo para pruebas.",
"Cache Time-To-Live" => "Cache TTL",
"in seconds. A change empties the cache." => "en segundos. Un cambio vacía la caché.",
@@ -79,3 +81,4 @@
"Test Configuration" => "Configuración de prueba",
"Help" => "Ayuda"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/es_AR.php b/apps/user_ldap/l10n/es_AR.php
index 8a44d3b84ad7ec94164412894891f8abe866e947..c4f339f76bb4ebbdad2bf0581271be76e6a22f30 100644
--- a/apps/user_ldap/l10n/es_AR.php
+++ b/apps/user_ldap/l10n/es_AR.php
@@ -1,4 +1,5 @@
- "Hubo un error al borrar las asignaciones.",
"Failed to delete the server configuration" => "Fallo al borrar la configuración del servidor",
"The configuration is valid and the connection could be established!" => "La configuración es válida y la conexión pudo ser establecida.",
@@ -79,3 +80,4 @@
"Test Configuration" => "Probar configuración",
"Help" => "Ayuda"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/et_EE.php b/apps/user_ldap/l10n/et_EE.php
index 7e5c0a6fec8bf3828bcf656c1dd2bf9f34c16818..f97a1ad740609b42cc53d4dfff1d78e62bc77fb7 100644
--- a/apps/user_ldap/l10n/et_EE.php
+++ b/apps/user_ldap/l10n/et_EE.php
@@ -1,4 +1,5 @@
- "Vastendususte puhastamine ebaõnnestus.",
"Failed to delete the server configuration" => "Serveri seadistuse kustutamine ebaõnnestus",
"The configuration is valid and the connection could be established!" => "Seadistus on korrektne ning ühendus on olemas!",
@@ -15,6 +16,7 @@
"Connection test failed" => "Ühenduse testimine ebaõnnestus",
"Do you really want to delete the current Server Configuration?" => "Oled kindel, et tahad kustutada praegust serveri seadistust?",
"Confirm Deletion" => "Kinnita kustutamine",
+"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "Hoiatus: rakendused user_ldap ja user_webdavauht ei ole ühilduvad. Töös võib esineda ootamatuid tõrkeid.\nPalu oma süsteemihalduril üks neist rakendustest kasutusest eemaldada.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Hoiatus:PHP LDAP moodul pole paigaldatud ning LDAP kasutamine ei ole võimalik. Palu oma süsteeihaldurit see paigaldada.",
"Server configuration" => "Serveri seadistus",
"Add Server Configuration" => "Lisa serveri seadistus",
@@ -44,20 +46,24 @@
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Lisa täiendav LDAP/AD server, mida replikeeritakse peaserveriga.",
"Backup (Replica) Port" => "Varuserveri (replika) port",
"Disable Main Server" => "Ära kasuta peaserverit",
+"Only connect to the replica server." => "Ühendu ainult replitseeriva serveriga.",
"Use TLS" => "Kasuta TLS-i",
"Do not use it additionally for LDAPS connections, it will fail." => "LDAPS puhul ära kasuta. Ühendus ei toimi.",
"Case insensitve LDAP server (Windows)" => "Mittetõstutundlik LDAP server (Windows)",
"Turn off SSL certificate validation." => "Lülita SSL sertifikaadi kontrollimine välja.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Kui ühendus toimib ainult selle valikuga, siis impordi LDAP serveri SSL sertifikaat oma %s serverisse.",
"Not recommended, use for testing only." => "Pole soovitatav, kasuta ainult testimiseks.",
"Cache Time-To-Live" => "Puhvri iga",
"in seconds. A change empties the cache." => "sekundites. Muudatus tühjendab vahemälu.",
"Directory Settings" => "Kataloogi seaded",
"User Display Name Field" => "Kasutaja näidatava nime väli",
+"The LDAP attribute to use to generate the user's display name." => "LDAP atribuut, mida kasutatakse kasutaja kuvatava nime loomiseks.",
"Base User Tree" => "Baaskasutaja puu",
"One User Base DN per line" => "Üks kasutajate baas-DN rea kohta",
"User Search Attributes" => "Kasutaja otsingu atribuudid",
"Optional; one attribute per line" => "Valikuline; üks atribuut rea kohta",
"Group Display Name Field" => "Grupi näidatava nime väli",
+"The LDAP attribute to use to generate the groups's display name." => "LDAP atribuut, mida kasutatakse ownCloudi grupi kuvatava nime loomiseks.",
"Base Group Tree" => "Baasgrupi puu",
"One Group Base DN per line" => "Üks grupi baas-DN rea kohta",
"Group Search Attributes" => "Grupi otsingu atribuudid",
@@ -70,12 +76,16 @@
"User Home Folder Naming Rule" => "Kasutaja kodukataloogi nimetamise reegel",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Kasutajanime (vaikeväärtus) kasutamiseks jäta tühjaks. Vastasel juhul määra LDAP/AD omadus.",
"Internal Username" => "Sisemine kasutajanimi",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "Vaikimisi tekitatakse sisemine kasutajanimi UUID atribuudist. See tagab, et kasutajanimi on unikaalne ja sümboleid pole vaja muuta. Sisemisel kasutajatunnuse puhul on lubatud ainult järgmised sümbolid: [ a-zA-Z0-9_.@- ]. Muud sümbolid asendatakse nende ASCII vastega või lihtsalt hüljatakse. Tõrgete korral lisatakse number või suurendatakse seda. Sisemist kasutajatunnust kasutatakse kasutaja sisemiseks tuvastamiseks. Ühtlasi on see ownCloudis kasutaja vaikimisi kodukataloogi nimeks. See on ka serveri URLi osaks, näiteks kõikidel *DAV teenustel. Selle seadistusega saab tühistada vaikimisi käitumise. Saavutamaks sarnast käitumist eelnevate ownCloud 5 versioonidega, sisesta kasutaja kuvatava nime atribuut järgnevale väljale. Vaikimisi seadistuseks jäta tühjaks. Muudatused mõjutavad ainult uusi (lisatud) LDAP kasutajate vastendusi.",
"Internal Username Attribute:" => "Sisemise kasutajatunnuse atribuut:",
"Override UUID detection" => "Tühista UUID tuvastus",
+"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Vaikimis ownCloud tuvastab automaatselt UUID atribuudi. UUID atribuuti kasutatakse LDAP kasutajate ja gruppide kindlaks tuvastamiseks. Samuti tekitatakse sisemine kasutajanimi UUID alusel, kui pole määratud teisiti. Sa saad tühistada selle seadistuse ning määrata atribuudi omal valikul. Pead veenduma, et valitud atribuut toimib nii kasutajate kui gruppide puhul ning on unikaalne. Vaikimisi seadistuseks jäta tühjaks. Muudatused mõjutavad ainult uusi (lisatud) LDAP kasutajate vastendusi.",
"UUID Attribute:" => "UUID atribuut:",
"Username-LDAP User Mapping" => "LDAP-Kasutajatunnus Kasutaja Vastendus",
+"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." => "ownCloud kasutab kasutajanime talletamaks ja omistamaks (pseudo) andmeid. Et täpselt tuvastada ja määratleda kasutajaid, peab iga LDAP kasutaja omama sisemist kasutajatunnust. See vajab ownCloud kasutajatunnuse vastendust LDAP kasutajaks. Tekitatud kasutajanimi vastendatakse LDAP kasutaja UUID-iks. Lisaks puhverdatakse DN vähendamaks LDAP päringuid, kuid seda ei kasutata tuvastamisel. ownCloud suudab tuvastada ka DN muutumise. ownCloud sisemist kasutajatunnust kasutatakse üle kogu ownCloudi. Eemaldates vastenduse tekivad kõikjal andmejäägid. Vastenduste eemaldamine ei ole konfiguratsiooni tundlik, see mõjutab kõiki LDAP seadistusi! Ära kunagi eemalda vastendusi produktsioonis! Seda võid teha ainult testis või katsetuste masinas.",
"Clear Username-LDAP User Mapping" => "Puhasta LDAP-Kasutajatunnus Kasutaja Vastendus",
"Clear Groupname-LDAP Group Mapping" => "Puhasta LDAP-Grupinimi Grupp Vastendus",
"Test Configuration" => "Testi seadistust",
"Help" => "Abiinfo"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/eu.php b/apps/user_ldap/l10n/eu.php
index c825a63427268e7c6023f0f58cdb1e28cd399917..59e8371d9c21e4f535aba11f426f5484f829bb86 100644
--- a/apps/user_ldap/l10n/eu.php
+++ b/apps/user_ldap/l10n/eu.php
@@ -1,4 +1,5 @@
- "Zerbitzariaren konfigurazioa ezabatzeak huts egin du",
"The configuration is valid and the connection could be established!" => "Konfigurazioa egokia da eta konexioa ezarri daiteke!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurazioa ongi dago, baina Bind-ek huts egin du. Mesedez egiaztatu zerbitzariaren ezarpenak eta kredentzialak.",
@@ -71,3 +72,4 @@
"Test Configuration" => "Egiaztatu Konfigurazioa",
"Help" => "Laguntza"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/fa.php b/apps/user_ldap/l10n/fa.php
index 151e0cab285460b96b56a2c0c373b17eae8d9c8e..7b65c798d823c123b2746a39de8bd1d73ac34a0d 100644
--- a/apps/user_ldap/l10n/fa.php
+++ b/apps/user_ldap/l10n/fa.php
@@ -1,4 +1,5 @@
- "عدم موفقیت در پاک کردن نگاشت.",
"Failed to delete the server configuration" => "عملیات حذف پیکربندی سرور ناموفق ماند",
"The configuration is valid and the connection could be established!" => "پیکربندی معتبر است و ارتباط می تواند برقرار شود",
@@ -65,3 +66,4 @@
"Test Configuration" => "امتحان پیکربندی",
"Help" => "راهنما"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/fi_FI.php b/apps/user_ldap/l10n/fi_FI.php
index 7833b301acaf32a45c7d1c7af1635b9985920c47..744833ff7b3b05af8d4c36ef4293901361813727 100644
--- a/apps/user_ldap/l10n/fi_FI.php
+++ b/apps/user_ldap/l10n/fi_FI.php
@@ -1,4 +1,5 @@
- "Poisto epäonnistui",
"Keep settings?" => "Säilytetäänkö asetukset?",
"Cannot add server configuration" => "Palvelinasetusten lisäys epäonnistui",
@@ -43,3 +44,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Jätä tyhjäksi käyttäjänimi (oletusasetus). Muutoin anna LDAP/AD-atribuutti.",
"Help" => "Ohje"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/fr.php b/apps/user_ldap/l10n/fr.php
index 4820960eb369f2987496f8da75a53aacbb7a5c99..5fc02e583721794d2bea0ea39cd6141fa27ecd20 100644
--- a/apps/user_ldap/l10n/fr.php
+++ b/apps/user_ldap/l10n/fr.php
@@ -1,4 +1,5 @@
- "Erreur lors de la suppression des associations.",
"Failed to delete the server configuration" => "Échec de la suppression de la configuration du serveur",
"The configuration is valid and the connection could be established!" => "La configuration est valide et la connexion peut être établie !",
@@ -79,3 +80,4 @@
"Test Configuration" => "Tester la configuration",
"Help" => "Aide"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/user_ldap/l10n/gl.php b/apps/user_ldap/l10n/gl.php
index 14706db8d1d1b4afd2780574ee70ed0a9f2236e2..ce4967f8b8c3117ed299ca2186e867d1f8d367c6 100644
--- a/apps/user_ldap/l10n/gl.php
+++ b/apps/user_ldap/l10n/gl.php
@@ -1,4 +1,5 @@
- "Non foi posíbel limpar as asignacións.",
"Failed to delete the server configuration" => "Non foi posíbel eliminar a configuración do servidor",
"The configuration is valid and the connection could be established!" => "A configuración é correcta e pode estabelecerse a conexión.",
@@ -87,3 +88,4 @@
"Test Configuration" => "Probar a configuración",
"Help" => "Axuda"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/he.php b/apps/user_ldap/l10n/he.php
index 0d60768dcfccc232f58642638c133aceed661bce..b39a4277078cea08b736e4d046d0bd77f5e5b4be 100644
--- a/apps/user_ldap/l10n/he.php
+++ b/apps/user_ldap/l10n/he.php
@@ -1,4 +1,5 @@
- "מחיקה נכשלה",
"Keep settings?" => "האם לשמור את ההגדרות?",
"Cannot add server configuration" => "לא ניתן להוסיף את הגדרות השרת",
@@ -21,3 +22,4 @@
"in bytes" => "בבתים",
"Help" => "עזרה"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/hi.php b/apps/user_ldap/l10n/hi.php
index 8e8e4e8ff69d23faefc27d0d66033b1a6c7f1c29..24ae7a0217604bd79aca3e3728ba0b33053c59f2 100644
--- a/apps/user_ldap/l10n/hi.php
+++ b/apps/user_ldap/l10n/hi.php
@@ -1,5 +1,7 @@
- "त्रुटि",
"Password" => "पासवर्ड",
"Help" => "सहयोग"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/hr.php b/apps/user_ldap/l10n/hr.php
index cc8918301f5e955b179f81bc7e044cf75e0f304c..c9445de0dfc97871ef4ae83f9d9db3d9cbd9f37a 100644
--- a/apps/user_ldap/l10n/hr.php
+++ b/apps/user_ldap/l10n/hr.php
@@ -1,5 +1,7 @@
- "Greška",
"Password" => "Lozinka",
"Help" => "Pomoć"
);
+$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/user_ldap/l10n/hu_HU.php b/apps/user_ldap/l10n/hu_HU.php
index 26c96942cc4dca90b34194ebe5d2c47f77e76df5..61fa37ed95cf4ab95b60944235191b594cacaa1a 100644
--- a/apps/user_ldap/l10n/hu_HU.php
+++ b/apps/user_ldap/l10n/hu_HU.php
@@ -1,4 +1,5 @@
- "Nem sikerült törölni a hozzárendeléseket.",
"Failed to delete the server configuration" => "Nem sikerült törölni a kiszolgáló konfigurációját",
"The configuration is valid and the connection could be established!" => "A konfiguráció érvényes, és a kapcsolat létrehozható!",
@@ -79,3 +80,4 @@
"Test Configuration" => "A beállítások tesztelése",
"Help" => "Súgó"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/ia.php b/apps/user_ldap/l10n/ia.php
index 624fd4fa0eb460d3e1053c539407864a390208ed..9de7344f15fc70c311268e7cd49ce1291e438825 100644
--- a/apps/user_ldap/l10n/ia.php
+++ b/apps/user_ldap/l10n/ia.php
@@ -1,5 +1,7 @@
- "Error",
"Password" => "Contrasigno",
"Help" => "Adjuta"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/id.php b/apps/user_ldap/l10n/id.php
index 0231e2a5961a5c8c14bc77a4c7d90ed740b358b6..efaf8e3c92669147e2f31a5f7bb584d23c98b10e 100644
--- a/apps/user_ldap/l10n/id.php
+++ b/apps/user_ldap/l10n/id.php
@@ -1,4 +1,5 @@
- "Gagal menghapus konfigurasi server",
"The configuration is valid and the connection could be established!" => "Konfigurasi valid dan koneksi dapat dilakukan!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurasi valid, tetapi Bind gagal. Silakan cek pengaturan server dan keamanan.",
@@ -70,3 +71,4 @@
"Test Configuration" => "Uji Konfigurasi",
"Help" => "Bantuan"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/is.php b/apps/user_ldap/l10n/is.php
index 6ea474f56df6dd8b6a077eff7eb466d82ec90e4b..70c6bb615702430cbd0c874a9576ab430524a415 100644
--- a/apps/user_ldap/l10n/is.php
+++ b/apps/user_ldap/l10n/is.php
@@ -1,4 +1,5 @@
- "Geyma stillingar ?",
"Error" => "Villa",
"Host" => "Netþjónn",
@@ -6,3 +7,4 @@
"Test Configuration" => "Prúfa uppsetningu",
"Help" => "Hjálp"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/it.php b/apps/user_ldap/l10n/it.php
index 18a1c3f3398532fd90f38a227cf1a2f052b677e8..0a44850fdb02aa0f9cd5909b2c06a388cba62fd4 100644
--- a/apps/user_ldap/l10n/it.php
+++ b/apps/user_ldap/l10n/it.php
@@ -1,4 +1,5 @@
- "Cancellazione delle associazioni non riuscita.",
"Failed to delete the server configuration" => "Eliminazione della configurazione del server non riuscita",
"The configuration is valid and the connection could be established!" => "La configurazione è valida e la connessione può essere stabilita.",
@@ -87,3 +88,4 @@
"Test Configuration" => "Prova configurazione",
"Help" => "Aiuto"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/ja_JP.php b/apps/user_ldap/l10n/ja_JP.php
index 8647574c524facf39f629887aa8c5d92f7f7ca9f..d87a0f065b38d825cfbec3b2c3141f75ccf3931e 100644
--- a/apps/user_ldap/l10n/ja_JP.php
+++ b/apps/user_ldap/l10n/ja_JP.php
@@ -1,4 +1,5 @@
- "マッピングのクリアに失敗しました。",
"Failed to delete the server configuration" => "サーバ設定の削除に失敗しました",
"The configuration is valid and the connection could be established!" => "設定は有効であり、接続を確立しました!",
@@ -15,6 +16,7 @@
"Connection test failed" => "接続テストに失敗しました",
"Do you really want to delete the current Server Configuration?" => "現在のサーバ設定を本当に削除してもよろしいですか?",
"Confirm Deletion" => "削除の確認",
+"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "警告: user_ldap と user_webdavauth のアプリには互換性がありません。予期せぬ動作をする可能性があります。システム管理者にどちらかを無効にするよう問い合わせてください。",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "警告: PHP LDAP モジュールがインストールされていません。バックエンドが正しく動作しません。システム管理者にインストールするよう問い合わせてください。",
"Server configuration" => "サーバ設定",
"Add Server Configuration" => "サーバ設定を追加",
@@ -44,20 +46,24 @@
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "バックアップホストをオプションで指定することができます。メインのLDAP/ADサーバのレプリカである必要があります。",
"Backup (Replica) Port" => "バックアップ(レプリカ)ポート",
"Disable Main Server" => "メインサーバを無効にする",
+"Only connect to the replica server." => "レプリカサーバーにのみ接続します。",
"Use TLS" => "TLSを利用",
"Do not use it additionally for LDAPS connections, it will fail." => "LDAPS接続のために追加でそれを利用しないで下さい。失敗します。",
"Case insensitve LDAP server (Windows)" => "大文字/小文字を区別しないLDAPサーバ(Windows)",
"Turn off SSL certificate validation." => "SSL証明書の確認を無効にする。",
+"If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "接続がこのオプションでのみ動作する場合は、LDAPサーバのSSL証明書を %s サーバにインポートしてください。",
"Not recommended, use for testing only." => "推奨しません、テスト目的でのみ利用してください。",
"Cache Time-To-Live" => "キャッシュのTTL",
"in seconds. A change empties the cache." => "秒。変更後にキャッシュがクリアされます。",
"Directory Settings" => "ディレクトリ設定",
"User Display Name Field" => "ユーザ表示名のフィールド",
+"The LDAP attribute to use to generate the user's display name." => "ユーザの表示名の生成に利用するLDAP属性",
"Base User Tree" => "ベースユーザツリー",
"One User Base DN per line" => "1行に1つのユーザベースDN",
"User Search Attributes" => "ユーザ検索属性",
"Optional; one attribute per line" => "オプション:1行に1属性",
"Group Display Name Field" => "グループ表示名のフィールド",
+"The LDAP attribute to use to generate the groups's display name." => "ユーザのグループ表示名の生成に利用するLDAP属性",
"Base Group Tree" => "ベースグループツリー",
"One Group Base DN per line" => "1行に1つのグループベースDN",
"Group Search Attributes" => "グループ検索属性",
@@ -70,12 +76,16 @@
"User Home Folder Naming Rule" => "ユーザのホームフォルダ命名規則",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "ユーザ名を空のままにしてください(デフォルト)。そうでない場合は、LDAPもしくはADの属性を指定してください。",
"Internal Username" => "内部ユーザ名",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "デフォルトでは、内部ユーザ名はUUID属性から作成されます。これにより、ユーザ名がユニークであり、かつ文字の変換が不要であることを保証します。内部ユーザ名には、[ a-zA-Z0-9_.@- ] の文字のみが有効であるという制限があり、その他の文字は対応する ASCII コードに変換されるか単に無視されます。そのため、他のユーザ名との衝突の回数が増加するでしょう。内部ユーザ名は、内部的にユーザを識別するために用いられ、また、ownCloudにおけるデフォルトのホームフォルダ名としても用いられます。例えば*DAVサービスのように、リモートURLの一部でもあります。この設定により、デフォルトの振る舞いを再定義します。ownCloud 5 以前と同じような振る舞いにするためには、以下のフィールドにユーザ表示名の属性を入力します。空にするとデフォルトの振る舞いとなります。変更は新しくマッピング(追加)されたLDAPユーザにおいてのみ有効となります。",
"Internal Username Attribute:" => "内部ユーザ名属性:",
"Override UUID detection" => "UUID検出を再定義する",
+"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "デフォルトでは、UUID 属性は自動的に検出されます。UUID属性は、LDAPユーザとLDAPグループを間違いなく識別するために利用されます。また、もしこれを指定しない場合は、内部ユーザ名はUUIDに基づいて作成されます。この設定は再定義することができ、あなたの選択した属性を用いることができます。選択した属性がユーザとグループの両方に対して適用でき、かつユニークであることを確認してください。空であればデフォルトの振る舞いとなります。変更は、新しくマッピング(追加)されたLDAPユーザとLDAPグループに対してのみ有効となります。",
"UUID Attribute:" => "UUID属性:",
"Username-LDAP User Mapping" => "ユーザ名とLDAPユーザのマッピング",
+"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." => "ユーザ名は(メタ)データの保存と割り当てに使用されます。ユーザを正確に識別して認識するために、個々のLDAPユーザは内部ユーザ名を持っています。これは、ユーザ名からLDAPユーザへのマッピングが必要であることを意味しています。この生成されたユーザ名は、LDAPユーザのUUIDにマッピングされます。加えて、DNがLDAPとのインタラクションを削減するためにキャッシュされますが、識別には利用されません。DNが変わった場合は、変更が検出されます。内部ユーザ名は全体に亘って利用されます。マッピングをクリアすると、いたるところに使われないままの物が残るでしょう。マッピングのクリアは設定に敏感ではありませんが、全てのLDAPの設定に影響を与えます!本番の環境では決してマッピングをクリアしないでください。テストもしくは実験の段階でのみマッピングのクリアを行なってください。",
"Clear Username-LDAP User Mapping" => "ユーザ名とLDAPユーザのマッピングをクリアする",
"Clear Groupname-LDAP Group Mapping" => "グループ名とLDAPグループのマッピングをクリアする",
"Test Configuration" => "設定をテスト",
"Help" => "ヘルプ"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/ka.php b/apps/user_ldap/l10n/ka.php
index 169926283e9a39b2a4de635e76e739143a1cdf3b..3de4d3c722a85ca2ba02712f49129d9f520a72f7 100644
--- a/apps/user_ldap/l10n/ka.php
+++ b/apps/user_ldap/l10n/ka.php
@@ -1,4 +1,6 @@
- "პაროლი",
"Help" => "შველა"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/ka_GE.php b/apps/user_ldap/l10n/ka_GE.php
index 07cd3ad79652ecc65499f3d82d091a6b059df5b8..7317a257dafdcb4e47286d91341ef3b2be90f3b6 100644
--- a/apps/user_ldap/l10n/ka_GE.php
+++ b/apps/user_ldap/l10n/ka_GE.php
@@ -1,4 +1,5 @@
- "შეცდომა სერვერის კონფიგურაციის წაშლისას",
"The configuration is valid and the connection could be established!" => "კონფიგურაცია მართებულია და კავშირი დამყარდება!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "კონფიგურაცია მართებულია, მაგრამ მიერთება ვერ მოხერხდა. გთხოვთ შეამოწმოთ სერვერის პარამეტრები და აუთენთიკაციის პარამეტრები.",
@@ -70,3 +71,4 @@
"Test Configuration" => "კავშირის ტესტირება",
"Help" => "დახმარება"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/ko.php b/apps/user_ldap/l10n/ko.php
index 549233e20c9f6c4f28c743937ccbc4aecaf838db..650781fe4a22fc0fac34248ed7f4041074347f3e 100644
--- a/apps/user_ldap/l10n/ko.php
+++ b/apps/user_ldap/l10n/ko.php
@@ -1,4 +1,5 @@
- "삭제 실패",
"Keep settings?" => "설정을 유지합니까?",
"Error" => "오류",
@@ -48,3 +49,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "사용자 이름을 사용하려면 비워 두십시오(기본값). 기타 경우 LDAP/AD 속성을 지정하십시오.",
"Help" => "도움말"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/ku_IQ.php b/apps/user_ldap/l10n/ku_IQ.php
index 00602ae5d79c4b80e14384f64f43c4499fa08486..d211e9554a8e625db1f3a30470aa7259e9117dad 100644
--- a/apps/user_ldap/l10n/ku_IQ.php
+++ b/apps/user_ldap/l10n/ku_IQ.php
@@ -1,6 +1,8 @@
- "سهرکهوتن",
"Error" => "ههڵه",
"Password" => "وشەی تێپەربو",
"Help" => "یارمەتی"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/lb.php b/apps/user_ldap/l10n/lb.php
index cf58c9ec5be9c0ba08f0b2bf0898f229ae1037ff..0a268bbb3919bf9722788c115559f8f18cd58007 100644
--- a/apps/user_ldap/l10n/lb.php
+++ b/apps/user_ldap/l10n/lb.php
@@ -1,6 +1,8 @@
- "Konnt net läschen",
"Error" => "Fehler",
"Password" => "Passwuert",
"Help" => "Hëllef"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/lt_LT.php b/apps/user_ldap/l10n/lt_LT.php
index 6f396847b8efeb640890231ca1ad4c8b979b6407..3046824e6c111332712e6d0304cb31c22456ef70 100644
--- a/apps/user_ldap/l10n/lt_LT.php
+++ b/apps/user_ldap/l10n/lt_LT.php
@@ -1,4 +1,5 @@
- "Ištrinti nepavyko",
"Error" => "Klaida",
"Password" => "Slaptažodis",
@@ -9,3 +10,4 @@
"Not recommended, use for testing only." => "Nerekomenduojama, naudokite tik testavimui.",
"Help" => "Pagalba"
);
+$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/user_ldap/l10n/lv.php b/apps/user_ldap/l10n/lv.php
index 38157c51f1bcb2cc433d14d703012537ea7b8e8a..7d3d088b40af981ed075123ad233c4d25d040340 100644
--- a/apps/user_ldap/l10n/lv.php
+++ b/apps/user_ldap/l10n/lv.php
@@ -1,4 +1,5 @@
- "Neizdevās izdzēst servera konfigurāciju",
"The configuration is valid and the connection could be established!" => "Konfigurācija ir derīga un varēja izveidot savienojumu!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurācija ir derīga, bet sasaiste neizdevās. Lūdzu, pārbaudiet servera iestatījumus un akreditācijas datus.",
@@ -69,3 +70,4 @@
"Test Configuration" => "Testa konfigurācija",
"Help" => "Palīdzība"
);
+$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);";
diff --git a/apps/user_ldap/l10n/mk.php b/apps/user_ldap/l10n/mk.php
index 6a060aca415cc55fd885e95b60da06258b2546fe..3d261c3d80c4edec34ecae44e3d9935e73e0b3de 100644
--- a/apps/user_ldap/l10n/mk.php
+++ b/apps/user_ldap/l10n/mk.php
@@ -1,4 +1,5 @@
- "Бришењето е неуспешно",
"Error" => "Грешка",
"Host" => "Домаќин",
@@ -6,3 +7,4 @@
"Password" => "Лозинка",
"Help" => "Помош"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n % 10 == 1 && n % 100 != 11) ? 0 : 1;";
diff --git a/apps/user_ldap/l10n/ms_MY.php b/apps/user_ldap/l10n/ms_MY.php
index b3004028c58a2c83fff365ee58520103376636cb..5d3f8019cebd835aa02bfe5eb724c9f7e5eb19bc 100644
--- a/apps/user_ldap/l10n/ms_MY.php
+++ b/apps/user_ldap/l10n/ms_MY.php
@@ -1,6 +1,8 @@
- "Pemadaman gagal",
"Error" => "Ralat",
"Password" => "Kata laluan",
"Help" => "Bantuan"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/my_MM.php b/apps/user_ldap/l10n/my_MM.php
index ee8d3dd26fa873eab8252b207db2e52f80d080e4..3d9c248f66a844d83296b6709de585e0587f32fa 100644
--- a/apps/user_ldap/l10n/my_MM.php
+++ b/apps/user_ldap/l10n/my_MM.php
@@ -1,4 +1,6 @@
- "စကားဝှက်",
"Help" => "အကူအညီ"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/nb_NO.php b/apps/user_ldap/l10n/nb_NO.php
index 880fb41553f0e2696c67ed49e4e15fdf0884282b..8f1c338b124f850df320b5bb55067ece111be958 100644
--- a/apps/user_ldap/l10n/nb_NO.php
+++ b/apps/user_ldap/l10n/nb_NO.php
@@ -1,4 +1,5 @@
- "Klarte ikke å slette tjener-konfigurasjonen.",
"The configuration is valid and the connection could be established!" => "Konfigurasjonen er i orden og tilkoblingen skal være etablert!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Konfigurasjonen er i orden, men Bind mislyktes. Vennligst sjekk tjener-konfigurasjonen og påloggingsinformasjonen.",
@@ -54,3 +55,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "La stå tom for brukernavn (standard). Ellers, spesifiser en LDAP/AD attributt.",
"Help" => "Hjelp"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/nl.php b/apps/user_ldap/l10n/nl.php
index 6b42ce8116b9a891fab4f5d37ef9a79950aab753..1a67cd409dcfb261544abbddf1bbedaf419295a8 100644
--- a/apps/user_ldap/l10n/nl.php
+++ b/apps/user_ldap/l10n/nl.php
@@ -1,4 +1,5 @@
- "Niet gelukt de vertalingen leeg te maken.",
"Failed to delete the server configuration" => "Verwijderen serverconfiguratie mislukt",
"The configuration is valid and the connection could be established!" => "De configuratie is geldig en de verbinding is geslaagd!",
@@ -15,6 +16,7 @@
"Connection test failed" => "Verbindingstest mislukt",
"Do you really want to delete the current Server Configuration?" => "Wilt u werkelijk de huidige Serverconfiguratie verwijderen?",
"Confirm Deletion" => "Bevestig verwijderen",
+"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "Waarschuwing: De Apps user_ldap en user_webdavauth zijn incompatible. U kunt onverwacht gedrag ervaren. Vraag uw beheerder om een van beide apps de deactiveren.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Waarschuwing: De PHP LDAP module is niet geïnstalleerd, het backend zal niet werken. Vraag uw systeembeheerder om de module te installeren.",
"Server configuration" => "Serverconfiguratie",
"Add Server Configuration" => "Toevoegen serverconfiguratie",
@@ -83,3 +85,4 @@
"Test Configuration" => "Test configuratie",
"Help" => "Help"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/nn_NO.php b/apps/user_ldap/l10n/nn_NO.php
index 459100228035b1ecbc424f6fc9bb06e0613ca3a1..5e584aa31e35e07ffb8bcf5f755867d0476d7864 100644
--- a/apps/user_ldap/l10n/nn_NO.php
+++ b/apps/user_ldap/l10n/nn_NO.php
@@ -1,6 +1,8 @@
- "Feil ved sletting",
"Error" => "Feil",
"Password" => "Passord",
"Help" => "Hjelp"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/oc.php b/apps/user_ldap/l10n/oc.php
index 95ab51caadd798298171fce3ddd897a38e458115..81df26117f10d412b688cfe1b82abe0447a2cfc0 100644
--- a/apps/user_ldap/l10n/oc.php
+++ b/apps/user_ldap/l10n/oc.php
@@ -1,6 +1,8 @@
- "Fracàs d'escafatge",
"Error" => "Error",
"Password" => "Senhal",
"Help" => "Ajuda"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/user_ldap/l10n/pl.php b/apps/user_ldap/l10n/pl.php
index ad577457a2f3e49c55be0944cf535597a114f859..87dfe41a3179913be437cac97fdb4872b1bc981f 100644
--- a/apps/user_ldap/l10n/pl.php
+++ b/apps/user_ldap/l10n/pl.php
@@ -1,4 +1,5 @@
- "Nie udało się wyczyścić mapowania.",
"Failed to delete the server configuration" => "Nie można usunąć konfiguracji serwera",
"The configuration is valid and the connection could be established!" => "Konfiguracja jest prawidłowa i można ustanowić połączenie!",
@@ -79,3 +80,4 @@
"Test Configuration" => "Konfiguracja testowa",
"Help" => "Pomoc"
);
+$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/user_ldap/l10n/pt_BR.php b/apps/user_ldap/l10n/pt_BR.php
index 35284b24b7ab1061a4a6c607e9f495a235e87690..0145e8fe2a4b0caec7f9f3581a8143212a8552e0 100644
--- a/apps/user_ldap/l10n/pt_BR.php
+++ b/apps/user_ldap/l10n/pt_BR.php
@@ -1,4 +1,5 @@
- "Falha ao limpar os mapeamentos.",
"Failed to delete the server configuration" => "Falha ao deletar a configuração do servidor",
"The configuration is valid and the connection could be established!" => "A configuração é válida e a conexão foi estabelecida!",
@@ -87,3 +88,4 @@
"Test Configuration" => "Teste de Configuração",
"Help" => "Ajuda"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/user_ldap/l10n/pt_PT.php b/apps/user_ldap/l10n/pt_PT.php
index 0e5eac91c3ec2a3055f68e2b4fcfbe84d61ed2a3..0abb049a1558c281cbcec720dee7613e435a7070 100644
--- a/apps/user_ldap/l10n/pt_PT.php
+++ b/apps/user_ldap/l10n/pt_PT.php
@@ -1,4 +1,5 @@
- "Falhou a limpar os mapas",
"Failed to delete the server configuration" => "Erro ao eliminar as configurações do servidor",
"The configuration is valid and the connection could be established!" => "A configuração está correcta e foi possível estabelecer a ligação!",
@@ -79,3 +80,4 @@
"Test Configuration" => "Testar a configuração",
"Help" => "Ajuda"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/ro.php b/apps/user_ldap/l10n/ro.php
index 2e03ddcca426ed5d68e7b2a7a72fff1f6234ad13..cdc94e6a4939532dbb2ebc83317a61f9a5367511 100644
--- a/apps/user_ldap/l10n/ro.php
+++ b/apps/user_ldap/l10n/ro.php
@@ -1,4 +1,5 @@
- "Ștergerea a eșuat",
"Success" => "Succes",
"Error" => "Eroare",
@@ -38,3 +39,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lăsați gol pentru numele de utilizator (implicit). În caz contrar, specificați un atribut LDAP / AD.",
"Help" => "Ajutor"
);
+$PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));";
diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php
index 704d8149904d0953cd7715338a9a95987b768133..ef115f6bbd76e06f0758136af3eb9571a99fbb90 100644
--- a/apps/user_ldap/l10n/ru.php
+++ b/apps/user_ldap/l10n/ru.php
@@ -1,4 +1,5 @@
- "Не удалось очистить соотвествия.",
"Failed to delete the server configuration" => "Не удалось удалить конфигурацию сервера",
"The configuration is valid and the connection could be established!" => "Конфигурация правильная и подключение может быть установлено!",
@@ -80,3 +81,4 @@
"Test Configuration" => "Тестовая конфигурация",
"Help" => "Помощь"
);
+$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/user_ldap/l10n/ru_RU.php b/apps/user_ldap/l10n/ru_RU.php
deleted file mode 100644
index 7b6833ebf8cd2d6827a929379fb7de529b0d18ee..0000000000000000000000000000000000000000
--- a/apps/user_ldap/l10n/ru_RU.php
+++ /dev/null
@@ -1,4 +0,0 @@
- "Успех",
-"Error" => "Ошибка"
-);
diff --git a/apps/user_ldap/l10n/si_LK.php b/apps/user_ldap/l10n/si_LK.php
index 1d81b341b46242d9567de7ef2b2ac2780f50d70e..21c8f047ff6df7047e98b1e242747c3803d6a7ee 100644
--- a/apps/user_ldap/l10n/si_LK.php
+++ b/apps/user_ldap/l10n/si_LK.php
@@ -1,4 +1,5 @@
- "මකාදැමීම අසාර්ථකයි",
"Success" => "සාර්ථකයි",
"Error" => "දෝෂයක්",
@@ -14,3 +15,4 @@
"Not recommended, use for testing only." => "නිර්දේශ කළ නොහැක. පරීක්ෂණ සඳහා පමණක් භාවිත කරන්න",
"Help" => "උදව්"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/sk_SK.php b/apps/user_ldap/l10n/sk_SK.php
index 6c0f10f89101580de6d701f4b7d3e7cce9bfdaf3..f02828daf70429bad4704e339a4c4f1f9f9a866b 100644
--- a/apps/user_ldap/l10n/sk_SK.php
+++ b/apps/user_ldap/l10n/sk_SK.php
@@ -1,4 +1,5 @@
- "Nepodarilo sa vymazať mapovania.",
"Failed to delete the server configuration" => "Zlyhalo zmazanie nastavenia servera.",
"The configuration is valid and the connection could be established!" => "Nastavenie je v poriadku a pripojenie je stabilné.",
@@ -15,6 +16,7 @@
"Connection test failed" => "Test pripojenia zlyhal",
"Do you really want to delete the current Server Configuration?" => "Naozaj chcete zmazať súčasné nastavenie servera?",
"Confirm Deletion" => "Potvrdiť vymazanie",
+"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "Upozornenie: Aplikácie user_ldap a user_webdavauth sú navzájom nekompatibilné. Môžete zaznamenať neočakávané správanie. Požiadajte prosím vášho systémového administrátora pre zakázanie jedného z nich.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Upozornenie: nie je nainštalovaný LDAP modul pre PHP, backend vrstva nebude fungovať. Požádejte administrátora systému aby ho nainštaloval.",
"Server configuration" => "Nastavenia servera",
"Add Server Configuration" => "Pridať nastavenia servera.",
@@ -44,20 +46,24 @@
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Zadajte záložný LDAP/AD. Musí to byť kópia hlavného LDAP/AD servera.",
"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.",
"Use TLS" => "Použi TLS",
"Do not use it additionally for LDAPS connections, it will fail." => "Nepoužívajte pre pripojenie LDAPS, zlyhá.",
"Case insensitve LDAP server (Windows)" => "LDAP server nerozlišuje veľkosť znakov (Windows)",
"Turn off SSL certificate validation." => "Vypnúť overovanie SSL certifikátu.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Ak pripojenie pracuje len s touto možnosťou, tak naimportujte SSL certifikát LDAP servera do vášho %s servera.",
"Not recommended, use for testing only." => "Nie je doporučované, len pre testovacie účely.",
"Cache Time-To-Live" => "Životnosť objektov v cache",
"in seconds. A change empties the cache." => "v sekundách. Zmena vyprázdni vyrovnávaciu pamäť.",
"Directory Settings" => "Nastavenie priečinka",
"User Display Name Field" => "Pole pre zobrazenia mena používateľa",
+"The LDAP attribute to use to generate the user's display name." => "Atribút LDAP použitý na vygenerovanie zobrazovaného mena používateľa. ",
"Base User Tree" => "Základný používateľský strom",
"One User Base DN per line" => "Jedna používateľská základná DN na riadok",
"User Search Attributes" => "Atribúty vyhľadávania používateľov",
"Optional; one attribute per line" => "Voliteľné, jeden atribút na jeden riadok",
"Group Display Name Field" => "Pole pre zobrazenie mena skupiny",
+"The LDAP attribute to use to generate the groups's display name." => "Atribút LDAP použitý na vygenerovanie zobrazovaného mena skupiny.",
"Base Group Tree" => "Základný skupinový strom",
"One Group Base DN per line" => "Jedna skupinová základná DN na riadok",
"Group Search Attributes" => "Atribúty vyhľadávania skupín",
@@ -70,12 +76,16 @@
"User Home Folder Naming Rule" => "Pravidlo pre nastavenie mena používateľského priečinka dát",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Nechajte prázdne pre používateľské meno (predvolené). Inak uveďte atribút LDAP/AD.",
"Internal Username" => "Interné používateľské meno",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "V predvolenom nastavení bude interné používateľské meno vytvorené z UUID atribútu. Zabezpečí sa to, že používateľské meno bude jedinečné a znaky nemusia byť prevedené. Interné meno má obmedzenie, iba tieto znaky sú povolené: [a-zA-Z0-9_ @ -.]. Ostatné znaky sú nahradené ich ASCII alebo jednoducho vynechané. Pri kolíziách používateľských mien bude číslo pridané / odobrané. Interné používateľské meno sa používa na internú identifikáciu používateľa. Je tiež predvoleným názvom používateľského domovského priečinka v ownCloud. Je tiež súčasťou URL pre vzdialený prístup, napríklad pre všetky služby * DAV. S týmto nastavením sa dá prepísať predvolené správanie. Pre dosiahnutie podobného správania sa ako pred verziou ownCloud 5 zadajte atribút zobrazenia používateľského mena v tomto poli. Ponechajte prázdne pre predvolené správanie. Zmeny budú mať vplyv iba na novo namapovaných (pridaných) LDAP používateľov.",
"Internal Username Attribute:" => "Atribút interného používateľského mena:",
"Override UUID detection" => "Prepísať UUID detekciu",
+"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "V predvolenom nastavení je UUID atribút detekovaný automaticky. UUID atribút je použitý na jedinečnú identifikáciu používateľov a skupín z LDAP. Naviac je na základe UUID vytvorené tiež interné použivateľské meno, ak nie je nastavené inak. Môžete predvolené nastavenie prepísať a použiť atribút ktorý si sami zvolíte. Musíte sa ale ubezpečiť, že atribút ktorý vyberiete bude uvedený pri použivateľoch, aj pri skupinách a je jedinečný. Ponechajte prázdne pre predvolené správanie. Zmena bude mať vplyv len na novo namapovaných (pridaných) používateľov a skupiny z LDAP.",
"UUID Attribute:" => "UUID atribút:",
"Username-LDAP User Mapping" => "Mapovanie názvov LDAP používateľských mien",
+"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." => "Použivateľské mená sa používajú pre uchovávanie a priraďovanie (meta)dát. Pre správnu identifikáciu a rozpoznanie používateľov bude mať každý používateľ z LDAP interné používateľské meno. To je nevyhnutné pre namapovanie používateľských mien na používateľov v LDAP. Vytvorené používateľské meno je namapované na UUID používateľa v LDAP. Naviac je cachovaná DN pre obmedzenie interakcie s LDAP, ale nie je používaná pre identifikáciu. Ak sa DN zmení, bude to správne rozpoznané. Interné používateľské meno sa používa všade. Vyčistenie namapování vymaže zvyšky všade. Vyčistenie naviac nie je špecifické, bude mať vplyv na všetky LDAP konfigurácie! Nikdy nečistite namapovanie v produkčnom prostredí, len v testovacej alebo experimentálnej fáze.",
"Clear Username-LDAP User Mapping" => "Zrušiť mapovanie LDAP používateľských mien",
"Clear Groupname-LDAP Group Mapping" => "Zrušiť mapovanie názvov LDAP skupín",
"Test Configuration" => "Test nastavenia",
"Help" => "Pomoc"
);
+$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/user_ldap/l10n/sl.php b/apps/user_ldap/l10n/sl.php
index 63200df0e9c740d1cf2308b8f9bc9bd751e832b6..80abb79e495cbb754bc502eac7a2926163502830 100644
--- a/apps/user_ldap/l10n/sl.php
+++ b/apps/user_ldap/l10n/sl.php
@@ -1,4 +1,5 @@
- "Preslikav ni bilo mogoče izbrisati",
"Failed to delete the server configuration" => "Brisanje nastavitev strežnika je spodletelo.",
"The configuration is valid and the connection could be established!" => "Nastavitev je veljavna, zato je povezavo mogoče vzpostaviti!",
@@ -79,3 +80,4 @@
"Test Configuration" => "Preizkusne nastavitve",
"Help" => "Pomoč"
);
+$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/user_ldap/l10n/sq.php b/apps/user_ldap/l10n/sq.php
index 12324b9f966cfe6fa5ea2caab20182dccafc39d4..2de62cc009a096b75f632f6c34e2c44cb2ab776e 100644
--- a/apps/user_ldap/l10n/sq.php
+++ b/apps/user_ldap/l10n/sq.php
@@ -1,5 +1,7 @@
- "Veprim i gabuar",
"Password" => "Kodi",
"Help" => "Ndihmë"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/sr.php b/apps/user_ldap/l10n/sr.php
index 5c066e675e46eacd22b98c15ae612cc6f7846034..7dd12fe5cca87b5c9bc651f17b191b7bafb83a56 100644
--- a/apps/user_ldap/l10n/sr.php
+++ b/apps/user_ldap/l10n/sr.php
@@ -1,4 +1,5 @@
- "Брисање није успело",
"Error" => "Грешка",
"Host" => "Домаћин",
@@ -31,3 +32,4 @@
"in bytes" => "у бајтовима",
"Help" => "Помоћ"
);
+$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/user_ldap/l10n/sr@latin.php b/apps/user_ldap/l10n/sr@latin.php
index 005a76d4bbc0ea523d4c973ffed057827f6d6536..07db505ecf338e8baee5dd1267f696579f433355 100644
--- a/apps/user_ldap/l10n/sr@latin.php
+++ b/apps/user_ldap/l10n/sr@latin.php
@@ -1,4 +1,6 @@
- "Lozinka",
"Help" => "Pomoć"
);
+$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/user_ldap/l10n/sv.php b/apps/user_ldap/l10n/sv.php
index 60bfd7829edb799dc7852b32ce5893b455971081..d5d47074bedb7abf0dadc2df6c50731d05f7262f 100644
--- a/apps/user_ldap/l10n/sv.php
+++ b/apps/user_ldap/l10n/sv.php
@@ -1,4 +1,5 @@
- "Fel vid rensning av mappningar",
"Failed to delete the server configuration" => "Misslyckades med att radera serverinställningen",
"The configuration is valid and the connection could be established!" => "Inställningen är giltig och anslutningen kunde upprättas!",
@@ -15,6 +16,7 @@
"Connection test failed" => "Anslutningstestet misslyckades",
"Do you really want to delete the current Server Configuration?" => "Vill du verkligen radera den nuvarande serverinställningen?",
"Confirm Deletion" => "Bekräfta radering",
+"Warning: Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "Varning: Apps user_ldap och user_webdavauth är inkompatibla. Oväntade problem kan uppstå. Be din systemadministratör att inaktivera en av dom.",
"Warning: The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "Varning: PHP LDAP - modulen är inte installerad, serversidan kommer inte att fungera. Kontakta din systemadministratör för installation.",
"Server configuration" => "Serverinställning",
"Add Server Configuration" => "Lägg till serverinställning",
@@ -44,20 +46,24 @@
"Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Ange en valfri värd för säkerhetskopiering. Den måste vara en replika av den huvudsakliga LDAP/AD-servern",
"Backup (Replica) Port" => "Säkerhetskopierins-port (Replika)",
"Disable Main Server" => "Inaktivera huvudserver",
+"Only connect to the replica server." => "Anslut endast till replikaservern.",
"Use TLS" => "Använd TLS",
"Do not use it additionally for LDAPS connections, it will fail." => "Använd inte för LDAPS-anslutningar, det kommer inte att fungera.",
"Case insensitve LDAP server (Windows)" => "LDAP-servern är okänslig för gemener och versaler (Windows)",
"Turn off SSL certificate validation." => "Stäng av verifiering av SSL-certifikat.",
+"If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Om anslutningen bara fungerar med detta alternativ, importera LDAP-serverns SSL-certifikat i din% s server.",
"Not recommended, use for testing only." => "Rekommenderas inte, använd bara för test. ",
"Cache Time-To-Live" => "Cache Time-To-Live",
"in seconds. A change empties the cache." => "i sekunder. En förändring tömmer cache.",
"Directory Settings" => "Mappinställningar",
"User Display Name Field" => "Attribut för användarnamn",
+"The LDAP attribute to use to generate the user's display name." => "LDAP-attributet som ska användas för att generera användarens visningsnamn.",
"Base User Tree" => "Bas för användare i katalogtjänst",
"One User Base DN per line" => "En Användare start DN per rad",
"User Search Attributes" => "Användarsökningsattribut",
"Optional; one attribute per line" => "Valfritt; ett attribut per rad",
"Group Display Name Field" => "Attribut för gruppnamn",
+"The LDAP attribute to use to generate the groups's display name." => "LDAP-attributet som ska användas för att generera gruppens visningsnamn.",
"Base Group Tree" => "Bas för grupper i katalogtjänst",
"One Group Base DN per line" => "En Grupp start DN per rad",
"Group Search Attributes" => "Gruppsökningsattribut",
@@ -70,12 +76,16 @@
"User Home Folder Naming Rule" => "Namnregel för hemkatalog",
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Lämnas tomt för användarnamn (standard). Ange annars ett LDAP/AD-attribut.",
"Internal Username" => "Internt Användarnamn",
+"By default the internal username will be created from the UUID attribute. It makes sure that the username is unique and characters do not need to be converted. The internal username has the restriction that only these characters are allowed: [ a-zA-Z0-9_.@- ]. Other characters are replaced with their ASCII correspondence or simply omitted. On collisions a number will be added/increased. The internal username is used to identify a user internally. It is also the default name for the user home folder. It is also a part of remote URLs, for instance for all *DAV services. With this setting, the default behavior can be overridden. To achieve a similar behavior as before ownCloud 5 enter the user display name attribute in the following field. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users." => "Som standard skapas det interna användarnamnet från UUID-attributet. Det säkerställer att användarnamnet är unikt och tecken inte behöver konverteras. Det interna användarnamnet har restriktionerna att endast följande tecken är tillåtna: [ a-zA-Z0-9_.@- ]. Andra tecken blir ersatta av deras motsvarighet i ASCII eller utelämnas helt. En siffra kommer att läggas till eller ökas på vid en kollision. Det interna användarnamnet används för att identifiera användaren internt. Det är även förvalt som användarens användarnamn i ownCloud. Det är även en port för fjärråtkomst, t.ex. för alla *DAV-tjänster. Med denna inställning kan det förvalda beteendet åsidosättas. För att uppnå ett liknande beteende som innan ownCloud 5, ange attributet för användarens visningsnamn i detta fält. Lämna det tomt för förvalt beteende. Ändringarna kommer endast att påverka nyligen mappade (tillagda) LDAP-användare",
"Internal Username Attribute:" => "Internt Användarnamn Attribut:",
"Override UUID detection" => "Åsidosätt UUID detektion",
+"By default, the UUID attribute is automatically detected. The UUID attribute is used to doubtlessly identify LDAP users and groups. Also, the internal username will be created based on the UUID, if not specified otherwise above. You can override the setting and pass an attribute of your choice. You must make sure that the attribute of your choice can be fetched for both users and groups and it is unique. Leave it empty for default behavior. Changes will have effect only on newly mapped (added) LDAP users and groups." => "Som standard upptäcker ownCloud automatiskt UUID-attributet. Det UUID-attributet används för att utan tvivel identifiera LDAP-användare och grupper. Dessutom kommer interna användarnamn skapas baserat på detta UUID, om inte annat anges ovan. Du kan åsidosätta inställningen och passera ett attribut som du själv väljer. Du måste se till att attributet som du väljer kan hämtas för både användare och grupper och att det är unikt. Lämna det tomt för standard beteende. Förändringar kommer endast att påverka nyligen mappade (tillagda) LDAP-användare och grupper.",
"UUID Attribute:" => "UUID Attribut:",
"Username-LDAP User Mapping" => "Användarnamn-LDAP User Mapping",
+"Usernames are used to store and assign (meta) data. In order to precisely identify and recognize users, each LDAP user will have a internal username. This requires a mapping from username to LDAP user. The created username is mapped to the UUID of the LDAP user. Additionally the DN is cached as well to reduce LDAP interaction, but it is not used for identification. If the DN changes, the changes will be found. The internal username is used all over. Clearing the mappings will have leftovers everywhere. Clearing the mappings is not configuration sensitive, it affects all LDAP configurations! Never clear the mappings in a production environment, only in a testing or experimental stage." => "ownCloud använder sig av användarnamn för att lagra och tilldela (meta) data. För att exakt kunna identifiera och känna igen användare, kommer varje LDAP-användare ha ett internt användarnamn. Detta kräver en mappning från ownCloud-användarnamn till LDAP-användare. Det skapade användarnamnet mappas till UUID för LDAP-användaren. Dessutom cachas DN samt minska LDAP-interaktionen, men den används inte för identifiering. Om DN förändras, kommer förändringarna hittas av ownCloud. Det interna ownCloud-namnet används överallt i ownCloud. Om du rensar/raderar mappningarna kommer att lämna referenser överallt i systemet. Men den är inte konfigurationskänslig, den påverkar alla LDAP-konfigurationer! Rensa/radera aldrig mappningarna i en produktionsmiljö. Utan gör detta endast på i testmiljö!",
"Clear Username-LDAP User Mapping" => "Rensa Användarnamn-LDAP User Mapping",
"Clear Groupname-LDAP Group Mapping" => "Rensa Gruppnamn-LDAP Group Mapping",
"Test Configuration" => "Testa konfigurationen",
"Help" => "Hjälp"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/ta_LK.php b/apps/user_ldap/l10n/ta_LK.php
index 0eed8ca12b5d1c40f35096356005ec1738593660..6a541ca2d5252af782b50a2000839f21738f6105 100644
--- a/apps/user_ldap/l10n/ta_LK.php
+++ b/apps/user_ldap/l10n/ta_LK.php
@@ -1,4 +1,5 @@
- "நீக்கம் தோல்வியடைந்தது",
"Error" => "வழு",
"Host" => "ஓம்புனர்",
@@ -23,3 +24,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "பயனாளர் பெயரிற்கு வெற்றிடமாக விடவும் (பொது இருப்பு). இல்லாவிடின் LDAP/AD பண்புக்கூறை குறிப்பிடவும்.",
"Help" => "உதவி"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/te.php b/apps/user_ldap/l10n/te.php
index 3f047631cf70efdb246ea3fbd13df274b80d07b2..23728a9d34b2eac0bb8c5e186f1579df88372521 100644
--- a/apps/user_ldap/l10n/te.php
+++ b/apps/user_ldap/l10n/te.php
@@ -1,5 +1,7 @@
- "పొరపాటు",
"Password" => "సంకేతపదం",
"Help" => "సహాయం"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/th_TH.php b/apps/user_ldap/l10n/th_TH.php
index a3e3ec2ac49b9e54d027d3ad33af517286a687e1..34739cb51787344fef1ac8a34553bedcc9e50040 100644
--- a/apps/user_ldap/l10n/th_TH.php
+++ b/apps/user_ldap/l10n/th_TH.php
@@ -1,4 +1,5 @@
- "การลบการกำหนดค่าเซิร์ฟเวอร์ล้มเหลว",
"The configuration is valid and the connection could be established!" => "การกำหนดค่าถูกต้องและการเชื่อมต่อสามารถเชื่อมต่อได้!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "การกำหนดค่าถูกต้อง, แต่การผูกข้อมูลล้มเหลว, กรุณาตรวจสอบการตั้งค่าเซิร์ฟเวอร์และข้อมูลการเข้าใช้งาน",
@@ -57,3 +58,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "เว้นว่างไว้สำหรับ ชื่อผู้ใช้ (ค่าเริ่มต้น) หรือไม่กรุณาระบุคุณลักษณะของ LDAP/AD",
"Help" => "ช่วยเหลือ"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/tr.php b/apps/user_ldap/l10n/tr.php
index aee38335343c345b702d9b4f4c320cc8084c59b6..e334ffcc8f5795bac97aed601517e372222d698d 100644
--- a/apps/user_ldap/l10n/tr.php
+++ b/apps/user_ldap/l10n/tr.php
@@ -1,4 +1,5 @@
- "Sunucu yapılandırmasını silme başarısız oldu",
"The configuration is valid and the connection could be established!" => "Yapılandırma geçerli ve bağlantı kuruldu!",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Yapılandırma geçerli fakat bağlanma(bind) başarısız. Lütfen Sunucu ayarları ve kimlik bilgilerini kontrol ediniz.",
@@ -61,3 +62,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Kullanıcı adı bölümünü boş bırakın (varsayılan). ",
"Help" => "Yardım"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/user_ldap/l10n/ug.php b/apps/user_ldap/l10n/ug.php
index 8634cdbe1bec1b8ab32e3e0b0895a87eea006e0c..39382fed1f0a7521eb8c4389ffa8c84f46e5fa86 100644
--- a/apps/user_ldap/l10n/ug.php
+++ b/apps/user_ldap/l10n/ug.php
@@ -1,4 +1,5 @@
- "ئۆچۈرۈش مەغلۇپ بولدى",
"Error" => "خاتالىق",
"Host" => "باش ئاپپارات",
@@ -12,3 +13,4 @@
"Use TLS" => "TLS ئىشلەت",
"Help" => "ياردەم"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/uk.php b/apps/user_ldap/l10n/uk.php
index 56c6f615ecce729f9a52a6399d61327e084cc200..ebf7dbd5d848bcf1d9ff60fd4050fe3ad906aa80 100644
--- a/apps/user_ldap/l10n/uk.php
+++ b/apps/user_ldap/l10n/uk.php
@@ -1,4 +1,5 @@
- "Не вдалося видалити конфігурацію сервера",
"The configuration is valid and the connection could be established!" => "Конфігурація вірна і зв'язок може бути встановлений !",
"The configuration is valid, but the Bind failed. Please check the server settings and credentials." => "Конфігурація вірна, але встановити зв'язок не вдалося. Будь ласка, перевірте налаштування сервера і облікові дані.",
@@ -70,3 +71,4 @@
"Test Configuration" => "Тестове налаштування",
"Help" => "Допомога"
);
+$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/user_ldap/l10n/ur_PK.php b/apps/user_ldap/l10n/ur_PK.php
index 83570a596a24b06d91371aed8ebf8206acc1ce02..a84be798f9287f5164485b7fdb3fed5b45695208 100644
--- a/apps/user_ldap/l10n/ur_PK.php
+++ b/apps/user_ldap/l10n/ur_PK.php
@@ -1,5 +1,7 @@
- "ایرر",
"Password" => "پاسورڈ",
"Help" => "مدد"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_ldap/l10n/vi.php b/apps/user_ldap/l10n/vi.php
index da7bc38e475a9732cef524df09bd4696bbc00129..c4fe9b73bcc0084bfae608f464a182593e6a72d1 100644
--- a/apps/user_ldap/l10n/vi.php
+++ b/apps/user_ldap/l10n/vi.php
@@ -1,4 +1,5 @@
- "Xóa thất bại",
"Success" => "Thành công",
"Error" => "Lỗi",
@@ -43,3 +44,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Để trống tên người dùng (mặc định). Nếu không chỉ định thuộc tính LDAP/AD",
"Help" => "Giúp đỡ"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/zh_CN.GB2312.php b/apps/user_ldap/l10n/zh_CN.GB2312.php
index fe52e32361edacbb5c22e5f9c072485929cc9ec5..92eded19b4ca6aafe7ff65282c34a2cf757a4e1d 100644
--- a/apps/user_ldap/l10n/zh_CN.GB2312.php
+++ b/apps/user_ldap/l10n/zh_CN.GB2312.php
@@ -1,4 +1,5 @@
- "删除失败",
"Success" => "成功",
"Error" => "出错",
@@ -34,3 +35,4 @@
"Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "用户名请留空 (默认)。否则,请指定一个 LDAP/AD 属性。",
"Help" => "帮助"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/zh_CN.php b/apps/user_ldap/l10n/zh_CN.php
index 9abe4e7a9670657b44d2d4135bd59a5949401a1f..5107b7b1ab7fb308a7d541cb7e16141eb35c9fee 100644
--- a/apps/user_ldap/l10n/zh_CN.php
+++ b/apps/user_ldap/l10n/zh_CN.php
@@ -1,4 +1,5 @@
- "清除映射失败。",
"Failed to delete the server configuration" => "未能删除服务器配置",
"The configuration is valid and the connection could be established!" => "配置有效,能够建立连接!",
@@ -79,3 +80,4 @@
"Test Configuration" => "测试配置",
"Help" => "帮助"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/zh_HK.php b/apps/user_ldap/l10n/zh_HK.php
index ba55c4147905453e86c73a362a57fe7998dbe7a9..b656f0fc4641c892f5183db68eddef61cababe61 100644
--- a/apps/user_ldap/l10n/zh_HK.php
+++ b/apps/user_ldap/l10n/zh_HK.php
@@ -1,7 +1,9 @@
- "成功",
"Error" => "錯誤",
"Password" => "密碼",
"Port" => "連接埠",
"Help" => "幫助"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/l10n/zh_TW.php b/apps/user_ldap/l10n/zh_TW.php
index 3612ca53c1dd7d4c9b4bced7de687c769776c73b..84e1f83aefcf178695914cd00e74f7d757685104 100644
--- a/apps/user_ldap/l10n/zh_TW.php
+++ b/apps/user_ldap/l10n/zh_TW.php
@@ -1,4 +1,5 @@
- "清除映射失敗",
"Failed to delete the server configuration" => "刪除伺服器設定時失敗",
"The configuration is valid and the connection could be established!" => "設定有效且連線可建立",
@@ -70,3 +71,4 @@
"Test Configuration" => "測試此設定",
"Help" => "說明"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_ldap/lib/connection.php b/apps/user_ldap/lib/connection.php
index 36c8e648b1a71872e91c1d8a2f2851c904dd58f0..0372112f0e2dc4e1abaaaee530300280d5bfdb9e 100644
--- a/apps/user_ldap/lib/connection.php
+++ b/apps/user_ldap/lib/connection.php
@@ -29,6 +29,9 @@ class Connection {
private $configID;
private $configured = false;
+ //whether connection should be kept on __destruct
+ private $dontDestruct = false;
+
//cache handler
protected $cache;
@@ -83,11 +86,20 @@ class Connection {
}
public function __destruct() {
- if(is_resource($this->ldapConnectionRes)) {
+ if(!$this->dontDestruct && is_resource($this->ldapConnectionRes)) {
@ldap_unbind($this->ldapConnectionRes);
};
}
+ /**
+ * @brief defines behaviour when the instance is cloned
+ */
+ public function __clone() {
+ //a cloned instance inherits the connection resource. It may use it,
+ //but it may not disconnect it
+ $this->dontDestruct = true;
+ }
+
public function __get($name) {
if(!$this->configured) {
$this->readConfiguration();
diff --git a/apps/user_ldap/user_ldap.php b/apps/user_ldap/user_ldap.php
index 41e2926605e75f04af7702666485ade9ef696f34..850ca0df99546d339203931242aefe0df324337a 100644
--- a/apps/user_ldap/user_ldap.php
+++ b/apps/user_ldap/user_ldap.php
@@ -77,11 +77,6 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
}
$dn = $ldap_users[0];
- //are the credentials OK?
- if(!$this->areCredentialsValid($dn, $password)) {
- return false;
- }
-
//do we have a username for him/her?
$ocname = $this->dn2username($dn);
@@ -90,6 +85,11 @@ class USER_LDAP extends lib\Access implements \OCP\UserInterface {
$this->updateQuota($dn);
$this->updateEmail($dn);
+ //are the credentials OK?
+ if(!$this->areCredentialsValid($dn, $password)) {
+ return false;
+ }
+
//give back the display name
return $ocname;
}
diff --git a/apps/user_webdavauth/l10n/ar.php b/apps/user_webdavauth/l10n/ar.php
index e708a054099f4c9d441fef02d5a94bf1d457883e..bdb335fadb49ff864f69e91ef89ad3f5e7ac1b5c 100644
--- a/apps/user_webdavauth/l10n/ar.php
+++ b/apps/user_webdavauth/l10n/ar.php
@@ -1,3 +1,5 @@
- "تأكد شخصية ال WebDAV"
);
+$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/user_webdavauth/l10n/bg_BG.php b/apps/user_webdavauth/l10n/bg_BG.php
index 4f2a7609d73e9a26c89bbc7f7e1248dbf4c5e1a3..14e6b280fd21b20606a1a1c034888a61553eb6ce 100644
--- a/apps/user_webdavauth/l10n/bg_BG.php
+++ b/apps/user_webdavauth/l10n/bg_BG.php
@@ -1,3 +1,5 @@
- "WebDAV идентификация"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/ca.php b/apps/user_webdavauth/l10n/ca.php
index 71a4f0832c6842a03ee25efc0916bfa26fa75f54..e1f8fd9b2ecd63b56716a548200cacdadfc1d74c 100644
--- a/apps/user_webdavauth/l10n/ca.php
+++ b/apps/user_webdavauth/l10n/ca.php
@@ -1,3 +1,7 @@
- "Autenticació WebDAV"
+ "Autenticació WebDAV",
+"Address: " => "Adreça:",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Les credencials d'usuari s'enviaran a aquesta adreça. Aquest connector comprova la resposta i interpreta els codis d'estat 401 i 403 com a credencials no vàlides, i qualsevol altra resposta com a credencials vàlides."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/cs_CZ.php b/apps/user_webdavauth/l10n/cs_CZ.php
index e6664d4d7b6720c9dbffe696e0e14e9e277e1cf5..dfeac535eb8e0db15582f420646a20a3129a2511 100644
--- a/apps/user_webdavauth/l10n/cs_CZ.php
+++ b/apps/user_webdavauth/l10n/cs_CZ.php
@@ -1,5 +1,7 @@
- "Ověření WebDAV",
"Address: " => "Adresa:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Uživatelské přihlašovací údaje budou odeslány na tuto adresu. Tento plugin zkontroluje odpověď serveru a interpretuje návratový kód HTTP 401 a 403 jako neplatné přihlašovací údaje a jakýkoli jiný jako platné přihlašovací údaje."
);
+$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/user_webdavauth/l10n/da.php b/apps/user_webdavauth/l10n/da.php
index 347267e53c722e7abab3278d8a50982c519858f5..2889a1b42a0b251dfbd761533934602d670d67fc 100644
--- a/apps/user_webdavauth/l10n/da.php
+++ b/apps/user_webdavauth/l10n/da.php
@@ -1,5 +1,7 @@
- "WebDAV-godkendelse",
"Address: " => "Adresse:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Bruger oplysningerne vil blive sendt til denne adresse. Plugin'et registrerer responsen og fortolker HTTP-statuskode 401 og 403 som ugyldige oplysninger, men alle andre besvarelser som gyldige oplysninger."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/de.php b/apps/user_webdavauth/l10n/de.php
index f0e7f5dc6ef04744382def7a8f1e9a8ab1de8911..3ddc03313340b3c8a834827d5870b9f9bcb21bec 100644
--- a/apps/user_webdavauth/l10n/de.php
+++ b/apps/user_webdavauth/l10n/de.php
@@ -1,5 +1,7 @@
- "WebDAV Authentifikation",
"Address: " => "Addresse: ",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/de_DE.php b/apps/user_webdavauth/l10n/de_DE.php
index 04ab22e9c58adcaaa249774e15378b4a32de4483..2c31957d2515627eae7aa19daa946e6291568a44 100644
--- a/apps/user_webdavauth/l10n/de_DE.php
+++ b/apps/user_webdavauth/l10n/de_DE.php
@@ -1,5 +1,7 @@
- "WebDAV-Authentifizierung",
-"Address: " => "Addresse: ",
+"Address: " => "Adresse:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Die Benutzerdaten werden an diese Adresse gesendet. Dieses Plugin prüft die Antwort und wird die HTTP-Statuscodes 401 und 403 als ungültige Daten interpretieren und alle anderen Antworten als gültige Daten."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/el.php b/apps/user_webdavauth/l10n/el.php
index 2b7cb504030f57964ffcc0d880702924ea48e136..4a9ab3bafcc40c3ca1c638c70b16ea53b4ced915 100644
--- a/apps/user_webdavauth/l10n/el.php
+++ b/apps/user_webdavauth/l10n/el.php
@@ -1,3 +1,7 @@
- "Αυθεντικοποίηση μέσω WebDAV "
+ "Αυθεντικοποίηση μέσω WebDAV ",
+"Address: " => "Διεύθυνση:",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Τα διαπιστευτήρια του χρήστη θα σταλούν σε αυτή την διεύθυνση. Αυτό το πρόσθετο ελέγχει την απόκριση και θα ερμηνεύσει τους κωδικούς κατάστασης HTTP 401 και 402 ως μη έγκυρα διαπιστευτήρια και όλες τις άλλες αποκρίσεις ως έγκυρα διαπιστευτήρια."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/eo.php b/apps/user_webdavauth/l10n/eo.php
index 0e1fda7c4c272e159143482372258230b9631272..ddcac32ca1b4b3de6abc20063d5ee77c0739fcbf 100644
--- a/apps/user_webdavauth/l10n/eo.php
+++ b/apps/user_webdavauth/l10n/eo.php
@@ -1,3 +1,5 @@
- "WebDAV-aŭtentigo"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/es.php b/apps/user_webdavauth/l10n/es.php
index 262122cf9c37a47faef844a79120b55692f24f59..cd8ec6659a4f519e21a8b333282215c3555e0f6b 100644
--- a/apps/user_webdavauth/l10n/es.php
+++ b/apps/user_webdavauth/l10n/es.php
@@ -1,3 +1,7 @@
- "Autenticación de WevDAV"
+ "Autenticación de WevDAV",
+"Address: " => "Dirección:",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "onwCloud enviará las credenciales de usuario a esta dirección. Este complemento verifica la respuesta e interpretará los códigos de respuesta HTTP 401 y 403 como credenciales inválidas y todas las otras respuestas como credenciales válidas."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/es_AR.php b/apps/user_webdavauth/l10n/es_AR.php
index 262122cf9c37a47faef844a79120b55692f24f59..608b0ad817938738d8db88727e0427e45e81a36f 100644
--- a/apps/user_webdavauth/l10n/es_AR.php
+++ b/apps/user_webdavauth/l10n/es_AR.php
@@ -1,3 +1,5 @@
- "Autenticación de WevDAV"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/et_EE.php b/apps/user_webdavauth/l10n/et_EE.php
index e2f359f738ecfe52fca4f7e2fc9547b8beef8534..34b07c654a51a5faac425799391ea192b4e57513 100644
--- a/apps/user_webdavauth/l10n/et_EE.php
+++ b/apps/user_webdavauth/l10n/et_EE.php
@@ -1,3 +1,7 @@
- "WebDAV autentimine"
+ "WebDAV autentimine",
+"Address: " => "Aadress:",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud saadab kasutajatunnused sellel aadressil. See vidin kontrollib vastust ning tuvastab HTTP vastuskoodid 401 ja 403 kui vigased, ning kõik teised vastused kui korrektsed kasutajatunnused."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/eu.php b/apps/user_webdavauth/l10n/eu.php
index 686df69f08aae01a098b5d259a9b517a0020b5e0..29794115fcd72dc6d0e1e191ee7305fc827f5ad4 100644
--- a/apps/user_webdavauth/l10n/eu.php
+++ b/apps/user_webdavauth/l10n/eu.php
@@ -1,5 +1,7 @@
- "WebDAV Autentikazioa",
"Address: " => "Helbidea:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Erabiltzailearen kredentzialak helbide honetara bidaliko dira. Plugin honek erantzuna aztertu eta HTTP 401 eta 403 egoera-kodeak kredentzial ez-egokitzat hartuko ditu, eta beste edozein erantzun, aldiz, kredentzial egokitzat."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/fi_FI.php b/apps/user_webdavauth/l10n/fi_FI.php
index 40a3a069090b0df4484057be6aa360cc079af1ce..a31e09bc72a73bf8583d83da485e02f3e5d7a07e 100644
--- a/apps/user_webdavauth/l10n/fi_FI.php
+++ b/apps/user_webdavauth/l10n/fi_FI.php
@@ -1,4 +1,7 @@
- "WebDAV-todennus",
-"Address: " => "Osoite:"
+"Address: " => "Osoite:",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Käyttäjätiedot lähetetään tähän osoitteeseen. Liitännäinen tarkistaa vastauksen, ja tulkitsee HTTP-tilakoodit 401 ja 403 vääriksi käyttäjätiedoiksi. Kaikki muut vastaukset tulkitaan kelvollisiksi käyttäjätiedoiksi."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/fr.php b/apps/user_webdavauth/l10n/fr.php
index 1957bbaa30b23cd7f592b63837755ea4d3986cf9..0130e35c816a62fca579fffc657d50226d1a421c 100644
--- a/apps/user_webdavauth/l10n/fr.php
+++ b/apps/user_webdavauth/l10n/fr.php
@@ -1,3 +1,5 @@
- "Authentification WebDAV"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/user_webdavauth/l10n/gl.php b/apps/user_webdavauth/l10n/gl.php
index a989f013021dddffb5c4d9831704ee8f03d328fa..1d0c38e08f85dde3679e53d14189eef5900e6c9b 100644
--- a/apps/user_webdavauth/l10n/gl.php
+++ b/apps/user_webdavauth/l10n/gl.php
@@ -1,5 +1,7 @@
- "Autenticación WebDAV",
"Address: " => "Enderezo:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "As credenciais do usuario serán enviadas a este enderezo. Este engadido comproba a resposta e interpretará os códigos de estado 401 e 403 como credenciais incorrectas, e todas as outras respostas como credenciais correctas."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/he.php b/apps/user_webdavauth/l10n/he.php
index 724acc0e3d2b93cc533f03d22a2b2a5b5970b4c0..d11fce81a365b3441c7df3ee368beeef0d58ce18 100644
--- a/apps/user_webdavauth/l10n/he.php
+++ b/apps/user_webdavauth/l10n/he.php
@@ -1,3 +1,5 @@
- "הזדהות מול WebDAV"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/hu_HU.php b/apps/user_webdavauth/l10n/hu_HU.php
index 97423ce5fb733cdf8a2c4fb706bc5e7d3a7bafaa..63fc084ff4cf7f2a73754d3f960d3db8f8eb9cdc 100644
--- a/apps/user_webdavauth/l10n/hu_HU.php
+++ b/apps/user_webdavauth/l10n/hu_HU.php
@@ -1,3 +1,5 @@
- "WebDAV hitelesítés"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/id.php b/apps/user_webdavauth/l10n/id.php
index 22ca0557532a15579d1b364af03fbb4cd671dc4d..278055ce8c2c984f20b6131ea49013d9e5d71ea8 100644
--- a/apps/user_webdavauth/l10n/id.php
+++ b/apps/user_webdavauth/l10n/id.php
@@ -1,3 +1,5 @@
- "Otentikasi WebDAV"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_webdavauth/l10n/is.php b/apps/user_webdavauth/l10n/is.php
index 10dcfa6e3d367eed2a6ef6dd7891403530a01ca0..4fcab07654249eba79049bbe043ed7b5708ab51a 100644
--- a/apps/user_webdavauth/l10n/is.php
+++ b/apps/user_webdavauth/l10n/is.php
@@ -1,3 +1,5 @@
- "WebDAV Auðkenni"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/it.php b/apps/user_webdavauth/l10n/it.php
index 0d2b3f7f7c1200b3ec26b2b102017f090b90de26..7e2003997e50676630f531b2e69c371c894e9ac8 100644
--- a/apps/user_webdavauth/l10n/it.php
+++ b/apps/user_webdavauth/l10n/it.php
@@ -1,5 +1,7 @@
- "Autenticazione WebDAV",
"Address: " => "Indirizzo:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Le credenziali dell'utente saranno inviate a questo indirizzo. Questa estensione controlla la risposta e interpreterà i codici di stato HTTP 401 e 403 come credenziali non valide, e tutte le altre risposte come credenziali valide."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/ja_JP.php b/apps/user_webdavauth/l10n/ja_JP.php
index 047bb148335d52cc6c315ab016d7efba02d36a41..bab7be008efdd7e96574e9a25a361aed469b2de7 100644
--- a/apps/user_webdavauth/l10n/ja_JP.php
+++ b/apps/user_webdavauth/l10n/ja_JP.php
@@ -1,3 +1,7 @@
- "WebDAV 認証"
+ "WebDAV 認証",
+"Address: " => "アドレス:",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ユーザーの権限情報をこのアドレスに送信します。このプラグインは応答をチェックし、HTTP状態コードが 401 と 403 の場合は無効な資格情報とし、他の応答はすべて有効な資格情報として処理します。"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_webdavauth/l10n/ka_GE.php b/apps/user_webdavauth/l10n/ka_GE.php
index 343cccd64f189d79fb51b24c9c59a008738d246c..c2aa956072cecb3a46980fd7d4ec466207fc9910 100644
--- a/apps/user_webdavauth/l10n/ka_GE.php
+++ b/apps/user_webdavauth/l10n/ka_GE.php
@@ -1,3 +1,5 @@
- "WebDAV აუთენთიფიკაცია"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_webdavauth/l10n/ko.php b/apps/user_webdavauth/l10n/ko.php
index ff1d4cb805e3b5e3657f0e962b3b40a2b9b248ae..2d2c4d70e73bfc4407e11b1ab30e89289132df66 100644
--- a/apps/user_webdavauth/l10n/ko.php
+++ b/apps/user_webdavauth/l10n/ko.php
@@ -1,3 +1,5 @@
- "WebDAV 인증"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_webdavauth/l10n/lt_LT.php b/apps/user_webdavauth/l10n/lt_LT.php
index 106c1d034cda6a9bbd704598d64619318142f76c..90fc2d5ac3ef78e253f0e061694a9a331e719141 100644
--- a/apps/user_webdavauth/l10n/lt_LT.php
+++ b/apps/user_webdavauth/l10n/lt_LT.php
@@ -1,3 +1,5 @@
- "WebDAV autorizavimas"
);
+$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/user_webdavauth/l10n/lv.php b/apps/user_webdavauth/l10n/lv.php
index 24dbc9c86003003d37534c45820492099a8eb248..7ce96285881b8ad4c28d2de7740958bfdd89fd3c 100644
--- a/apps/user_webdavauth/l10n/lv.php
+++ b/apps/user_webdavauth/l10n/lv.php
@@ -1,3 +1,5 @@
- "WebDAV autentifikācija"
);
+$PLURAL_FORMS = "nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : 2);";
diff --git a/apps/user_webdavauth/l10n/nl.php b/apps/user_webdavauth/l10n/nl.php
index 68669710f2fe53fc5e69e87b170baaced0cd8b64..d763789f17adecb1ab2b764404447cd4811b131b 100644
--- a/apps/user_webdavauth/l10n/nl.php
+++ b/apps/user_webdavauth/l10n/nl.php
@@ -1,5 +1,7 @@
- "WebDAV authenticatie",
"Address: " => "Adres:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "De ingloggegevens worden opgestuurd naar dit adres. Deze plugin controleert de terugkoppeling en interpreteert de HTTP statuscodes 401 en 403 als invalide inloggegevens, en alle andere terugkoppelingen als valide inloggegevens."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/nn_NO.php b/apps/user_webdavauth/l10n/nn_NO.php
index beb8af80bdac8c618e501c67e4b3e130e07e9b61..519b942f9f53b750709090673b377bdbba73c61b 100644
--- a/apps/user_webdavauth/l10n/nn_NO.php
+++ b/apps/user_webdavauth/l10n/nn_NO.php
@@ -1,3 +1,5 @@
- "WebDAV-autentisering"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/pl.php b/apps/user_webdavauth/l10n/pl.php
index 3ed826098da348fac8a34d7d6d08098d632bae36..9c39be043854a8ef9397aa449b31bf6f6e68c911 100644
--- a/apps/user_webdavauth/l10n/pl.php
+++ b/apps/user_webdavauth/l10n/pl.php
@@ -1,3 +1,7 @@
- "Uwierzytelnienie WebDAV"
+ "Uwierzytelnienie WebDAV",
+"Address: " => "Adres:",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Dane uwierzytelniające użytkownika zostaną wysłane na ten adres. Wtyczka sprawdza odpowiedź i będzie interpretował status HTTP 401 i 403 jako nieprawidłowe dane uwierzytelniające i wszystkie inne odpowiedzi jako prawidłowe uwierzytelnienie."
);
+$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/user_webdavauth/l10n/pt_BR.php b/apps/user_webdavauth/l10n/pt_BR.php
index f5c000ae6e02f476dd1b85bea0b62b71fcd899ce..6dde16ff4e0db42fa4c1c79d37e089c7255af1f0 100644
--- a/apps/user_webdavauth/l10n/pt_BR.php
+++ b/apps/user_webdavauth/l10n/pt_BR.php
@@ -1,5 +1,7 @@
- "Autenticação WebDAV",
"Address: " => "Endereço:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "As credenciais de usuário serão enviadas para este endereço. Este plugin verifica a resposta e interpretará os códigos de status HTTP 401 e 403 como \"credenciais inválidas\", e todas as outras respostas como \"credenciais válidas\"."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/user_webdavauth/l10n/pt_PT.php b/apps/user_webdavauth/l10n/pt_PT.php
index 75bfe976b46593ed59ef7a8866cfe27128754c9d..f21d9c0bb9a7d302fcecce05e25fdc34d24a4fda 100644
--- a/apps/user_webdavauth/l10n/pt_PT.php
+++ b/apps/user_webdavauth/l10n/pt_PT.php
@@ -1,5 +1,7 @@
- "Autenticação WebDAV",
"Address: " => "Endereço:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "As credenciais do utilizador vão ser enviadas para endereço URL. Este plugin verifica a resposta e vai interpretar os códigos de estado HTTP 401 e 403 como credenciais inválidas, e todas as outras respostas como válidas."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/ro.php b/apps/user_webdavauth/l10n/ro.php
index 177f06154fb213441baa2d9b1414d8593f21c59b..5780805a884d086ff57329daa9245751679508be 100644
--- a/apps/user_webdavauth/l10n/ro.php
+++ b/apps/user_webdavauth/l10n/ro.php
@@ -1,3 +1,5 @@
- "Autentificare WebDAV"
);
+$PLURAL_FORMS = "nplurals=3; plural=(n==1?0:(((n%100>19)||((n%100==0)&&(n!=0)))?2:1));";
diff --git a/apps/user_webdavauth/l10n/ru.php b/apps/user_webdavauth/l10n/ru.php
index effd19d0f9ad196be2e8bf33ab7ce3968cee1005..76c18a37c207180adc49dcaf3f110f5e2ce091b6 100644
--- a/apps/user_webdavauth/l10n/ru.php
+++ b/apps/user_webdavauth/l10n/ru.php
@@ -1,5 +1,7 @@
- "Идентификация WebDAV",
"Address: " => "Адрес:",
"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Учётные данные пользователя будут отправлены на этот адрес. Плагин проверит ответ и будет рассматривать HTTP коды 401 и 403 как неверные учётные данные, при любом другом ответе - учётные данные пользователя верны."
);
+$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/user_webdavauth/l10n/ru_RU.php b/apps/user_webdavauth/l10n/ru_RU.php
deleted file mode 100644
index 46f74cb972f398929c3432f114fb1d072aed6ad9..0000000000000000000000000000000000000000
--- a/apps/user_webdavauth/l10n/ru_RU.php
+++ /dev/null
@@ -1,4 +0,0 @@
- "WebDAV аутентификация",
-"URL: http://" => "URL: http://"
-);
diff --git a/apps/user_webdavauth/l10n/sk_SK.php b/apps/user_webdavauth/l10n/sk_SK.php
index 9f2d8049c125b6c9a611080e071fe414b9559588..017f923c2b5699fe420c9da2db3e904146f1452e 100644
--- a/apps/user_webdavauth/l10n/sk_SK.php
+++ b/apps/user_webdavauth/l10n/sk_SK.php
@@ -1,3 +1,7 @@
- "WebDAV overenie"
+ "WebDAV overenie",
+"Address: " => "Adresa: ",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "Používateľské prihlasovacie údaje budú odoslané na túto adresu. Tento plugin skontroluje odpoveď servera a interpretuje návratový kód HTTP 401 a 403 ako neplatné prihlasovacie údaje a akýkoľvek iný ako platné prihlasovacie údaje."
);
+$PLURAL_FORMS = "nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;";
diff --git a/apps/user_webdavauth/l10n/sl.php b/apps/user_webdavauth/l10n/sl.php
index 93e6ce3fc420352e26500a1b305895e19731c0f1..f58232b37bd262a1bbc676f2e5f568503b20e768 100644
--- a/apps/user_webdavauth/l10n/sl.php
+++ b/apps/user_webdavauth/l10n/sl.php
@@ -1,3 +1,5 @@
- "Overitev WebDAV"
);
+$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/user_webdavauth/l10n/sr.php b/apps/user_webdavauth/l10n/sr.php
index 07f067c343a15888fa125191bb5fe6b462d0e2b5..5cb00494033f9a7bc901c3bf30661df9b8562238 100644
--- a/apps/user_webdavauth/l10n/sr.php
+++ b/apps/user_webdavauth/l10n/sr.php
@@ -1,3 +1,5 @@
- "WebDAV провера идентитета"
);
+$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/user_webdavauth/l10n/sv.php b/apps/user_webdavauth/l10n/sv.php
index 95096ce7e9594d5fb3e87adf4ef349facc8a4fc9..7595e61efe587d8965dc01d4e8859090e339cb66 100644
--- a/apps/user_webdavauth/l10n/sv.php
+++ b/apps/user_webdavauth/l10n/sv.php
@@ -1,3 +1,7 @@
- "WebDAV Autentisering"
+ "WebDAV Autentisering",
+"Address: " => "Adress: ",
+"The user credentials will be sent to this address. This plugin checks the response and will interpret the HTTP statuscodes 401 and 403 as invalid credentials, and all other responses as valid credentials." => "ownCloud kommer skicka användaruppgifterna till denna URL. Denna plugin kontrollerar svaret och tolkar HTTP-statuskoderna 401 och 403 som felaktiga uppgifter, och alla andra svar som giltiga uppgifter."
);
+$PLURAL_FORMS = "nplurals=2; plural=(n != 1);";
diff --git a/apps/user_webdavauth/l10n/th_TH.php b/apps/user_webdavauth/l10n/th_TH.php
index f73058ee42e971b15a837c9a55a19fe8f4335797..102adaca4abaee6924a5725b014b3bb65163b046 100644
--- a/apps/user_webdavauth/l10n/th_TH.php
+++ b/apps/user_webdavauth/l10n/th_TH.php
@@ -1,3 +1,5 @@
- "WebDAV Authentication"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_webdavauth/l10n/tr.php b/apps/user_webdavauth/l10n/tr.php
index fc593631785fa706e2a5c4bdf9cb8eb55bd360de..907fb88b864ec3510a511d64d0bfb0034f857c8f 100644
--- a/apps/user_webdavauth/l10n/tr.php
+++ b/apps/user_webdavauth/l10n/tr.php
@@ -1,3 +1,5 @@
- "WebDAV Kimlik doğrulaması"
);
+$PLURAL_FORMS = "nplurals=2; plural=(n > 1);";
diff --git a/apps/user_webdavauth/l10n/ug.php b/apps/user_webdavauth/l10n/ug.php
index 7231d0c57085e504e304c26de209bf49b03758b4..8ad7963d49fa4fa9fd3a72e9a60e4acfe28094f2 100644
--- a/apps/user_webdavauth/l10n/ug.php
+++ b/apps/user_webdavauth/l10n/ug.php
@@ -1,3 +1,5 @@
- "WebDAV سالاھىيەت دەلىللەش"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_webdavauth/l10n/uk.php b/apps/user_webdavauth/l10n/uk.php
index ade36d140f3fccb825021e69d6aa342ed08ec0e1..fcde044ec753d256dea8b03b62b13f09ebeca92f 100644
--- a/apps/user_webdavauth/l10n/uk.php
+++ b/apps/user_webdavauth/l10n/uk.php
@@ -1,3 +1,5 @@
- "Аутентифікація WebDAV"
);
+$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/user_webdavauth/l10n/vi.php b/apps/user_webdavauth/l10n/vi.php
index 137362b95f5e5877a7be257676e169efc038ef75..1ab4687922feb41f91bb80919754549b38d78ccf 100644
--- a/apps/user_webdavauth/l10n/vi.php
+++ b/apps/user_webdavauth/l10n/vi.php
@@ -1,3 +1,5 @@
- "Xác thực WebDAV"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_webdavauth/l10n/zh_CN.php b/apps/user_webdavauth/l10n/zh_CN.php
index f23a692a811d777d27f15be539a96bef9b34d714..69046042160cdb6cde7fd9e865d648bc613d5c9d 100644
--- a/apps/user_webdavauth/l10n/zh_CN.php
+++ b/apps/user_webdavauth/l10n/zh_CN.php
@@ -1,3 +1,5 @@
- "WebDAV 认证"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/apps/user_webdavauth/l10n/zh_TW.php b/apps/user_webdavauth/l10n/zh_TW.php
index 5e8cab265715b76de6bb4836b752b004f479f5ad..304ecdaf4f3579c53a764c941fe0a281914b77e6 100644
--- a/apps/user_webdavauth/l10n/zh_TW.php
+++ b/apps/user_webdavauth/l10n/zh_TW.php
@@ -1,3 +1,5 @@
- "WebDAV 認證"
);
+$PLURAL_FORMS = "nplurals=1; plural=0;";
diff --git a/config/config.sample.php b/config/config.sample.php
index 8d978ea6ee740da984f4cabae408b85ed71b316f..24ba541ac5c8d5f268df6b66db305a0aafc42bb4 100644
--- a/config/config.sample.php
+++ b/config/config.sample.php
@@ -56,6 +56,9 @@ $CONFIG = array(
/* Theme to use for ownCloud */
"theme" => "",
+/* Optional ownCloud default language - overrides automatic language detection on public pages like login or shared items. This has no effect on the user's language preference configured under "personal -> language" once they have logged in */
+"default_language" => "en",
+
/* Path to the parent directory of the 3rdparty directory */
"3rdpartyroot" => "",
@@ -154,7 +157,7 @@ $CONFIG = array(
/* Enable/disable X-Frame-Restriction */
/* HIGH SECURITY RISK IF DISABLED*/
"xframe_restriction" => true,
-
+
/* The directory where the user data is stored, default to data in the owncloud
* directory. The sqlite database is also stored here, when sqlite is used.
*/
@@ -185,5 +188,8 @@ $CONFIG = array(
//links to custom clients
'customclient_desktop' => '', //http://owncloud.org/sync-clients/
'customclient_android' => '', //https://play.google.com/store/apps/details?id=com.owncloud.android
-'customclient_ios' => '' //https://itunes.apple.com/us/app/owncloud/id543672169?mt=8
+'customclient_ios' => '', //https://itunes.apple.com/us/app/owncloud/id543672169?mt=8
+
+// date format to be used while writing to the owncloud logfile
+'logdateformat' => 'F d, Y H:i:s'
);
diff --git a/console.php b/console.php
new file mode 100644
index 0000000000000000000000000000000000000000..4aec5bdc24ffe1bb32ca0ddb0d9bc8f1b4499457
--- /dev/null
+++ b/console.php
@@ -0,0 +1,36 @@
+
+ * This file is licensed under the Affero General Public License version 3 or
+ * later.
+ * See the COPYING-README file.
+ */
+
+$RUNTIME_NOAPPS = true;
+require_once 'lib/base.php';
+
+// Don't do anything if ownCloud has not been installed yet
+if (!OC_Config::getValue('installed', false)) {
+ echo "Console can only be used once ownCloud has been installed" . PHP_EOL;
+ exit(0);
+}
+
+if (!OC::$CLI) {
+ echo "This script can be run from the command line only" . PHP_EOL;
+ exit(0);
+}
+
+if ($argc <= 1) {
+ echo "Usage:" . PHP_EOL;
+ echo " " . basename($argv[0]) . " " . PHP_EOL;
+ exit(0);
+}
+
+$command = $argv[1];
+array_shift($argv);
+
+if ($command === 'files:scan') {
+ require_once 'apps/files/console/scan.php';
+} else {
+ echo "Unknown command '$command'" . PHP_EOL;
+}
diff --git a/core/ajax/translations.php b/core/ajax/translations.php
index c9c642077982b0671a39ba156f932e1176248b3c..e829453dbcc59768669c786336f0e32fd828c2b1 100644
--- a/core/ajax/translations.php
+++ b/core/ajax/translations.php
@@ -27,4 +27,4 @@ $app = OC_App::cleanAppId($app);
$l = OC_L10N::get( $app );
-OC_JSON::success(array('data' => $l->getTranslations()));
+OC_JSON::success(array('data' => $l->getTranslations(), 'plural_form' => $l->getPluralFormString()));
diff --git a/core/css/styles.css b/core/css/styles.css
index 0dd66fb5b7c3ae3eb07ad40b5622bec63ad3c62d..becf0af90563612b9c93edc71485ca98bba543f2 100644
--- a/core/css/styles.css
+++ b/core/css/styles.css
@@ -19,7 +19,10 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
#body-user #header, #body-settings #header {
position:fixed; top:0; left:0; right:0; z-index:100; height:45px; line-height:2.5em;
background:#1d2d44 url('../img/noise.png') repeat;
- -moz-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; -webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; box-shadow:0 0 10px rgba(0, 0, 0, .5), inset 0 -2px 10px #222; }
+ -moz-box-shadow:0 0 10px rgba(0, 0, 0, .5);
+ -webkit-box-shadow:0 0 10px rgba(0, 0, 0, .5);
+ box-shadow:0 0 10px rgba(0, 0, 0, .5);
+}
#body-login {
text-align: center;
@@ -42,7 +45,7 @@ body { background:#fefefe; font:normal .8em/1.6em "Helvetica Neue",Helvetica,Ari
input[type="text"], input[type="password"], input[type="search"], input[type="number"], input[type="email"], input[type="url"],
textarea, select,
button, .button,
-#quota, div.jp-progress, .pager li a {
+#quota, .pager li a {
width:10em; margin:.3em; padding:.6em .5em .4em;
font-size:1em;
background:#fff; color:#333; border:1px solid #ddd; outline:none;
@@ -82,7 +85,7 @@ input[type="checkbox"]:hover+label, input[type="checkbox"]:focus+label { color:#
/* BUTTONS */
input[type="submit"], input[type="button"],
button, .button,
-#quota, div.jp-progress, select, .pager li a {
+#quota, select, .pager li a {
width:auto; padding:.4em;
background-color:rgba(240,240,240,.9); font-weight:bold; color:#555; text-shadow:rgba(255,255,255,.9) 0 1px 0; border:1px solid rgba(190,190,190,.9); cursor:pointer;
-moz-box-shadow:0 1px 1px rgba(255,255,255,.9), 0 1px 1px rgba(255,255,255,.9) inset; -webkit-box-shadow:0 1px 1px rgba(255,255,255,.9), 0 1px 1px rgba(255,255,255,.9) inset; box-shadow:0 1px 1px rgba(255,255,255,.9), 0 1px 1px rgba(255,255,255,.9) inset;
@@ -142,7 +145,7 @@ a.disabled, a.disabled:hover, a.disabled:focus {
.searchbox input[type="search"] { font-size:1.2em; padding:.2em .5em .2em 1.5em; background:#fff url('../img/actions/search.svg') no-repeat .5em center; border:0; -moz-border-radius:1em; -webkit-border-radius:1em; border-radius:1em; -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; filter:alpha(opacity=70);opacity:.7; -webkit-transition:opacity 300ms; -moz-transition:opacity 300ms; -o-transition:opacity 300ms; transition:opacity 300ms; margin-top:10px; float:right; }
input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; -webkit-box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; box-shadow:0 1px 1px #f8f8f8, 0 1px 1px #cfc inset; }
-#select_all{ margin-top:.4em !important;}
+#select_all{ margin-top:.4em }
/* CONTENT ------------------------------------------------------------------ */
#controls {
@@ -158,7 +161,7 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b
#content { position:relative; height:100%; width:100%; }
#content .hascontrols { position: relative; top: 2.9em; }
#content-wrapper {
- position:absolute; height:100%; width:100%; padding-top:3.5em; padding-left:64px;
+ position:absolute; height:100%; width:100%; padding-top:3.5em; padding-left:80px;
-moz-box-sizing:border-box; box-sizing:border-box;
}
#leftcontent, .leftcontent {
@@ -193,11 +196,12 @@ input[type="submit"].enabled { background:#66f866; border:1px solid #5e5; -moz-b
#body-login #datadirContent label,
#body-login form input[type="checkbox"]+label {
text-align: center;
- color: #000;
+ color: #ccc;
text-shadow: 0 1px 0 rgba(255,255,255,.1);
- -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=80)";
- filter: alpha(opacity=80);
- opacity: .8;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)";
+ filter: alpha(opacity=60);
+ opacity: .6;
+ text-shadow: 0 -1px 0 rgba(0,0,0,.5);
}
#body-login div.buttons { text-align:center; }
@@ -304,6 +308,31 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
#body-login form .errors { background:#fed7d7; border:1px solid #f00; list-style-indent:inside; margin:0 0 2em; padding:1em; }
#body-login .success { background:#d7fed7; border:1px solid #0f0; width: 35%; margin: 30px auto; padding:1em; text-align: center;}
+#body-login #remember_login:hover+label,
+#body-login #remember_login:focus+label {
+ color: #fff !important;
+}
+
+#body-login #showAdvanced > img {
+ height: 16px;
+ width: 16px;
+ padding: 4px;
+ box-sizing: border-box;
+}
+
+#body-login p.info a, #body-login #showAdvanced {
+ color: #ccc;
+}
+
+#body-login p.info a:hover, #body-login p.info a:focus {
+ color: #fff;
+}
+
+
+#body-login p.info{
+ white-space: nowrap;
+}
+
/* Show password toggle */
#show, #dbpassword {
position: absolute;
@@ -378,6 +407,15 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
color: #dd3b3b !important;
font-weight: bold;
}
+.error pre {
+ white-space: pre-wrap;
+ text-align: left;
+}
+
+.error-wide {
+ width: 800px;
+}
+
/* Fixes for log in page, TODO should be removed some time */
#body-login .update,
#body-login .error {
@@ -437,17 +475,30 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
/* NAVIGATION ------------------------------------------------------------- */
#navigation {
- position:fixed; float:left; width:64px; padding-top:3.5em; z-index:75; height:100%;
+ position: fixed;
+ float: left;
+ width: 80px;
+ padding-top: 3.5em;
+ z-index: 75;
+ height: 100%;
background:#383c43 url('../img/noise.png') repeat;
-moz-box-shadow:0 0 7px #000; -webkit-box-shadow:0 0 7px #000; box-shadow:0 0 7px #000;
overflow:hidden; box-sizing:border-box; -moz-box-sizing:border-box;
+ /* prevent ugly selection effect on accidental selection */
+ -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;
+}
+#navigation:hover {
+ overflow-y: auto; /* show scrollbar only on hover */
}
-#navigation:hover { overflow-y:auto; } /* show scrollbar only on hover */
#navigation a span {
- display:block;
- text-decoration:none; font-size:10px; text-align:center;
- color:#fff; text-shadow:#000 0 -1px 0;
+ display: block;
+ text-decoration: none;
+ font-size: 11px;
+ text-align: center;
+ color: #fff;
+ text-shadow: #000 0 -1px 0;
white-space:nowrap; overflow:hidden; text-overflow:ellipsis; /* ellipsize long app names */
+ padding-bottom: 10px;
}
/* icon opacity and hover effect */
@@ -472,14 +523,20 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
filter: alpha(opacity=100);
opacity: 1;
}
-
- /* positioning */
#navigation .icon {
- display:block;
- width:32px; height:32px;
- margin:0 16px 0; padding:8px 0 4px;
+ display: block;
+ width: 32px;
+ height: 32px;
+ margin-left: 24px;
+ padding: 10px 0 4px;
+ }
+ #navigation li:first-child .icon { /* special rule for Files icon as it's first */
+ padding-top: 20px;
}
- #navigation li:first-child a { padding-top:16px; }
+
+#apps-management {
+ opacity: .6;
+}
/* USER MENU */
@@ -493,13 +550,31 @@ label.infield { cursor:text !important; top:1.05em; left:.85em; }
background:#383c43 url('../img/noise.png') repeat;
border-bottom-left-radius:7px; border-bottom:1px #333 solid; border-left:1px #333 solid;
-moz-box-shadow:0 0 7px rgb(29,45,68); -webkit-box-shadow:0 0 7px rgb(29,45,68); box-shadow:0 0 7px rgb(29,45,68);
+ -moz-box-sizing: border-box; box-sizing: border-box;
+ /* prevent ugly selection effect on accidental selection */
+ -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none;
}
#expanddiv a {
- display:block; color:#fff; text-shadow:0 -1px 0 #000; padding:0 8px;
- -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)"; filter:alpha(opacity=70);opacity:.7;
+ display: block;
+ height: 40px;
+ color: #fff;
+ text-shadow: 0 -1px 0 #000;
+ padding: 4px 12px 0;
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
+ filter: alpha(opacity=70);
+ opacity: .7;
+ -moz-box-sizing: border-box;
+ box-sizing: border-box;
+ }
+ #expanddiv a img {
+ margin-bottom: -3px;
+ margin-right: 6px;
+ }
+ #expanddiv a:hover, #expanddiv a:focus, #expanddiv a:active {
+ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter: alpha(opacity=100);
+ opacity: 1;
}
- #expanddiv a img { margin-bottom:-3px; }
- #expanddiv a:hover, #expanddiv a:focus, #expanddiv a:active { -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)"; filter:alpha(opacity=100); opacity:1; }
/* VARIOUS REUSABLE SELECTORS */
@@ -532,7 +607,7 @@ tbody tr:hover, tr:active { background-color:#f8f8f8; }
.personalblock > legend, th, dt, label { font-weight:bold; }
code { font-family:"Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", monospace; }
-#quota div, div.jp-play-bar, div.jp-seek-bar {
+#quota div {
padding: 0;
background-color: rgb(220,220,220);
font-weight: normal;
@@ -540,7 +615,6 @@ code { font-family:"Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono
-moz-border-radius-bottomleft: .4em; -webkit-border-bottom-left-radius: .4em; border-bottom-left-radius:.4em;
-moz-border-radius-topleft: .4em; -webkit-border-top-left-radius: .4em; border-top-left-radius: .4em; }
#quotatext {padding:.6em 1em;}
-div.jp-play-bar, div.jp-seek-bar { padding:0; }
.pager { list-style:none; float:right; display:inline; margin:.7em 13em 0 0; }
.pager li { display:inline-block; }
@@ -596,7 +670,7 @@ span.ui-icon {float: left; margin: 3px 7px 30px 0;}
#category_addinput { width:10em; }
/* ---- APP SETTINGS ---- */
-.popup { background-color:white; border-radius:10px 10px 10px 10px; box-shadow:0 0 20px #888; color:#333; padding:10px; position:fixed !important; z-index:200; }
+.popup { background-color:white; border-radius:10px 10px 10px 10px; box-shadow:0 0 20px #888; color:#333; padding:10px; position:fixed !important; z-index:100; }
.popup.topright { top:7em; right:1em; }
.popup.bottomleft { bottom:1em; left:33em; }
.popup .close { position:absolute; top:0.2em; right:0.2em; height:20px; width:20px; background:url('../img/actions/close.svg') no-repeat center; }
@@ -631,13 +705,15 @@ div.crumb:active {
height: 100%;
width: 100%;
}
+#app * {
+ -moz-box-sizing: border-box; box-sizing: border-box;
+}
/* Navigation: folder like structure */
#app-navigation {
- width: 250px;
+ width: 300px;
height: 100%;
float: left;
- padding-bottom: 32px;
-moz-box-sizing: border-box; box-sizing: border-box;
background-color: #f8f8f8;
border-right: 1px solid #ccc;
@@ -654,7 +730,8 @@ div.crumb:active {
text-shadow: 0 1px 0 rgba(255,255,255,.9);
}
#app-navigation .active,
-#app-navigation .active a { /* active navigation entry or folder */
+#app-navigation .active a,
+#app-navigation li:hover > a {
background-color: #ddd;
text-shadow: 0 1px 0 rgba(255,255,255,.7);
}
@@ -662,49 +739,38 @@ div.crumb:active {
/* special rules for first-level entries and folders */
#app-navigation > ul > li {
background-color: #eee;
- border-top: 1px solid #fff;
- border-bottom: 1px solid #ddd;
-}
-#app-navigation > ul > .active {
- border-top: 1px solid #ccc;
- border-bottom: 1px solid #ccc;
}
#app-navigation .with-icon a {
- padding-left: 32px;
- background-size: 16px 16px; background-position: 10px center; background-repeat: no-repeat;
+ padding-left: 44px;
+ background-size: 16px 16px;
+ background-position: 14px center;
+ background-repeat: no-repeat;
}
#app-navigation li > a {
display: block;
width: 100%;
- padding: 0 16px;
+ height: 44px;
+ padding: 12px;
overflow: hidden;
-moz-box-sizing: border-box; box-sizing: border-box;
- line-height: 32px;
white-space: nowrap;
text-overflow: ellipsis;
color: #333;
}
-#app-navigation li:hover > a {
- background-color: #ddd;
-}
-#app-navigation > ul > li:hover {
- border-top: 1px solid #ccc;
- border-bottom: 1px solid #ccc;
-}
#app-navigation .collapse {
display: none; /* hide collapse button intially */
}
#app-navigation .collapsible > .collapse {
position: absolute;
- left: 6px;
- top: 5px;
- height: 16px;
- width: 16px;
+ height: 44px;
+ width: 44px;
+ margin: 0;
+ padding: 0;
background: none; background-image: url('../img/actions/triangle-s.svg');
- background-size: 16px 16px; background-repeat: no-repeat;
+ background-size: 16px; background-repeat: no-repeat; background-position: center;
border: none;
border-radius: 0;
outline: none !important;
@@ -754,13 +820,29 @@ div.crumb:active {
#app-navigation > ul .open:hover {
-moz-box-shadow: inset 0 0 3px #ccc; -webkit-box-shadow: inset 0 0 3px #ccc; box-shadow: inset 0 0 3px #ccc;
- border-top: 1px solid #ccc;
}
#app-navigation > ul .open ul {
display: block;
}
+
+/* counter and actions */
+#app-navigation .utils {
+ position: absolute;
+ right: 0;
+ top: 0;
+ bottom: 0;
+ font-size: 12px;
+}
+ #app-navigation .utils button,
+ #app-navigation .utils .counter {
+ width: 44px;
+ height: 44px;
+ padding-top: 12px;
+ }
+
+
/* drag and drop */
#app-navigation .drag-and-drop {
-moz-transition: padding-bottom 500ms ease 0s;
@@ -788,7 +870,7 @@ div.crumb:active {
/* settings area */
#app-settings {
position: fixed;
- width: 249px;
+ width: 299px;
bottom: 0;
border-top: 1px solid #ccc;
}
@@ -821,9 +903,25 @@ div.crumb:active {
}
/* icons */
+.folder-icon, .delete-icon, .edit-icon, .progress-icon {
+ background-repeat: no-repeat;
+ background-position: center;
+}
.folder-icon { background-image: url('../img/places/folder.svg'); }
.delete-icon { background-image: url('../img/actions/delete.svg'); }
+.delete-icon:hover, .delete-icon:focus {
+ background-image: url('../img/actions/delete-hover.svg');
+}
.edit-icon { background-image: url('../img/actions/rename.svg'); }
+.progress-icon {
+ background-image: url('../img/loading.gif');
+ background-size: 16px;
+ /* force show the loading icon, not only on hover */
+ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
+ filter:alpha(opacity=100);
+ opacity: 1 !important;
+ display: inline !important;
+}
/* buttons */
button.loading {
@@ -843,6 +941,10 @@ button.loading {
::-moz-focus-inner {
border: 0;
}
+.lte8 .delete-icon { background-image: url('../img/actions/delete.png'); }
+.lte8 .delete-icon:hover, .delete-icon:focus {
+ background-image: url('../img/actions/delete-hover.png');
+}
/* IE8 needs background to be set to same color to make transparency look good. */
.lte9 #body-login form input[type="text"] {
diff --git a/core/doc/admin/index.php b/core/doc/admin/index.html
similarity index 100%
rename from core/doc/admin/index.php
rename to core/doc/admin/index.html
diff --git a/core/doc/user/index.php b/core/doc/user/index.html
similarity index 100%
rename from core/doc/user/index.php
rename to core/doc/user/index.html
diff --git a/core/img/actions/delete-hover.png b/core/img/actions/delete-hover.png
new file mode 100644
index 0000000000000000000000000000000000000000..99f549faf9b70be5d0917d601485170bfae526d8
Binary files /dev/null and b/core/img/actions/delete-hover.png differ
diff --git a/core/img/actions/delete-hover.svg b/core/img/actions/delete-hover.svg
new file mode 100644
index 0000000000000000000000000000000000000000..568185c5c70b07ee4a2e8f5c75f8970b31e4280c
--- /dev/null
+++ b/core/img/actions/delete-hover.svg
@@ -0,0 +1,12 @@
+
diff --git a/core/img/actions/delete.png b/core/img/actions/delete.png
index 99f549faf9b70be5d0917d601485170bfae526d8..0d8c89a56e2d88463f52bb1901ccf228640ff7a1 100644
Binary files a/core/img/actions/delete.png and b/core/img/actions/delete.png differ
diff --git a/core/img/actions/delete.svg b/core/img/actions/delete.svg
index 568185c5c70b07ee4a2e8f5c75f8970b31e4280c..ef564bfd482292f589ad750827209a6b1580fd99 100644
--- a/core/img/actions/delete.svg
+++ b/core/img/actions/delete.svg
@@ -1,12 +1,6 @@
+
diff --git a/core/img/actions/more.png b/core/img/actions/more.png
new file mode 100644
index 0000000000000000000000000000000000000000..edcafdd9bbfb7b6c11f12e9b93f2be87ad1e282c
Binary files /dev/null and b/core/img/actions/more.png differ
diff --git a/core/img/actions/more.svg b/core/img/actions/more.svg
new file mode 100644
index 0000000000000000000000000000000000000000..9ab5d4243d92e0c38040b957de7957f686973c88
--- /dev/null
+++ b/core/img/actions/more.svg
@@ -0,0 +1,5 @@
+
+
diff --git a/core/img/actions/password.png b/core/img/actions/password.png
index edcafdd9bbfb7b6c11f12e9b93f2be87ad1e282c..07365a5775e54ed98591351ca2c4e03909b3bf65 100644
Binary files a/core/img/actions/password.png and b/core/img/actions/password.png differ
diff --git a/core/img/actions/password.svg b/core/img/actions/password.svg
index 9ab5d4243d92e0c38040b957de7957f686973c88..a9b29fda093f18b646aa46c71c07d634ef0b1679 100644
--- a/core/img/actions/password.svg
+++ b/core/img/actions/password.svg
@@ -1,5 +1,3 @@
-
-