diff options
Diffstat (limited to 'apps')
41 files changed, 325 insertions, 56 deletions
diff --git a/apps/files/css/files.css b/apps/files/css/files.css index f2ca1065eca..117aac4c93e 100644 --- a/apps/files/css/files.css +++ b/apps/files/css/files.css @@ -24,7 +24,7 @@ #new>ul>li>p { cursor:pointer; } #new>ul>li>form>input { padding:0.3em; margin:-0.3em; } -#trash { height:17px; margin: 0 1em; z-index:1010; float: right; } +#trash { margin: 0 1em; z-index:1010; float: right; } #upload { height:27px; padding:0; margin-left:0.2em; overflow:hidden; diff --git a/apps/files/index.php b/apps/files/index.php index 2f005391509..4f9e881eb2d 100644 --- a/apps/files/index.php +++ b/apps/files/index.php @@ -126,6 +126,12 @@ if ($needUpgrade) { $publicUploadEnabled = 'no'; } + $trashEnabled = \OCP\App::isEnabled('files_trashbin'); + $trashEmpty = true; + if ($trashEnabled) { + $trashEmpty = \OCA\Files_Trashbin\Trashbin::isEmpty($user); + } + OCP\Util::addscript('files', 'fileactions'); OCP\Util::addscript('files', 'files'); OCP\Util::addscript('files', 'keyboardshortcuts'); @@ -136,7 +142,8 @@ if ($needUpgrade) { $tmpl->assign('isCreatable', \OC\Files\Filesystem::isCreatable($dir . '/')); $tmpl->assign('permissions', $permissions); $tmpl->assign('files', $files); - $tmpl->assign('trash', \OCP\App::isEnabled('files_trashbin')); + $tmpl->assign('trash', $trashEnabled); + $tmpl->assign('trashEmpty', $trashEmpty); $tmpl->assign('uploadMaxFilesize', $maxUploadFilesize); $tmpl->assign('uploadMaxHumanFilesize', OCP\Util::humanFileSize($maxUploadFilesize)); $tmpl->assign('allowZipDownload', intval(OCP\Config::getSystemValue('allowZipDownload', true))); diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index 04a9fb91649..b858e2580ee 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -392,6 +392,7 @@ var FileList={ files.removeClass('selected'); }); procesSelection(); + checkTrashStatus(); } else { $.each(files,function(index,file) { var deleteAction = $('tr').filterAttr('data-file',file).children("td.date").children(".move2trash"); diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 98fc53b71a9..3fad3fae7d3 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -121,7 +121,7 @@ $(document).ready(function() { }); // Show trash bin - $('#trash a').live('click', function() { + $('#trash').on('click', function() { window.location=OC.filePath('files_trashbin', '', 'index.php'); }); @@ -845,3 +845,11 @@ function getUniqueName(name){ } return name; } + +function checkTrashStatus() { + $.post(OC.filePath('files_trashbin', 'ajax', 'isEmpty.php'), function(result){ + if (result.data.isEmpty === false) { + $("input[type=button][id=trash]").removeAttr("disabled"); + } + }); +}
\ No newline at end of file diff --git a/apps/files/l10n/cs_CZ.php b/apps/files/l10n/cs_CZ.php index c16d32e9c28..3f626d95647 100644 --- a/apps/files/l10n/cs_CZ.php +++ b/apps/files/l10n/cs_CZ.php @@ -49,6 +49,7 @@ "{count} folders" => "{count} složky", "1 file" => "1 soubor", "{count} files" => "{count} soubory", +"%s could not be renamed" => "%s nemůže být přejmenován", "Upload" => "Odeslat", "File handling" => "Zacházení se soubory", "Maximum upload size" => "Maximální velikost pro odesílání", @@ -72,6 +73,8 @@ "The files you are trying to upload exceed the maximum size for file uploads on this server." => "Soubory, které se snažíte odeslat, překračují limit velikosti odesílání na tomto serveru.", "Files are being scanned, please wait." => "Soubory se prohledávají, prosím čekejte.", "Current scanning" => "Aktuální prohledávání", +"directory" => "adresář", +"directories" => "adresáře", "file" => "soubor", "files" => "soubory", "Upgrading filesystem cache..." => "Aktualizuji mezipaměť souborového systému..." diff --git a/apps/files/l10n/da.php b/apps/files/l10n/da.php index 7afc60547f2..3dd82fadba5 100644 --- a/apps/files/l10n/da.php +++ b/apps/files/l10n/da.php @@ -1,6 +1,8 @@ <?php $TRANSLATIONS = array( "Could not move %s - File with this name already exists" => "Kunne ikke flytte %s - der findes allerede en fil med dette navn", "Could not move %s" => "Kunne ikke flytte %s", +"Unable to set upload directory." => "Ude af stand til at vælge upload mappe.", +"Invalid Token" => "Ugyldig Token ", "No file was uploaded. Unknown error" => "Ingen fil blev uploadet. Ukendt fejl.", "There is no error, the file uploaded with success" => "Der skete ingen fejl, filen blev succesfuldt uploadet", "The uploaded file exceeds the upload_max_filesize directive in php.ini: " => "Den uploadede fil overstiger upload_max_filesize direktivet i php.ini", @@ -47,6 +49,7 @@ "{count} folders" => "{count} mapper", "1 file" => "1 fil", "{count} files" => "{count} filer", +"%s could not be renamed" => "%s kunne ikke omdøbes", "Upload" => "Upload", "File handling" => "Filhåndtering", "Maximum upload size" => "Maksimal upload-størrelse", diff --git a/apps/files/templates/index.php b/apps/files/templates/index.php index e0731609368..79c283dc336 100644 --- a/apps/files/templates/index.php +++ b/apps/files/templates/index.php @@ -38,9 +38,7 @@ </form> </div> <?php if ($_['trash'] ): ?> - <div id="trash" class="button"> - <a><?php p($l->t('Deleted files'));?></a> - </div> + <input id="trash" type="button" value="<?php p($l->t('Deleted files'));?>" class="button" <?php $_['trashEmpty'] ? p('disabled') : '' ?>></input> <?php endif; ?> <div id="uploadprogresswrapper"> <div id="uploadprogressbar"></div> diff --git a/apps/files_encryption/l10n/cs_CZ.php b/apps/files_encryption/l10n/cs_CZ.php index 981e629ccfe..7b2ce2d65c5 100644 --- a/apps/files_encryption/l10n/cs_CZ.php +++ b/apps/files_encryption/l10n/cs_CZ.php @@ -7,14 +7,28 @@ "Could not change the password. Maybe the old password was not correct." => "Nelze změnit heslo. Pravděpodobně nebylo stávající heslo zadáno správně.", "Private key password successfully updated." => "Heslo soukromého klíče úspěšně aktualizováno.", "Could not update the private key password. Maybe the old password was not correct." => "Nelze aktualizovat heslo soukromého klíče. Možná nebylo staré heslo správně.", +"Your private key is not valid! Likely your password was changed outside the ownCloud system (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Váš soukromý klíč není platný! Pravděpodobně bylo heslo změněno zvně systému ownCloud (např. ve vašem firemním adresáři). Můžete opravit vaše heslo soukromého klíče ve svém osobním nastavení pro obnovení přístupu k vašim zašifrovaným souborům.", +"Missing requirements." => "Nesplněné závislosti.", +"Please make sure that PHP 5.3.3 or newer is installed and that the OpenSSL PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Ujistěte se prosím, že máte nainstalované PHP verze PHP 5.3.3 s nainstalovaným a správně nastaveným rozšířením OpenSSL. Prozatím byla šifrovací aplikace zablokována.", "Saving..." => "Ukládám...", +"Your private key is not valid! Maybe the your password was changed from outside." => "Váš soukromý klíč není platný! Pravděpodobně bylo vaše heslo změněno zvenčí.", +"You can unlock your private key in your " => "Můžete odemknout váš soukromý klíč ve vašem", "personal settings" => "osobní nastavení", "Encryption" => "Šifrování", +"Enable recovery key (allow to recover users files in case of password loss):" => "Povolit klíč pro obnovu (dovoluje obnovu uživatelských souborů v případě ztráty hesla)", +"Recovery key password" => "Heslo klíče pro obnovu", "Enabled" => "Povoleno", "Disabled" => "Zakázáno", +"Change recovery key password:" => "Změna hesla klíče pro obnovu:", +"Old Recovery key password" => "Původní heslo klíče pro obnovu", +"New Recovery key password" => "Nové heslo klíče pro obnovu", "Change Password" => "Změnit heslo", +"Your private key password no longer match your log-in password:" => "Heslo vašeho soukromého klíče se již neshoduje s vaším přihlašovacím heslem:", +"Set your old private key password to your current log-in password." => "Jako původní heslo soukromého klíče použít stávající přihlašovací heslo.", +" If you don't remember your old password you can ask your administrator to recover your files." => "Pokud si nevzpomínáte vaše původní heslo, můžete požádat správce o obnovu vašich souborů.", "Old log-in password" => "Staré přihlašovací heslo", "Current log-in password" => "Aktuální přihlašovací heslo", +"Update Private Key Password" => "Změnit heslo soukromého klíče", "Enable password recovery:" => "Povolit obnovu hesla:", "Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Povolení vám umožní znovu získat přístup k vašim zašifrovaným souborům pokud ztratíte heslo", "File recovery settings updated" => "Možnosti obnovy souborů aktualizovány", diff --git a/apps/files_encryption/l10n/da.php b/apps/files_encryption/l10n/da.php index af0d0b5e94a..609137cf193 100644 --- a/apps/files_encryption/l10n/da.php +++ b/apps/files_encryption/l10n/da.php @@ -1,8 +1,36 @@ <?php $TRANSLATIONS = array( +"Recovery key successfully enabled" => "Gendannelsesnøgle aktiveret med succes", +"Could not enable recovery key. Please check your recovery key password!" => "Kunne ikke aktivere gendannelsesnøgle. Kontroller venligst dit gendannelsesnøgle kodeord!", +"Recovery key successfully disabled" => "Gendannelsesnøgle deaktiveret succesfuldt", +"Could not disable recovery key. Please check your recovery key password!" => "Kunne ikke deaktivere gendannelsesnøgle. Kontroller din gendannelsesnøgle kodeord!", +"Password successfully changed." => "Kodeordet blev ændret succesfuldt", +"Could not change the password. Maybe the old password was not correct." => "Kunne ikke ændre kodeordet. Måske var det gamle kodeord ikke korrekt.", +"Private key password successfully updated." => "Privat nøgle kodeord succesfuldt opdateret.", +"Could not update the private key password. Maybe the old password was not correct." => "Kunne ikke opdatere det private nøgle kodeord-. Måske var det gamle kodeord forkert.", +"Your private key is not valid! Likely your password was changed outside the ownCloud system (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Din private nøgle er gyldig! Sandsynligvis blev dit kodeord ændre uden for ownCloud systemet (f.eks. dit firmas register). Du kan opdatere dit private nøgle kodeord under personlige indstillinger, for at generhverve adgang til dine krypterede filer.", +"Missing requirements." => "Manglende betingelser.", +"Please make sure that PHP 5.3.3 or newer is installed and that the OpenSSL PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Sikker dig venligst at PHP 5.3.3 eller nyere er installeret og at OpenSSL PHP udvidelsen er aktiveret og konfigureret korrekt. Indtil videre er krypterings app'en deaktiveret. ", "Saving..." => "Gemmer...", +"Your private key is not valid! Maybe the your password was changed from outside." => "Din private nøgle er ikke gyldig. Måske blev dit kodeord ændre udefra.", +"You can unlock your private key in your " => "Du kan låse din private nøgle op i din ", "personal settings" => "Personlige indstillinger", "Encryption" => "Kryptering", +"Enable recovery key (allow to recover users files in case of password loss):" => "Aktiver gendannelsesnøgle (Tillad gendannelse af brugerfiler i tilfælde af tab af kodeord):", +"Recovery key password" => "Gendannelsesnøgle kodeord", "Enabled" => "Aktiveret", "Disabled" => "Deaktiveret", -"Change Password" => "Skift Kodeord" +"Change recovery key password:" => "Skift gendannelsesnøgle kodeord:", +"Old Recovery key password" => "Gammel Gendannelsesnøgle kodeord", +"New Recovery key password" => "Ny Gendannelsesnøgle kodeord", +"Change Password" => "Skift Kodeord", +"Your private key password no longer match your log-in password:" => "Dit private nøgle kodeord stemmer ikke længere overens med dit login kodeord:", +"Set your old private key password to your current log-in password." => "Sæt dit gamle private nøgle kodeord til at være dit nuværende login kodeord. ", +" If you don't remember your old password you can ask your administrator to recover your files." => "Hvis du ikke kan huske dit gamle kodeord kan du bede din administrator om at gendanne dine filer.", +"Old log-in password" => "Gammelt login kodeord", +"Current log-in password" => "Nuvrende login kodeord", +"Update Private Key Password" => "Opdater Privat Nøgle Kodeord", +"Enable password recovery:" => "Aktiver kodeord gendannelse:", +"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Aktivering af denne valgmulighed tillader dig at generhverve adgang til dine krypterede filer i tilfælde af tab af kodeord", +"File recovery settings updated" => "Filgendannelsesindstillinger opdateret", +"Could not update file recovery" => "Kunne ikke opdatere filgendannelse" ); diff --git a/apps/files_encryption/l10n/pt_PT.php b/apps/files_encryption/l10n/pt_PT.php index d3cf596fda5..15a9ee6de63 100644 --- a/apps/files_encryption/l10n/pt_PT.php +++ b/apps/files_encryption/l10n/pt_PT.php @@ -5,15 +5,25 @@ "Could not disable recovery key. Please check your recovery key password!" => "Não foi possível desactivar a chave de recuperação. Por favor verifique a password da chave de recuperação.", "Password successfully changed." => "Password alterada com sucesso.", "Could not change the password. Maybe the old password was not correct." => "Não foi possivel alterar a password. Possivelmente a password antiga não está correcta.", +"Could not update the private key password. Maybe the old password was not correct." => "Não foi possível alterar a chave. Possivelmente a password antiga não está correcta.", "Your private key is not valid! Likely your password was changed outside the ownCloud system (e.g. your corporate directory). You can update your private key password in your personal settings to recover access to your encrypted files." => "Chave privada não é válida! Provavelmente senha foi alterada fora do sistema ownCloud (exemplo, o diretório corporativo). Pode atualizar password da chave privada em configurações personalizadas para recuperar o acesso aos seus arquivos encriptados.", +"Missing requirements." => "Faltam alguns requisitos.", "Please make sure that PHP 5.3.3 or newer is installed and that the OpenSSL PHP extension is enabled and configured properly. For now, the encryption app has been disabled." => "Por favor, certifique-se que PHP 5.3.3 ou mais recente está instalado e que a extensão PHP OpenSSL está ativada e corretamente configurada. Por agora, a encripitação está desativado.", "Saving..." => "A guardar...", "personal settings" => "configurações personalizadas ", "Encryption" => "Encriptação", +"Enable recovery key (allow to recover users files in case of password loss):" => "Active a chave de recuperação (permite recuperar os ficheiros no caso de perda da password):", +"Recovery key password" => "Chave de recuperação da conta", "Enabled" => "Activado", "Disabled" => "Desactivado", +"Change recovery key password:" => "Alterar a chave de recuperação:", +"Old Recovery key password" => "Chave anterior de recuperação da conta", +"New Recovery key password" => "Nova chave de recuperação da conta", "Change Password" => "Mudar a Password", +"Old log-in password" => "Password anterior da conta", +"Current log-in password" => "Password actual da conta", "Enable password recovery:" => "ativar recuperação do password:", +"Enabling this option will allow you to reobtain access to your encrypted files in case of password loss" => "Ao activar esta opção, tornar-lhe-a possível a obtenção de acesso aos seus ficheiros encriptados caso perca a password.", "File recovery settings updated" => "Actualizadas as definições de recuperação de ficheiros", "Could not update file recovery" => "Não foi possível actualizar a recuperação de ficheiros" ); diff --git a/apps/files_sharing/css/404.css b/apps/files_sharing/css/404.css new file mode 100644 index 00000000000..2ed81df3b86 --- /dev/null +++ b/apps/files_sharing/css/404.css @@ -0,0 +1,12 @@ + +#body-login .error-broken-link{ + text-align:left;color:#fff; +} + +#body-login .error-broken-link ul{ + margin:10px 0 10px 0; +} + +#body-login .error-broken-link ul li{ + list-style: disc;list-style-position:inside;cursor:default; +} diff --git a/apps/files_sharing/l10n/cs_CZ.php b/apps/files_sharing/l10n/cs_CZ.php index a57764a18bc..cf041726abe 100644 --- a/apps/files_sharing/l10n/cs_CZ.php +++ b/apps/files_sharing/l10n/cs_CZ.php @@ -1,4 +1,5 @@ <?php $TRANSLATIONS = array( +"The password is wrong. Try again." => "Heslo není správné. Zkuste to znovu.", "Password" => "Heslo", "Submit" => "Odeslat", "%s shared the folder %s with you" => "%s s Vámi sdílí složku %s", diff --git a/apps/files_sharing/public.php b/apps/files_sharing/public.php index 3f8e29345a7..741ab145384 100644 --- a/apps/files_sharing/public.php +++ b/apps/files_sharing/public.php @@ -234,6 +234,12 @@ if (isset($path)) { } else { OCP\Util::writeLog('share', 'could not resolve linkItem', \OCP\Util::DEBUG); } + +$errorTemplate = new OCP\Template('files_sharing', 'part.404', ''); +$errorContent = $errorTemplate->fetchPage(); + header('HTTP/1.0 404 Not Found'); +OCP\Util::addStyle('files_sharing', '404'); $tmpl = new OCP\Template('', '404', 'guest'); +$tmpl->assign('content', $errorContent); $tmpl->printPage(); diff --git a/apps/files_sharing/templates/part.404.php b/apps/files_sharing/templates/part.404.php new file mode 100644 index 00000000000..b5152e1511a --- /dev/null +++ b/apps/files_sharing/templates/part.404.php @@ -0,0 +1,12 @@ +<ul> + <li class="error error-broken-link"> + <p><?php p($l->t('Sorry, this link doesn’t seem to work anymore.')) ?></p> + <p><?php p($l->t('Reasons might be:')); ?></p> + <ul> + <li><?php p($l->t('the item was removed')); ?></li> + <li><?php p($l->t('the link expired')); ?></li> + <li><?php p($l->t('sharing is disabled')); ?></li> + </ul> + <p><?php p($l->t('For more info, please ask the person who sent this link.')); ?></p> + </li> +</ul>
\ No newline at end of file diff --git a/apps/files_trashbin/ajax/isEmpty.php b/apps/files_trashbin/ajax/isEmpty.php new file mode 100644 index 00000000000..2e54c7e77b9 --- /dev/null +++ b/apps/files_trashbin/ajax/isEmpty.php @@ -0,0 +1,14 @@ +<?php + +/* + * Check if trash bin is empty to re-enable the deleted files button if needed + */ + +OCP\JSON::checkLoggedIn(); +OCP\JSON::callCheck(); + +$trashStatus = OCA\Files_Trashbin\Trashbin::isEmpty(OCP\User::getUser()); + +OCP\JSON::success(array("data" => array("isEmpty" => $trashStatus))); + + diff --git a/apps/files_trashbin/js/trash.js b/apps/files_trashbin/js/trash.js index 87dfea491e7..409e3e59d5a 100644 --- a/apps/files_trashbin/js/trash.js +++ b/apps/files_trashbin/js/trash.js @@ -8,6 +8,7 @@ $(document).ready(function() { var undeleteAction = $('tr').filterAttr('data-file',filename).children("td.date"); var files = tr.attr('data-file'); undeleteAction[0].innerHTML = undeleteAction[0].innerHTML+spinner; + disableActions(); $.post(OC.filePath('files_trashbin','ajax','undelete.php'), {files:JSON.stringify([files]), dirlisting:tr.attr('data-dirlisting') }, function(result){ @@ -18,6 +19,7 @@ $(document).ready(function() { if (result.status != 'success') { OC.dialogs.alert(result.data.message, t('core', 'Error')); } + enableActions(); }); }); @@ -34,7 +36,7 @@ $(document).ready(function() { var newHTML = '<img class="move2trash" data-action="Delete" title="'+t('files', 'delete file permanently')+'" src="'+ OC.imagePath('core', 'loading.gif') +'"></a>'; var files = tr.attr('data-file'); deleteAction[0].outerHTML = newHTML; - + disableActions(); $.post(OC.filePath('files_trashbin','ajax','delete.php'), {files:JSON.stringify([files]), dirlisting:tr.attr('data-dirlisting') }, function(result){ @@ -45,6 +47,7 @@ $(document).ready(function() { if (result.status != 'success') { OC.dialogs.alert(result.data.message, t('core', 'Error')); } + enableActions(); }); }); @@ -98,7 +101,7 @@ $(document).ready(function() { var files=getSelectedFiles('file'); var fileslist = JSON.stringify(files); var dirlisting=getSelectedFiles('dirlisting')[0]; - + disableActions(); for (var i=0; i<files.length; i++) { var undeleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date"); undeleteAction[0].innerHTML = undeleteAction[0].innerHTML+spinner; @@ -114,6 +117,7 @@ $(document).ready(function() { if (result.status != 'success') { OC.dialogs.alert(result.data.message, t('core', 'Error')); } + enableActions(); }); }); @@ -125,6 +129,7 @@ $(document).ready(function() { var fileslist = JSON.stringify(files); var dirlisting=getSelectedFiles('dirlisting')[0]; + disableActions(); for (var i=0; i<files.length; i++) { var deleteAction = $('tr').filterAttr('data-file',files[i]).children("td.date"); deleteAction[0].innerHTML = deleteAction[0].innerHTML+spinner; @@ -140,6 +145,7 @@ $(document).ready(function() { if (result.status != 'success') { OC.dialogs.alert(result.data.message, t('core', 'Error')); } + enableActions(); }); }); @@ -236,3 +242,13 @@ function getSelectedFiles(property){ function fileDownloadPath(dir, file) { return OC.filePath('files_trashbin', '', 'download.php') + '?file='+encodeURIComponent(file); } + +function enableActions() { + $(".action").css("display", "inline"); + $(":input:checkbox").css("display", "inline"); +} + +function disableActions() { + $(".action").css("display", "none"); + $(":input:checkbox").css("display", "none"); +} diff --git a/apps/files_trashbin/l10n/cs_CZ.php b/apps/files_trashbin/l10n/cs_CZ.php index 416b6b231d5..6429c90cf5f 100644 --- a/apps/files_trashbin/l10n/cs_CZ.php +++ b/apps/files_trashbin/l10n/cs_CZ.php @@ -11,6 +11,7 @@ "{count} folders" => "{count} složky", "1 file" => "1 soubor", "{count} files" => "{count} soubory", +"restored" => "obnoveno", "Nothing in here. Your trash bin is empty!" => "Žádný obsah. Váš koš je prázdný.", "Restore" => "Obnovit", "Delete" => "Smazat", diff --git a/apps/files_trashbin/l10n/de.php b/apps/files_trashbin/l10n/de.php index 4dd9033969e..3c643874723 100644 --- a/apps/files_trashbin/l10n/de.php +++ b/apps/files_trashbin/l10n/de.php @@ -11,6 +11,7 @@ "{count} folders" => "{count} Ordner", "1 file" => "1 Datei", "{count} files" => "{count} Dateien", +"restored" => "Wiederhergestellt", "Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, der Papierkorb ist leer!", "Restore" => "Wiederherstellen", "Delete" => "Löschen", diff --git a/apps/files_trashbin/l10n/de_DE.php b/apps/files_trashbin/l10n/de_DE.php index 829b5026e1a..47dcedd4bf3 100644 --- a/apps/files_trashbin/l10n/de_DE.php +++ b/apps/files_trashbin/l10n/de_DE.php @@ -11,6 +11,7 @@ "{count} folders" => "{count} Ordner", "1 file" => "1 Datei", "{count} files" => "{count} Dateien", +"restored" => "Wiederhergestellt", "Nothing in here. Your trash bin is empty!" => "Nichts zu löschen, Ihr Papierkorb ist leer!", "Restore" => "Wiederherstellen", "Delete" => "Löschen", diff --git a/apps/files_trashbin/l10n/es.php b/apps/files_trashbin/l10n/es.php index b2d5a2aed26..d6591713e3b 100644 --- a/apps/files_trashbin/l10n/es.php +++ b/apps/files_trashbin/l10n/es.php @@ -11,6 +11,7 @@ "{count} folders" => "{count} carpetas", "1 file" => "1 archivo", "{count} files" => "{count} archivos", +"restored" => "recuperado", "Nothing in here. Your trash bin is empty!" => "No hay nada aquí. ¡Tu papelera esta vacía!", "Restore" => "Recuperar", "Delete" => "Eliminar", diff --git a/apps/files_trashbin/l10n/fi_FI.php b/apps/files_trashbin/l10n/fi_FI.php index fd6edf398ea..646a000c0d1 100644 --- a/apps/files_trashbin/l10n/fi_FI.php +++ b/apps/files_trashbin/l10n/fi_FI.php @@ -11,6 +11,7 @@ "{count} folders" => "{count} kansiota", "1 file" => "1 tiedosto", "{count} files" => "{count} tiedostoa", +"restored" => "palautettu", "Nothing in here. Your trash bin is empty!" => "Tyhjää täynnä! Roskakorissa ei ole mitään.", "Restore" => "Palauta", "Delete" => "Poista", diff --git a/apps/files_trashbin/l10n/it.php b/apps/files_trashbin/l10n/it.php index 795fd6ea167..769971bb9c8 100644 --- a/apps/files_trashbin/l10n/it.php +++ b/apps/files_trashbin/l10n/it.php @@ -11,6 +11,7 @@ "{count} folders" => "{count} cartelle", "1 file" => "1 file", "{count} files" => "{count} file", +"restored" => "ripristinati", "Nothing in here. Your trash bin is empty!" => "Qui non c'è niente. Il tuo cestino è vuoto.", "Restore" => "Ripristina", "Delete" => "Elimina", diff --git a/apps/files_trashbin/l10n/pt_BR.php b/apps/files_trashbin/l10n/pt_BR.php index 9dad8a40a85..c1a88541b27 100644 --- a/apps/files_trashbin/l10n/pt_BR.php +++ b/apps/files_trashbin/l10n/pt_BR.php @@ -11,6 +11,7 @@ "{count} folders" => "{count} pastas", "1 file" => "1 arquivo", "{count} files" => "{count} arquivos", +"restored" => "restaurado", "Nothing in here. Your trash bin is empty!" => "Nada aqui. Sua lixeira está vazia!", "Restore" => "Restaurar", "Delete" => "Excluir", diff --git a/apps/files_trashbin/lib/hooks.php b/apps/files_trashbin/lib/hooks.php index f1df1d7ec77..b2c6bc1df50 100644 --- a/apps/files_trashbin/lib/hooks.php +++ b/apps/files_trashbin/lib/hooks.php @@ -56,4 +56,8 @@ class Hooks { Trashbin::deleteUser($uid); } } + + public static function post_write_hook($params) { + Trashbin::resizeTrash(\OCP\User::getUser()); + } } diff --git a/apps/files_trashbin/lib/trash.php b/apps/files_trashbin/lib/trash.php index b9d900dfab4..ba940084a87 100644 --- a/apps/files_trashbin/lib/trash.php +++ b/apps/files_trashbin/lib/trash.php @@ -25,7 +25,7 @@ namespace OCA\Files_Trashbin; class Trashbin { // how long do we keep files in the trash bin if no other value is defined in the config file (unit: days) - const DEFAULT_RETENTION_OBLIGATION = 180; + const DEFAULT_RETENTION_OBLIGATION = 30; // unit: percentage; 50% of available disk space/quota const DEFAULTMAXSIZE = 50; @@ -72,6 +72,11 @@ class Trashbin { $mime = $view->getMimeType('files' . $file_path); if ($view->is_dir('files' . $file_path)) { + $dirContent = $view->getDirectoryContent('files' . $file_path); + // no need to move empty folders to the trash bin + if (empty($dirContent)) { + return true; + } $type = 'dir'; } else { $type = 'file'; @@ -100,8 +105,8 @@ class Trashbin { \OCP\Util::emitHook('\OCA\Files_Trashbin\Trashbin', 'post_moveToTrash', array('filePath' => \OC\Files\Filesystem::normalizePath($file_path), 'trashPath' => \OC\Files\Filesystem::normalizePath($filename . '.d' . $timestamp))); - $trashbinSize += self::retainVersions($view, $file_path, $filename, $timestamp); - $trashbinSize += self::retainEncryptionKeys($view, $file_path, $filename, $timestamp); + $trashbinSize += self::retainVersions($file_path, $filename, $timestamp); + $trashbinSize += self::retainEncryptionKeys($file_path, $filename, $timestamp); } else { \OC_Log::write('files_trashbin', 'Couldn\'t move ' . $file_path . ' to the trash bin', \OC_log::ERROR); } @@ -114,14 +119,13 @@ class Trashbin { /** * Move file versions to trash so that they can be restored later * - * @param \OC\Files\View $view * @param $file_path path to original file * @param $filename of deleted file * @param $timestamp when the file was deleted * * @return size of stored versions */ - private static function retainVersions($view, $file_path, $filename, $timestamp) { + private static function retainVersions($file_path, $filename, $timestamp) { $size = 0; if (\OCP\App::isEnabled('files_versions')) { @@ -154,14 +158,13 @@ class Trashbin { /** * Move encryption keys to trash so that they can be restored later * - * @param \OC\Files\View $view * @param $file_path path to original file * @param $filename of deleted file * @param $timestamp when the file was deleted * * @return size of encryption keys */ - private static function retainEncryptionKeys($view, $file_path, $filename, $timestamp) { + private static function retainEncryptionKeys($file_path, $filename, $timestamp) { $size = 0; if (\OCP\App::isEnabled('files_encryption')) { @@ -283,11 +286,11 @@ class Trashbin { $location = ''; } - $source = \OC\Files\Filesystem::normalizePath('files_trashbin/files/' . $file); - $target = \OC\Files\Filesystem::normalizePath('files/' . $location . '/' . $filename); - // we need a extension in case a file/dir with the same name already exists - $ext = self::getUniqueExtension($location, $filename, $view); + $uniqueFilename = self::getUniqueFilename($location, $filename, $view); + + $source = \OC\Files\Filesystem::normalizePath('files_trashbin/files/' . $file); + $target = \OC\Files\Filesystem::normalizePath('files/' . $location . '/' . $uniqueFilename); $mtime = $view->filemtime($source); // disable proxy to prevent recursive calls @@ -295,24 +298,24 @@ class Trashbin { \OC_FileProxy::$enabled = false; // restore file - $restoreResult = $view->rename($source, $target . $ext); + $restoreResult = $view->rename($source, $target); // handle the restore result if ($restoreResult) { $fakeRoot = $view->getRoot(); $view->chroot('/' . $user . '/files'); - $view->touch('/' . $location . '/' . $filename . $ext, $mtime); + $view->touch('/' . $location . '/' . $uniqueFilename, $mtime); $view->chroot($fakeRoot); - \OCP\Util::emitHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', array('filePath' => \OC\Files\Filesystem::normalizePath('/' . $location . '/' . $filename . $ext), + \OCP\Util::emitHook('\OCA\Files_Trashbin\Trashbin', 'post_restore', array('filePath' => \OC\Files\Filesystem::normalizePath('/' . $location . '/' . $uniqueFilename), 'trashPath' => \OC\Files\Filesystem::normalizePath($file))); - if ($view->is_dir($target . $ext)) { - $trashbinSize -= self::calculateSize(new \OC\Files\View('/' . $user . '/' . $target . $ext)); + if ($view->is_dir($target)) { + $trashbinSize -= self::calculateSize(new \OC\Files\View('/' . $user . '/' . $target)); } else { - $trashbinSize -= $view->filesize($target . $ext); + $trashbinSize -= $view->filesize($target); } - $trashbinSize -= self::restoreVersions($view, $file, $filename, $ext, $location, $timestamp); - $trashbinSize -= self::restoreEncryptionKeys($view, $file, $filename, $ext, $location, $timestamp); + $trashbinSize -= self::restoreVersions($view, $file, $filename, $uniqueFilename, $location, $timestamp); + $trashbinSize -= self::restoreEncryptionKeys($view, $file, $filename, $uniqueFilename, $location, $timestamp); if ($timestamp) { $query = \OC_DB::prepare('DELETE FROM `*PREFIX*files_trash` WHERE `user`=? AND `id`=? AND `timestamp`=?'); @@ -338,15 +341,16 @@ class Trashbin { * * @param \OC\Files\View $view file view * @param $file complete path to file - * @param $filename name of file - * @param $ext file extension in case a file with the same $filename already exists + * @param $filename name of file once it was deleted + * @param $uniqueFilename new file name to restore the file without overwriting existing files * @param $location location if file * @param $timestamp deleteion time * * @return size of restored versions */ - private static function restoreVersions($view, $file, $filename, $ext, $location, $timestamp) { + private static function restoreVersions($view, $file, $filename, $uniqueFilename, $location, $timestamp) { $size = 0; + if (\OCP\App::isEnabled('files_versions')) { // disable proxy to prevent recursive calls $proxyStatus = \OC_FileProxy::$enabled; @@ -355,7 +359,7 @@ class Trashbin { $user = \OCP\User::getUser(); $rootView = new \OC\Files\View('/'); - $target = \OC\Files\Filesystem::normalizePath('/' . $location . '/' . $filename . $ext); + $target = \OC\Files\Filesystem::normalizePath('/' . $location . '/' . $uniqueFilename); list($owner, $ownerPath) = self::getUidAndFilename($target); @@ -392,20 +396,20 @@ class Trashbin { * @param \OC\Files\View $view * @param $file complete path to file * @param $filename name of file - * @param $ext file extension in case a file with the same $filename already exists + * @param $uniqueFilename new file name to restore the file without overwriting existing files * @param $location location of file * @param $timestamp deleteion time * * @return size of restored encrypted file */ - private static function restoreEncryptionKeys($view, $file, $filename, $ext, $location, $timestamp) { + private static function restoreEncryptionKeys($view, $file, $filename, $uniqueFilename, $location, $timestamp) { // Take care of encryption keys TODO! Get '.key' in file between file name and delete date (also for permanent delete!) $size = 0; if (\OCP\App::isEnabled('files_encryption')) { $user = \OCP\User::getUser(); $rootView = new \OC\Files\View('/'); - $target = \OC\Files\Filesystem::normalizePath('/' . $location . '/' . $filename . $ext); + $target = \OC\Files\Filesystem::normalizePath('/' . $location . '/' . $uniqueFilename); list($owner, $ownerPath) = self::getUidAndFilename($target); @@ -482,14 +486,11 @@ class Trashbin { // get current sharing state $sharingEnabled = \OCP\Share::isEnabled(); - // get the final filename - $target = \OC\Files\Filesystem::normalizePath($location . '/' . $filename); - // get users sharing this file - $usersSharing = $util->getSharingUsersArray($sharingEnabled, $target . $ext, $user); + $usersSharing = $util->getSharingUsersArray($sharingEnabled, $target, $user); // Attempt to set shareKey - $util->setSharedFileKeyfiles($session, $usersSharing, $target . $ext); + $util->setSharedFileKeyfiles($session, $usersSharing, $target); } } @@ -668,8 +669,31 @@ class Trashbin { } /** + * @brief resize trash bin if necessary after a new file was added to ownCloud + * @param string $user user id + */ + public static function resizeTrash($user) { + + $size = self::getTrashbinSize($user); + + if ($size === false || $size < 0) { + $size = self::calculateSize(new \OC\Files\View('/' . $user . '/files_trashbin')); + } + + $freeSpace = self::calculateFreeSpace($size); + + if ($freeSpace < 0) { + $newSize = $size - self::expire($size); + if ($newSize !== $size) { + self::setTrashbinSize($user, $newSize); + } + } + } + + /** * clean up the trash bin * @param current size of the trash bin + * @return size of expired files */ private static function expire($trashbinSize) { @@ -780,18 +804,28 @@ class Trashbin { * @param $view filesystem view relative to users root directory * @return string with unique extension */ - private static function getUniqueExtension($location, $filename, $view) { - $ext = ''; + private static function getUniqueFilename($location, $filename, $view) { + $ext = pathinfo($filename, PATHINFO_EXTENSION); + $name = pathinfo($filename, PATHINFO_FILENAME); + $l = \OC_L10N::get('files_trashbin'); + + // if extension is not empty we set a dot in front of it + if ($ext !== '') { + $ext = '.' . $ext; + } + if ($view->file_exists('files' . $location . '/' . $filename)) { - $tmpext = '.restored'; - $ext = $tmpext; - $i = 1; - while ($view->file_exists('files' . $location . '/' . $filename . $ext)) { - $ext = $tmpext . $i; + $i = 2; + $uniqueName = $name . " (".$l->t("restored").")". $ext; + while ($view->file_exists('files' . $location . '/' . $uniqueName)) { + $uniqueName = $name . " (".$l->t("restored") . " " . $i . ")" . $ext; $i++; } + + return $uniqueName; } - return $ext; + + return $filename; } /** @@ -827,7 +861,7 @@ class Trashbin { $result = $query->execute(array($user))->fetchAll(); if ($result) { - return $result[0]['size']; + return (int)$result[0]['size']; } return false; } @@ -855,6 +889,23 @@ class Trashbin { \OCP\Util::connectHook('OC_Filesystem', 'delete', "OCA\Files_Trashbin\Hooks", "remove_hook"); //Listen to delete user signal \OCP\Util::connectHook('OC_User', 'pre_deleteUser', "OCA\Files_Trashbin\Hooks", "deleteUser_hook"); + //Listen to post write hook + \OCP\Util::connectHook('OC_Filesystem', 'post_write', "OCA\Files_Trashbin\Hooks", "post_write_hook"); + } + + /** + * @brief check if trash bin is empty for a given user + * @param string $user + */ + public static function isEmpty($user) { + + $trashSize = self::getTrashbinSize($user); + + if ($trashSize !== false && $trashSize > 0) { + return false; + } + + return true; } } diff --git a/apps/files_versions/l10n/cs_CZ.php b/apps/files_versions/l10n/cs_CZ.php index a10b8d25b68..bc6f4cf4a19 100644 --- a/apps/files_versions/l10n/cs_CZ.php +++ b/apps/files_versions/l10n/cs_CZ.php @@ -1,5 +1,8 @@ <?php $TRANSLATIONS = array( "Could not revert: %s" => "Nelze navrátit: %s", "Versions" => "Verze", +"Failed to revert {file} to revision {timestamp}." => "Selhalo navrácení souboru {file} na verzi {timestamp}.", +"More versions..." => "Více verzí...", +"No other versions available" => "Žádné další verze nejsou dostupné", "Restore" => "Obnovit" ); diff --git a/apps/files_versions/l10n/da.php b/apps/files_versions/l10n/da.php index 4bc0475eb66..4a94a749f2e 100644 --- a/apps/files_versions/l10n/da.php +++ b/apps/files_versions/l10n/da.php @@ -1,6 +1,7 @@ <?php $TRANSLATIONS = array( "Could not revert: %s" => "Kunne ikke genskabe: %s", "Versions" => "Versioner", +"Failed to revert {file} to revision {timestamp}." => "Kunne ikke tilbagerulle {file} til den tidligere udgave: {timestamp}.", "More versions..." => "Flere versioner...", "No other versions available" => "Ingen andre versioner tilgængelig", "Restore" => "Gendan" diff --git a/apps/files_versions/l10n/de.php b/apps/files_versions/l10n/de.php index 92ce7af42ad..e89c216fe43 100644 --- a/apps/files_versions/l10n/de.php +++ b/apps/files_versions/l10n/de.php @@ -1,5 +1,8 @@ <?php $TRANSLATIONS = array( "Could not revert: %s" => "Konnte %s nicht zurücksetzen", "Versions" => "Versionen", +"Failed to revert {file} to revision {timestamp}." => "Konnte {file} der Revision {timestamp} nicht rückgänging machen.", +"More versions..." => "Mehrere Versionen...", +"No other versions available" => "Keine anderen Versionen verfügbar", "Restore" => "Wiederherstellen" ); diff --git a/apps/files_versions/l10n/de_DE.php b/apps/files_versions/l10n/de_DE.php index 92ce7af42ad..e89c216fe43 100644 --- a/apps/files_versions/l10n/de_DE.php +++ b/apps/files_versions/l10n/de_DE.php @@ -1,5 +1,8 @@ <?php $TRANSLATIONS = array( "Could not revert: %s" => "Konnte %s nicht zurücksetzen", "Versions" => "Versionen", +"Failed to revert {file} to revision {timestamp}." => "Konnte {file} der Revision {timestamp} nicht rückgänging machen.", +"More versions..." => "Mehrere Versionen...", +"No other versions available" => "Keine anderen Versionen verfügbar", "Restore" => "Wiederherstellen" ); diff --git a/apps/files_versions/l10n/pt_PT.php b/apps/files_versions/l10n/pt_PT.php index bdb4516d6f1..b0262765ca1 100644 --- a/apps/files_versions/l10n/pt_PT.php +++ b/apps/files_versions/l10n/pt_PT.php @@ -1,5 +1,8 @@ <?php $TRANSLATIONS = array( "Could not revert: %s" => "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}.", +"More versions..." => "Mais versões...", +"No other versions available" => "Não existem versões mais antigas", "Restore" => "Restaurar" ); diff --git a/apps/files_versions/l10n/ru.php b/apps/files_versions/l10n/ru.php index c94aef09c62..eb5e404600a 100644 --- a/apps/files_versions/l10n/ru.php +++ b/apps/files_versions/l10n/ru.php @@ -1,5 +1,8 @@ <?php $TRANSLATIONS = array( "Could not revert: %s" => "Не может быть возвращён: %s", "Versions" => "Версии", +"Failed to revert {file} to revision {timestamp}." => "Не удалось возвратить {file} к ревизии {timestamp}.", +"More versions..." => "Ещё версии...", +"No other versions available" => "Других версий не доступно", "Restore" => "Восстановить" ); diff --git a/apps/user_ldap/l10n/cs_CZ.php b/apps/user_ldap/l10n/cs_CZ.php index b9fc0d71901..dd02f8bc3e4 100644 --- a/apps/user_ldap/l10n/cs_CZ.php +++ b/apps/user_ldap/l10n/cs_CZ.php @@ -15,6 +15,7 @@ "Connection test failed" => "Test spojení selhal", "Do you really want to delete the current Server Configuration?" => "Opravdu si přejete smazat současné nastavení serveru?", "Confirm Deletion" => "Potvrdit smazání", +"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Varování:</b> Aplikace user_ldap a user_webdavauth jsou vzájemně nekompatibilní. Můžete zaznamenat neočekávané chování. Požádejte prosím vašeho systémového administrátora o zakázání jednoho z nich.", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Varování:</b> není nainstalován LDAP modul pro PHP, podpůrná vrstva nebude fungovat. Požádejte, prosím, správce systému aby jej nainstaloval.", "Server configuration" => "Nastavení serveru", "Add Server Configuration" => "Přidat nastavení serveru", @@ -44,20 +45,24 @@ "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Zadejte volitelného záložního hostitele. Musí to být kopie hlavního serveru LDAP/AD.", "Backup (Replica) Port" => "Záložní (kopie) port", "Disable Main Server" => "Zakázat hlavní serveru", +"Only connect to the replica server." => "Připojit jen k replikujícímu serveru.", "Use TLS" => "Použít TLS", "Do not use it additionally for LDAPS connections, it will fail." => "Nepoužívejte pro spojení LDAP, selže.", "Case insensitve LDAP server (Windows)" => "LDAP server nerozlišující velikost znaků (Windows)", "Turn off SSL certificate validation." => "Vypnout ověřování SSL certifikátu.", +"If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Pokud spojení funguje jen s touto volbou, importujte SSL certifikát vašeho LDAP serveru na server %s.", "Not recommended, use for testing only." => "Není doporučeno, pouze pro testovací účely.", "Cache Time-To-Live" => "TTL vyrovnávací paměti", "in seconds. A change empties the cache." => "ve vteřinách. Změna vyprázdní vyrovnávací paměť.", "Directory Settings" => "Nastavení adresáře", -"User Display Name Field" => "Pole pro zobrazované jméno uživatele", +"User Display Name Field" => "Pole zobrazovaného jména uživatele", +"The LDAP attribute to use to generate the user's display name." => "LDAP atribut použitý k vytvoření zobrazovaného jména uživatele.", "Base User Tree" => "Základní uživatelský strom", "One User Base DN per line" => "Jedna uživatelská základní DN na řádku", "User Search Attributes" => "Atributy vyhledávání uživatelů", "Optional; one attribute per line" => "Volitelné, atribut na řádku", -"Group Display Name Field" => "Pole pro zobrazení jména skupiny", +"Group Display Name Field" => "Pole zobrazovaného jména skupiny", +"The LDAP attribute to use to generate the groups's display name." => "LDAP atribut použitý k vytvoření zobrazovaného jména skupiny.", "Base Group Tree" => "Základní skupinový strom", "One Group Base DN per line" => "Jedna skupinová základní DN na řádku", "Group Search Attributes" => "Atributy vyhledávání skupin", @@ -70,10 +75,13 @@ "User Home Folder Naming Rule" => "Pravidlo pojmenování domovské složky uživatele", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ponechte prázdné pro uživatelské jméno (výchozí). Jinak uveďte LDAP/AD parametr.", "Internal Username" => "Interní uživatelské jméno", +"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." => "Ve výchozím nastavení bude uživatelské jméno vytvořeno z UUID atributu. To zajistí unikátnost uživatelského jména bez potřeby konverze znaků. Interní uživatelské jméno je omezena na znaky: [ a-zA-Z0-9_.@- ]. Ostatní znaky jsou nahrazeny jejich ASCII ekvivalentem nebo jednoduše vynechány. V případě kolize uživatelských jmen bude přidáno/navýšeno číslo. Interní uživatelské jméno je používáno k interní identifikaci uživatele. Je také výchozím názvem uživatelského domovského adresáře. Je také součástí URL pro vzdálený přístup, například všech *DAV služeb. S tímto nastavením bude výchozí chování přepsáno. Pro dosažení podobného chování jako před ownCloudem 5 uveďte atribut zobrazovaného jména do pole níže. Ponechte prázdné pro výchozí chování. Změna bude mít vliv jen na nově namapované (přidané) uživatele z LDAP.", "Internal Username Attribute:" => "Atribut interního uživatelského jména:", "Override UUID detection" => "Nastavit ručně UUID atribut", +"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." => "Ve výchozím nastavení je UUID atribut nalezen automaticky. UUID atribut je používán pro nezpochybnitelnou identifikaci uživatelů a skupin z LDAP. Navíc je na základě UUID tvořeno také interní uživatelské jméno, pokud není nastaveno jinak. Můžete výchozí nastavení přepsat a použít atribut který sami zvolíte. Musíte se ale ujistit že atribut který vyberete bude uveden jak u uživatelů, tak i u skupin a je unikátní. Ponechte prázdné pro výchozí chování. Změna bude mít vliv jen na nově namapované (přidané) uživatele a skupiny z LDAP.", "UUID Attribute:" => "Atribut UUID:", "Username-LDAP User Mapping" => "Mapování uživatelských jmen z LDAPu", +"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." => "Uživatelská jména jsou používány pro uchovávání a přiřazování (meta)dat. Pro správnou identifikaci a rozpoznání uživatelů bude mít každý uživatel z LDAP interní uživatelské jméno. To je nezbytné pro mapování uživatelských jmen na uživatele LDAP. Vytvořené uživatelské jméno je mapováno na UUID uživatele v LDAP. Navíc je cachována DN pro reprodukci interakce s LDAP, ale není používána pro identifikaci. Pokud se DN změní, bude to správně rozpoznáno. Vyčištění mapování zanechá zbytky všude. Vyčištění navíc není specifické konfiguraci, bude mít vliv na všechny LDAP konfigurace! Nikdy nečistěte mapování v produkčním prostředí, jen v testovací nebo experimentální fázi.", "Clear Username-LDAP User Mapping" => "Zrušit mapování uživatelských jmen LDAPu", "Clear Groupname-LDAP Group Mapping" => "Zrušit mapování názvů skupin LDAPu", "Test Configuration" => "Vyzkoušet nastavení", diff --git a/apps/user_ldap/l10n/da.php b/apps/user_ldap/l10n/da.php index 0a77f466479..71fe042406b 100644 --- a/apps/user_ldap/l10n/da.php +++ b/apps/user_ldap/l10n/da.php @@ -1,7 +1,18 @@ <?php $TRANSLATIONS = array( +"Failed to delete the server configuration" => "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.", "Deletion failed" => "Fejl ved sletning", +"Keep settings?" => "Behold indstillinger?", +"Cannot add server configuration" => "Kan ikke tilføje serverkonfiguration", "Success" => "Succes", "Error" => "Fejl", +"Connection test succeeded" => "Forbindelsestest lykkedes", +"Connection test failed" => "Forbindelsestest mislykkedes", +"Do you really want to delete the current Server Configuration?" => "Ønsker du virkelig at slette den nuværende Server Konfiguration?", +"Confirm Deletion" => "Bekræft Sletning", +"Server configuration" => "Server konfiguration", +"Add Server Configuration" => "Tilføj Server Konfiguration", "Host" => "Host", "You can omit the protocol, except you require SSL. Then start with ldaps://" => "Du kan udelade protokollen, medmindre du skal bruge SSL. Start i så fald med ldaps://", "Base DN" => "Base DN", @@ -12,10 +23,19 @@ "User Login Filter" => "Bruger Login Filter", "User List Filter" => "Brugerliste Filter", "Defines the filter to apply, when retrieving users." => "Definere filteret der bruges ved indlæsning af brugere.", +"without any placeholder, e.g. \"objectClass=person\"." => "Uden stedfortræder, f.eks. \"objectClass=person\".", "Group Filter" => "Gruppe Filter", "Defines the filter to apply, when retrieving groups." => "Definere filteret der bruges når der indlæses grupper.", +"without any placeholder, e.g. \"objectClass=posixGroup\"." => "Uden stedfortræder, f.eks. \"objectClass=posixGroup\".", +"Connection Settings" => "Forbindelsesindstillinger ", +"Configuration Active" => "Konfiguration Aktiv", "Port" => "Port", +"Backup (Replica) Host" => "Backup (Replika) Vært", +"Backup (Replica) Port" => "Backup (Replika) Port", +"Disable Main Server" => "Deaktiver Hovedserver", +"Only connect to the replica server." => "Forbind kun til replika serveren.", "Use TLS" => "Brug TLS", +"Do not use it additionally for LDAPS connections, it will fail." => "Benyt ikke flere LDAPS forbindelser, det vil mislykkeds. ", "Turn off SSL certificate validation." => "Deaktiver SSL certifikat validering", "Not recommended, use for testing only." => "Anbefales ikke, brug kun for at teste.", "User Display Name Field" => "User Display Name Field", @@ -23,5 +43,8 @@ "Base Group Tree" => "Base Group Tree", "Group-Member association" => "Group-Member association", "in bytes" => "i bytes", +"Email Field" => "Email Felt", +"Internal Username" => "Internt Brugernavn", +"Test Configuration" => "Test Konfiguration", "Help" => "Hjælp" ); diff --git a/apps/user_ldap/l10n/de.php b/apps/user_ldap/l10n/de.php index 9e4f6bd56aa..09b17e01e2e 100644 --- a/apps/user_ldap/l10n/de.php +++ b/apps/user_ldap/l10n/de.php @@ -15,6 +15,7 @@ "Connection test failed" => "Verbindungstest fehlgeschlagen", "Do you really want to delete the current Server Configuration?" => "Möchtest Du die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" => "Löschung bestätigen", +"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitte\ndeinen Systemadministator eine der beiden Anwendungen zu deaktivieren.", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warnung:</b> Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitte Deinen Systemadministrator das Modul zu installieren.", "Server configuration" => "Serverkonfiguration", "Add Server Configuration" => "Serverkonfiguration hinzufügen", @@ -44,20 +45,24 @@ "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Gib einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", "Backup (Replica) Port" => "Backup Port", "Disable Main Server" => "Hauptserver deaktivieren", +"Only connect to the replica server." => "Nur zum Replikat-Server verbinden.", "Use TLS" => "Nutze TLS", "Do not use it additionally for LDAPS connections, it will fail." => "Benutze es nicht zusammen mit LDAPS Verbindungen, es wird fehlschlagen.", "Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)", "Turn off SSL certificate validation." => "Schalte die SSL-Zertifikatsprüfung aus.", +"If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Falls die Verbindung nur mit dieser Option funktioniert, importiere das SSL-Zertifikat des LDAP-Servers in deinen %s Server.", "Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.", "Cache Time-To-Live" => "Speichere Time-To-Live zwischen", "in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.", "Directory Settings" => "Ordnereinstellungen", "User Display Name Field" => "Feld für den Anzeigenamen des Benutzers", +"The LDAP attribute to use to generate the user's display name." => "Das LDAP-Attribut zur Generierung des Anzeigenamens des Benutzers.", "Base User Tree" => "Basis-Benutzerbaum", "One User Base DN per line" => "Ein Benutzer Basis-DN pro Zeile", "User Search Attributes" => "Benutzersucheigenschaften", "Optional; one attribute per line" => "Optional; ein Attribut pro Zeile", "Group Display Name Field" => "Feld für den Anzeigenamen der Gruppe", +"The LDAP attribute to use to generate the groups's display name." => "Das LDAP-Attribut zur Generierung des Anzeigenamens der Gruppen.", "Base Group Tree" => "Basis-Gruppenbaum", "One Group Base DN per line" => "Ein Gruppen Basis-DN pro Zeile", "Group Search Attributes" => "Gruppensucheigenschaften", @@ -70,10 +75,13 @@ "User Home Folder Naming Rule" => "Benennungsregel für das Home-Verzeichnis des Benutzers", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfall trage ein LDAP/AD-Attribut ein.", "Internal Username" => "Interner Benutzername", +"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." => "Standardmäßig wird der interne Benutzername mittels des UUID-Attributes erzeugt. Dies stellt sicher, dass der Benutzername einzigartig ist und keinerlei Zeichen konvertiert werden müssen. Der interne Benutzername unterliegt Beschränkungen, die nur die nachfolgenden Zeichen erlauben: [ a-zA-Z0-9_.@- ]. Andere Zeichen werden mittels ihrer korrespondierenden Zeichen ersetzt oder einfach ausgelassen. Bei Kollisionen wird ein Zähler hinzugefügt bzw. der Zähler um einen Wert erhöht. Der interne Benutzername wird benutzt, um einen Benutzer intern zu identifizieren. Es ist ebenso der standardmäßig vorausgewählte Namen des Heimatverzeichnisses. Es ist auch ein Teil der Remote-URLs - zum Beispiel für alle *DAV-Dienste. Mit dieser Einstellung kann das Standardverhalten überschrieben werden. Um ein ähnliches Verhalten wie vor ownCloud 5 zu erzielen, fügen Sie das anzuzeigende Attribut des Benutzernamens in das nachfolgende Feld ein. Lassen Sie dies hingegen für das Standardverhalten leer. Die Änderungen werden sich nur auf neu gemappte (hinzugefügte) LDAP-Benutzer auswirken.", "Internal Username Attribute:" => "Attribut für interne Benutzernamen:", "Override UUID detection" => "UUID-Erkennung überschreiben", +"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." => "Standardmäßig wird die UUID-Eigenschaft automatisch erkannt. Die UUID-Eigenschaft wird genutzt, um einen LDAP-Benutzer und Gruppen einwandfrei zu identifizieren. Außerdem wird der interne Benutzername erzeugt, der auf Eigenschaften der UUID basiert, wenn es oben nicht anders angegeben wurde. Du musst allerdings sicherstellen, dass deine gewählten Eigenschaften zur Identifikation der Benutzer und Gruppen eindeutig sind und zugeordnet werden können. Lasse es frei, um es beim Standardverhalten zu belassen. Änderungen wirken sich nur auf neu gemappte (hinzugefügte) LDAP-Benutzer und -Gruppen aus.", "UUID Attribute:" => "UUID-Attribut:", "Username-LDAP User Mapping" => "LDAP-Benutzernamenzuordnung", +"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." => "Die Benutzernamen werden genutzt, um (Meta)Daten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung (mappen) von Benutzernamen zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen durch gefunden. Der interne Benutzername, wird in überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Löschen Sie niemals die Zuordnungen in einer produktiven Umgebung. Lösche die Zuordnungen nur in einer Test- oder Experimentierumgebung.", "Clear Username-LDAP User Mapping" => "Lösche LDAP-Benutzernamenzuordnung", "Clear Groupname-LDAP Group Mapping" => "Lösche LDAP-Gruppennamenzuordnung", "Test Configuration" => "Testkonfiguration", diff --git a/apps/user_ldap/l10n/de_DE.php b/apps/user_ldap/l10n/de_DE.php index 916cfff06cf..3240f1653cd 100644 --- a/apps/user_ldap/l10n/de_DE.php +++ b/apps/user_ldap/l10n/de_DE.php @@ -15,6 +15,7 @@ "Connection test failed" => "Verbindungstest fehlgeschlagen", "Do you really want to delete the current Server Configuration?" => "Möchten Sie die aktuelle Serverkonfiguration wirklich löschen?", "Confirm Deletion" => "Löschung bestätigen", +"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Warnung:</b> Die Anwendungen user_ldap und user_webdavauth sind inkompatibel. Es kann demzufolge zu unerwarteten Verhalten kommen. Bitten Sie Ihren Systemadministator eine der beiden Anwendungen zu deaktivieren.", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Warnung:</b> Da das PHP-Modul für LDAP nicht installiert ist, wird das Backend nicht funktionieren. Bitten Sie Ihren Systemadministrator das Modul zu installieren.", "Server configuration" => "Serverkonfiguration", "Add Server Configuration" => "Serverkonfiguration hinzufügen", @@ -44,20 +45,24 @@ "Give an optional backup host. It must be a replica of the main LDAP/AD server." => "Geben Sie einen optionalen Backup Host an. Es muss sich um eine Kopie des Haupt LDAP/AD Servers handeln.", "Backup (Replica) Port" => "Backup Port", "Disable Main Server" => "Hauptserver deaktivieren", +"Only connect to the replica server." => "Nur zum Replikat-Server verbinden.", "Use TLS" => "Nutze TLS", "Do not use it additionally for LDAPS connections, it will fail." => "Benutzen Sie es nicht in Verbindung mit LDAPS Verbindungen, es wird fehlschlagen.", "Case insensitve LDAP server (Windows)" => "LDAP-Server (Windows: Groß- und Kleinschreibung bleibt unbeachtet)", "Turn off SSL certificate validation." => "Schalten Sie die SSL-Zertifikatsprüfung aus.", +"If connection only works with this option, import the LDAP server's SSL certificate in your %s server." => "Falls die Verbindung nur mit dieser Option funktioniert, importieren Sie das SSL-Zertifikat des LDAP-Servers in Ihren %s Server.", "Not recommended, use for testing only." => "Nicht empfohlen, nur zu Testzwecken.", "Cache Time-To-Live" => "Speichere Time-To-Live zwischen", "in seconds. A change empties the cache." => "in Sekunden. Eine Änderung leert den Cache.", "Directory Settings" => "Ordnereinstellungen", "User Display Name Field" => "Feld für den Anzeigenamen des Benutzers", +"The LDAP attribute to use to generate the user's display name." => "Das LDAP-Attribut zur Generierung des Anzeigenamens des Benutzers.", "Base User Tree" => "Basis-Benutzerbaum", "One User Base DN per line" => "Ein Benutzer Basis-DN pro Zeile", "User Search Attributes" => "Benutzersucheigenschaften", "Optional; one attribute per line" => "Optional; ein Attribut pro Zeile", "Group Display Name Field" => "Feld für den Anzeigenamen der Gruppe", +"The LDAP attribute to use to generate the groups's display name." => "Das LDAP-Attribut zur Generierung des Anzeigenamens der Gruppen.", "Base Group Tree" => "Basis-Gruppenbaum", "One Group Base DN per line" => "Ein Gruppen Basis-DN pro Zeile", "Group Search Attributes" => "Gruppensucheigenschaften", @@ -70,10 +75,13 @@ "User Home Folder Naming Rule" => "Benennungsregel für das Home-Verzeichnis des Benutzers", "Leave empty for user name (default). Otherwise, specify an LDAP/AD attribute." => "Ohne Eingabe wird der Benutzername (Standard) verwendet. Anderenfalls tragen Sie bitte ein LDAP/AD-Attribut ein.", "Internal Username" => "Interner Benutzername", +"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." => "Standardmäßig wird der interne Benutzername mittels des UUID-Attributes erzeugt. Dies stellt sicher, dass der Benutzername einzigartig ist und keinerlei Zeichen konvertiert werden müssen. Der interne Benutzername unterliegt Beschränkungen, die nur die nachfolgenden Zeichen erlauben: [ a-zA-Z0-9_.@- ]. Andere Zeichen werden mittels ihrer korrespondierenden Zeichen ersetzt oder einfach ausgelassen. Bei Kollisionen wird ein Zähler hinzugefügt bzw. der Zähler um einen Wert erhöht. Der interne Benutzername wird benutzt, um einen Benutzer intern zu identifizieren. Es ist ebenso der standardmäßig vorausgewählte Namen des Heimatverzeichnisses. Es ist auch ein Teil der Remote-URLs - zum Beispiel für alle *DAV-Dienste. Mit dieser Einstellung kann das Standardverhalten überschrieben werden. Um ein ähnliches Verhalten wie vor ownCloud 5 zu erzielen, fügen Sie das anzuzeigende Attribut des Benutzernamens in das nachfolgende Feld ein. Lassen Sie dies hingegen für das Standardverhalten leer. Die Änderungen werden sich nur auf neu gemappte (hinzugefügte) LDAP-Benutzer auswirken.", "Internal Username Attribute:" => "Interne Eigenschaften des Benutzers:", "Override UUID detection" => "UUID-Erkennung überschreiben", +"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." => "Standardmäßig wird die UUID-Eigenschaft automatisch erkannt. Die UUID-Eigenschaft wird genutzt, um einen LDAP-Benutzer und Gruppen einwandfrei zu identifizieren. Außerdem wird der interne Benutzername erzeugt, der auf Eigenschaften der UUID basiert, wenn es oben nicht anders angegeben wurde. Sie müssen allerdings sicherstellen, dass Ihre gewählten Eigenschaften zur Identifikation der Benutzer und Gruppen eindeutig sind und zugeordnet werden können. Lassen Sie es frei, um es beim Standardverhalten zu belassen. Änderungen wirken sich nur auf neu gemappte (hinzugefügte) LDAP-Benutzer und -Gruppen aus.", "UUID Attribute:" => "UUID-Attribut:", "Username-LDAP User Mapping" => "LDAP-Benutzernamenzuordnung", +"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." => "Die Benutzernamen werden genutzt, um (Meta)Daten zuzuordnen und zu speichern. Um Benutzer eindeutig und präzise zu identifizieren, hat jeder LDAP-Benutzer einen internen Benutzernamen. Dies erfordert eine Zuordnung (mappen) von Benutzernamen zum LDAP-Benutzer. Der erstellte Benutzername wird der UUID des LDAP-Benutzernamens zugeordnet. Zusätzlich wird der DN zwischengespeichert, um die Interaktion mit dem LDAP zu minimieren, was aber nicht der Identifikation dient. Ändert sich der DN, werden die Änderungen durch gefunden. Der interne Benutzername, wird in überall verwendet. Werden die Zuordnungen gelöscht, bleiben überall Reste zurück. Die Löschung der Zuordnungen kann nicht in der Konfiguration vorgenommen werden, beeinflusst aber die LDAP-Konfiguration! Löschen Sie niemals die Zuordnungen in einer produktiven Umgebung. Löschen Sie die Zuordnungen nur in einer Test- oder Experimentierumgebung.", "Clear Username-LDAP User Mapping" => "Lösche LDAP-Benutzernamenzuordnung", "Clear Groupname-LDAP Group Mapping" => "Lösche LDAP-Gruppennamenzuordnung", "Test Configuration" => "Testkonfiguration", diff --git a/apps/user_ldap/l10n/ru.php b/apps/user_ldap/l10n/ru.php index a378fd2d714..704d8149904 100644 --- a/apps/user_ldap/l10n/ru.php +++ b/apps/user_ldap/l10n/ru.php @@ -15,6 +15,7 @@ "Connection test failed" => "Проверка соединения не удалась", "Do you really want to delete the current Server Configuration?" => "Вы действительно хотите удалить существующую конфигурацию сервера?", "Confirm Deletion" => "Подтверждение удаления", +"<b>Warning:</b> Apps user_ldap and user_webdavauth are incompatible. You may experience unexpected behavior. Please ask your system administrator to disable one of them." => "<b>Предупреждение:</b> Приложения user_ldap и user_webdavauth не совместимы. Вы можете наблюдать некорректное поведение. Пожалуйста попросите Вашего системного администратора отключить одно из них.", "<b>Warning:</b> The PHP LDAP module is not installed, the backend will not work. Please ask your system administrator to install it." => "<b>Внимание:</b> Модуль LDAP для PHP не установлен, бэкенд не будет работать. Пожалуйста, попросите вашего системного администратора его установить. ", "Server configuration" => "Конфигурация сервера", "Add Server Configuration" => "Добавить конфигурацию сервера", diff --git a/apps/user_webdavauth/l10n/cs_CZ.php b/apps/user_webdavauth/l10n/cs_CZ.php index 2efde08faf9..e6664d4d7b6 100644 --- a/apps/user_webdavauth/l10n/cs_CZ.php +++ b/apps/user_webdavauth/l10n/cs_CZ.php @@ -1,3 +1,5 @@ <?php $TRANSLATIONS = array( -"WebDAV Authentication" => "Ověření WebDAV" +"WebDAV Authentication" => "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." ); diff --git a/apps/user_webdavauth/l10n/de.php b/apps/user_webdavauth/l10n/de.php index 6443eb44ece..f0e7f5dc6ef 100644 --- a/apps/user_webdavauth/l10n/de.php +++ b/apps/user_webdavauth/l10n/de.php @@ -1,3 +1,5 @@ <?php $TRANSLATIONS = array( -"WebDAV Authentication" => "WebDAV Authentifikation" +"WebDAV Authentication" => "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." ); diff --git a/apps/user_webdavauth/l10n/de_DE.php b/apps/user_webdavauth/l10n/de_DE.php index fc06e0d0159..04ab22e9c58 100644 --- a/apps/user_webdavauth/l10n/de_DE.php +++ b/apps/user_webdavauth/l10n/de_DE.php @@ -1,3 +1,5 @@ <?php $TRANSLATIONS = array( -"WebDAV Authentication" => "WebDAV-Authentifizierung" +"WebDAV Authentication" => "WebDAV-Authentifizierung", +"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." ); diff --git a/apps/user_webdavauth/l10n/pt_PT.php b/apps/user_webdavauth/l10n/pt_PT.php index f8b491f7ed2..75bfe976b46 100644 --- a/apps/user_webdavauth/l10n/pt_PT.php +++ b/apps/user_webdavauth/l10n/pt_PT.php @@ -1,3 +1,5 @@ <?php $TRANSLATIONS = array( -"WebDAV Authentication" => "Autenticação WebDAV" +"WebDAV Authentication" => "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." ); diff --git a/apps/user_webdavauth/l10n/ru.php b/apps/user_webdavauth/l10n/ru.php index 9a9b4e88f75..effd19d0f9a 100644 --- a/apps/user_webdavauth/l10n/ru.php +++ b/apps/user_webdavauth/l10n/ru.php @@ -1,3 +1,5 @@ <?php $TRANSLATIONS = array( -"WebDAV Authentication" => "Идентификация WebDAV" +"WebDAV Authentication" => "Идентификация 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 как неверные учётные данные, при любом другом ответе - учётные данные пользователя верны." ); |